Der
richtige Weg geht eigentlich etwas anders.
Aus der
Query erstellt man sich ein DatenObject. Dieses DatenObject ab in eine ObjectList. Von der ObjectList füllt man dann die ListBox. Den anzuzeigenden Text nimmt man sich aus der (überschriebenen) Methode
TObject.ToString
Delphi-Quellcode:
procedure FillStrings( AStrings : TStrings; ADataList : TObjectList );
var
LIdx : Integer;
begin
AStrings.BeginUpdate;
try
AStrings.Clear;
for LIdx := 0 to ADataList.Count - 1 do
begin
AStrings.AddObject( ADataList[LIdx].ToString, ADataList[LIdx] );
end;
finally
AStrings.EndUpdate;
end;
end;
Über das ausgewählte Item von so einem Listen-Control bekomme ich nun die Referenz, den Referenz-Typ und damit alle anderen zugehörigen Informationen.
Dadurch wird es egal, was für Objekte ich mit dem Listen-Control verknüpfen möchte - eben auch gemischt wie z.B. Personen, Firmen. Über den Referenz-Typ bekomme ich das heraus und kann damit verbundene Aktionen einleiten.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)