
04.01.2012, 10:54
|
 |
Let Me Show You
|
|
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
|
|
сам компонент:
Код:
unit HotKey;
interface
uses
Windows, Messages, Classes;
type
THotKey = class(TComponent)
private
FOnHotKey: TNotifyEvent;
FWnd: HWND;
procedure WndMethod(var Message: TMessage);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property OnHotKey: TNotifyEvent read FOnHotKey write FOnHotKey;
end;
implementation
{ THotKey }
constructor THotKey.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FWnd:=AllocateHWnd(WndMethod);
RegisterHotKey(FWnd, 1, MOD_CONTROL, Ord('G'));
end;
destructor THotKey.Destroy;
begin
UnregisterHotKey(FWnd, 1);
DeallocateHWnd(FWnd);
inherited Destroy;
end;
procedure THotKey.WndMethod(var Message: TMessage);
begin
if Message.Msg=WM_HOTKEY then
begin
if Assigned(FOnHotKey) then FOnHotKey(Self);
end else
Message.Result:=DefWindowProc(FWnd, Message.Msg,
Message.WParam, Message.LParam);
end;
end.
использование:
Код:
uses
HotKey,
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure HotKeyClick(Sender: TObject);
procedure TForm1.FormCreate(Sender: TObject);
begin
with THotKey.Create(Self) do
OnHotKey:=HotKeyClick;
end;
procedure TForm1.HotKeyClick(Sender: TObject);
begin
ShowMessage('HotKeyClick');
end;
__________________
Пишу программы за еду.
__________________
|