Einzelnen Beitrag anzeigen

THY4243

Registriert seit: 15. Dez 2012
Ort: München - Untermenzing
40 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: WM_KEYDOWN wird nicht aufgerufen

  Alt 18. Okt 2021, 22:16
In meinen Programmen geht das schon. Allerdings nutze ich nicht WM_KEYDOWN via Message.
Voraussetzung ist die Einstellung bei "KeyPreview".

Beispiel:
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
// ssShift   Die Taste Umschalt wird gedrückt gehalten.
// ssAlt   Die Taste Alt wird gedrückt gehalten.
// ssCtrl   Die Taste Strg wird gedrückt gehalten.
// ssLeft   Die linke Maustaste wird gedrückt gehalten.
// ssRight   Die rechte Maustaste wird gedrückt gehalten.
// ssMiddle   Die mittlere Maustaste wird gedrückt gehalten.
// ssDouble   Es wurde mit der Maus doppelgeklickt.
begin
  //if (key = VK_F1) or ((key = VK_F1) and (ssAlt IN Shift)) then {F1-taste - funktioniert nur, wenn Form1.KeyPreview:= true; }
  //ShowInfoDialog(Form1);
  if key = VK_ESCAPE then {ESC-taste - funktioniert nur, wenn Form1.KeyPreview:= true; }
  Close;
end;
Wobei "KeyPreview:= true;" in FormCreate gesetzt werden kann.

Geändert von THY4243 (18. Okt 2021 um 22:20 Uhr)
  Mit Zitat antworten Zitat