Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Горячие клавиши [Delphi, Windows]


DJ_UZer ©   (2008-03-22 18:15:00) 

Привет все.. Я пишу программу и мне нужно использовать горячии клавиши и сразу у меня возникло 2 вопроса:
1. Как сделать горячии клавиши, пробовал не получилось...
2. Как сделать, чтобы данные клавиши работали и тогда, когда программа свернута?
Всем заранее спасибо..


AHTOLLlKA   (2009-05-03 01:34:00) [1]

да.. и не забудь про UnRegisterHotKey

type

  TForm1 = class(TForm)

    procedure FormCreate(Sender: TObject);

    procedure FormDestroy(Sender: TObject);

  protected

    procedure hotykey(var msg:TMessage); message WM_HOTKEY;

  end;



var

  Form1: TForm1;

  id,id2:Integer;



implementation



{$R *.DFM}





procedure TForm1.hotykey(var msg:TMessage);

begin

  if (msg.LParamLo=MOD_CONTROL) and (msg.LParamHi=81) then

  begin

    ShowMessage('Ctrl + Q wurde gedrьckt !');

  end;



  if (msg.LParamLo=MOD_CONTROL) and (msg.LParamHi=82)

then

  begin

    ShowMessage('Ctrl + R w!

urde gedrьckt !');

  end;

end;





procedure TForm1.FormCreate(Sender: TObject);

begin

  id:=GlobalAddAtom('hotkey');

  RegisterHotKey(handle,id,mod_control,81);



  id2:=GlobalAddAtom('hotkey2');

  RegisterHotKey(handle,id2,mod_control,82);

end;



procedure TForm1.FormDestroy(Sender: TObject);

begin

  UnRegisterHotKey(handle,id);

  UnRegisterHotKey(handle,id2);

end;


  (2009-04-19 21:31:00) [2]

Удалено модератором


kichrot   (2008-03-25 13:35:00) [3]


> and (Length(ObjEventsArray)>0)

В предыдущем примере это не нужно.


kichrot   (2008-03-25 13:31:00) [4]

procedure TForm1.KOLForm1FormCreate(Sender: PObj);
begin
   //например комбинация клавиш Ctrl + Пробел
   RegisterHotkey( Form.Handle, 1001, MOD_Control, vk_Space);
end;

function TForm1.KOLForm1Message(var Msg: tagMSG; var Rslt: Integer): Boolean;
begin
   Result := FALSE;
   if (msg.message=WM_HOTKEY)
       and (msg.wParam=1001)
       and (Length(ObjEventsArray)>0) then
   begin
       //свой код
   end;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо