MDICHILD... CENTERED ???

Post Reply
User avatar
Xevi
Posts: 168
Joined: Wed Nov 29, 2017 11:42 am
Location: Girona

MDICHILD... CENTERED ???

Post by Xevi »

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

Code: Select all

#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

#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

#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
Giovany Vecchi
Posts: 129
Joined: Mon Jun 05, 2006 9:39 pm
Location: Brasil

Re: MDICHILD... CENTERED ???

Post by Giovany Vecchi »

Tenta assim

Code: Select all

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
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: MDICHILD... CENTERED ???

Post by Antonio Linares »

Xevi,

oChild1:Center( oWnd )
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Xevi
Posts: 168
Joined: Wed Nov 29, 2017 11:42 am
Location: Girona

Re: MDICHILD... CENTERED ???

Post by Xevi »

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
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: MDICHILD... CENTERED ???

Post by Antonio Linares »

regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
José Luis Sánchez
Posts: 484
Joined: Thu Oct 13, 2005 9:23 am
Location: Novelda - Alicante - España
Contact:

Re: MDICHILD... CENTERED ???

Post by José Luis Sánchez »

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
Post Reply