Hallo Steffen,
entweder ich verstehe dein Problem nicht richtig, oder du hast die falsche Komponente erwischt. Eine DBLookupListBox verwendest du z.B. dann, wenn du in einer Auftragsverwaltung die Zahlungsart festlegen willst. In einer Lookup-Tabelle MOP(ID, NAME) werden dazu die zulässigen Zahlungsarten (Visa, MasterCard, American Express, ...) mit ihren internen Schlüsseln (1, 2, 3, ...) hinterlegt. Der Benutzer wählt dann über die DBLookupListBox den Wert für den Fremdschlüssel MOP_ID der Auftrags-Tabelle ORD aus, indem er Visa selektiert - die Funktionalität der Komponente sorgt für die Eintragung des korrekten Fremdschlüssels (1) in das Tabellenfeld ORD.MOP_ID.
Natürlich kannst du den Fokus in der ListBox auf den nächsten Eintrag verschieben. Das geschieht durch das Eintragen des Schlüssels dieses Eintrages in das Feld ORD.MOP_ID - aber ob das wirklich das ist, was du möchtest?
Wenn du alle Werte eines bestimmten Tabellenfeldes in eine normale ListBox eintragen möchtest, dann brauchst du eigentlich gar keine visuelle Komponente, sondern kannst direkt auf der Tabelle operieren:
Delphi-Quellcode:
begin
ListBox.Items.Clear;
with Query do
begin
SQL.Text := '
SELECT feld FROM tabelle ORDER BY feld';
Open;
while not Eof
do
begin
ListBox.Items.Add(FieldByName('
FELD').AsString);
Next;
end;
Close;
end;
end;
Nachdenkliche Grüße vom marabu