Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Focus in DBlookuplistbox setzen

  Alt 5. Apr 2006, 18:35
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
  Mit Zitat antworten Zitat