![]() |
Datenbank: MSSQL • Version: 2016 • Zugriff über: ADO
TDBComboBox in Delphi-Tokyo: anderes Verhalten
VCL-Anwendung mit MSSQL und ADO-Komponenten:
Bis und mit Delphi Berlin Update 2 kann man in einer TDBComboBox einen Text eingeben, bzw. damit filtern, auch wenn das zugeordnete Datenfeld ein Integer-Feld ist, d.h. die TDBComboBox verhält sich diesbezüglich wie eine gewöhnliche TComboBox. In Tokyo ist in diesem Fall nur noch die Eingabe von Zahlen möglich. Lässt sich diese "Sperre" mit einer simplen Einstellung aufheben, oder muss ich meine diversen TDBComboBoxen alle umprogrammieren? Es ist mir klar, dass der simple Weg über eine TDBLookupComboBox führen könnte, aber das war mir bei diesem Programm damals zu wenig performant. Besten Dank für jeden Hinweis. |
AW: TDBComboBox in Delphi-Tokyo: anderes Verhalten
Ursache ist wohl, daß das AutoComplete früher vor der Überprüfung auf gültige Zeichen gemacht wurde, nun aber erst hinterher. Allerdings ist aus dem ungültigen Zeichen dann schon ein #0 geworden. Mit einer simplen Einstellung wirst du das wohl nicht hinbekommen.
Rein formal ist das jetzige Verhalten schon richtig, da du in das Feld eben keine ungültigen Zeichen eingeben sollst. |
AW: TDBComboBox in Delphi-Tokyo: anderes Verhalten
Tjo, du konntest reintippen, aber es hat effektiv nix gebracht, weil du beim Eintragen eines Strings in ein Integer-Feld eine hübsche Exception bekommen hast.
|
AW: TDBComboBox in Delphi-Tokyo: anderes Verhalten
Besten Dank für Eure Hilfe.
Tatsächlich müsste ich in Vcl.DBCtrls nur 2 Zeilen auskommentieren (oder den ganzen if... Block), das funktioniert dann wie früher: if (Key >= #32) and (FDataLink.Field <> nil) and not FDataLink.Field.IsValidChar(Key) then begin //MessageBeep(0); //Key := #0; end; Die Transformation des Fremdschlüssels von "Name" zu "Index" uu. mache ich ohnehin in den beiden Methoden TField.OnGetText und OnSetText. Damit bilde ich im Prinzip eine dbLockUpComboBox nach. Aber da pflege ich dieses Programm wohl sinnvoller mit der Berlin-Version weiter, solange es noch benötigt wird. |
AW: TDBComboBox in Delphi-Tokyo: anderes Verhalten
Oder mal richtig auf die LookupComboBox umsteigen, die ja eigentlich schon immer die passendere Lösung war.
Delphi war hier schon immer genauso schlampig, wie Microsoft, solche was Prüfungen betrifft. (NumbersOnly :lol:) Natürlich kannst du die Eingabe auch vorher abfangen und dann das Zeichen via PASTE (Copy&Paste) ins Edit einfügen oder es über SelText versuchen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:58 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-2025 by Thomas Breitkreuz