Delphi - Используя событие TApplicationEvents OnShortCut для обнаружения нажатий клавиш Alt+C

Нет абсолютно никаких причин для создания другого класса с тремя методами, которые не имеют никакой функциональности, кроме как для вызова методов, определенных в первом классе.

Предполагая, что вы на самом деле просто хотите обертку вокруг них, сработает следующее:

class InitialAction:
  @staticmethod
  def f1(a, b):
    ...
  @staticmethod
  def f2(a, b):
    ...
  @staticmethod
  def f3(a, b):
    ...

class Implement(object):
  def __init__(self, a, b):
    self.a = a
    self.b = b

  def callFn(self, fn):
      ...
      fn(self.a, self.b)
      ...

myobj = Implement('a', 'b')
myobj.callFn(InitialAction.f1)
5
задан stukelly 9 April 2009 в 20:56
поделиться

2 ответа

Примерно так:

procedure TForm1.ApplicationEvents1ShortCut(var Msg: TWMKey;
  var Handled: Boolean);
begin
  if (Msg.CharCode = Ord('C'))
    and (HiWord(Msg.KeyData) and KF_ALTDOWN <> 0)
  then begin
    ShowMessage('Alt+C pressed!') ;
    Handled := TRUE;
  end;
end;

Обратите внимание, что при использовании Alt и только некоторые клавиши являются плохим выбором для ярлыков, так как система использует их для активации пунктов меню или диалоговых элементов управления.

9
ответ дан 13 December 2019 в 22:16
поделиться

Или вы можете создать простое TAction, они едят ярлыки раньше других.

1
ответ дан 13 December 2019 в 22:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: