Показать сообщение отдельно
  #10  
Старый 14.03.2011, 20:15
Аватар для AND_REY
AND_REY AND_REY вне форума
Активный
 
Регистрация: 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;
Ответить с цитированием