Global TAction с помощью сочетания клавиш BkSp - PullRequest
0 голосов
/ 10 октября 2018

У меня TAction с ключом ShortCut, установленным в BkSp (возврат).Я пытаюсь реализовать кнопку Back, как в веб-браузере, поэтому мне нужно, чтобы TAction вызывался в любом элементе управления, кроме элементов управления Edit (TMemo, TEdit и т. Д.).

Все работает, как и ожидалось, но клавиша Backspace не отправляется в Edit.элементы управления (поэтому пользователь не может удалить символ).

OnExecute выглядит следующим образом:

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

Есть ли у вас идеи преодолеть проблему с ключом BkSp НАЛОГ для редактирования элемента управления (для всех платформ Win, Mac, Linux)?

1 Ответ

0 голосов
/ 10 октября 2018

Решение простое, основано на комментарии Андреаса Рейбранда и так же, как в Delphi.

On OnUpdate для действия:

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

И OnExecute для действия:

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