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

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

HotKey [Delphi, Windows]


Ripper ©   (2005-04-01 22:53:00) 

Доброго времени суток, уважаемые мастера!
вот код Unit'a с использованием VCL: при нажатии определенной клавиши происходит действие

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs;

type
 TForm1 = class(TForm)
   procedure FormCreate(Sender: TObject);
   procedure FormDestroy(Sender: TObject);
 private
procedure WMHotKey(var Msg: TWMHotKey); message WM_HOTKEY;

   { Private declarations }
 public
   { Public declarations }
 end;
const
 MyHotKey = ord('1'); //клавиша

var
 Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.WMHotKey(var Msg: TWMHotKey);
begin
 MessageBeep(0);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
RegisterHotKey(Form1.Handle, MyHotKey, 0, MyHotKey);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
UnRegisterHotKey(Form1.Handle, MyHotKey);
end;

end.

Как изменить код чтобы работал в MCK проекте?


ECM   (2005-04-02 11:43:00) [1]

А вообще-то, надо читать FAQ - там это есть
http://kolnmck.ru/faq.htm


ECM   (2005-04-02 11:27:00) [2]

1. (Un)RegisterHotKey - будут работать и в КОЛ (Form.Handle,...)
там же...
2. Остается поймать WM_HOTKEY:

function TMainForm.KOLForm1Message(var Msg: tagMSG;
 var Rslt: Integer): Boolean;
begin
 Result := FALSE;
 Case Msg.message of
   WM_HOTKEY: begin
     MessageBeep(MB_ICONASTERISK);
     Result := TRUE;
   end;
...
end;


Наверх

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