Buscar en el Blog

viernes, 31 de julio de 2020

Cerrar todas las ventanas hijas - Powerbuilder


Para cerrar todas las ventanas hijas de un MDI realizaremos lo siguiente.
Crearemos una funcion, en mi caso la llamaré uf_closewindowchild la cual recibirá como parámetro una variable del tipo window "iw_handle"
 El código es el siguiente:

Integer li_counter,i
window lw_sheet
window aw_sheets[] 
// valido el window solicitante
if IsNull(iw_handle) or not IsValid(iw_handle) then
return
end if
// obtengo toda las hojas abiertas
lw_sheet = iw_handle.GetFirstsheet( )
if IsValid(lw_sheet) then
do
li_counter++
aw_sheets[li_counter] = lw_sheet
lw_sheet = iw_handle.GetNextSheet(lw_sheet)
loop until IsNull(lw_sheet) or not IsValid(lw_sheet)
end if

for i=1 to li_counter
close(aw_sheets[i])
next

Para usarlo basta con colocar la siguiente instrucción uf_closewindowchild(w_principal), donde w_principal es mi ventana mdi.