FormKeyDown 不执行?

wrost 2012-03-20 10:18:12


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

...全文
165 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
kaikai_kk 2012-03-20
  • 打赏
  • 举报
回复
fsMDIForm不可以的
fsMDIForm一般只是放菜单和工具栏,中间区域都要fsMDIChild盖住,设置窗体快捷键没用
可以用ActionList关联菜单和工具栏快捷键
wrost 2012-03-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 kaikai_kk 的回复:]
你这是要同时按下Alt+Ctrl+j才行
[/Quote]

我测试了一下FormStyle是 fsNormal 可以,如果改成fsMDIForm就不行了。
wrost 2012-03-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 kaikai_kk 的回复:]
你这是要同时按下Alt+Ctrl+j才行
[/Quote]

是的,我以前写过的,今天写就不管用了,不知道为什么?


procedure TFrm_Main.FormCreate(Sender: TObject);
begin
KeyPreview := True;
RemoveMenu(GetSystemMenu(Handle, False), SC_CLOSE, MF_BYCOMMAND); //去掉Menu【X】按钮
end;

KeyPreview:=True
也设置过的
kaikai_kk 2012-03-20
  • 打赏
  • 举报
回复
你这是要同时按下Alt+Ctrl+j才行
kaikai_kk 2012-03-20
  • 打赏
  • 举报
回复
KeyPreview:=True

5,930

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧