FormShortCut MainForm 和 二级FORM

发现,主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

你可能感兴趣的:(form)