Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   NotInList für DBLookupCombobox (https://www.delphipraxis.net/162582-notinlist-fuer-dblookupcombobox.html)

muli 30. Aug 2011 11:58

NotInList für DBLookupCombobox
 
Liebe Delphiprofis,

ich habe ein kleines Problem. Trotz stundenlangen googelns fehlt mir die
zündende Ide. Problem:

Ich habe in einem Formular eine DBLookupCombobox, die eine Liste mit
Namen aus einer Datenbank liest. Das funktioniert gut, auch die Rückgabe
einer entsprechenden ID funktioniert. Was ich nicht hinkriege ist das
Verhalten bei Eingaben, die nicht in der Liste stehen. Ich brauche eine
Art "NotInList"-Event.

Wenn ich eine verkürzte Buchstanbenfolge eingebe, springt die Combobox
auf den nächsten passenden Eintrag (z.B. wenn in der Liste Abe und
Abeling stehen, wird bei Eingabe von Abel auf Abeling gesprungen. Ich
möchte aber ein neues Fenster öffnen, in dem die Person Abel neu
angelegt werden kann).

Ein zweites Problem ist die Eingabe von Zeichenfolgen, die keine
Übereinstimmung liefern. In obigem Beispiel z.B. Abela. Dann kommt eine
Exception "Out of Bounds" beim Verlassen der Combobox. Wie (bzw. wo)
kann ich die Abfangen und ein NotInList-Event generieren?

Vielen Dank für Eure Hilfe
Tom

PS: benutze Lazarus

muli 31. Aug 2011 10:27

AW: NotInList für DBLookupCombobox
 
Offenbar hat keiner von Euch eine zündende Idee. :cry: Bis ich eine Lösung gefunden habe, werde ich verhindern, daß Worte eingegeben werden die nicht in der Liste stehen und einen Buttom zum Aufruf des Dialoges für die Neueingabe neben die Combobox bauen. Ist zawr nicht sehr komfortabel, erfüllt aber erst einmal seinen Zweck. Vielleicht hat ja noch jemand eine Idee. :?:

Bei Access und VBA gibt es so ein NotInList-Ereignis, was ich sehr nützlich finde.

Gruß Tom

jobo 31. Aug 2011 11:05

AW: NotInList für DBLookupCombobox
 
Wieso fängst Du die Out Of Bounds Exception nicht ab und fragst dann per MessageDlg, ob die Eingabe verworfen werden soll oder hinzugefügt?

muli 31. Aug 2011 11:21

AW: NotInList für DBLookupCombobox
 
Zitat:

Zitat von jobo (Beitrag 1120542)
Wieso fängst Du die Out Of Bounds Exception nicht ab und fragst dann per MessageDlg, ob die Eingabe verworfen werden soll oder hinzugefügt?

An welcher Stelle kann ich die Exception abfangen? Ich rufe ja keinen Code explizit auf, der die Exception auslöst (und den ich dann mit try kapseln könnte). Wahrscheinlich sehe ich den Wald vor Bäumen nicht.

Übrigens taucht das Problem auch auf, wenn ich einen gültigen Namen eingebe und das Eingabefeld verlasse (ohne vorher auf die Liste geklickt zu haben). Der Listeneintrag ist zwar markiert, der entsprechende Text steht in der Eingabebox, beim Verlassen kommt trotzdem ein "Out of bounds".

Gruß Tom


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:57 Uhr.

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