Page 1 of 1

Metro resize

PostPosted: Sat Jul 19, 2014 8:23 pm
by LordJonas
He presentado una solicitud cuyo aspecto se basa en tmetro clase. En el PC funciona bien, pero el portátil no se ajusta a las dimensiones de la pantalla.

Tengo que forzar tmetro clase de auto-ajuste?

Gracias de antemano

Re: Metro resize

PostPosted: Sat Jul 19, 2014 9:23 pm
by Antonio Linares
Que resolución tienes en ambos ordenadores ?

Puedes mostrar el código de cómo lo has programado ?

Re: Metro resize

PostPosted: Sun Jul 20, 2014 10:46 am
by LordJonas
Buenas...

La resolución es de 1920x1080 en el PC y el portátil es de 1024x768.

El código fuente que estoy utilizando se basa en el ejemplo metro.prg que está en el directorio de ejemplos de FWH.

Code: Select all  Expand view
// -------------------------------------------------------------------------- //
// ----------------------------- Defini‡äes iniciais ------------------------ //
// -------------------------------------------------------------------------- //

#include "FiveWin.ch"
#include "metro.ch"

extern DbfCdx
       
// -------------------------------------------------------------------------- //
// --------------------------- Programa principal --------------------------- //
// -------------------------------------------------------------------------- //

FUNCTION Main()

    LOCAL oMain
   
    MsgLogo( "..\gfx\logotipo.png" )
        
    SET DATE TO  BRITISH
    SET DELETE   ON
    SET CONFIRM  ON
    SET SOFTSEEK ON
    
    REQUEST DBFCDX
    
    RddSetDefault( "DBFCDX" )
    
    // --------------------------------------------------------- //
    // ------------------ Inic¡o do programa ------------------- //
    // --------------------------------------------------------- //

    DEFINE METRO oMain ;
           TITLE "GESTAO INTEGRADA DA AUTARQUIA" ;
           BACKGROUND "..\gfx\logotipo.bmp"
           
    DEFINE METROBUTTON OF oMain ;
           PROMPT "Residentes" ;
           COLOR CLR_WHITE, RGB( 234, 112, 39 ) ;
           IMAGE "..\gfx\users.bmp"
          
    DEFINE METROBUTTON OF oMain ;
            PROMPT "Sair" ;
             COLOR CLR_WHITE, RGB( 2, 174, 224 ) ;
             IMAGE "..\gfx\exit.bmp" ;
             ACTION If( MsgYesNo( "Want to exit ?" ), oMain:End(),)  
          
    ACTIVATE METRO oMain

RETURN nil


Utilizo FWH 13:15 Harbour + 3.2 + BCC 5.8.2

Re: Metro resize

PostPosted: Sun Jul 20, 2014 5:00 pm
by cnavarro
Prueba a usar una funcion parecida a esta

Code: Select all  Expand view

Function CalculaRes( nTp )  // nTp -> 0 Ancho   nTp -> 1 Alto
local nAncho
local nAlto
local nPorcAnc
local nPorcAlt
DEFAULT nTp   := 0

      nAncho  := GetSysMetrics( 0 )  
      nAlto   := GetSysMetrics( 1 )  
      nPorcAnc   := Round( ( nAncho/1920 ) , 4 )
      nPorcAlt   := Round( ( nAlto/1080 ) , 4 )

Return IF( Empty( nTp ), nPorcAnc, nPorcAlt )

 


De esta manera en el metodo New de TMetro, aplicala a
Code: Select all  Expand view

METHOD New( cTitle, nBtnWidth, nBtnHeight, cFileName ) CLASS TMetro

   DEFAULT cTitle := "MyApp", nBtnWidth := 132, nBtnHeight := 132
   
   ::cTitle     = cTitle
   ::aButtons   = {}
   ::nBtnWidth  = nBtnWidth
   ::nBtnHeight = nBtnHeight
   ::nOriginX   = Round( 200 * CalculaRes( 0 ), 0 )   // Aqui
   ::nOriginY   = Round( 200 * CalculaRes( 1 ), 0 )   // Aqui
   ::nRow       =   0
   ::nCol       =   0
.../...

 


A ver si así te funciona mejor
Aunque si no pones una imagen no puedo saber cual es exactamente tu problema

Re: Metro resize

PostPosted: Sun Jul 20, 2014 5:53 pm
by LordJonas
Buenas

Mi problema es que la misma aplicación de prueba (estoy convirtiendo algunas de las aplicaciones que tienen el aspecto de metro) en el PC con bajas resoluciones (800x600 y 1024x768) pantalla de la aplicación no se consiga el sistema y no todos aparecen en la pantalla ...

Re: Metro resize

PostPosted: Mon Jul 21, 2014 11:07 am
by Antonio Linares
Prueba con el cambio que te ha indicado Cristobal