Ver Mensaje Individual
  #7  
Antiguo 21-10-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Completando un pco lo anterior:

No es necesario redefinir Destroy a menos que sea necesario.

Destroy es un destructor definido desde la madre de todas las clases-- TObject y todos sus descendientes lo heredan. Cuando una clase se declara como

Código:
TMiClase = class;
end;
implícitamente se está heredando de TObject por lo que no es necesario especificarlo en la declaración.

A grandes rasgos, el destructor Destroy sólo se redefine cuando tu misma clase crea otros objetos por sí misma. En tal caso deberá destruirlos y el mejor momento es en el destructor:

Código:
type
  TMiClase = class
    Lista: TStringList;
    constructor Create;
    destructor Destroy; override;
  end;

  constructor TMiClase.Create;
  begin
    // Creamos un objeto
    Lista := TStringList.Create;
  end;

  destructor TMiClase.Destroy;
  begin
    // Debdemos destruirlo
    Lista.Free;
    inherited;
  end;
Y por cierto, nunca olvidar llamar a inherited (que llama al destructor de la clase ancestra), y llamarlo al final

// Saludos
Responder Con Cita