ListBox Eigenschaft? welches ItemIndex makiert ist?
-
moin,
kurze frage wie heist die eigenschaft von listbox, die den wert zurück gibt, welches index makiert ist?
hoffe das war die richtige frage, um am schnellsten an die lösung zu kommen
gute nacht
-
Hi,
hab Gestern zufällig mit der ListBox gearbeitet
void __fastcall TForm1::ListBox1Click(TObject *Sender) { if(ListBox1->ItemIndex!=-1) { Edit1->Text = ListBox1->Items->Strings[ ListBox1->ItemIndex ]; } } //---------------------------------------------------------------------------
Dieser Code müsste alles erklären..... kannst aber auch in der Hilfe zu
ListBox nachlesen und zwar dort in den Eigenschaften von ListBox.Es ist der ItemIndex, dieser ist -1 wenn nichs ausgewählt ist, sonst die Zeile.
ItemIndex==0 ist die erste ZeileMan kann die Zeile auch über ItemIndex ansteuern.
ItemIndex=2 heist die dritte Zeile markieren, aber Vorsicht, wenn die nicht da ist, gibts
Absturz........Grüsse
-
morgen,
ja passt danke vielmals
ich hab im objektinspektor gesucht, da taucht ItemIndex leider nicht auf
wünsche noch was
-
Hallo
Nicht nur auf den Objektinspektor schauen, sondern auch in die Builder-Hilfe (Control auswählen und F1 drücken!) Im OI werden natürlich nur Eigenschaften angezeigt die zur Entwurfszeit sinnvoll sind. ItemIndex ist aber erst zur Laufzeit wichtig.
bis bald
akari
-
ja akari sollte mir das mal angewöhnen
nur mal ne frage noch, kann man in einer listbox frames erzeugen oder gibt es ein anderes objekt dafür?
-
TListView ?!
-
hmm nicht wirklich, also was ich meine ist die art spalten/frames wie im rechten explorer fenster
Name---------Größe----------Typ-------------Geändert am
text.txt------1KB-----------Textdokument-----??.??.???? ??:??ist das machbar?
hab mir schon gedacht das ich es mit noch einer listbox neben dran mache, aber dann muss ich beachten das die itemindex von liste 1 und 2 immer gleich neben einander stehen.
gibts den so eine box die dieses schon beinhaltet?
danke schön
-
Ich wiederhol mich nur ungern, aber in dem Fall
TListView
( ViewStyle - vsReport )
mfg, Micha!
-
sorry, habs mir noch mal angeschaut und die colums gesetzt
danke schön
-
Die Columns? Die dürften Dich in einer ListBox nicht zum Ziel führen, bei dem was Du beschrieben hast. Da würde ich es eher mit TabWidth ausprobieren. Allerdings hat das auch Nachteile ...
-
-
abend,
danke für die vorschläge @all
das klappt so weit mit dem listview objekt, naja das optische
jetzt steh ich aber vor den nächsten hürdeich weis wie ich auf strings in einer listbox zugreife, damit....
AnsiString a1 =ListBox1->Items->Strings[0];
in der listview geht das leider nicht, da strings keine eigenschaft von listview ist grrrr
ich hab bisschen rumprobiert mit ListView->Items->...... hab mir die ganzen vorschläge angeschaut die er mir angibt.
aber keines der bis jetzt versuchten eingenschaften gibt mir den text der einzelnen einträge aus.habs auch mit ListView->Columns->Items->...... auch kein erfolg
hat jemand ein rat und weist mir die richtung
-
*sorry*, hab wohl doch zu vorschnell gemeckert
-
Allgemein:
ListView1->Items->Item[x]->Caption
Markiertes Item herausfinden:
ListView1->Selected->Caption
-
so, da bin ich wieder ...
Wenn ich das richtig sehe, greift Rostfrei auf die erste Spalte zu. Für die zweite bräuchte man dann folgenden Code:
ListView1->Items->Item[x]->SubItems->Strings[0];
Entsprechend für die 3. Strings[1] etc.
... oder geht das auch einfacher?
-
also die beiden beispiele funktionieren
a->Edit1->Text = ListView2->Items->Item[0]->Caption; a->Edit2->Text = ListView2->Items->Item[0]->SubItems->Strings[0]; a->Edit2->Text = ListView2->Items->Item[0]->SubItems->Strings[1];
jetzt hab ich natürlich auch gleich mal probiert in der listview zur laufzeit was einzutragen
Form1->ListView2->Items->AddItem("PC1",0)
jetzt sagt er mir was von tlistitem erwartet und char erhalten......
ich kenn int und string und char aber was hats mit dem tlistitem auf sich?
bin ich mit der code zeile überhaubt richtig?
den ein Add ohne dem Item hinten dran gibts auch, aber da will er keine weiteren parameter haben.
-
Hi,
ListView1->Items->Item[x]->Caption // Spalte 0 (sichtbar 1) TListItem *ListItem = ListView1->Items->Add(); ListItem->SubItems->Add("Spalte 1"); //sichtbar Spalte 2 ListItem->SubItems->Add("Spalte 2"); //usw.
Steht aber auch alles in der Hilfe
mfg, Micha!
-
man man genau so stehts drin, also fast
so siehts aus und das funkt
Form1->ListView2->Items->Item[i]->Caption; // Spalte 0 (sichtbar 1) TListItem *ListItem = Form1->ListView2->Items->Add(); ListItem->Caption = "PC1" + IntToStr(i); ListItem->SubItems->Add("Standort"); //sichtbar Spalte 2 ListItem->SubItems->Add("Rufnummer"); //usw. ListItem->SubItems->Add("Passwort");
big thx
-
moin,
ich bin mit meinem code auf ein kleines problemm gestoßen
if (ListView2->Selected->Index == 0); { AnsiString a1 =ListView2->Items->Item[0]->Caption; TForm3* a = new TForm3(Application); a->Show(); a->Caption ="Konfiguration von "+ a1; a->Edititem->Text = "0"; a->Editfo->Text = "az1"; a->Edit1->Text = ListView2->Items->Item[0]->Caption; a->Edit35->Text = ListView2->Items->Item[0]->SubItems->Strings[0]; a->Edit3->Text = ListView2->Items->Item[0]->SubItems->Strings[1]; a->Edit2->Text = ListView2->Items->Item[0]->SubItems->Strings[2]; } if (ListView2->Selected->Index == 1); { AnsiString a1 =ListView2->Items->Item[1]->Caption; TForm3* a = new TForm3(Application); a->Show(); a->Caption ="Konfiguration von "+ a1; a->Edititem->Text = "1"; a->Editfo->Text = "az2"; a->Edit1->Text = ListView2->Items->Item[0]->Caption; a->Edit35->Text = ListView2->Items->Item[0]->SubItems->Strings[0]; a->Edit3->Text = ListView2->Items->Item[0]->SubItems->Strings[1]; a->Edit2->Text = ListView2->Items->Item[0]->SubItems->Strings[2]; } . . . . .
wen ich ohne die if abfrage, nur mit einer form arbeite gehts.
mit if abfrage bricht er zusammen und das programm geht garnicht mehr weiter, muss zurücksetzenich denke mal, daß ich die if abfrage auf etwas mache, was nicht den richtigen wert, den ich eigentlich erwarte zurückgibt hmm..
mit ItemIndex mekert er auch nicht! macht aber das gleiche problem..ich hab das erst mal stehen lassen und etwas weiter den vorgang durchgegangen nur mit einer ausgabe.
auf der instans der form gibt es ein button, mit dem ich die eigetragenen daten, in die gleiche listview und index zurück setzen möchte.
das machte er aber nicht, er schreibt eine zeile dazu, hab auch schon verschiedene code beispiele versucht das ist mein letzter
Form1->ListView2->Items->Item[StrToInt(Edititem->Text)];//->Caption; // Spalte 0 (sichtbar 1) TListItem *ListItem = Form1->ListView2->Items->Insert(Form1->ListView2->Selected->Index); ListItem->Caption = Edit1->Text; ListItem->SubItems->Add(Edit35->Text); //Add(Edit35->Text); //sichtbar Spalte 2 ListItem->SubItems->Add(Edit3->Text); //usw. ListItem->SubItems->Add(Edit2->Text); Close();
gute nacht, hoffe doch bis morgen
-
Hi,
was isn TForm3 ??
Das Formular "a" scheint ja schon zu existieren, oder?! In dem Fall kannst du TForm3* a = new TForm3(Application); weglassen und gleich a->Show(); ausführen.
Setz aber mal nen Breakpoint in eine der If-Anweisungen und rufe diese dann auf in dem du das jeweilige Item im ListView markierst. Dann schau dir an was innerhalb deiner Routine passiert.
mfg, Micha!