Zitat von
ManuMF:
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?
hmm du kannst doch einfach die ID (den Data-Teil des TListItem) als
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;