Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-09-2018
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Angel.Matilla Ver Mensaje
Hasta ahora casi siempre que llamaba a un formulario lo hacía con ShowModal, pero he comprobado que de esta forma me da un error de ejecución. Lo he cambiado por Show pero de esa manera se muestra y automaticamente se cierra.

Posiblemente porque después del ShowModal suele haber un Free (o FreeAndNil). Ahora con el Show hay que eliminar esa línea también.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #2  
Antiguo 13-09-2018
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Posiblemente porque después del ShowModal suele haber un Free (o FreeAndNil). Ahora con el Show hay que eliminar esa línea también.
Tengo puesto un Action = Free en OnClose del formulario, pero no antes. Y eos es lo que me despista.
Responder Con Cita
  #3  
Antiguo 13-09-2018
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Podéis mandarme a hacer gárgaras, que será lo más probable. Por aquello de ir probando y tratando de enterarme de este tema me he creado un proyecto con sólo dos formularios: uno (Unit1) que úncamente tiene un TMainMenu y un segundo con sólo un TLabeledEdit. Compilo y ejecuto y al seleccionar la opción del menú con este código:
Código PHP:
void __fastcall TForm1::Unit21Click(TObject *Sender)
{
     
Application->CreateForm(__classid(TForm2), &Form2);
     
Form2->ShowModal();
     
delete Form2;

me sale este mensaje, aunque se muestra bien el segundo formulario:
Responder Con Cita
  #4  
Antiguo 13-09-2018
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

No puedes mostrar un formulario MDIChild con ShowModal, debes usar:
Código PHP:
  ...
  
Form2->Show(); //<-
  
... 
Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 13-09-2018
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

No puedes mostrar un formulario MDIChild con ShowModal, debes usar:
Código PHP:
  ...
  
Form2->Show(); //<-
  
... 
Saludos
Si lo pongo así no me muestra nada. En el adjunto está el proyecto con el que estoy haciendo pruebas. Está hecho en BCB6
Archivos Adjuntos
Tipo de Archivo: rar Prueba.rar (12,4 KB, 4 visitas)
Responder Con Cita
  #6  
Antiguo 14-09-2018
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

En realidad si lo hace, pero como la línea próxima inmediata es:
Código PHP:
delete Form2
no lo alcanzas a ver.

Eso funciona con las ventanas modales ya que la línea del delete no se ejecuta hasta que no se cierra la ventana modal, pero con las no modales no sucede lo mismo.

Y es más, como los formularios MDIChild deben tener su propiedad Visible verdadera por definición, si los vas creando en tiempo de ejecución no es necesario usar el método Show. Y si están minimizados, basta con que manejes las propiedades WindowState y BringToFront para traerlo al frente.

Hice un simple código-ejemplo de manejo de formularios MDI que te adjunto. Los formularios MDIChild fueron quitados de la lista de auto creación de formularios.


Saludos

Pd: (Probado en C++ Builder 6)
Archivos Adjuntos
Tipo de Archivo: zip AMatilla_MDI.zip (484,0 KB, 4 visitas)
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 14-09-2018
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

En realidad si lo hace, pero como la línea próxima inmediata es:
Código PHP:
delete Form2
no lo alcanzas a ver.
¡Perfecto! Muchas gracias ecfisa. No pude probar el código que me enviaste porque me falta un paquete (webdsnap.bpi), pero con las explicaciones que me has dado y el código lo he visto todo mucho más claro.
Responder Con Cita
Respuesta



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
MDI Child que contengo Otros MDI child. Enan0 Varios 2 03-11-2012 00:24:14
Como funcionan los campos con formulas? Alexandro Conexión con bases de datos 1 04-03-2009 09:54:29
Como funcionan los ReportBuilder? Irina Impresión 1 17-06-2007 00:16:52
Como cargar un MDI Child de Delphi en un MDI Form de VC++ onlytk Varios 0 10-12-2006 03:15:31


La franja horaria es GMT +2. Ahora son las 10:47:28.


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