TComboBox nur Zahlen
-
Der Code
if ((ElbowWidth->Text<'0' || ElbowWidth->Text>'9') && (ElbowWidth->Text != 8)) { ElbowWidth->Text=""; }
welcher ich hier im Forum gefunden habe funtioniert zwar, aber hald nur beschränkt fürs erste Zeichen.
SetWindowLong(pComboB->Handle, GWL_STYLE, GetWindowLong( pComboB->Handle, GWL_STYLE) | ES_NUMBER);
funzt nur bei TEdit Komponente.
Gibts dafür ne einfache Lösung oder mus ich den String bei jeder Eingabe auseinander nehmen?
-
Der Code aus der FAQ muss ins OnKeyPress-Ereignis der ComboBox.
Dann wird jeder eingegebene Buchstabe überprüft.
-
Das funzt bei mir nicht.
Aber das geht
for (int ni = 1; ni <= ElbowWidth->Text.Length(); ni++) { if ((ElbowWidth->Text[ni] < '0' || ElbowWidth->Text[ni] > '9') && (ElbowWidth->Text[ni] != 8)) { ElbowWidth->Text = ""; } }
-
PAB schrieb:
Der Code aus der FAQ muss ins OnKeyPress-Ereignis der ComboBox.
Äh, so steht's doch in der FAQ!?
Das Problem von Primordial ist , dass er nicht den eingegebenen Buchstaben (Key) prüft sondern den Edit-Text. Ganz abgesehen davon, dass er damit einen char mit einem String vergleicht.
-
@Jansen:
War schlecht formuliert. Ich meinte, er solle den Originalcode aus der FAQ verwenden anstelle seiner Version mit ElbowWidth->Text
-
Recht hasste, irgendwie hab ich das mit dem Key nicht kapiert. Waren wohl doch en bisschen viel Bier intus gestern Abend