修复 XE7 , XE8 Frame 内 PopupMenu 快捷键失效问题
问题:将 Frame 含 PopupMenu 放置 Form 后,在 Frame 里的 PopupMenu 失效,无法按快捷键。 适用:( update 1 / ) for Windows 平台 修正方法: 请将源码 FMX.Forms.pas复制到自己的工程目录里,再进行修改。 找到 TCommonCustomForm.KeyDown函数,修改如下: TCommonCustomForm.KeyDown( Key: Word; ..... 省略 ......
<span style="color: #008000;">{<span style="color: #008000;">+++><span style="color: #008000;">} <span style="color: #008000;">//<span style="color: #008000;"> 遍历所有的 Menu <span style="color: #0000ff;">function<span style="color: #000000;"> FindMenu(c: TFmxObject): TFmxObject; <span style="color: #0000ff;">var<span style="color: #000000;"> i: Integer; <span style="color: #0000ff;">begin <span style="color: #0000ff;">if c <span style="color: #0000ff;">is TFmxObject <span style="color: #0000ff;">then <span style="color: #0000ff;">for i:=<span style="color: #800080;">0 <span style="color: #0000ff;">to TFmxObject(c).ChildrenCount - <span style="color: #800080;">1 <span style="color: #0000ff;">do <span style="color: #0000ff;">begin <span style="color: #0000ff;">if TFmxObject(c).Children[i] <span style="color: #0000ff;">is TMainMenu <span style="color: #0000ff;">then<span style="color: #000000;"> TMainMenu(TFmxObject(c).Children[i]).DialogKey(Key,Shift) <span style="color: #0000ff;">else <span style="color: #0000ff;">if TFmxObject(c).Children[i] <span style="color: #0000ff;">is TPopupMenu <span style="color: #0000ff;">then<span style="color: #000000;"> TPopupMenu(TFmxObject(c).Children[i]).DialogKey(Key,Shift); FindMenu(TFmxObject(c).Children[i]); <span style="color: #0000ff;">end<span style="color: #000000;">; <span style="color: #0000ff;">end<span style="color: #000000;">; <span style="color: #008000;">{<span style="color: #008000;"><+++<span style="color: #008000;">} <span style="color: #0000ff;">var<span style="color: #000000;"> ..... 省略 ......
<span style="color: #008000;">{<span style="color: #008000;">+++><span style="color: #008000;">} FindMenu(Children[I]); <span style="color: #008000;">//<span style="color: #008000;"> 加入这行:遍歷所有的 Menu
..... 省略 ...... <span style="color: #0000ff;">end; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |