Нет абсолютно никаких причин для создания другого класса с тремя методами, которые не имеют никакой функциональности, кроме как для вызова методов, определенных в первом классе.
Предполагая, что вы на самом деле просто хотите обертку вокруг них, сработает следующее:
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)
Примерно так:
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 и только некоторые клавиши являются плохим выбором для ярлыков, так как система использует их для активации пунктов меню или диалоговых элементов управления.
Или вы можете создать простое TAction, они едят ярлыки раньше других.