Ver Mensaje Individual
  #4  
Antiguo 09-03-2007
[basti] basti is offline
Miembro Premium
 
Registrado: ago 2004
Posts: 388
Reputación: 20
basti Va por buen camino
Es al revés, es free el que llama a Destroy, y lo hace de forma automática. Además la declaración de Destroy, como bien dijo Nuño, debería ser:

destructor Destroy; override;

No es obligatorio crear un destructor de clase, ya que si no vas a hacer nada en él (como es este caso) utilizará el destructor de la clase TObject. El problema es que al no declarar Destroy como override, lo que estás haciendo es ocultar el Destroy de la clase antecesora (TObject en este caso) y por lo tanto Consultarcliente.Free, no llamará a Destroy de TObject y no te liberará el objeto.

Me olvidaba, si quieres usar destroy, aparte de definirlo como override, tendrás que poner al final inherited, para que llame al Destroy de la clase antecesora :
Código Delphi [-]
destructor TConsultarCliente.Destroy;
begin
  // lo que sea
  inherited;
end;

Última edición por basti fecha: 09-03-2007 a las 11:44:50.
Responder Con Cita