Nur bestimmte Zeichen in TEdit zulassen.



  • Hi.
    Ich will in einem Feld nur bestimmte Zeichen zulassen.
    Also z.B. um eine Postleitzahl einzugeben nur Ziffern zu erlauben.
    Dazu hab ich mir jetzt eine Funktion geschrieben:

    AnsiString char_auswahl(AnsiString eingabe, int& cursor_pos, AnsiString erlaubte_zeichen)
    {
    for(int i=1; i<=eingabe.Length(); i++)
    {
     bool erlaubte_zeichen_test=false;
     for(int j=1; j<=erlaubte_zeichen.Length() && erlaubte_zeichen_test!=true; j++)
     {
      if(eingabe[i]==erlaubte_zeichen[j])
      {erlaubte_zeichen_test=true;}
     }
     if(!erlaubte_zeichen_test)
     {
      eingabe.Delete(i,1);
      cursor_pos--;
     }
    }
     return eingabe;
    }
    

    Mein Problem ist das der Aufruf so aussehen muss:

    int sel=postleitzahl_Feld->SelStart;
    postleitzahl_Feld->Text=char_auswahl(postleitzahl_Feld->Text, sel, "1234567890");
    postleitzahl_Feld->SelStart=sel;
    

    Ich hätte gerne einen einfacheren Aufruf weil ich die Funktion für ein Schulprojekt in Gruppenarbeit schreibe und meine Teammitglieder noch weniger Ahnung von C++ haben als ich.
    Also am liebsten hätte ich einfach ne void-Funktion.

    Hat vielleicht einer eine Idee wie man sowas realisieren kann?

    Schon mal vielen Dank für eure Hilfe
    Andy



  • hallöchen,

    warum eine funktion schreiben wenn das gut so nahe ist 😉

    nimm ein maskedit und du kannst die maske so einstellen wie du sie brauchst 😉

    gruß
    boris



  • bzw. dir ne eigene komponente ableiten und den style ES_NUMBER setzen, wenn nur zahlen eingegeben werden dürfen.



  • Hallo,

    auf folgender Seite findest du quasi ein ganzes Tutorial nur für diese Fälle

    http://www.bytesandmore.de/rad/index.htm?http://www.bytesandmore.de/rad/cpp/snipp/sc02025.php

    Ich denke damit wirst du sicherlich klar kommen 🙂


Anmelden zum Antworten