Ver Mensaje Individual
  #3  
Antiguo 21-12-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Reputación: 17
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
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); // imprime "Button1"
end;
Responder Con Cita