Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Focus in DBlookuplistbox setzen (https://www.delphipraxis.net/66855-focus-dblookuplistbox-setzen.html)

WIng2005 5. Apr 2006 13:24

Datenbank: Firebird emb. • Version: 1.5 • Zugriff über: Zeos

Focus in DBlookuplistbox setzen
 
Hallo,

ich möchte in einer DBlookuplistbox das nächste Element (also nach dem aktuell markierten) anwählen.
Der Sinn soll darin bestehen, dass ich alle Elemente meiner DB (angezeigt in einer DBlookuplistbox)
in eine normale Listbox schreiben will. Leider finde ich keinen Weg den besagten Fokus zu verschieben.
Wenn also einer ne Idee hat, wäre ich sehr dankbar.

MFG
Steffen

marabu 5. Apr 2006 17:35

Re: Focus in DBlookuplistbox setzen
 
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

WIng2005 5. Apr 2006 22:01

Re: Focus in DBlookuplistbox setzen
 
Mein Problem war, dass ich Tabellendaten in eine Listbox schreiben wollte.
Diese Tabellendaten waren bereits in einer DBlookuplistbox dargestellt. Dein obiges Beispiel
hat genau das getan, jedoch ohne direkt auf die DBLookupLB zuzugreifen (was keinen Unterschied macht)...


Vielen Dank!!

MFG
Steffen


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:35 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz