Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-02-2008
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.935
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por adfa Ver Mensaje
¿El requisito es que se descienda de alguna clase que implemente IInterface?
El requisito en sí es que implementes obligatoriamente todos los métodos de la interfaz, y como todas las interfaces heredan de IInterface, si heredas de un objeto que no haya implementado ninguna interfaz, te verás obligado a implementar sus métodos: (QueryInterface, _AddRef y _Release)
Código Delphi [-]
type
  IInterface = interface
    ['{00000000-0000-0000-C000-000000000046}']
    function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
    function _AddRef: Integer; stdcall;
    function _Release: Integer; stdcall;
  end;

Por eso si queremos crear un objeto simple, heredado de TObject que implemente una interfaz, podemos usar TInterfacedObject como parte de su linaje .

Resumiendo nuevamente, como TMaskEdit es un TComponent puedes hacer exactamente lo que describes.


PD: Dec, creía haberme enredado como de costumbre en la explicación
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #2  
Antiguo 01-02-2008
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Poder: 20
keyboy Va por buen camino
Cita:
Empezado por delphi.com.ar Ver Mensaje
Por eso si queremos crear un objeto simple, heredado de TObject que implemente una interfaz, podemos usar TInterfacedObject como parte de su linaje .
Sólo hay que notar que TInterfacedObject impementa el conteo de referencias, que da lugar a la recolección automática de basura. En ocasiones podría no ser esto lo que se requiere.

Bye
Responder Con Cita
  #3  
Antiguo 01-02-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por delphi.com.ar Ver Mensaje
El requisito en sí es que implementes obligatoriamente todos los métodos de la interfaz, y como todas las interfaces heredan de IInterface, si heredas de un objeto que no haya implementado ninguna interfaz, te verás obligado a implementar sus métodos: (QueryInterface, _AddRef y _Release)
Código Delphi [-]type IInterface = interface ['{00000000-0000-0000-C000-000000000046}']
function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
function _AddRef: Integer; stdcall;
function _Release: Integer; stdcall;
end;


Por eso si queremos crear un objeto simple, heredado de TObject que implemente una interfaz, podemos usar TInterfacedObject como parte de su linaje .

Resumiendo nuevamente, como TMaskEdit es un TComponent puedes hacer exactamente lo que describes.


PD: Dec, creía haberme enredado como de costumbre en la explicación
Gracias Federico. Haz hecho que mi corazón volviera a latir... ya me estaba asustando...

Pues yo venía haciendo como tu dices: heredando de TInterfacedObject para evitar darle las declaraciones. Como la ayuda dice que conviene heredar de él... pues asi le metí. Y asumí que así se debía trabajar siempre.

Esto de estar leyendo de muchos lados hizo una ensalada en mi cabeza.
No digas que tu no te supiste explicar, el tarado soy yo que no puso la debida atención y al hecho de leer de cualquier lado.

Nuevamente gracias, evitaste que tuviera que ir al cardiologo.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #4  
Antiguo 01-02-2008
adfa adfa is offline
Miembro
 
Registrado: may 2003
Ubicación: Montevideo-Uruguay
Posts: 119
Poder: 22
adfa Va por buen camino
Gracias a todos.
Saludos
Responder Con Cita
  #5  
Antiguo 01-02-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por keyboy Ver Mensaje
Sólo hay que notar que TInterfacedObject impementa el conteo de referencias, que da lugar a la recolección automática de basura. En ocasiones podría no ser esto lo que se requiere.

Bye
Muy cierto. Curiosamente hoy estaba investigando estas condiciones cuando llegué a esto.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
interfaces luislat40 Varios 2 23-10-2007 03:47:23
Interfaces en C# YaninaGenia .NET 1 18-06-2006 05:14:48
Interfaces... OscarG OOP 9 14-10-2005 13:26:57
Interfaces??? uhilari OOP 3 09-02-2004 16:07:50
Interfaces Legolas Varios 14 17-11-2003 14:39:07


La franja horaria es GMT +2. Ahora son las 16:40:58.


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
Copyright 1996-2007 Club Delphi