procedure TForm1.WMHotKey(var M: TMessage);
begin
if M.LParamHi = VK_ESCAPE then Init(3);
if M.LParamHi = VK_F5 then Img_ViewClick(nil);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
if RegisterHotKey(Self.Handle, GlobalAddAtom('핫키ESCAPE'), 0, VK_ESCAPE) = False then
ShowMessage('핫키 ESC 실패');
if RegisterHotKey(Self.Handle, GlobalAddAtom('핫키F5'), 0, VK_F5) = False then
ShowMessage('핫키 F5 실패');
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
UnRegisterHotKey(Self.Handle, GlobalAddAtom('ESC'));
UnRegisterHotKey(Self.Handle, GlobalAddAtom('F5'));
end;
===========
위와 같은 내용을 자식폼 마다 활용할려고 하는데...
다른 폼을 실행하면 핫키의 등록 실페 메뉴가 나옵니다..어떻게 해야 하나요?
고수님들의 조언을 기다립니다...
말씀하신 부분중,
"다른 폼을 실행하면 핫키의 등록 실패 메뉴가 나옵니다" <- 이 부분에서
자식폼을 실행하실때 폼의 Create 이벤트에, Form1 의 Create 이벤트와 같은
RegisterHotKey 문장이 있는건 아닐까 의심해 되네요..
이미 선언되어진 핫키를 또 실행하려 해서가 아닌가 생각됩니다.
핫키는 한번만 선언해두면 UnRegisterHotkey 가 나올때까지 다시 다른폼에 등록할 필요없이
전역적으로 키가 사용됩니다.
그럼~ 즐거운 프로그래밍 하시길~