![]() |
Genaue Taste bei einer Message ermitteln
Ich hab eine Procedure geschrieben und die beim Starten des Progs in "Application.OnMessage" eingetragen.
Jetzt überprüf ich ob eine Taste gedrückt wird:
Delphi-Quellcode:
Wie kann ich jetzt noch überprüfen welche Taste genau gedrückt worden ist.procedure AppMessage(var Msg: TMsg; var Handled: Boolean); begin if Msg = WM_KeyDown then begin //Hier soll die Taste abgefragt werden end; end; Ich will nämlich die Esc-Taste abfangen. |
Re: Genaue Taste bei einer Message ermitteln
Hallo,
wie du es so machst, weiß ich nicht, ich könnte nur eine Alternative Vorschlagen, nämlich das FormKeyDown Ereigniss
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin if key=VK_ESCAPE then close; end; |
Re: Genaue Taste bei einer Message ermitteln
|
Re: Genaue Taste bei einer Message ermitteln
Das kann so doch gar nicht gehen.
TMsg ist ein record, WM_KEYDOWN ist ein integraler Wert. Du musst machen:
Delphi-Quellcode:
Und die Taste steht in msg.wparam oder msg.lparam, wo genau weiß ich nicht, aber ich glaube in wparam.
if msg.message=WM_KEYDOWN then...
|
Re: Genaue Taste bei einer Message ermitteln
Hi,
stehen in wparam, musste mal ein eigenes KeyHandling wie folgt integrieren:
Delphi-Quellcode:
Cu, Frank
procedure TrwCustomForm.WMKeyPress(var Message: TMessage);
Var Key: Word; Keyboard: TKeyboardState; Shift: TShiftState; begin GetKeyboardState(Keyboard); Shift := KeyboardStateToShiftState(Keyboard); if (Message.WParam >= Low(Word)) and (Message.WParam <= High(Word)) then begin key := Message.WParam; // eigene Routine aufrufen // wichtig ist Result, damit Behandlung abgebrochen wird, wenn von KeyPressEx behandelt Message.Result := KeyPressEx(Key, Shift); end; end; |
Re: Genaue Taste bei einer Message ermitteln
So erstmal danke für eure Hilfe, aber auf jeden Fall geht Form1.OnKeyPressed nicht.
Denn wenn da ein Button den Fokus hat kommt da nix an. Den Rest schau ich mir morgen an. Und noch mal danke für die Antworten. :cheers: |
Re: Genaue Taste bei einer Message ermitteln
Mit TForm.KeyPreview=True dürfte das gehen.
|
Re: Genaue Taste bei einer Message ermitteln
Stimmt funktioniert alles.
Naja viele Wege führen nach Rom :-D . Danke für die vielen Tipps. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz