Ver Mensaje Individual
  #12  
Antiguo 16-09-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Reputación: 25
__cadetill Va por buen camino
Veamos, que creo que nos estamos liando

Tenemos dos forms (digamos Form1 y Form2). Desde Form1 llamamos a Form2 y queremos que los datos de Form2 se inicialicen cada vez que es llamado.

Primero: si lo haces la llamada con un simple Show, ten en cuenta que se podrá llamar a From2 tantas veces como se quiera des de Form1, por lo que eso habra que contemplarlo. Así que la forma de llamar a Form 2 puede quedar así

Código:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if Form2 = nil then
    Form2 := TForm2.Create(Application);
  try
    Form2.Show;
  except
      FreeAndNil( Form2 );
  end;
end;
de esta manera mostramos la misma instancia de Form2 si ya está creado.

Luego, en Form2, en su evento OnCreate, hacemos las inicializaciones pertinentes.

Código:
procedure TForm2.FormCreate(Sender: TObject);
begin
  // aqui las inicializaciones
end;
Y luego tenemos que asegurarnos de su destrucción en el OnClose del forms (Form2)

Código:
procedure TForm2.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Action := caFree;
end;
A ver si con esto lo logramos arreglar
Responder Con Cita