MDICHILD... CENTERED ???

MDICHILD... CENTERED ???

Postby Xevi » Sat Jan 13, 2018 7:18 pm

Resulta, que metido en mis pruebas con entorno MDI, me doy cuenta que no se "centra" una MDIChild...

Code: Select all  Expand view

#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: Select all  Expand view

#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: Select all  Expand view

#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!!!
User avatar
Xevi
 
Posts: 174
Joined: Wed Nov 29, 2017 11:42 am
Location: Girona

Re: MDICHILD... CENTERED ???

Postby Giovany Vecchi » Sat Jan 13, 2018 11:59 pm

Tenta assim

Code: Select all  Expand view

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

 
User avatar
Giovany Vecchi
 
Posts: 223
Joined: Mon Jun 05, 2006 9:39 pm
Location: Brasil

Re: MDICHILD... CENTERED ???

Postby Antonio Linares » Sun Jan 14, 2018 6:31 am

Xevi,

oChild1:Center( oWnd )
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: MDICHILD... CENTERED ???

Postby Xevi » Sun Jan 14, 2018 9: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!!!
User avatar
Xevi
 
Posts: 174
Joined: Wed Nov 29, 2017 11:42 am
Location: Girona

Re: MDICHILD... CENTERED ???

Postby Antonio Linares » Mon Jan 15, 2018 6:04 am

regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: MDICHILD... CENTERED ???

Postby José Luis Sánchez » 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
User avatar
José Luis Sánchez
 
Posts: 556
Joined: Thu Oct 13, 2005 9:23 am
Location: Novelda - Alicante - España


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 18 guests