Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-02-2009
Lizette Lizette is offline
Miembro
 
Registrado: jun 2008
Posts: 98
Poder: 16
Lizette Va por buen camino
Cuando creo los formularios dinamicamente no me los muestra

Hola, saludos, tengo el siguiente problema, estoy creando formularios dinamicamente, cuando cierro el formulario frmConsultar previemente creado, utilizo close(); y crea y manda llamar el siguiente formulario.. el caso es que cuando lo ejecuto, me cierra frmConsultar, pero no me muestra el frmBuscar, no sé cual sea el problema. Le calé paso a paso, y si lo cierra, si me crea y me manda llamar frmBuscar, pero cuando termina de ejecutar ese procedimiento desaparece y no se visualiza nada.

El codigo que utilizo es el siguiente:

Código Delphi [-]
procedure TfrmConsultar.BitCancelarClick(Sender: TObject);
begin
if(BitEliminar.Visible=False)and (BitEditar.Visible=False)then
begin
 if(MessageDlg('¿Desea continuar consultando pacientes?', mtConfirmation, [mbYes,mbNo], 1)=mrYes) then
  begin
   close();
   frmBuscarPaciente:=TfrmBuscarPaciente.Create(self);
   frmBuscarPaciente.Show;
  end
 else
  begin
   close();
   frmMenu.Show;
  end;
 end;

Y en el evento o close:

Código Delphi [-]
procedure TfrmConsultarPaciente.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
Action:=caFree;
end;

Gracias por sus aportaciones.
Responder Con Cita
  #2  
Antiguo 07-02-2009
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
El código de TfrmConsultar escrito a partir de Close, no se ejecutará, dado que estás cerrando el formulario y el flujo del programa es devuelto al lugar desde donde fué llamado TfrmConsultar.... y por supuesto, si en TfrmConsultar también tienes Action:=caFree; en modo alguno se ejecutará el código.


Eso es lo que veo a simple vista...
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #3  
Antiguo 08-02-2009
Lizette Lizette is offline
Miembro
 
Registrado: jun 2008
Posts: 98
Poder: 16
Lizette Va por buen camino
mmm gracias por la observación, ya le calé en ponerle el close(); ya que me crea y me manda llamar a Buscar, pero de igual manera, no lo muestra.. Cómo le puedo hacer?
Responder Con Cita
  #4  
Antiguo 08-02-2009
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
Simplemente dejando la sentencia close la última... dejando que TfrmConsultar permanezca a la vista (parece poco elegante)

O devolver el un valor a quien llamó a TfrmConsultar y en base a ese valor hacer las operaciones pertinentes:

TfrmBuscarPaciente.Create(self); ......... etc, etc

Varias alternativas hay, así que prueba con la que mejor se adapte a tus necesidades....
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #5  
Antiguo 08-02-2009
Avatar de rcarrillom
[rcarrillom] rcarrillom is offline
Miembro Premium
 
Registrado: dic 2004
Ubicación: UK / North Sea / Norway / Golfo de México / Frente a mi Laptop
Posts: 219
Poder: 20
rcarrillom Va por buen camino
Lizette, el problema si no me equivoco es el self de la línea

Código Delphi [-]
frmBuscarPaciente:=TfrmBuscarPaciente.Create(self);

ya que asignas como padre de frmBuscarPaciente a frmConsultar y al momento de destruirlo, automáticamente destruye a sus hijos, te recomiendo que cambies de Self a Application.

De igual manera dejaría y recomiendo el Close como la última instrucción de todas después del if, veo que lo repites no importa el resultado del diálogo modal

Código Delphi [-]
procedure TfrmConsultar.BitCancelarClick(Sender: TObject);
begin
  if (not BitEliminar.Visible) and (not BitEditar.Visible)then
    begin
      if MessageDlg('¿Desea continuar consultando pacientes?', mtConfirmation, [mbYes,mbNo], 1)=mrYes then
        begin
          frmBuscarPaciente:=TfrmBuscarPaciente.Create(Application);
          frmBuscarPaciente.Show
        end
      else
        frmMenu.Show;
      Close
    end
end;
__________________
eLcHiCoTeMiDo - Rompecorazones profesional
Yo no soy presumido; ¿Pero de qué sirve mi humilde opinión contra la de los espejos?
Salva a un nylon, usa prendas de piel de foca

Última edición por rcarrillom fecha: 08-02-2009 a las 10:17:59.
Responder Con Cita
  #6  
Antiguo 08-02-2009
Lizette Lizette is offline
Miembro
 
Registrado: jun 2008
Posts: 98
Poder: 16
Lizette Va por buen camino
Gracias [rcarrillom]


Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Error al cerrar aplicacion cuando creo fields dinamicamente mierda OOP 3 02-11-2006 19:57:41
No me muestra un Label cuando ejecuto OnActivate pepecharlie67 Varios 4 29-12-2005 17:30:44
bloquear ventana padre cuando creo la hija delphinario Varios 6 01-10-2004 21:19:19
Cerrar dos formularios creados dinamicamente (al mismo tiempo) ctronx Varios 7 02-09-2004 01:19:04
cerrar formularios creados dinamicamente ctronx Varios 5 17-06-2004 19:25:17


La franja horaria es GMT +2. Ahora son las 03:25:23.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi