
14.03.2011, 20:15
|
 |
Активный
|
|
Регистрация: 31.03.2009
Адрес: Украина, г.Днепропетровск
Сообщения: 324
Версия Delphi: Delphi7
Репутация: 3877
|
|
Так где хочешь отловит нажатие клавиш:
Код:
private
procedure WMHotKey(var Message: TMessage); message WM_HOTKEY;
Var
T: Array [0..1] of TPoint; // К-во Imageй.
X,Y,N: Integer;
ID1, ID2, ID3, ID4: Integer;
procedure TForm1.FormActivate(Sender: TObject);
begin
ID1:= GlobalAddAtom('Key_1');
ID2:= GlobalAddAtom('Key_2');
ID3:= GlobalAddAtom('Key_3');
ID4:= GlobalAddAtom('Key_4');
RegisterHotKey(Form1.Handle, ID1, MOD_SHIFT, VK_LEFT);
RegisterHotKey(Form1.Handle, ID2, MOD_SHIFT, VK_RIGHT);
RegisterHotKey(Form1.Handle, ID3, MOD_SHIFT, VK_UP);
RegisterHotKey(Form1.Handle, ID4, MOD_SHIFT, VK_DOWN);
end;
procedure TForm1.Image1Click(Sender: TObject);
begin
N:= 0;
end;
procedure TForm1.Image2Click(Sender: TObject);
begin
N:= 1;
end;
//И т.д.
procedure TForm1.WMHotKey(var Message: TMessage);
begin
if LoWORD(Message.lParam) <> MOD_SHIFT Then Exit;
Case HiWORD(Message.lParam) of
VK_LEFT: Dec(T[N].X, 5);
VK_RIGHT: Inc(T[N].X, 5);
VK_UP: Dec(T[N].Y, 5);
VK_DOWN: Inc(T[N].Y, 5);
end;
(Form1.Components[N] As TImage).Left:= T[N].X;
(Form1.Components[N] As TImage).Top:= T[N].Y;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
UnregisterHotKey(Form1.Handle, ID1);
UnregisterHotKey(Form1.Handle, ID2);
UnregisterHotKey(Form1.Handle, ID3);
UnregisterHotKey(Form1.Handle, ID4);
GlobalDeleteAtom(ID1);
GlobalDeleteAtom(ID2);
GlobalDeleteAtom(ID3);
GlobalDeleteAtom(ID4);
end;
__________________
If end Then begin;
|