Entweder stehe ich genau so feste wie du auf dem Schlauch oder da blockt tatsächlich irgendetwas. Ich würde den Typ von "procedure of object" zu "reference to procedure" ändern, das ist in
System.SysUtils
bereits als
TProc
vordefiniert. Dass ergibt mittels anonymer Prozedur zwar etwas Overhead, aber dein Gedöns müsste somit noch nicht einmal das Interface implementieren.
Delphi-Quellcode:
uses System.SysUtils;
type
IMyInterface = interface
procedure doStuff();
end;
TMyObject = class(TInterfacedObject, IMyInterface)
procedure doStuff();
end;
procedure TMyObject.doStuff();
begin
WriteLn('I''m doing stuff');
end;
var
instance: IMyInterface;
procedureReference: TProc;
begin
instance := TMyObject.Create();
procedureReference := TMyObject(instance).doStuff;
procedureReference :=
procedure()
begin
instance.doStuff;
end;
end.