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.