Wop!
Destroy es el destructor del objeto, Free es un método de TObject que comprueba que la referencia No apunte a nil:
Cita:
Empezado por System.pas
procedure TObject.Free;
begin
if Self <> nil then
Destroy;
end;
|
Se desaconseja el uso de Destroy, ya que no tiene el control de Free.
Existen dos maneras (por lo menos) de destruir un formulario. Form.Free y programar el evento OnClose, asignando al parametro Action el valor caFree.
Respecto a lo que comentas que te pasa con los forms MDI, te pego un trozo del help de delphi, en la página que explica el evento OnClose:
Cita:
Empezado por Delphi'help
If a form is an MDI child form, and its BorderIcons property is biMinimize, then the default Action is caMinimize. If a MDI child form does not have these settings, the default Action is caNone, meaning that nothing happens when the user attempts to close the form.
|
Para finalizar, lo que comentas de los errores... no sé, ¿puede ser que los destriuyas en más de un sitio? ¿que accedas a la variable despues de destruirla?¿Que apliques los dos métodos antes mencionados sobre el mismo form? Si nos das más datos seguro que te podemos ayudar más...