FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Formularios modales y no modales
Hola. Tengo una aplicación desarrollada en Delphi 5 en la que existen formularios modales y no modales, en una clásica aplicación MDI.
El tema es que es que dispongo de una serie de formularios "base" a partir de los cuales, por herencia, se van creando los formularios definitivos que verá el usuario, de manera que se encapsule en esos formularios base las caraterísticas y funciones comunes a todos los formularios hijos. La cuestión es que en determinadas circunstancias necesitaría que un formulario, cuyo diseño base es no modal (child window) y por ello el formulario heredero es también no modal, pueda ser abierto en modo modal. Esta circunstancia me ocurre cuando tengo abierta una pantalla modal y necesito abrir encima otra pero resulta que procede de una no modal. Un solución simple sería crear el mismo formulario "base" con un formulario de tipo modal y ya está, pero claro eso supone la duplicación innecesaria del código y la repetición del formulario base con los posibles futuros errores o mejoras que tendría que repetir en los dos formularios "base" y heredados. Así pues, ¿es posible abrir una pantalla no modal en modo modal en un momento dado? Un saludo y gracias por la ayuda. |
#2
|
|||
|
|||
Cita:
siempre que mantengas el 'showmodal' accesible, podras llamarla modalmente. Prueba de hacer, en los tipos de form que tu llamas 'no modales', un showmodal, a ver que te ocurre... |
#3
|
|||
|
|||
Hola. Pues no. Da multitud de errores de violación de acceso y demás que no están relacionados con la programación del formulario "base" y no funciona.
Es lo primero que probé antes de poner el post. |
#4
|
|||
|
|||
entonces prueba de llamarlo como una clase modal anterior, incluso como clase form inicial
(forma_de_tipo_no_modal as TForm).ShowModal; Lo que me extraña es ¿porque eliminas el metodo showmodal desde la TForm original?, asi siempre tendras los dos tipos de llamada. Me refiero...¿es necesaria la diferenciacion de modales-no modales en tus definiciones de clase? |
#5
|
||||
|
||||
Tal como dice coso, el carácter modal no depende de la ventana en sí, sino de lo forma en que se muestra, bien sea usando Show o ShowModal.
Sin embargo, el problema puede estar en que tu formulario sea fsMDIChild, pues en tal caso, el uso de ShowModal no es posible. Yo lo que haría es dejar el formulario como fsNormal para poderlo mostrar modalmente con ShowModal, y cuando quieras mostrarlo como foumulario hijo:
// Saludos |
#6
|
|||
|
|||
Hola coso. Yo el método showmodal no lo oculto ni elimino ni nada. Simplemente es que si tu lo ejecutas sobre un form no modal, da errores en la ejecución. Nada más.
Efectivamente, como comenté al principio el formulario base es de tipo no-modal, es decir, fsMDIChild ya que en casi todos los casos la ventana se abre en modo NO-MODAL. El problema es que cuando una vez necesito que se ejecute en MODAL, ahí está el problema. Una posibilidad sería como dice roman pasarlo a fsNormal y en la creación y apertura de la pantalla cambiarle el formstyle, aunque no tengo claro que repercusiones tendrá en el funcionamiento. Tendré que hacer pruebas. Estas son las cosas que las planteas desde el prinpicipio de una forma que en el 99% de los casos es como se planteó hasta que llega ese 1% que va y te lo estropea ... Un saludo. |
#7
|
|||
|
|||
ok, por lo que pusiste entendi que definias completamente la clase.
Si lo unico que haces es cambiar la propiedad FormStyle, entonces lo de Roman te deberia funcionar. Ya comentaras algo. |
#8
|
|||
|
|||
Pues no. Tampoco funciona. Como tengo un constructor propio de la form "base" he probado también en cambiar ahí la propiedad formstyle, antes de la inicialización de los componentes y después de ella (inherited), y nada sigue igual. Creo que no hay forma de hacerlo.
Al final optaré por una clase base que sea de tipo modal y tendré el código duplicado. He probado los múltiples cambios y no va. Un saludo. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Ventanas Modales Vs Formularios Mdi | ingmichel | Internet | 7 | 04-08-2008 04:41:23 |
Ayuda sobre gestion de ventanas modales y no modales | Delphius | Varios | 13 | 13-12-2006 05:10:25 |
Formularios modales | pyanqn | Varios | 10 | 04-11-2005 18:51:35 |
No puedo Ejecutar Formularios Modales | IcebergDelphi | OOP | 4 | 17-11-2003 09:31:31 |
Problema con Formularios Modales bajo Citrix Metaframe | sarackganda | Varios | 0 | 04-06-2003 02:47:50 |
|