ListView wird nicht gefüllt



  • Hallo ! Hab mal ne Frage.Warum wird das Item nicht hinzugefügt ?

    TListItem *item = ListView->Items->Add();
    ListView->Items->Item[item->Index]->Caption =GetMessageString(String(join->PName));
                     ListView->Items->Item[item->Index]->SubItems->Add(GetMessageString(String(join->UName)));
    delete item;
    


  • Hallo

    weil du das neu erschaffene Item gleich wieder mit delete löschst?
    Korrekt mist es so aussehen :

    TListItem *item = ListView->Items->Add();
    item->Caption =GetMessageString(String(join->PName));
    item->SubItems->Add(GetMessageString(String(join->UName)));
    

    bis bald
    akari



  • Ups ! ich dachte die ganze Zeit das man nur den pointer wieder freigibt aber nicht das ganze item löscht 😕 Vielen lieben Dank akari !



  • Hallo

    Pointer selber müßen nicht gelöscht werden. Nur die Instanzen, auf die Pointer zeigen.
    Allerdings ist einiges in der VCL auch selbst-löschend, dort werden viele Instanzen in Listen (Komponenten mit Zuwesiung des Owners, ListItems..) von dem Container-Objekt (Owner, ListView) automatisch gelöscht, wenn dieses gelöscht wird .

    bis bald
    akari



  • Sehr schön erklärt 😉 vielen Dank akari


Anmelden zum Antworten