Taste BACKSPACE läßt sich nicht abfangen!



  • Hallo,
    in meinem Memo möchte ich, dass beim Drücken der Taste "BS" kein Löschen im MemoText erfolgt. Mit der Zuweisung Key = 0 geht das für die Taste "Entf". Bei der Taste "BS" hingegen wird die Zuweisung ignoriert. Der Text wird trotz der NULL-Zuweisung an die Taste am Cursor gelöscht.

    void __fastcall TForm1::Memo1KeyDown(TObject *Sender, WORD &Key, TShiftState Shift){
      switch (Key) {
      case VK_BACK:   Key = NULL; break; //Text wird trotzdem gelöscht
      case VK_DELETE: Key = NULL; break; //das geht, es wird nichts gelöscht 
      ... 
      default :;
      };
    };
    

    Woran liegt das? 😕



  • versuchs mal bei OnKeyPress. 🙂



  • Danke @OldMan00, habe Deinen Hinweis ausprobiert u. komme damit weiter:

    void __fastcall TForm1::Memo1KeyDown(TObject *Sender, WORD &Key, TShiftState Shift){
      switch (Key) {
      case VK_BACK:    Key = NULL; break; //zeigt Reaktion, nimmt aber Zeichen nicht an
      case VK_DELETE:  Key = NULL; break; //wie gewünscht, nimmt NULL an
      default :;
      };
    };
    
    void __fastcall TForm1::Memo1KeyPress(TObject *Sender, wchar_t &Key) {
      switch (Key) {
      case VK_BACK:  Key = NULL; break; //hier funktioniert es, wie gewünscht
      default :;
      };
    }
    

    Codegear hat in der Hilfe zwar einen Hinweis, dass die beiden Events unterschiedlich zu verwenden sind ("abbildbare Zeichen, nichtabbildbare ~" oder ähnlich). Aber ein bißchen ausführlicher hätte sicher nicht geschadet. D.h. bei einer nächsten ähnlichen Aktion wieder erst ausprobieren, ausprobieren, na Danke. 👎


Anmelden zum Antworten