Cerrar ventanas

Estoy haciendo una pequeña aplicación que consta de una ventana MDI principal y varias ventanas CHILD. Me gustaría saber como puedo capturar el nombre de las ventanas CHILD que se encuentran activas para operar con ellas, abrirlas o cerrarlas a mi gusto.
Por ejemplo, al abrir una nueva ventana, me gustaría que la que se encuentre activa se cerrara, pero no se como hacerlo.

1 respuesta

Respuesta
1
Primero: Las ventanas activas van a estar abiertas así que lo único que podrías hacer es cerrarlas.
Lo que tenés que usar es mdiframewindow. GetActiveSheet ( ) que te permite capturar la ventana activa.
Se usa así:
activesheet = w_frame.GetActiveSheet()
IF IsValid(activesheet) THEN
//recuperó una ventana
ELSE
//NO hay activas, no significa necesariamente que no haya ventanas abiertas
END IF
Para recorrer todas las ventanas abiertas (pueden o no estar activas) tenés que usar:
ventana = w_frame.GetFirstSheet()
//obtiene la primera ventana (la de mas arriba)
ventana2 = w_frame.GetNextSheet(ventana)
//obtiene la inmediatamente debajo de ventana
Siempre valida lo que te devuelven con isValid()
Ok, ya he probado eso, pero no vevuelve nada cuando pongo w_frame.getactivesheet(). Cuando abro una ventana de tipo Child. Uso open(ventana_child)y ya está. ¿Cómo indico que esta ventana tiene como Parent a w_frame?
El problema es que al iusar open() estas abriendo instancias individuales de las ventanas y no estas abriendo hojas en un mdi.
Tenés que usar la función openSheet().
Fíjate que con el open(), abajo en la barra de tareas te va a aparecer un proceso por cada ventana y con el opensheet() te va a aparecer uno solo.
Al MDI lo tienes que abrir con open.
Cerrá la pregunta, las preguntas activas impiden que entren nuevas

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas