Ist mir ein bisschen zu kompliziert das mit TObject
Das glaub ich dir, das täuscht letztendlich aber. Wenn man das aber paar mal gemacht, fragt man sich wieso man es früher immer anders gemacht hat. Kleines Beispiel:
Delphi-Quellcode:
type
TInfo = class //Beispiel-Klasse
DT: TDateTime;
end;
procedure ListBoxItemDelete(ListBox: TListBox; Index: Integer);
begin
if (Index < 0) or (Index > ListBox.Items.Count - 1) then Exit;
ListBox.Items.Objects[Index].Free; //Items mit Objekte löschen
ListBox.Items.Delete(Index);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Info: TInfo;
p: Integer;
begin
with ListBox1 do
begin
Info := TInfo.Create; //Beispiel-Objekt Erstellen
Info.DT := Now;
p := Items.AddObject('Datum und Zeit', Info); //Zuweisen
if p > -1 then
ShowMessage(Format('Aktuelle Zeit im Item %d als Objekt gespeichert.', [p]));
end;
end;
procedure TForm1.ListBox1Click(Sender: TObject);
var
DT: TDateTime;
Info: TInfo;
begin
with ListBox1 do
begin
if Count = 0 then Exit;
if ItemIndex = -1 then Exit;
Info := TInfo(Items.Objects[ItemIndex]); //Auslesen
DT := Info.DT;
ShowMessage('Im Objekt gespeicherte Zeit: ' + TimeToStr(DT));
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
var
i: Integer;
begin
//Objekte müssen freigegeben werden
for i := Items.Count - 1 downto 0 do
ListBoxItemDelete(ListBox1, i);
end;