전역적핫키를 사용하는데 ALT+1이라고 하면
같은폼의 버튼을 클릭하려고 합니다.
그런데 아무리 찾아봐도 버튼클릭 프로시저는 있어도 버튼을 눌러주는 것을 실행하게
해주는 것이 없네요.
버튼은 버튼대로 클릭하면 다른 동작을 하고 전역적 핫키를 누르면 그 버튼을 클릭하고
다른 동작도 해야 합니다.
뭐 버튼1번을 누르면 버튼2,버튼3을 누른 것과 같게 말입니다.
그런데 전역적 핫키에는 Onclick을 어떻게 사용하는지요.
즉
전역적핫키가 눌려지면
버튼1을 클릭하고
다른동작도하고
끝난다.
알려주시길바랍니다.
전역적 핫키에대한 질문은 찾아보라고만 하시는데
찾아봐도 이런건 없더군요.
그럼...
예전에 제가 검색해 보라고 했었는데 못 찾으신 것 같군요. 사실 똑같은 코드가
여러군데 있는데... 그냥 '핫키'라는 단어로 찾아보시면 몇가지 예제를 발견하셨을
텐데... 뭐 발견못하셨다니 제가 찾은 예제를 올립니다. 다른곳에서 버튼이
눌렸을 때의 행위를 하시려면 버튼의 OnClick이벤트를 호출하시면 됩니다.
즉, Button1의 OnClick이벤트가 Button1Click라면 Button1Click를 호출하시면되죠...
버튼1번을 누르면 버튼2, 버튼3을 누른 것과 같이 하실려면 버튼1번의 OnClick이벤트
에서 버튼2, 버튼3의 OnClick이벤트를 호출하시면 됩니다.
procedure TForm1.Button1Click(Sender: TObject);
begin
Button2Click(Sender);
Button3Click(Sender);
end;
아래는 구창민님이 쓰신 핫키등록 예제입니다.
^^ 항상 즐겁게 프로그래밍하세요...
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TForm1 = class(TForm)
Button1: TButton;
proceudre Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
FAtom: TAtom;
procedure WMHotKey(var M: TMessage); message WM_HOTKEY;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
proceudre TForm1.Button1Click(Sender: TObject);
begin
......
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
FAtom := GlobalAddAtom('HotKey Test');
RegisterHotKey(Handle, FAtom, MOD_ALT, VK_SPACE); // 핫키 = Alt-space
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
UnregisterHotKey(Handle, FAtom);
GlobalDeleteAtom(FAtom);
end;
procedure TForm1.WMHotKey(var M: TMessage);
begin
if M.WParam = FAtom then
begin
if M.LParamLo = MOD_ALT then
begin
if M.LParamHi = VK_SPACE then ShowMessage('HotKey!.');
// Button1의 OnClick이벤트를 호출한다.
Button1Click(Self);
.......
end;
end;
end;
end.
^^ 항상 즐겁게 프로그래밍하세요...
mad wrote:
> 전역적핫키를 사용하는데 ALT+1이라고 하면
> 같은폼의 버튼을 클릭하려고 합니다.
> 그런데 아무리 찾아봐도 버튼클릭 프로시저는 있어도 버튼을 눌러주는 것을 실행하게
> 해주는 것이 없네요.
> 버튼은 버튼대로 클릭하면 다른 동작을 하고 전역적 핫키를 누르면 그 버튼을 클릭하고
> 다른 동작도 해야 합니다.
> 뭐 버튼1번을 누르면 버튼2,버튼3을 누른 것과 같게 말입니다.
> 그런데 전역적 핫키에는 Onclick을 어떻게 사용하는지요.
> 즉
> 전역적핫키가 눌려지면
> 버튼1을 클릭하고
> 다른동작도하고
> 끝난다.
>
> 알려주시길바랍니다.
> 전역적 핫키에대한 질문은 찾아보라고만 하시는데
> 찾아봐도 이런건 없더군요.
> 그럼...