Planteo el entorno :
- Tengo una ventana principal que se crea al entrar en el programa (TWindow)
- Pongo un botón que permite crear un diálogo NO Modal para tener un entorno multidiálogo (necesito usar TDialog porque se crearán desde recursos)
- El diálogo NO Modal permite crear desde él un diálogo, por ejemplo de edición. Este último diálogo sí que será MODAL para forzar al usuario a entrar la información sin desplazarse a otras opciones.
Hasta aquí todo correcto, el problema que me encuentro es que este último diálogo es MODAL respecto a la ventana principal pero no respecto al diálogo desde el que se ha llamado, permitiendo interactuar con el diálogo desde el que ha sido creado.
Es un poco lío pero dejo un código de ejemplo y un pequeño vídeo para ver si se me entiende correctamente.
- Code: Select all Expand view
- #include 'fivewin.ch'
Function Main()
Local oWnd
DEFINE WINDOW oWnd FROM 0,0 TO 24,79 TITLE "Main Window"
@ 1,1 BUTTON "Crear dialogo NO modal" ;
SIZE 150,25 ;
ACTION DialogoNOModal( oWnd )
ACTIVATE WINDOW oWnd
Return( nil )
Static Function DialogoNOModal( oWnd )
Local oDlgNoModal
DEFINE DIALOG oDlgNoModal TITLE 'Dialogo no modal'
@ 1,1 BUTTON "Crear dialogo modal" ;
SIZE 150,25 ;
ACTION DialogoModal( oWnd )
ACTIVATE DIALOG oDlgNoModal NOMODAL
Return( nil )
Static Function DialogoModal( oWnd )
Local oDlgModal
DEFINE DIALOG oDlgModal TITLE 'Dialogo modal' OF oWnd // WndMain()
ACTIVATE DIALOG oDlgModal
Return( nil )
![Image](https://i.ibb.co/34XTHCn/2021-07-02-08h10-22.gif)