Items in TListBox, TListView mit Daten versehen ?



  • Hallo !
    ist es möglich einem sagen wir mal z.B. ListBox->Items->Strings[n..], außer mit dem String selbst (ListBox->Items->Add("bla bla")), zusätzlich Daten (wenn möglich AnsiString) fest zuzuordnen ? und wenn wie ?

    Danke



  • Hallo

    ListBox1->Items->Strings[10] = "Item 10";
    

    Allerdings setzt das voraus, das die ListBoix bereits mindestens 11 Items besitzt.

    bis bald
    akari



  • Ich denke, OldMan sucht eher nach TStrings::Objects.



  • Jansen schrieb:

    Ich denke, OldMan sucht eher nach TStrings::Objects.

    genau so etwas meine ich. Den Items->Strings[n] etwas zuordnen ist klar. Ich meine zusätzlich Informationen, so daß ich z.B. in einer ListBox Einträge habe und wenn ich einen Eintrag anklicke, die zusätzliche Information wieder auslesen kann, ohne vielleicht ein Array zu erstellen und über ItemIndex das Array auslese. Ich habe ein Beispiel von Treeview mit AddObject und zum auslesen Selected->Data irgendwo schon mal gesehen. Nun wollte ich wissen, ob es auch mit oben genannten objekten geht und vorallen wie.

    TreeView1->Items->AddObject(NULL, "Zahl 1", reinterpret_cast<void*>(1));
    
    int x = reinterpret_cast<int>(TreeView1->Selected->Data);
    


  • Hallo

    das geht genauso mit TListBox::Items::Objects. Es sollte sogar eine Add-Methode geben die auch zusätzlich zu dem AnsiString so einen void-Zeiger übernimmt.

    Allerdings bist du dann selber für die Speicherverwaltung verantwortlich.
    Das heißt du kannst nicht einfach sowas schreiben

    AnsiString text = "Das ist der Text";
    ListBox->Items->AddObject("Item 1", reinterpret_cast<void*>(&text));
    

    Da der AnsiString hier nur lokal ist, ist die an AddObjekt übergebene Adresse nach Ende der gültigkeit von text ebenfalls ungültig.

    bis bald
    akari


Anmelden zum Antworten