当动作管理器在数据模块时,键盘快捷键不会被捕获



在Delphi XE2中,我在应用程序中有一个数据模块,并在该数据模块中有一个操作管理器。我已经为每个操作分配了键盘快捷键,但是当我尝试在应用程序中使用这些快捷键时,它无法捕获它们。

我正在创建应用程序初始化内部的数据模块(由于IDE扭曲项目主文件中的代码而移动到不同的单元)…

unit AppInit;
interface
uses
  Vcl.Forms,
  Vcl.Themes,
  Vcl.Styles,
  uMain,
  uDataModule
  ;
procedure RunApp;
implementation
procedure RunApp;
begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.Title := 'My App';
  TStyleManager.TrySetStyle('Carbon');
  DM:= TDM.Create(nil);
  try
    Application.CreateForm(TfrmMain, frmMain);
    Application.Run;
  finally
    DM.Free;
  end;
end;
end.
像这样创建数据模块的原因是,应用程序的所有不同形式都能够使用其中的组件,特别是操作管理器。它必须在主表单创建之前创建。

当操作管理器在数据模块中时,如何使操作项的键盘快捷键工作?

TDataModule不是TCustomForm的后代,而是TComponent的后代。所以数据模块没有接收消息的窗口句柄,也没有像TCustomForm这样的快捷方式的处理。

function TCustomForm.IsShortCut(var Message: TWMKey): Boolean;
  function DispatchShortCut(const Owner: TComponent) : Boolean;
  .....
  .....

相关内容

  • 没有找到相关文章

最新更新