TListView makierte Zeileninhalt wiedergeben
-
Guten Tag Community,
habe eine so ähnliche Frage schon mal gestellt, jedoch waren in einem Thread mehrere Fragen, da die Faust regel besagt, dass man pro Thread eine Frage stellt, versuche ich es hier nocheinmal.
Ich habe eine TListview Komponente, dort lese ich wie folgt die Daten ein.
verkürtze Version { TListItem *Item; TListColumn *Column; Column = ListView1->Columns->Add(); Column->Caption = "Name"; Column->Width = 100; Column = ListView1->Columns->Add(); Column->Caption = "Nachname"; Column->Width = 100; for Schleife Item = ListView1->Items->Add(); Item->Caption = Name; Item->SubItems->Add(Vorname); }
Nun steht im ListView zb.
1. Zeile: Max Mustermann
Nun die Frage
Wie gelingt es mir, wenn ich auf diese Zeile klicke, dass diese Daten nochmal extra in einem Label oder Memo angezeigt werden?
und
besteht die Möglichkeit auf einzelne Items zuzugreifen?
Wenn man nur zb. den Vorname extra nochmal angezeigt haben möchte
-
Hallo
Könnte man auch durch ein genaues Lesen der BCB-Hilfe selbst beantworten
int item = ...; int spalte = ...; AnsiString text = ListView1->Items->Item[item]->SubItems->Strings[spalte];
bis bald
akari
-
Ich habe den C++ Builder 2010, soweit mir bekannt ist funktioniert die Hilfestellung (noch) nicht!
Vielen Dank für den Post akari
nun
wie muss ich
int item = ...; int spalte = ...;
den einen Wert zuweisen?
-
Hallo
Na kommt drauf an was du haben willst. Das aktuell ausgewählte Item ist sogar noch leichter auszuwerten :
TListItem* sel = ListView->Selected; if (sel) { AnsiString Text = sel->SubItems->Strings[spalte]; }
bis bald
akari
-
Hallo
genau, wenn ich eine Zeile makiere sollen die ganzen Inhalte in dieser Zeile angezeigt werden, zb Memofeld.
Sorry wenn ich so dumm Frage, aber wie muss ich jetzt die Spalte bestimmen?
-
Hallo,
Strings[spalte] erwartet den Spaltenindex. Wenn du den kennst schreib ihn rein, andernfalls gibt es glaub ich so etwas wie "FindColumn"?!
LG, Micha
-
Hallo,
vorerst vielen Dank für die Posts.
Hab es jetzt soweit, dass es beim klick auf die Zeile, der erste Column, sprich
Column->Caption = "Name";
inhalt angezeigt wird, nun wie ist das auf die Zeile zu übertragen, besser auf die einzelnen Columns?
TListItem *SelItem = ListView1->Selected; TItemStates selected = TItemStates() << isSelected; AnsiString makierterText; if (SelItem) // wenn überhaupt eins ausgewählt wurde { makierterText = SelItem->Caption; ShowMessage(makierterText); }
-
Vielen Dank, ich glaube ich bin selbst auf eine Lösung gekommen, wenn es ganz funktioniert, kann ich ja mal den Code posten,
Vielen Dank an euch!