发现,主FORM 定义的快捷键,在二级FORM里也有效。
反过来,就无效。
这样的话,就要考虑 快捷键的冲突问题 了,本来以为不同的FORM 是独立的。
http://codeverge.com/embarcadero.delphi.vcl.using/shortcuts-of-the-main-form-acces/1076501
John Schmidt wrote: > Hi, > > I experience problems when using keys in nonmodal shown SDI forms of > the application if they are used as shortcuts in the main form. Iif > the sub-form is shown modal than all works fine. How can I work > around this ‘feature‘? - It‘s URGENT! - Thanks! The behaviour is actually intentional, it is for the support of typical SDI apps where only the main form has a menu that is "shared" by the child forms (an app like the IDE itself). Quite a bit of the VCL behaviour is dictated by the requirements of the IDE... To fix this problem you have to override the main form‘s IsShortcut method, like this: public function IsShortCut(var Message: TWMKey): Boolean; override; function TMainform.IsShortcut( Var Message: TWMKey ): Boolean; begin if Screen.Activeform <> self then Result := false else Result := inherited IsShortcut(Message); end; This way the main form will only process shortcuts when it itself is the active form. -- Peter Below (TeamB) Don‘t be a vampire (http://slash7.com/pages/vampires), use the newsgroup archives : http://codenewsfast.com http://groups.google.com
时间: 2024-11-05 20:40:13