![]() |
Nachträglich ListItem verändern
Hallo,
ich habe mir ein ListView erstellt, das von verschiedenen Sachen Name und Status anzeigen soll. Wenn das Item dem ListView hinzugefügt wird, führe ich eine Prozedur aus, die dann Weiteres übernimment und den Status ändern soll. Ich habe jetzt probiert, der Prozedur das Handle des hinzugefügten Items zu übergeben. Wie komme ich da weiter, also mit was komme ich vom Handle auf das ListItem? Danke, ManuMF |
Re: Nachträglich ListItem verändern
Hi,
ich kann dir nicht ganz folgen. Wofür möchtest du das Handle ermitteln? Den Inhalt der Items kannst du so verändern:
Delphi-Quellcode:
ListView1.Items[MainIndex] := '...';
ListView1.Items[MainIndex].SubItems[SubIndex] := '...'; |
Re: Nachträglich ListItem verändern
Ich weiß ja selbst nicht, ob das Handle die perfekte Lösung ist (und ermittelt habe ich es ja schon). Mit dem Index kann ich aber definitiv nicht arbeiten, da er sich ja auch ändert.
|
Re: Nachträglich ListItem verändern
Zitat:
aber du kannst eventuell für eine ID die zu einem TListItem gehört den Data-Teil missbrauchen. Gruss Gremlin |
Re: Nachträglich ListItem verändern
Ich möchte folgendes:
1. Prozedur A - Item hinzufügen: Name "XYZ", Status "Beginne" 2. Prozedur B - Status verändert sich: "Beginne" -> "MacheWas") Ich kann nicht mit dem Index arbeiten, einfachster Problemfall: 1. Item hinzufügen "XYZ" 2. Item hinzufügen "XYZ2" 3. Status ändern - würde das falsche Item ändern. Deshalb brauche ich etwas, mit dem ich in der Prozedur B noch das Item erreiche. Ich dachte, das wäre über das Handle möglich. @Gremlin: Wie meinst du das mit der ID? |
Re: Nachträglich ListItem verändern
Zitat:
Identifiktionsmerkmal verwenden. Natürlich musst du wissen, welche ID dann der Eintrag für Status "Beginne" hat
Delphi-Quellcode:
function AddToListItem(const Name, Status:string):integer;
begin // Tag der Listview als Zähler missbrauchen <DeineListview>.Tag := <DeineListview>.Tag+1; with <DeineListview>.Items.Add do begin Data := Pointer(<DeineListview>.Tag); Caption := Name; SubItems.Add(Status); end; end; function ChangeListItem(const Name, Status:string; Nr:integer):Boolean; var i : integer; begin Result := False; for i := 0 to Pred(<DeineListview>.Items.Count) do begin if (integer(<DeineListview>.Items[i].Data)=Nr) then begin Result := True; <DeineListview>.Items[i].Caption := Name; <DeineListview>.Items[i].Status := Status; end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz