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