STR+V im Edit1 Feld funktioniert nicht?



  • Nachdem Ich die Edit1KeyPress Funktion auf nur Nummerneingabe filter, funktioniert Einfügen nicht mehr. Kann mir einer dabei helfen? Hab über die Forum suche nichts gefunden dazu.

    void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
    {
     if(Key!=13)
     {
      if((Key<'0' || Key>'9') && Key!=8)
       Key=0;
     }
    }
    


  • Hallo

    Du müßtest jetzt auch die ganzen Steuertasten (Einfügen, Entfernen, Tab...) noch bearbeiten. Dazu gibs die Virtual Key Codes in der MSDN.
    Allerdings ist es wesentlich komfortabler die Zeichenauswahl ganz der WinAPI zu überlassen, siehe zum Beispiel hier.

    /Edit : Link korrigiert.

    bis bald
    akari



  • das wird daran liegen, das auch strg+v ein keypressed auslöst und durch deine funktion gefiltert wird!



  • akari schrieb:

    Hallo

    Du müßtest jetzt auch die ganzen Steuertasten (Einfügen, Entfernen, Tab...) noch bearbeiten. Dazu gibs die Virtual Key Codes in der MSDN.
    Allerdings ist es wesentlich komfortabler die Zeichenauswahl ganz der WinAPI zu überlassen, siehe zum Beispiel hier.

    /Edit : Link korrigiert.

    bis bald
    akari

    // Zwischenablagefunktionen über die Tastatur erlauben:
      if(((GetKeyState(VK_SHIFT) & 0x8000) && (GetKeyState(VK_INSERT) & 0x8000))
        || (GetKeyState(VK_CONTROL) & 0x8000))
        return;
    

    das war es was ich gesucht hatte, dank dir 👍 .



  • Jetzt musste aber aufpassen, den wenn einer einen Text in der Zwischenablage hat
    wird der rein kopiert und dein gewünschter effekt, das nur Zahlen drinnen stehen sollen ist nicht mehr gegeben.



  • ich hab schon verzweifelt gesucht, aber ich könnt schwören das es irgendwo ne filterfunktion gibt in der komponente .... oder kann das sein das ich da was mit java vertausche??



  • schau dir mal den link den akari gepostet hat an



  • mh naja ok hat er gut gelöst ^^ man muss halt auch mal n stück weiter als nur bis zu hälfte scrolln :p


Anmelden zum Antworten