procedure TFrm_Main.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
      if ((key = Ord('J'))) and (shift = [ssAlt, ssCtrl]) then
        OpenForm(TFrm_ErrLog,Frm_ErrLog,Self);
end;
procedure TFrm_Main.FormCreate(Sender: TObject);
begin
      KeyPreview := True;
      RemoveMenu(GetSystemMenu(Handle,   False),   SC_CLOSE,   MF_BYCOMMAND); //去掉Menu【X】按钮
end;
我在FormKeyDown设置断点,程序就没有执行跳到里边去。TFrm_Main 是 fsMDIForm

解决方案 »

  1.   

    你这是要同时按下Alt+Ctrl+j才行
      

  2.   


    是的,我以前写过的,今天写就不管用了,不知道为什么?
    procedure TFrm_Main.FormCreate(Sender: TObject);
    begin
          KeyPreview := True;
          RemoveMenu(GetSystemMenu(Handle,   False),   SC_CLOSE,   MF_BYCOMMAND); //去掉Menu【X】按钮
    end;KeyPreview:=True
    也设置过的
      

  3.   


    我测试了一下FormStyle是 fsNormal 可以,如果改成fsMDIForm就不行了。
      

  4.   

    fsMDIForm不可以的
    fsMDIForm一般只是放菜单和工具栏,中间区域都要fsMDIChild盖住,设置窗体快捷键没用
    可以用ActionList关联菜单和工具栏快捷键