我将TAction的ShortCut键设置为BkSp (backspace)。我正在尝试实现Back按钮,就像在web浏览器中一样,所以我需要在任何控件中调用TAction,除了编辑控件(TMemo、TEdit等)。
所有操作都按预期进行,但Backspace键没有发送到Edit控件(因此用户不能删除char)。
OnExecute看起来就像:
if (Screen.ActiveControl is TCustomMemo) or (Screen.ActiveControl is TCustomEdit) then exit;
DoBack; 对过去的BkSp键TAction编辑控制(所有平台都赢了,Mac,Linux)有什么想法吗?
发布于 2018-10-10 14:20:50
解决方案很简单,基于的评论和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;https://stackoverflow.com/questions/52739454
复制相似问题