-
Надо перенести проект с 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 выдаёт ошибку. Пробовал уже по всякому, прошу помочь.
-
регать\анрегать так же, а обработчик весить на 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;
-
спасибо, всё получилось: 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;
|