Конференция "KOL" » горячие клавиши в KOL [Delphi, Windows]
 
  • tippa (10.12.09 20:25) [0]
    Надо перенести проект с VCL на KOL.

    type
     ..............................
     private
     procedure WMHotkey( var msg: TWMHotkey ); message WM_HOTKEY;
     ..............................
     end;
    ..................................
    implementation
    {$R *.dfm}

    procedure TForm1.FormCreate(Sender: TObject);
    begin
    RegisterHotkey(Handle, 1, MOD_ALT or MOD_SHIFT, VK_F4);
    RegisterHotkey(Handle, 2, MOD_ALT or MOD_SHIFT, VK_F5);
    end;

    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
    UnRegisterHotkey(Handle, 1);
    UnRegisterHotkey(Handle, 2);
    end;

    procedure TForm1.WMHotkey( var msg: TWMHotkey );
    begin
     if msg.hotkey = 1 then form1.Visible := false;
     if msg.hotkey = 2 then form1.Visible := true;
    end;

    Просто голая форма, которая исчезает и появляется по нажатию горячих клавиш. При переносе возникли трудности, уже при определении процедуры WMHotkey в секции private выдаёт ошибку.
    Пробовал уже по всякому, прошу помочь.
  • Dufa © (10.12.09 22:30) [1]
    регать\анрегать так же, а обработчик весить на OnMessage:

    function TForm1.KOLFormMessage(var Msg: tagMSG; var Rslt: Integer): Boolean;
    begin
     case Msg.message of
       WM_HOTKEY:
       begin
         case Msg.wParam of
           1:
             ///
           2:
             ///
         end;
       end;
     end;
     Result := False;
    end;

  • tippa (11.12.09 13:54) [2]
    спасибо, всё получилось:

    function TForm1.KOLForm1Message(var Msg: tagMSG;
     var Rslt: Integer): Boolean;
    begin
    case Msg.message of
      WM_HOTKEY:
      begin
        case Msg.wParam of
          1:form1.Form.Visible:=false;
          2:form1.Form.Visible:=true;
        end;
      end;
    end;
    Result := False;
    end;

    procedure TForm1.KOLForm1FormCreate(Sender: PObj);
    begin
    RegisterHotkey(form.Handle, 1, MOD_ALT or MOD_SHIFT, VK_F4);
    RegisterHotkey(form.Handle, 2, MOD_ALT or MOD_SHIFT, VK_F5);
    end;

    procedure TForm1.KOLForm1Close(Sender: PObj; var Accept: Boolean);
    begin
    UnRegisterHotkey(form.Handle, 1);
    UnRegisterHotkey(form.Handle, 2);
    end;

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