Конференция "KOL" » Горячие клавиши [Delphi, Windows]
 
  • DJ_UZer © (22.03.08 18:15) [0]
    Привет все.. Я пишу программу и мне нужно использовать горячии клавиши и сразу у меня возникло 2 вопроса:
    1. Как сделать горячии клавиши, пробовал не получилось...
    2. Как сделать, чтобы данные клавиши работали и тогда, когда программа свернута?
    Всем заранее спасибо..
  • kichrot (25.03.08 13:31) [1]
    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;
  • kichrot (25.03.08 13:35) [2]

    > and (Length(ObjEventsArray)>0)

    В предыдущем примере это не нужно.
  • имя (19.04.09 21:31) [3]
    Удалено модератором
  • AHTOLLlKA (03.05.09 01:34) [4]
    да.. и не забудь про 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;

 
Конференция "KOL" » Горячие клавиши [Delphi, Windows]
Есть новые Нет новых   [134431   +12][b:0][p:0.001]