2012-01-16 13 views
11

Documentation indica que la delegación de interfaz solo está disponible para Win32. Actualmente no puedo probarlo, ¿es un error de documentación o la delegación de la interfaz se descontinúa en el compilador de 64 bits?delegación de interfaz en Win64

Respuesta

9

Es un error de documentación. Los siguientes pitidos en 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. 
Cuestiones relacionadas