我的TAction的ShortCut键设置为BkSp(退格键)。我正在尝试像在Web浏览器中那样实现“后退”按钮,因此我需要在除Edit控件(TMemo,TEdit等)之外的任何控件中调用TAction。
所有操作均按预期方式进行,但是Backspace键不会发送到Edit控件(因此用户无法删除char)。
OnExecute外观如下:
if (Screen.ActiveControl is TCustomMemo) or (Screen.ActiveControl is TCustomEdit) then exit;
DoBack;
对BkSp密钥有任何想法要用TAction来编辑控件(适用于所有平台Win,Mac,Linux)?
答案 0 :(得分:1)
基于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;