Amigos del foro:
En una aplicación donde uso ventanas MDI cuyo código muestro a continuación:
DEFINE WINDOW oWnd MDICHILD OF oWindow FROM 0,0 TO 30,54
oWnd:bGotFocus = { || oDlg:SetFocus() }
DEFINE DIALOG oDlg RESOURCE "BrwFac" OF oWnd FONT oFont
ACTIVATE DIALOG oDlg NOWAIT ON INIT oDlg:MOVE(0,0) VALID ! GetASyncKey(VK_ESCAPE)
ACTIVATE WINDOW oWnd ON INIT (oWnd:SETSIZE(oDlg:nWidth,oDlg:nHeight+29));
ON RESIZE (oWnd:SETSIZE(oDlg:nWidth,oDlg:nHeight+29));
MAXIMIZED VALID (oWnd:=NIL,Cierra(oFac,oDlg))
Se me presenta un caso muy curioso, tal como esta el código cuando abro dos o mas ventanas y despues cierro una de ellas me tira el error
ERROR OBJECTS/8 NO OBJECTS MSG UNDEFINED SETSIZE
El error apunta a la línea donde esta la clausula MXIMIZED
Obviamente si quito la clausula MAXIMIZED el error no se presenta sin embargo necesito que al abrir la ventana esta se maximize.
Alguien que me indique como abrir las ventanas MDI correctamente ?
Saludos a todos
Ventanas MDI
Ventanas MDI
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Joao:
Te agradezco el interes, las FONT se estan cerrando en la funcion Cierra()
STATIC FUNCTION Cierra()
oFont1:END()
oFont2:END()
oIcono:END()
FOR nVez := 1 TO LEN(aAlias)
(aAlias[nVez])->(DBCLOSEAREA())
NEXT
RETURN (.T.)
Pero aún asi tira el error.
Saludos, Armando
Te agradezco el interes, las FONT se estan cerrando en la funcion Cierra()
STATIC FUNCTION Cierra()
oFont1:END()
oFont2:END()
oIcono:END()
FOR nVez := 1 TO LEN(aAlias)
(aAlias[nVez])->(DBCLOSEAREA())
NEXT
RETURN (.T.)
Pero aún asi tira el error.
Saludos, Armando
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Hola Armando
El problema viene de la clausula ON RESIZE. En ella llamas al evento oWnd:SetSize.
Cuando cierras una ventana, se llama en algun momento a Resize. No se donde se llama ni porque se llama, creo que debería estar controlado esa ejecución para que no se produjera.
De todas formas prueba a incluir la validación de si oWnd<>NIL para saber si tienes que ejecutar oWnd:SetSize:
El problema viene de la clausula ON RESIZE. En ella llamas al evento oWnd:SetSize.
Cuando cierras una ventana, se llama en algun momento a Resize. No se donde se llama ni porque se llama, creo que debería estar controlado esa ejecución para que no se produjera.
De todas formas prueba a incluir la validación de si oWnd<>NIL para saber si tienes que ejecutar oWnd:SetSize:
Code: Select all
ACTIVATE WINDOW oWnd ON INIT (oWnd:SETSIZE(oDlg:nWidth,oDlg:nHeight+29));
ON RESIZE ( if( oWnd<>NIL, oWnd:SETSIZE(oDlg:nWidth,oDlg:nHeight+29), ));
MAXIMIZED VALID (oWnd:=NIL,Cierra(oFac,oDlg))
Un saludo
Fernando González Diez
ALSIS GHE Sistemas Informáticos
Fernando González Diez
ALSIS GHE Sistemas Informáticos
João y Fernando:
Habia yo brincado el problema sacando la claúsula MAXIMIZED
pero con el IF que sugirió FGondi el problema se ha solucionado
definitivamente aún si abro la ventana MAXIMIZADA.
Muchas gracias a ambos por su tiempo y sapiencia.
Saludos, Armando
Habia yo brincado el problema sacando la claúsula MAXIMIZED
pero con el IF que sugirió FGondi el problema se ha solucionado
definitivamente aún si abro la ventana MAXIMIZADA.
Muchas gracias a ambos por su tiempo y sapiencia.
Saludos, Armando
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero