Walterdf
08-04-2008, 16:04:27
Buenas a todos
Estoy intentando evitar que un formulario hijo se abra mas de una vez. Investigué en los foros pero las soluciones que encontré no me están ayudando y no se que estoy haciendo mal.
Paso a explicar.
Al abrir la aplicación el form padre (frmMain) llama a un form hijo (frmQuerys) en el evento Activate del mismo de la sig. manera:
(esto lo tengo como variable global: frmQuerys : TfrmQuerys;)
procedure TfrmMain.FormActivate(Sender: TObject);
begin
frmQuerys := TfrmQuerys.Create(Self);
frmQuerys.Show;
end;
Hasta aquí todo 10 puntos.
En el evento OnClose del form hijo hago lo siguiente para liberarlo:
Action := caFree;
Desde una opción en el form padre puedo volver a llamar a este form hijo pero quiero evitar que se vuelva a crear si ya se está mostrando y lo hago de la sig.forma:
if not Assigned(frmQuerys) then
begin
frmQuerys := TfrmQuerys.Create(Self);
frmQuerys.Show;
end
else
frmQuerys.Show;
Si intento abrirlo mientras se está mostrando, no lo abre nuevamente, esto está perfecto. Pero si cierro el form hijo e intento abrirlo me sale una excepción diciendo: "Abstract Error" y no hace nada.
Que estoy haciendo mal???
Muchas gracias desde ya!!
Estoy intentando evitar que un formulario hijo se abra mas de una vez. Investigué en los foros pero las soluciones que encontré no me están ayudando y no se que estoy haciendo mal.
Paso a explicar.
Al abrir la aplicación el form padre (frmMain) llama a un form hijo (frmQuerys) en el evento Activate del mismo de la sig. manera:
(esto lo tengo como variable global: frmQuerys : TfrmQuerys;)
procedure TfrmMain.FormActivate(Sender: TObject);
begin
frmQuerys := TfrmQuerys.Create(Self);
frmQuerys.Show;
end;
Hasta aquí todo 10 puntos.
En el evento OnClose del form hijo hago lo siguiente para liberarlo:
Action := caFree;
Desde una opción en el form padre puedo volver a llamar a este form hijo pero quiero evitar que se vuelva a crear si ya se está mostrando y lo hago de la sig.forma:
if not Assigned(frmQuerys) then
begin
frmQuerys := TfrmQuerys.Create(Self);
frmQuerys.Show;
end
else
frmQuerys.Show;
Si intento abrirlo mientras se está mostrando, no lo abre nuevamente, esto está perfecto. Pero si cierro el form hijo e intento abrirlo me sale una excepción diciendo: "Abstract Error" y no hace nada.
Que estoy haciendo mal???
Muchas gracias desde ya!!