Ich hoffe ich habe mich annährend verständlich ausgedrückt, wie ich mir das vorstelle ...
Um Bummis Vorschlag wirst du nicht herumkommen, denn du kannst im Item-String nur eine begrenzte Information unterbringen. Ich weiß nicht wie gut du dich mit dem anhängen von Objekten an Items auskennst, wobei das eigentlich relativ simpel ist.
Ich habe zufällig an einer anderen Stelle mal ein Beispiel gepostet. Das sieht in etwa so aus:
Delphi-Quellcode:
type
TInfo = class
DT: TDateTime;
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 (' + DateTimeToStr(Info.DT) + ')', 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;
Info: TInfo;
begin
with ListBox1 do //Objekte müssen separat freigegeben werden
for i := 0 to Items.Count - 1 do
begin
Info := TInfo(Items.Objects[i]); //Freigeben
Info.Free;
end;
end;
Solltest du ein Profi sein, übersehe das Beispiel.
Ansonsten erkläre ich das Beispiel kurz: ganz oben wird eine einfache Klasse erstellt die wie ein Record aufgebaut ist. Bei Zuweisung Objekt erstellen und zuweisen, dann nach belieben damit arbeiten und beim Beenden des Programms (oder leeren der Liste) auch immer das Objekt frei geben.