![]() |
Combobox editieren verhindern
Hi,
wir nutzen Comboboxen um bestimmte vorgegebene Eingaben realisieren zu können. Läuft auch alles, bis ein Kunde (die stören doch eh nur den internen Ablauf) in das Textfeld seinen eigenen Senf eingetragen hat. Meine Frage: Wie kann ich verhindern, dass im Textfeld "herumeditiert" wird. Im ersten Ansatz sieht das einfach aus... aber nach ein bisschen nachdenken.
Delphi-Quellcode:
Wollte ich eigentlich in onchange einbinden.
procedure check_combo(t:Tobject);
var n:integer;e:boolean; begin e:=false; For n:=1 to (t as tcombobox).items.count-1 do begin if (t as tcombobox).items.Strings[n]=(t as tcombobox).text then e:=true; end; if e=true then exit else (t as tcombobox).text:=''; end; Was meint ihr dazu kann man das eleganter lösen? Grüsse rainer |
Re: Combobox editieren verhindern
Ändere die Stil-Eigenschaft (glaube ich) im Objektinspektor in csDropDown. Wenn es das nicht ist, etwas mit rumspielen. Ich bin mir da nicht ganz sicher.
|
Re: Combobox editieren verhindern
Hi Luckie,
geil das ist es! csDropDownList das ist die Lösung! :wall: Danke Grüsse Rainer |
Re: Combobox editieren verhindern
Jepp, genau so heißt das Dingens, was ich meinte.
|
Re: Combobox editieren verhindern
Hi,
zu früh gefreut! Die Werte im Auswahlfeld (das in den der Kunde reieditiert hat) sind verschwunden. Hatte bisher immer meine Werte per combobox1.text:= zugewiesen. Das funktioniert nicht mehr. Textfeld bleibt leer. Grüsse Rainer |
Re: Combobox editieren verhindern
Hier gilt ja nicht der Text, sondern die Liste ... also mußt du auch dem ItemIndex verwenden.
Delphi-Quellcode:
CB.ItemIndex := CB.Items.IndexOf(Text);
|
Re: Combobox editieren verhindern
Also der Style sollte bewirken, dass man nichts mehr selber eingeben kann, sondern nur noch aus der Liste wählen kann.
Oder setzt du den Inhalt im Code über die .Text Property und es klappt nicht? In diesem Fall würde ich den ItemIndex oder so setzen. Zur Not eben
Delphi-Quellcode:
ComboBox.ItemIndex := Combobox.Items.IndexOf('bla');
|
Re: Combobox editieren verhindern
Hi,
ist viel einfacher: im onkeypress Event Key:=#0; Grüsse Rainer |
Re: Combobox editieren verhindern
Das ist keine Lösung.
Hier gibt es einen passenden Style, dann muß man nicht erst versuchen das Verhalten eines anderen Styles so hinzubiegen, daß er so ähnlich arbeitet. PS: Copy&Paste geht damit immernoch, also kann man immernoch was manuell eingeben. |
Re: Combobox editieren verhindern
Sehe ich ähnlich. :?
Dann muss man halt mal in den sauren Apfel beißen und ein paar Dinge umstellen. Aber immerhin verhält sich die GUI dann auch so, wie es der Windows-Nutzer erwartet. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:06 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