Warum zerlegst du es erst wenn das angeklickt wird, wieso hängst du nicht gleich einen Datensatz an das Item und liest dann bequem die Infos aus dem Datensatz?
Delphi-Quellcode:
Type
TDatensatz = class
ID: String; //oder Integer
HEADLINE: String;
TEXT1: String;
TEXT2: String;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
s: String;
Datensatz: TDatensatz;
begin
s := '12345,[WASSER],Wasser ist, wie es ist=Muss geschützt werden, oder?';
Datensatz := TDatensatz.Create;
Datensatz.ID := '12345';
Datensatz.HEADLINE := 'WASSER';
Datensatz.TEXT1 := 'Wasser ist, wie es ist';
Datensatz.TEXT2 := 'Muss geschützt werden, oder?';
with ListBox2 do Items.AddObject(s, Datensatz);
end;
procedure TForm1.ListBox2Click(Sender: TObject);
var
s: String;
Datensatz: TDatensatz;
begin
with ListBox2 do if ItemIndex < 0 then Exit;
with ListBox2 do s := Items[ItemIndex];
with ListBox2 do Datensatz := TDatensatz(Items.Objects[ItemIndex]);
ShowMessage(
'Item-String: ' + s + #13#10 +
'ID: ' + Datensatz.ID + #13#10 +
'HEADLINE: ' + Datensatz.HEADLINE + #13#10 +
'TEXT1: ' + Datensatz.TEXT1 + #13#10 +
'TEXT2: ' + Datensatz.TEXT2
);
end;
Evtl. mußt du vorher noch
OwnsObjects auf
True setzten. Bei Delphi 7 geht das nicht, bei deiner Version sollten die Eigenschaft vorhanden sein. Wenn OwnsObjects auf True ist, mußt du die Objekte beim Löschen der Items nicht vorher freigeben.