Q&A

  • 버튼의 이벤트를 키로 대신하고자 할때.
화면구성시 버튼을 클릭해서 어떠한 이벤트를 행하는 것을 어떠한 키를 누르면 할 수 있는 방법이 없을까요?? 버튼도 버튼대로 있고 버튼의 이벤트에 동일한 기능을 행하는 핫키를 부여하는 방법이 필요합니다...
보통 메뉴에 shortcut가 있어서 키를 지정하면 되는데 일반 버튼에는 그런 기능이 없네요... 어떻게 할 수 있는 방법이...^^
3  COMMENTS
  • Profile
    김신광 2006.12.15 21:09

    버튼 명뒤에 '입력[&I]'  이런식으로 붙이시면  shortcut이 됩니다~~~ 실행시는 Alt+ 키를 누르면 됩니다.
    요게 아닌 특정한키를  눌렀을때 버튼을 입력 받으실려면
    폼의  keypress 나 keydown이벤트에서 처리하셔도 됩니다..

    아래를 보시면 대충 아시겠지만 ...전 키다운에  Insert키와 delete키를 눌렀을때 버튼이벤트 처리를 하였습니다~~~ 원하시는 답이 될런지 몰겠네요
         if key = 45 Then begin
            Key := 0;
            btn_insertClick(Self);
            Exit;
         end;
         if key = 46 Then begin
            Key := 0;
            btn_deleteClick(Self);
            Exit;
         end;
  • Profile
    이승근 2006.12.15 22:18
    감사합니다...^^
    근데요 alt키 안누르고 그냥 해당 알파벳만 눌러도 되네요...
    그런데 펑션키를 사용할수는 없나요...
    아니면 alt+키나 ctrl+키 라도...
    그냥 일반 알파벳을 설정하면 그 화면에 검색칸등이 있을때 키값과 알파벳값이 중복될 수 있다는 우려가 생겨서 이왕이면 중복이 안되는 키조합이나 펑션키로 했으면 싶은데요...
  • Profile
    Marek 2006.12.16 01:30
    안녕하세요.
    아래와 같이 펑션키를 사용하는 경우 또는 alt키를 병합하여 사용하는 경우 두가지
    모두 가능하니 참고하십시요.

    Marek ...

    // 펑션키 사용
    procedure TForm.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
       if Key = VK_F5 then
       begin
           btnSendClick(Self);
       end;
    end;

    또는
    //Alt 사용
    procedure TForm.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin  
       if (Shift = [ssAlt])and(Key = VK_F11) then
       begin
           btnSendClick(Self);
       end;
    end;