![]() |
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 |
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 |
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?
|
AW: NotInList für DBLookupCombobox
Zitat:
Ü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