Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Ein paar Fragen zu TListView

  Alt 11. Apr 2005, 16:56
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"
  Mit Zitat antworten Zitat