![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
ok, te debes haber percatado que al ejecutar el proyecto se crean y se muestran todos los formularios, esto no es precisamente lo que uno espera, bueno, hay viene la solucion :
* lo primero que debes hace es ir al menu project/options; se cargara una ventana anda a la pestaña "Form" en el listview de la izquierda donde dice "auto-create form" quita todos los formularios menos el Principal * segundo paso para pode rmostrar (crear) un formulario hijo debes poner el codigo siguiente :
Explicacion : if not Assigned( FrmCliente) then = verificas que el formulario no este creado "FrmCliente" = nombre del formulario "Aplication" = propietario del formulario hijo FrmCliente.ShowModal = Muestra el formulario Ahora en el evento "Close" del formulario "FrmCliente" pones lo siguiente
prueba estos pasos primero, cuando ya te funcione, avanzamos con las opciones de cascada, etc.. otras cosa que version de DELPHI USAS ?? saludos |
|
#2
|
|||
|
|||
|
Una preguntilla
Hola, estaba probando con este tipo de ventanas, y resulta que si pongo un form como padre con un boton , y le digo que me cree otro form, sigo viendo el boton por debajo del form que acabo de crear, es normal esto?!
Un saludo y gracias. |
|
#3
|
||||
|
||||
|
Normal, no lo sé. Vamos, supngo que sí pero el efecto es bastante feo. Realmente en las aplicaciones MDI lo único que "debería" haber en el área cliente del formulario padre son ventanas hijas y no controles propios. Nótese que digo área cliente, de manera que se pueden colocar paneles u otros controles alineados a uno de los extremos del formulario. Lo que sobra es el área cliente.
// Saludos |
|
#4
|
||||
|
||||
|
Cita:
"Cannot make a visible window modal" Pero aún suponiendo que se pueda, queda medio extraño una ventana hija modal ¿qué no? // Saludos |
|
#5
|
|||
|
|||
|
ok si es un error, solo se debe poner lo siguiente :
; lo hize de memoria, por eso me equivoque, sorry |
|
#6
|
||||
|
||||
|
Esteee..., es que el FrmCliente.Show también sobra (no hace daño pero no es necesario). Y no pidas disculpas que no era regaño
Si así lo pareció pido disculpas.// Saludos |
|
#7
|
|||
|
|||
|
te puedo asegurar que la linea no esta de mas, toma en cuenta que estoy creando y destruyendo los Form segun lo demanda,
|
|
#8
|
|||
|
|||
|
Gracias Sudamericano, creo que vamos avanzando positivamente con este tema! Tambien gracias a roman por sus aportes y si tiene razon en cuanto al aporte sobre la aparicion del formulario tipo modal
(FrmCliente.ShowModal;) pues presento el error que el menciona, pero pues si suprimimos esta linea el codigo funciona. Continuando con el tema mientras aplicaba evento "Close" del formulario "FrmCliente" tuve el problema que no podia volver a abrir el formulario. De casualidad se me ocurrio adicionar una linea en el codigo de creacion del formulario hijo de esta manera : procedure TFrmKey.ShowFrmCliente; begin FrmCliente := nil; if not Assigned( FrmCliente) then FrmCliente:=TFrmCliente.Create(Application); FrmCliente.ShowModal; end; Y con esto pude solucionar el invonveniente, pero no se que problemas pueda traer y pues quiesiera saber que significa el "nil". Sudamericano, yo estoy usando Delphi 7 y pues creo que podemos ir avanzando en lo del ordenamiento de los formularios secundarios (cascada,..) Muchas Gracias! |
|
#9
|
||||
|
||||
|
Además de que en el código que pegas sigues usando el ShowModal, el problema es que al poner FrmCliente := nil, la sdiguiente condición siempre va a ser cierta así que siempre vas a crear la ventana, exista previamente o no. El nil significa simplemente que la variable FrmCliente no apunta a nada, que no tiene ninguna referencia.
// Saludos |
|
#10
|
|||
|
|||
|
Como primer punto quiero aclarar porque pongo
primer caso :si no existe; se crea y se muestra segundo caso : si si hubiran varios form hijos lo que logra la linea mencionada es que el formulario "FrmCliente" se muestre por encima de todos. otro punto es que en el evento close debes destruir el formulario,
con eso te aseguraas de destruir el frmcliente saludos |
|
#11
|
|||
|
|||
|
Gracias Roman, que pena lo de la ultima linea se me paso lo del ShowModal ya lo he entendido. Y pues entiendo lo que me quieres decir con respecto al "nil". Entonces como se prodria resolver el problema que despues de cerrar el formulario lo pueda volver a abrir.
Saludos |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Diferencia entre aplicacion Clx y aplicación normal??? | JorgeBec | Varios | 1 | 27-10-2004 17:30:49 |
| aplicacion vertical? aplicacion horizontal? | maruenda | Varios | 3 | 28-02-2004 23:23:20 |
|