![]() |
@ bzw. Alt GR + Q abfangen
Hallo,
ich versuche die @-Taste abzufangen, aber irgendwie weill es nicht. Der Compiler meldet zwar keinen Fehler aber die Tastenkombination wird nicht abgefangen:
Delphi-Quellcode:
Kann es sein das die Konstatnte "VK_RMenu = $12;" nicht stimmt?
{ Private-Deklarationen }
id: Integer; procedure WMHotKey(var Msg: TWMHotKey); message WM_HOTKEY; procedure TForm1.WMHotKey(var Msg: TWMHotKey); begin if Msg.HotKey = id then ShowMessage('@ gedrückt.'); end; procedure TForm1.FormCreate(Sender: TObject); const VK_RMenu = $12; VK_Q = $51; begin id := GlobalAddAtom('Hotkey1'); RegisterHotKey(Handle, id, VK_Q, VK_RMenu); end; procedure TForm1.FormDestroy(Sender: TObject); begin UnRegisterHotKey(Handle, id); GlobalDeleteAtom(id); end; Grüsse Tim[delphi] |
Re: @ bzw. Alt GR + Q abfangen
Versuch's damit:
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private { Private-Deklarationen } FHotKeyID: TAtom; procedure WMHotKey(var Msg: TWMHotKey); message WM_HOTKEY; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); const MOD_ALTGR = MOD_ALT or MOD_CONTROL; // [Alt Gr] ist intern [Alt+Strg] begin FHotKeyID := GlobalAddAtom('MyUniqueHotKeyID'); if 0 = FHotKeyID then ShowMessage('GlobalAddAtom: ' + SysErrorMessage(GetLastError())) else if not RegisterHotKey(Handle, FHotKeyID, MOD_ALTGR, Ord('Q')) then ShowMessage('RegisterHotKey: ' + SysErrorMessage(GetLastError())); end; procedure TForm1.WMHotKey(var Msg: TWMHotKey); begin if Msg.HotKey = FHotKeyID then ShowMessage('@ gedrückt.'); end; procedure TForm1.FormDestroy(Sender: TObject); begin if FHotKeyID <> 0 then begin UnregisterHotKey(Handle, FHotKeyID); GlobalDeleteAtom(FHotKeyID); end; end; end. |
Re: @ bzw. Alt GR + Q abfangen
Hallo,
jetzt funktioniert es:
Delphi-Quellcode:
hat schon gerreicht.
const
MOD_ALTGR = MOD_ALT or MOD_CONTROL; Vielen Dank :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:06 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-2025 by Thomas Breitkreuz