Документация утверждает, что делегирование интерфейса доступно только для Win32. В настоящее время я не могу его протестировать, ошибка в документации или делегирование интерфейса прекращено в 64-битном компиляторе?
Деление интерфейса на Win64
Ответ 1
Это ошибка документации. Следующие звуковые сигналы под Win64:
program Win64delegatedInterfaces;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
IIntf = interface
procedure Foo;
end;
TMyClass = class(TObject, IIntf)
FIntf: IIntf;
property Intf: IIntf read FIntf implements IIntf;
end;
TMyOtherClass = class(TInterfacedObject, IIntf)
procedure Foo;
end;
var
MyClass: TMyClass;
Intf: IIntf;
procedure TMyOtherClass.Foo;
begin
Beep;
end;
begin
MyClass := TMyClass.Create;
MyClass.FIntf := TMyOtherClass.Create;
Intf := MyClass;
Intf.Foo;
end.