http://www.delphibbs.com/delphibbs/dispq.asp?lid=635375

解决方案 »

  1.   

    你可以通过注册热键的方式来获得。。
    procedure TMainMenuFrm.WMHotKey(var Message: TWMHOTKEY);
    begin
    //定义热键事件
      case Message.HotKey of////
    end;
    注册热键:
      RegisterHotKey( Handle, GlobalAddAtom('hotkey1'), 0, vk_F1);
      RegisterHotKey( Handle, GlobalAddAtom('hotkey2'), 0, vk_F2);
      

  2.   

    type
      TMainForm = class(TForm)
        ...
      private
        { Private declarations }
        //the application global hot key defination
        procedure WMHOTKEY(var Msg:TWMHOTKEY); message WM_HOTKEY;
      public
        { Public declarations }    //the global hot key indentifier
        HotKey_F01_ID:Integer;
       .....
    end;
    procedure TMainForm.FormCreate(Sender: TObject);
    begin
      //register the global hot key
      HotKey_F01_ID:=GlobalAddAtom('_Global_HotKey_F01_ID_')-$C000;
      RegisterHotKey(MainForm.Handle,HotKey_F01_ID,0,vk_F1);
    end;procedure TMainForm.FormDestroy(Sender: TObject);
    begin
      //unregister the global hot key
      UnRegisterHotKey(MainForm.Handle,HotKey_F01_ID);
      GlobalDeleteAtom(HotKey_F01_ID);
    end;//receive the global hot key message
    procedure TMainForm.WMHOTKEY(var Msg:TWMHOTKEY);
    begin
      if Msg.HotKey=HotKey_F01_ID then
        Begin
          Application.BringToFront;
          ShowMessage('F1 pressed!!!');
        end;
    end;
      

  3.   

    不好意思,是我没说清!问题是怎样的:1.我的DLL中FORM上有ActioList,其中Action有快捷键,但在主程序中调出来后,该快捷键不起作用,为什么啊?2.当把焦点移到主程序中时,焦点就无法回到DLL中的Form上。
      

  4.   

    你说的这个问题是存在的,可能是?Delphi在处理的时候,没有继续Dispatch快借键的消息导致子窗体不能接受快捷键,你看看,可不可以在Form的OnKeyDown/Up中处理键盘消息,然后进行处理。
      

  5.   

    我的程序框架是采用EXE加DLL的方式,DLL中封装的是MDICHILD1.为什么DLL中FORM上菜单的ShortCut不起作用?
    2.为什么焦点移到EXE上的主窗口后就无法回到DLL的FORM上?再问一次,希望有高手帮我解决问题!
      

  6.   

    我的程序框架是采用EXE加DLL的方式,DLL中封装的是MDICHILD1.为什么DLL中FORM上菜单的ShortCut不起作用?
    2.为什么焦点移到EXE上的主窗口后就无法回到DLL的FORM上?再问一次,希望有高手帮我解决问题!
      

  7.   

    我的程序框架是采用EXE加DLL的方式,DLL中封装的是MDICHILD1.为什么DLL中FORM上菜单的ShortCut不起作用?
    2.为什么焦点移到EXE上的主窗口后就无法回到DLL的FORM上?再问一次,希望有高手帮我解决问题!