Da gibt es zum Beispiel ein ClientDataSet, das die Daten dür dich halten kann.
Alternativ deklarierst du dir einen Record-Typ mit den gewünschten Feldern und erzeugst dann eine TList oder ein TStrings mit den ganzen Daten.
Beispiel:
Delphi-Quellcode:
TPerson = record
Name,
Vorname : String;
Nummer : Integer; //oder auch String;
end;
PPerson = ^TPerson;
...
//Dann gehst du durch deine Results des Querys
var
Pers : PPerson;
while not Qry1.eof do
begin
New(Pers);
Pers.Name=Qry1.FieldByName...
...
List.AddObject(Pers.Name+','+Pers.Vorname,Pers);
Qry1.Next;
end;
..
//Und später nicht vergessen, den Speicher freizugeben
for idx:=0 to List.Count-1 do
Dispose(PPerson(List.Objects[idx]));
Die Sache mit einer StringList zu machen, hat den Vorteil, das du relativ schnell und einfach eine List mit den Namen anzeigen kannst.
Bitte nicht meckern, wenn der Code nicht 100% echt ist, aber im Groben sollte er gehen.