Ventanas MDI

Ventanas MDI

Postby Armando » Sun May 07, 2006 2:54 am

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
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
User avatar
Armando
 
Posts: 3068
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Postby karinha » Mon May 08, 2006 5:15 pm

Necesitas CERRAR las FONTS al Salir.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7261
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Postby Armando » Mon May 08, 2006 6:59 pm

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
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
User avatar
Armando
 
Posts: 3068
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Postby karinha » Mon May 08, 2006 9:13 pm

Intente en el MENU PRINCIPAL en el Inicio:

#Include "Objects.Ch"
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7261
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Postby fgondi » Mon May 08, 2006 10:29 pm

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:
Code: Select all  Expand view
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 Sistemas Informáticos
User avatar
fgondi
 
Posts: 694
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España

Postby Armando » Tue May 09, 2006 12:34 am

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
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
User avatar
Armando
 
Posts: 3068
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 10 guests