全球 tactin 与 shorkat kya bakshap

Global TAction with shorcut key BkSp

我将 TAction 的 ShortCut 键设置为 BkSp(退格键)。我正在尝试像在网络浏览器中那样实现后退按钮,所以我需要在除编辑控件(TMemo、TEdit 等)之外的任何控件中调用 TAction。

一切正常,但退格键未发送到编辑控件(因此用户无法删除字符)。

OnExecute 看起来像:

if (Screen.ActiveControl is TCustomMemo) or (Screen.ActiveControl is TCustomEdit) then exit;
DoBack;  

是否知道通过 BkSp 键通过 TAction 来编辑控件(对于所有平台 Win,Mac,Linux)?

解决方案很简单,基于 Andreas Rejbrand 的评论,与 Delphi 中的相同。

在 OnUpdate 上进行操作:

procedure TForm1.aBackUpdate(Sender: TObject); 
begin 
   aBack.Enabled := not (Screen.ActiveControl is TCustomEdit); 
end;

和 OnExecute 动作:

procedure TForm1.aBackExecute(Sender: TObject); 
begin 
   DoBack;
end;