FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Ventanas MDI
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Ventanas MDI
Posted: Sun May 07, 2006 02: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
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Ventanas MDI
Posted: Mon May 08, 2006 05:15 PM

Necesitas CERRAR las FONTS al Salir.

Jo茫o Santos - S茫o Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Ventanas MDI
Posted: Mon May 08, 2006 06: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
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Ventanas MDI
Posted: Mon May 08, 2006 09: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
Posts: 694
Joined: Fri Oct 07, 2005 06:58 AM
Ventanas MDI
Posted: 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:
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
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Ventanas MDI
Posted: 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

Continue the discussion