Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 18-01-2012
LoPiTaL LoPiTaL is offline
Miembro
 
Registrado: abr 2009
Posts: 168
Poder: 18
LoPiTaL Va por buen camino
Hola,
El problema es que los objetos que implementan interfaces llevan un conteo del nº de referencias que apuntan a ellos (mira en detalle la implementación de TInterfacedObject, los métodos _AddRef y _Release). Cuando el nº de referencias es 0, entonces se autodestruyen.

Cuando asignas self.interface:=ejemplo1, entonces ejemplo1.RefCount vale 1.
Cuando asignas self.interface:=ejemplo2, entonces ejemplo1.RefCount pasa a valer 0, autodestruyéndote ejemplo1.
Cuando vuelves a asignar self.interface:=ejemplo1, entonces ejemplo2.RefCount pasa a valer 0, autodestruyéndote ejemplo2, y interface pasa a referenciar a un sitio en el que no hay nada (se autodestruyó anteriormente) y de ahi la excepción.

Para el ejemplo que estás dando, yo usaría lo mismo, pero en lugar de derivar interfaces, derivaría de una clase común, del estilo:

TClasePadre=class
procedure proX; virtual; abstract;
end;

y tu puntero en lugar de ser de tipo IEjemplo, sería de tipo TClasePadre.

Un saludo,
LoPiTaL
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Problema con las interfaces gráficas skatevil Gráficos 4 04-02-2008 16:55:52
interfaces luislat40 Varios 2 23-10-2007 03:47:23
Interfaces... OscarG OOP 9 14-10-2005 13:26:57
Interfaces de XML vhr Providers 2 26-08-2005 17:22:06
Interfaces Legolas Varios 14 17-11-2003 14:39:07


La franja horaria es GMT +2. Ahora son las 04:23:24.


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