FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour MDICHILD... CENTERED ???
Posts: 174
Joined: Wed Nov 29, 2017 11:42 AM
MDICHILD... CENTERED ???
Posted: Sat Jan 13, 2018 07:18 PM
Resulta, que metido en mis pruebas con entorno MDI, me doy cuenta que no se "centra" una MDIChild...
#include "FiveWin.ch"

static oWnd

//----------------------------------------------------------------------------//

function Main()
   local oBar

   DEFINE WINDOW oWnd FROM 1,0 TO 500,800 PIXEL MDI

   DEFINE BUTTONBAR oBar _3D OF oWnd

   DEFINE BUTTON OF oBar ACTION child()

   ACTIVATE WINDOW oWnd

return nil

//----------------------------------------------------------------------------//

function Child()

   local oWndChild

   DEFINE WINDOW oWndChild MDICHILD OF oWnd FROM 0,0 TO 25,25

   ACTIVATE WINDOW oWndChild CENTERED

return nil

Antonio, usando el ejemplo que has puesto de simular un MDI sencillo...
Code (fw): Select all Collapse
#include "FiveWin.ch"

function Main()

   local oWnd, oChild1
   Local nClientWidth

   DEFINE WINDOW oWnd FROM 1,0 TO 500,800 PIXEL

   DEFINE WINDOW oChild1 FROM 0,100 TO 100,250 PIXEL OF oWnd
   oChild1:Center()
   oChild1:Show()

   ACTIVATE WINDOW oWnd 

Return nil
lo que hace es centrar en la pantalla, no en la ventana contenedora.
A mi entender, creo que deberia de funcionar el evento Center() del ejemplo anterior, seria lo mas "correcto"


Y para centrarlo, de momento... lo hago "calculando" el ancho/alto...
Code (fw): Select all Collapse
#include "FiveWin.ch"

function Main()

   local oWnd, oChild1
   Local nClientWidth

   DEFINE WINDOW oWnd FROM 1,0 TO 500,800 PIXEL
   nClientWidth := oWnd:GetCliAreaRect():nWidth

   DEFINE WINDOW oChild1 FROM 0, (nClientWidth-250)/2 TO 0, (nClientWidth/2)+125 PIXEL OF oWnd

   oChild1:nHeight := oWnd:GetCliAreaRect():nHeight
   oChild1:Show()

   ACTIVATE WINDOW oWnd 

Return nil
Hago algo mal???
Un Saludo,

Xevi.



Aprendiz de la vida!!!
Posts: 244
Joined: Mon Jun 05, 2006 09:39 PM
Re: MDICHILD... CENTERED ???
Posted: Sat Jan 13, 2018 11:59 PM
Tenta assim
function Child()
   local oWndChild

   DEFINE WINDOW oWndChild MDICHILD OF oWnd FROM 0,0 TO 25,25

   ACTIVATE WINDOW oWndChild On Init oWndChild:Center()

return nil
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: MDICHILD... CENTERED ???
Posted: Sun Jan 14, 2018 06:31 AM

Xevi,

oChild1:Center( oWnd )

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 174
Joined: Wed Nov 29, 2017 11:42 AM
Re: MDICHILD... CENTERED ???
Posted: Sun Jan 14, 2018 09:23 PM

Pues lo centra del ancho, pero no del alto... el alto queda "descompensado" mas espaciado arriba que abajo.

Un Saludo,

Xevi.



Aprendiz de la vida!!!
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: MDICHILD... CENTERED ???
Posted: Mon Jan 15, 2018 06:04 AM
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 564
Joined: Thu Oct 13, 2005 09:23 AM
Re: MDICHILD... CENTERED ???
Posted: Mon Jan 15, 2018 10:04 AM

Hola Xavi,

Hay otras alternativas al uso de MDI, que por otra parte creo que está superada dede hace tiempo. Echale un vistazo a mi clase TFDSI https://cincomundos.wordpress.com/?s=tfsdi que puedes ver en mis programas de alanit - http://www.alanit.com - y también al código de Colossus que la implementa - https://github.com/JoseluisSanchez/colossus

Saludos,
José Luis

Continue the discussion