FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Ventanas,Ventanas Mdi=Dolor de cabeza ?
Hola a todos
Mi pregunta es la siguiente,el uso de ventanas Padres e hijas esta claro para mi, pero me planteo una duda, como puedo hacer para crear una pantalla de presentacion y luego de esta la pantalla de menus que sera padre y contendra a las hijas , como se debe definir la primera pantalla, porque e intentado de todo y me da un error indicando que una ventana esta en ejecucion MDI Por su interes a este dolor de cabeza Gracias
__________________
IVAND |
#2
|
||||
|
||||
En Projects --> view source
Ahí creas la pantalla de presentacion nada mas empezar, haces un Update de dicha pantalla y al final, antes de Application.run, haces un Free de la pantalla. Saludos |
#3
|
|||
|
|||
Gracias por tu respuesta
Voy a probar nuevamente , pero me parece que ya lo hice y el error persiste , aunque lo logico es destruir la ventana y asi es como si nunca hubiera sido ejecutada :-) Reviso y te comento
__________________
IVAND |
#4
|
||||
|
||||
Hola.
Solo un formulario ha de tener la propiedad FormStyle = fsMDIForm. Ese será el padre , en tu caso la de menus. El resto han de tener la propiedad fsMDIChild. Saludos |
#5
|
||||
|
||||
Hola!
Añadir a lo que ha dicho Kalimero, que si la ventana Child la quieres abrir como Modal, tendrías que hacer lo siguiente: Código:
form:=Tform.Create(self); try form.FormStyle:=fsNormal; form.Visible:=false; form.ShowModal; finally form.Free; end; Código:
form:=Tform.Create(self); try form.Show; finally form.Free; end; |
#6
|
||||
|
||||
IVAND, me vas a perdonar, pero despues de ver las 2 respuestas anteriores, ya dudo que lo haya entendido bien.
Pongo un ejemplo: Cuando abres delphi, lo primero que aparece es la ventana con el logotipo, y pasados unos segundos, cuando ha cargado el resto de la aplicación, la ventana del logotipo se cierra. ¿la ventana del logotipo es lo que quieres hacer? Si es así, debes seguir estos pasos: La ventana de presentacion debe tener FormStyle := fsnormal ya que es la primera que se creará y por tanto, la MDI aún no se ha creado. Projects --> View Source y editas el contenido Código:
Application.Initialize; FrmCredits := TFrmCredits.Create(nil); FrmCredits.Show; FrmCredits.Update; // los mensajes de redibujado tienen poca prioridad y los deja para el final. // Así que obligamos a que se dibuje en pantalla con el Update. // creacion del resto de ventanas // la MDI principal y algunas auxiliares que necesites. FrmCredits.Free; // si usas un timer quita esta linea Application.Run; Saludos |
#7
|
||||
|
||||
Solo agregar a la magnifica respuesta de Lepe que a esta Ventana del logotipo, normalmente se le llama Splash o SpashScreen. Si usas esta palabara para buscar en los foros vas a encontrar varias soluciones.
Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#8
|
|||
|
|||
Espero que te sirva, cuando necesité hacer esto, lo que hice fue setear la propiedad Application.ShowMainForm:= false, mostrar el Splash y cuando se cierra ponerla nuevamente en true.
quedaria asi. en el OnCLose del Splash pones:
a mi me funcionó de maravillas. P/D: lo de poner el timer para que se quede un tiempo la pantalla es buena idea. Saludos. Última edición por marlok fecha: 08-05-2006 a las 17:29:28. |
|
|
|