![]() |
ComboBox Eingabe nur valider Zeichen
Hi,
stehe gerade ein wenig auf dem Schlauch. Mit der Einstellung Style= csDropDown und AutoComplete=True erreiche ich fast das was ich will. Nur: Kann man auch Eingaben machen, die nicht in der Liste vorhanden sind. Wie kann ich verhindern, dass Zeichen eingegeben werden die nicht in den Items vorhanden ist. Danke schon mal... |
AW: ComboBox Eingabe nur valider Zeichen
Selbst im
Delphi-Quellcode:
prüfen, ob der eingegebene String in der Liste ist.
OnKeyPress
Delphi-Quellcode:
if (sender as TComboBox).Items.IndexOf((Sender as TCombobox).text)+Key=-1 then
begin Key:=0; end; |
AW: ComboBox Eingabe nur valider Zeichen
Habe nun eine Lösung gefunden....
performantere Vorschläge werden gerne entgegengenommen!
Delphi-Quellcode:
procedure TForm1.CheckBoxKeyPress(Sender: TObject; var Key: Char);
var idx : integer; actPos : integer; ItemText : String; InputText : String; begin if Ord(Key)>31 then begin actPos:= (Sender as TCombobox).SelStart + 1; if actPos>0 then begin InputText:=Copy((Sender as TCombobox).Text,1,actPos-1) + Key ; for idx:=0 to (Sender as TCombobox).Items.Count-1 do begin ItemText:=copy((Sender as TCombobox).Items.Strings[idx],1,actPos); if CompareText(ItemText,InputText)=0 then begin Exit; end; end; Key:=#0; end; end; end; danke an M_CLOSE, das war leider nicht die Lösung, da hier auch alle Steuerzeichen etc. blockiert werden und IndexOf den gesamten String vergleicht! Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:39 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