cerrar todos los dialogos abiertos

cerrar todos los dialogos abiertos

Postby rolando » Sun Mar 02, 2008 10:42 pm

Buenas tardes,

En mi programa, desde un diálogo padre (no modal), se llama un diálogo (hijo ) no modal cuantas veces el operador lo necesite para ver , cada vez que lo llama, distintos Richedits.

Funciona todo de primera pero, (siempre hay un pero), necesitaría tener la opción de poder cerrar todos los diálogos hijo abiertos cuando se cierra el diálogo padre.

Como son todos NO MODAL, no se cierran automáticamente.

¿Hay forma de hacerlo?

Gracias.

Rolando :D
User avatar
rolando
 
Posts: 593
Joined: Sat May 12, 2007 11:47 am
Location: San Nicolás - BA - ARGENTINA

Postby Antonio Linares » Sun Mar 02, 2008 11:44 pm

Los diálogos hijos tienen un título en concreto ? constante ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Antonio Linares » Sun Mar 02, 2008 11:50 pm

Aqui tienes un ejemplo genérico que cerraría todos los diálogos no modales:
Code: Select all  Expand view
#include "FiveWin.ch"

function Main()

   local oWnd

   DEFINE WINDOW oWnd

   ACTIVATE WINDOW oWnd ;
      ON INIT CreateNonModal() ;
      ON CLICK AEval( GetAllWin(),;
               { | o | If( o:ClassName() == "TDIALOG" .and. ! o:lModal, o:End(),) } )

return nil

function CreateNonModal()

   local oDlg

   DEFINE DIALOG oDlg

   ACTIVATE DIALOG oDlg NOWAIT

return nil   
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby rolando » Mon Mar 03, 2008 12:20 am

Antonio,

Gracias por responder.

La cuestión es que solo tengo una ventana en todo el programa, desde los menúes de esa ventana, llamo a los distintos diálogos padre.

Lo que hice fue incluirle la línea que enviaras:

AEval( GetAllWin() , { | o | If( o:ClassName() == "TDIALOG" .and. ! o:lModal, o:End(),) } )

En el valid del diálogo padre y cierra todos los diálogos abiertos pero también cierra la única ventana que es donde están los menúes, es decir, cierra el programa completamente.

Gracias.

Rolando :?
User avatar
rolando
 
Posts: 593
Joined: Sat May 12, 2007 11:47 am
Location: San Nicolás - BA - ARGENTINA

Postby Antonio Linares » Mon Mar 03, 2008 10:21 am

Los diálogos hijos que quieres cerrar, todos tienen un control richedit ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby rolando » Mon Mar 03, 2008 1:09 pm

Si Antonio, todos tienen un Richedit y el título es variable dependiendo del registro en el que esté posicionado la DBF.

¿Se puede cerrar un diálogo por el título?. si fuera posible, podría crear un array con los títulos de los díalogos abiertos y, al cerrar el diálogo padre, en base al array cerraría los diálogos.

Es todo hipotético, ya que no se si se podría hacer.

Gracias.

Rolando :D
User avatar
rolando
 
Posts: 593
Joined: Sat May 12, 2007 11:47 am
Location: San Nicolás - BA - ARGENTINA


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 84 guests