AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Combobox editieren verhindern

Ein Thema von R2009 · begonnen am 9. Nov 2009 · letzter Beitrag vom 9. Nov 2009
Antwort Antwort
R2009

Registriert seit: 9. Mär 2009
Ort: Heidelberg
440 Beiträge
 
Delphi 2007 Professional
 
#1

Combobox editieren verhindern

  Alt 9. Nov 2009, 14:48
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:
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;
Wollte ich eigentlich in onchange einbinden.
Was meint ihr dazu kann man das eleganter lösen?
Grüsse
rainer
Rainer Unger
Mein Profil:
Studium Allgemeine Elektrotechnik TH Darmstadt
Entwicklung von Tools für die Rundsteuer und Zählertechnik.
uP's Atmel Prozessoren (ATmega16,32,88...) in C und Assembler.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Combobox editieren verhindern

  Alt 9. Nov 2009, 14:51
Ä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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
R2009

Registriert seit: 9. Mär 2009
Ort: Heidelberg
440 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Combobox editieren verhindern

  Alt 9. Nov 2009, 14:54
Hi Luckie,
geil das ist es!
csDropDownList das ist die Lösung!



Danke
Grüsse
Rainer
Rainer Unger
Mein Profil:
Studium Allgemeine Elektrotechnik TH Darmstadt
Entwicklung von Tools für die Rundsteuer und Zählertechnik.
uP's Atmel Prozessoren (ATmega16,32,88...) in C und Assembler.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Combobox editieren verhindern

  Alt 9. Nov 2009, 15:06
Jepp, genau so heißt das Dingens, was ich meinte.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
R2009

Registriert seit: 9. Mär 2009
Ort: Heidelberg
440 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Combobox editieren verhindern

  Alt 9. Nov 2009, 15:09
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
Rainer Unger
Mein Profil:
Studium Allgemeine Elektrotechnik TH Darmstadt
Entwicklung von Tools für die Rundsteuer und Zählertechnik.
uP's Atmel Prozessoren (ATmega16,32,88...) in C und Assembler.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#6

Re: Combobox editieren verhindern

  Alt 9. Nov 2009, 15:12
Hier gilt ja nicht der Text, sondern die Liste ... also mußt du auch dem ItemIndex verwenden.

CB.ItemIndex := CB.Items.IndexOf(Text);
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#7

Re: Combobox editieren verhindern

  Alt 9. Nov 2009, 15:12
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 ComboBox.ItemIndex := Combobox.Items.IndexOf('bla');
  Mit Zitat antworten Zitat
R2009

Registriert seit: 9. Mär 2009
Ort: Heidelberg
440 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Combobox editieren verhindern

  Alt 9. Nov 2009, 15:20
Hi,

ist viel einfacher:

im onkeypress Event
Key:=#0;

Grüsse
Rainer
Rainer Unger
Mein Profil:
Studium Allgemeine Elektrotechnik TH Darmstadt
Entwicklung von Tools für die Rundsteuer und Zählertechnik.
uP's Atmel Prozessoren (ATmega16,32,88...) in C und Assembler.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#9

Re: Combobox editieren verhindern

  Alt 9. Nov 2009, 16:27
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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#10

Re: Combobox editieren verhindern

  Alt 9. Nov 2009, 16:53
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.
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz