Ver Mensaje Individual
  #3  
Antiguo 03-04-2020
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Solo agregar que si el formulario ha sido liberado con el procedimiento Free la función Assigned nos indicará que el objeto (form) está creado y arrojará una excepción cuando intenten usarlo.
Ejemplo:
Código Delphi [-]
uses Unit2;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Form2 := TForm2.Create(Self); 
  // ...
  Form2.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if Assigned(Form2) then
    Form2.Show;
end;

La solución es poner la variable del formulario a nulo ya sea asignándolo directamente, o usando el procedimiento FreeAndNil.
v.gr.:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  Form2 := TForm2.Create(Self);
  // ...
  Form2.Free;
  Form2 := nil;
 // O  de otro modo y en una sola línea:
 // FreeAndNil(Form2);
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita