全球 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;
我将 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;