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 😉


Anmelden zum Antworten