Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Problemas error E2291 (https://www.clubdelphi.com/foros/showthread.php?t=74921)

mcsebas 18-07-2011 19:47:48

Problemas error E2291
 
Hola estimada gente resulta que estoy teniendo el siguiente problema:
Estoy haciendo una aplicacion y utilzo interfaces (interface) y la implemento en una clase, hasta ahi todo bien pero cuando la compilo me tira el error E2291 con el siguiente mensaje:


[DCC Error] cOficina.pas(10): E2291 Missing implementation of interface method IInterface.QueryInterface
[DCC Error] cOficina.pas(10): E2291 Missing implementation of interface method IInterface._AddRef
[DCC Error] cOficina.pas(10): E2291 Missing implementation of interface method IInterface._Release


¿Que significa esto antes en Delphi 7 trabajaba perfectamente con esto pero ahora en Delphi XE no funciona?

por las dudas la interface es esta

Código Delphi [-]
type
    IImplementacionABM=interface
        ['{3EC87CE6-D24B-4490-9A0A-13E1C9D4BDCB}']
        function Alta:Boolean;
        function Modificar:Boolean;
        function Eliminar:Boolean;
    end;

y la clase en donde la implemento es

Código Delphi [-]
TOficina=class(TRegistro, IImplementacionABM)
       public
          function Alta:Boolean;
          function Modificar:Boolean;
          function Eliminar:Boolean;
    end;

Desde ya gracias por la atencion. :)

ElKurgan 19-07-2011 08:25:02

El maestro Marteens, en su cara oculta de Delphi 6, dice en la página 39:

"... Como todos los tipos de interfaz descienden directa o indirectamente de IInterface, todos ellos incluyen también los tres métodos básicos QueryInterface, _AddRef y _Release. Eso también significa que cualquier clase que pretenda implementar al menos una interfaz debe proporcionar una implementación para dichos métodos. Delphi nos ayuda mediante la clase predefinida TInterfacedObject[/size], que contiene una implementa-ción estándar de QueryInterface, _AddRef y _Release.

No se si esto puede resolverte el problema.
Saludos.

mcsebas 31-07-2011 23:23:05

Me podrian explicar como implementar con el objeto TInterfacedObject.

Gracias :)

ElKurgan 01-08-2011 09:44:07

Pues asi:

Código Delphi [-]
Type
  MiClaseInterfaz = class(TInterfacedObject, IInterfazque sea)
  ...
end;
El el libro de Marteens vienen muy bien explicado en los primeros capitulos

Un saludo


La franja horaria es GMT +2. Ahora son las 16:27:59.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi