Ver Mensaje Individual
  #1  
Antiguo 08-04-2008
Walterdf Walterdf is offline
Miembro
 
Registrado: may 2003
Ubicación: Buenos Aires
Posts: 152
Reputación: 22
Walterdf Va por buen camino
Arrow Abrir un formulario hijo solo una vez

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

Código:
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:
Código:
  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:

Código:
  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!!
Responder Con Cita