Curiosamente, usando el codigo que publicas me da error de access violation, como debe ser
Entonces creo que habra que hilar mas fino: Uso Delphi 2010 y estoy corriendo Windows 10 64 bits
En esas condiciones este codigo:
Código Delphi
[-]
procedure TForm2.Button1Click(Sender: TObject);
var
LocalFoo: TObject;
begin
FormFoo.Free;
LocalFoo.Free;
end;
Ejecuta sin problemas: lo que me causo tanta curiosidad es que el Button1 del form desaparecia...entonces, agregando el ShowMessage:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
var
LocalFoo: TObject;
begin
FormFoo.Free;
ShowMessage(LocalFoo.ClassName);
LocalFoo.Free;
end;
El mensaje imprime "TButton"
Mas extraño aun, puedo hacer esto sin problemas:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
var
LocalFoo: TObject;
begin
LocalFoo.Free;
ShowMessage(LocalFoo.ClassName);
end;
No da error Access Violation!!! No puede ser!! Me imprime "TButton"!
Las variantes son infinitas:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
var
LocalFoo: TObject;
begin
LocalFoo.Free;
ShowMessage(TButton(LocalFoo).Caption); end;