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