Hai Opa Knack,
schaue Dir doch mal die Eigenschaft
.Data an. Damit kannst Du z.B. ein Objekt an ein Item koppeln.
Hier mal ein kleines Beispiel:
Delphi-Quellcode:
type
TEigenschaften = class (TObject)
public
Eigenschaft1 : String;
Eigenschaft2 : Integer;
Eigenschaft3 : String;
end;
// Neuen Eintrag in die ListView
// Edit1 = Titel
// Edit2 = Eigenschaft 1
// Edit3 = Eigenschaft 2
// Edit4 = Eigenschaft 3
procedure TForm1.Button1Click(Sender: TObject);
var
eigenschaften : TEigenschaften;
eintrag : TListItem;
begin
eintrag := ListView1.Items.Add;
eintrag.Caption := Edit1.Text;
eigenschaften := TEigenschaften.Create;
with eigenschaften do
begin
Eigenschaft1 := Edit2.Text;
Eigenschaft2 := StrToInt (Edit3.Text);
Eigenschaft3 := Edit4.Text;
end;
eintrag.Data := eigenschaften;
end;
// Die Eigenschaften wieder auslesen
procedure TForm1.ListView1Click(Sender: TObject);
var
eigenschaften : TEigenschaften;
begin
eigenschaften := ListView1.Items[ListView1.ItemIndex].Data;
Edit2.Text := eigenschaften.Eigenschaft1;
Edit3.Text := IntToStr (eigenschaften.Eigenschaft2);
Edit4.Text := eigenschaften.Eigenschaft3;
end;
// Wenn Eintrag gelöscht wird denn Speicher für die
// Eigenschaften freigeben
procedure TForm1.ListView1Deletion(Sender: TObject; Item: TListItem);
var
eigenschaften : TEigenschaften;
begin
eigenschaften := Item.Data;
eigenschaften.Free;
end;
// Und den Speicher wieder aufräumen
procedure TForm1.FormDestroy(Sender: TObject);
var
ndx : Integer;
eigenschaften : TEigenschaften;
begin
for ndx := 0 to Pred (ListView1.Items.Count) do
begin
eigenschaften := ListView1.Items[ndx].Data;
eigenschaften.Free;
end;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"