FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Resoluci贸n de Pantalla
Posts: 711
Joined: Thu Oct 06, 2005 09:57 PM
Resoluci贸n de Pantalla
Posted: Tue Feb 26, 2008 07:33 AM

Con el fin de adaptar las aplicaciones a las diferentes resoluciones de pantallas (di谩logos y controles), la soluci贸n mas eficaz que he encontrado (descartada el cambio de resoluci贸n en Windows) ha sido la siguiente:

Al principio del programa, creo las variables nResoAncho y nResoAlto

nResoAncho := GetSysMetrics(0)/800
nResoAlto := GetSysMetrics(1)/600

Aplicando estas dos variables a los di谩logos, get, say, button, etc, el resultado es 贸ptimo.

Por ejemplo:

DEFINE DIALOG oDlg FROM (1 * nResoAlto), (2.5 * nResoAncho) TO ;
(30.5 * nResoAlto), (73 * nResoAncho) ....

@ 5, (10*nResoAncho) SAY "Nombre" OF oDlg PIXEL

......................

El 煤nico problema que he encontrado es que no puedo usar recursos y por tanto, las aplicaciones ya realizadas es tedioso cambiar ahora los di谩logos de recursos a c贸digo.

Mi pregunta es la siguiente:

1) 驴Alguna idea para incorporar a recursos estas variables?

2) En caso contrario, 驴podr铆a incorporar (copiar y pegar) los c贸digos del RC dentro del m贸dulo del programa?

Un saludo



Manuel
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Resoluci贸n de Pantalla
Posted: Tue Feb 26, 2008 07:45 AM

Manuel,

> 1) 驴Alguna idea para incorporar a recursos estas variables?

Los recursos s贸lo admiten valores constantes :-(

>
2) En caso contrario, 驴podr铆a incorporar (copiar y pegar) los c贸digos del RC dentro del m贸dulo del programa?
>

Podrias construir facilmente una utilidad que pasase el contenido de los ficheros RC a c贸digo PRG. Nosotros recientemente hemos publicado en estos foros un prototipo de un editor de recursos realizado en FiveWin que analiza el contenido de un fichero RC. Podr铆as usar su c贸digo como punto de partida.

Otra soluci贸n es implementar una funci贸n que realice esos ajustes de forma autom谩tica y que la llames desde la inicializaci贸n de la caja de di谩logo. De modo similar a como FiveWin usa la cla煤sula RESIZE16.

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1445
Joined: Mon Oct 10, 2005 02:38 PM
Re: Resoluci贸n de Pantalla
Posted: Tue Feb 26, 2008 01:23 PM

Manuel,

Haz un copiar pegar del c贸digo de la siguiente funci贸n, la compilas y la aplicas a una ventana. Juega con ella. Hay mucho comentario, elim铆nalo para facilitar la lectura.

En ese foro si buscas encontrar谩s incluso la manera de cambiar el tama帽o de oFont usado (yo no lo necesit茅).

/ ******** /

Include "FiveWin.ch"

/*
Los par谩metros recibidos son:

lAutoresize:    permite prescindir de la funcionalidad de esta funci贸n; permitiendo
                de esta manera que la aplicaci贸n pueda tener un flag que
                permita/deniegue el autoredimensionado de las pantallas. 03/03/2006.
nWhatSize:      permite forzar el redimensionamiento a unos valores concretos;
                permitiendo de esta manera que la aplicaci贸n pueda tener un valor
                al cual redimensionar las pantallas. 03/03/2006.
 oWnd:          Objeto/ventana/di谩logo/control a ser redimensionado.
 nResolution:   N煤mero que identifica que resoluci贸n ten铆a la pantalla en la cual
                se dise帽贸 el objeto.
                Este valor puede ser negativo, hecho que se interpretar谩 como que
                la ventana ya ha estado redimensionada previamente y se pretende
                redimensionarla a su valor original. Esta caracter铆stica es 煤til
                para provocar que un control (o ventana/dialogo) concreto se le
                devuelva su tama帽o original seg煤n su valor de dise帽o. 03/03/2006
 lRepaint:      Indicador de si debe repintarse el objeto una vez redimensionado.

Esta funci贸n permitir谩 que una aplicaci贸n desarrolada en un PC con una resoluci贸n
de pantalla de por ejemplo 1024 x 768 (nResolution valdr铆a en este caso 3), se vea
redimensionada proporcionalmente en un PC con una resoluci贸n diferente, ya sea mayor
o menor.

A falta de perfeccionar el c贸digo, se comprueba solamente la variaci贸n de la anchura
de la resoluci贸n de la pantalla para aplicar la variaci贸n del tama帽o, aunque cuando
ello se realiza se hace tanto en la anchura como en la altura.
Ahora se comprueba la altura. 09/12/2005.

Esta funci贸n est谩 orientada a ser utilizada en el evento ON INIT del ACTIVATE
de las WINDOW y DIALOG con un valor fijo de lRepaint a .T. o sin 茅l.
Adem谩s tambi茅n puede utilizarse directamente sobre un control definido posteriormente
a la ACTIVACI脫N de su contenedor ya sea 茅ste WINDOW o DIALOG, con la salvedad que
lRepaint debe valer .T. para forzar su repintado.

Ejemplos de uso:

      -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -*
      Se redimensiona toda la ventana oWnd y sus controles.

      ACTIVATE oWnd ON INIT AutoResiz( .T., 0, oWnd, 3 )

      -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -*
      Se redimensiona todo el dialogo oDlg y sus controles. Adem谩s se fuerza que el control
      oMyMulGet se redimensione como si la resoluci贸n de pantalla fuera del tipo 2.

      ACTIVATE oDlg ON INIT AutoResiz( .T., 0, oWnd, 3 )

      AutResiz( .T., 2, oMyMulGet, 0)


      -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -*
      Se redimensiona el control oTabs.
      @ 185.50,8.00 TABS oTabs OF oWnd ITEMS "Tab1","Tab2","Venga a ordenarrrrr!!" ;
      PIXEL COLORS CLR_BLUE,CLR_HCYAN SIZE 288.00,9.00 MESSAGE "Mensaje del Tabs"

      AutoResiz( .T., 0, oTabs, 3, .T. )

      -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -* -*

*/

FUNCTION AutResiz( lAutoresize, nWhatSize, oWnd, nResolution, lRepaint )

// Resoluci贸n de la pantalla en el momento de definir los controles.
Local nOriWidth, nOriHeight

// Lo normal ser铆a que fuera la resoluci贸n actual de la pantalla (nWhatSize=0).
// Se permite forzar esta resoluci贸n mediante el valor de nWhatSize=1,2,3,4,5,6,7,....
Local nWidth, nHeight

// Son la relaci贸n entre la resoluci贸n de pantalla y la resoluci贸n de dise帽o.
Local nFactorWitdh, nFactorHeight

Local nContador

DEFAULT lRepaint := .T.

nOriWidth := 0
nOriHeight := 0
nWidth := 0
nHeight := 0
nContador := 0

If ABS(nResolution) = 1
nOriWidth := 640
nOriHeight := 480
ElseIf ABS(nResolution) = 2
nOriWidth := 800
nOriHeight := 600
ElseIf ABS(nResolution) = 3
nOriWidth := 1024
nOriHeight := 768
ElseIf ABS(nResolution) = 4
nOriWidth := 1152
nOriHeight := 864
ElseIf ABS(nResolution) = 5
nOriWidth := 1280
nOriHeight := 800
ElseIf ABS(nResolution) = 6
nOriWidth := 1280
nOriHeight := 1024
ElseIf ABS(nResolution) = 7
nOriWidth := 1600
nOriHeight := 1200
ElseIf ABS(nResolution) = 8
nOriWidth := 768
nOriHeight := 1024
Else
ScrResolution( @nOriWidth, @nOriHeight )
Endif

//If nWhatSize = 0
// ScrResolution( @nWidth, @nHeight )
//ElseIf nWhatSize = 1

If nWhatSize = 1
nWidth := 640
nHeight := 480
ElseIf nWhatSize = 2
nWidth := 800
nHeight := 600
ElseIf nWhatSize = 3
nWidth := 1024
nHeight := 768
ElseIf nWhatSize = 4
nWidth := 1152
nHeight := 864
ElseIf nWhatSize = 5
nWidth := 1280
nHeight := 800
ElseIf nWhatSize = 6
nWidth := 1280
nHeight := 1024
ElseIf nWhatSize = 7
nWidth := 1600
nHeight := 1200
ElseIf nWhatSize = 8
nWidth := 768
nHeight := 1024
Else

ScrResolution( @nWidth, @nHeight )

/*
If oWnd:ClassName() = "TMDICHILD"
    nWidth  := oWnd:oWnd:nRight  - oWnd:oWnd:nLeft - 10
    nHeight := oWnd:oWnd:nBottom - oWnd:oWnd:nTop - 0
ElseIf oWnd:oWnd:ClassName() = "TMDICHILD"
    nWidth  := oWnd:oWnd:oWnd:nRight  - oWnd:oWnd:oWnd:nLeft - 10
    nHeight := oWnd:oWnd:oWnd:nBottom - oWnd:oWnd:oWnd:nTop - 0
Else
    ScrResolution( @nWidth, @nHeight )
EndIf

//ScrResolution( @nWidth, @nHeight )
*/

Endif

//ScrResolution( @nWidth, @nHeight )

/*
Traza( 1, "nOriWidth=", nOriWidth )
Traza( 1, "nOriHeight=", nOriHeight )

Traza( 1, "nWidth=", nWidth )
Traza( 1, "nHeight=", nHeight )
*/

//Traza( 1, "oWnd:ClassName()=", oWnd:ClassName() )

//If nOriWidth != nWidth // .or.
If lAutoresize .and. nOriHeight != nHeight

/* Este ser谩 el caso habitual, en el cual se pretende redimensionar
   los controles a la resoluci贸n de la pantalla en la cual se estan
   viendo. 01/03/2006  */
If nResolution > 0

    nFactorWitdh  := nWidth / nOriWidth
    nFactorHeight := nHeight / nOriHeight

/* Este ser谩 el caso en el cual se pretende deshacer el redimensionamiento
   de los controles realizado previamente. */
ElseIf nResolution < 0

    nFactorWitdh  := nOriWidth / nWidth
    nFactorHeight := nOriHeight / nHeight

EndIf

//oWnd:CoorsUpdate()

If lRepaint
    oWnd:Hide()
EndIf

//If nFactorWitdh > 1 // .or.
If nFactorHeight > 1

    //Traza( 1, "Aumentando tama帽o." )

    If oWnd:ClassName() == "kalimeroquetequiero"

    ElseIf oWnd:ClassName() $ "/TJ02LISMN/TLISTBOX/"

/ Traza( 1, "oWnd:nTop=", oWnd:nTop )
Traza( 1, "oWnd:nLeft=", oWnd:nLeft )
Traza( 1, "oWnd:nWidth=", oWnd:nWidth )
Traza( 1, "oWnd:nHeight=", oWnd:nHeight )
/
oWnd:Move( oWnd:nTop * nFactorHeight , ;
oWnd:nLeft * nFactorWitdh, ;
oWnd:nWidth * nFactorWitdh, ;
oWnd:nHeight , ;
.F. )
Else

        oWnd:Move( oWnd:nTop * nFactorHeight , ;
                   oWnd:nLeft * nFactorWitdh, ;
                   oWnd:nWidth * nFactorWitdh, ;
                   oWnd:nHeight * nFactorHeight , ;
                   .F. )
    EndIf
EndIf

If oWnd:ClassName() == "TFOLDER"

// Traza( 1, "ValType(oWnd:aDialogs)=", ValType(oWnd:aDialogs) )
If ValType( oWnd:aDialogs ) = "A"
For nContador := 1 To Len( oWnd:aDialogs )
AutResiz( lAutoresize, nWhatSize, oWnd:aDialogs[nContador], nResolution, .F. )
EndFor
EndIf
Else
// Traza( 1, "ValType(oWnd:aControls)=", ValType(oWnd:aControls) )
If ValType( oWnd:aControls ) = "A"
For nContador := 1 To Len( oWnd:aControls )
AutResiz( lAutoresize, nWhatSize, oWnd:aControls[nContador], nResolution, .F. )
EndFor
EndIf
EndIf

//If nFactorWitdh < 1 // .or.
If nFactorHeight < 1

    //Traza( 1, "Disminuyendo tama帽o." )

    If oWnd:ClassName() == "kalimeroquetequiero"

    ElseIf oWnd:ClassName() $ "/TJ02LISMN/TLISTBOX/"

/ Traza( 1, "oWnd:nTop=", oWnd:nTop )
Traza( 1, "oWnd:nLeft=", oWnd:nLeft )
Traza( 1, "oWnd:nWidth=", oWnd:nWidth )
Traza( 1, "oWnd:nHeight=", oWnd:nHeight )
/

        //Traza( 1, "oWnd:nRight=", oWnd:nRight )
        //Traza( 1, "oWnd:nBottom=", oWnd:nBottom )

        oWnd:Move( oWnd:nTop * nFactorHeight , ;
                   oWnd:nLeft * nFactorWitdh, ;
                   oWnd:nWidth * nFactorWitdh, ;
                   oWnd:nHeight , ;
                   .F. )
        //oWnd:SetSize( oWnd:nWidth * nFactorWitdh, oWnd:nHeight * nFactorHeight, .T. )

/ Traza( 1, "oWnd:nTop=", oWnd:nTop )
Traza( 1, "oWnd:nLeft=", oWnd:nLeft )
Traza( 1, "oWnd:nWidth=", oWnd:nWidth )
Traza( 1, "oWnd:nHeight=", oWnd:nHeight )
/

    Else

        oWnd:Move( oWnd:nTop * nFactorHeight , ;
                   oWnd:nLeft * nFactorWitdh, ;
                   oWnd:nWidth * nFactorWitdh, ;
                   oWnd:nHeight * nFactorHeight , ;
                   .F. )
    EndIf
EndIf

If lRepaint
    oWnd:Show()
EndIf

EndIf

Return Nil
/ ******** /

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Posts: 711
Joined: Thu Oct 06, 2005 09:57 PM
Re: Resoluci贸n de Pantalla
Posted: Wed Feb 27, 2008 06:37 AM
FiveWiDi wrote:
lAutoresize: permite prescindir de la funcionalidad de esta funci贸n;


Carlos,

La funci贸n Autoresize, fu茅 la primera opci贸n que prob茅, y aunque resulta practica para adaptar el tama帽o de la ventana-dialogo, es complicado para cambiar Say, Get y el resto de los controles. Para mi, la soluci贸n que estoy aplicando ahora resulta muy f谩cil y pr谩ctica. El 煤nico problema que tengo es aplicarla a los recursos.
Un saludo



Manuel
Posts: 1445
Joined: Mon Oct 10, 2005 02:38 PM
Re: Resoluci贸n de Pantalla
Posted: Wed Feb 27, 2008 07:52 AM
Manuel Valdenebro wrote:
FiveWiDi wrote:
lAutoresize: permite prescindir de la funcionalidad de esta funci贸n;


Carlos,

La funci贸n Autoresize, fu茅 la primera opci贸n que prob茅, y aunque resulta practica para adaptar el tama帽o de la ventana-dialogo, es complicado para cambiar Say, Get y el resto de los controles. Para mi, la soluci贸n que estoy aplicando ahora resulta muy f谩cil y pr谩ctica. El 煤nico problema que tengo es aplicarla a los recursos.


C贸mo usabas Autoresize? Porqu茅 es complicado aplicarlo a Say y Get?

Saludos
Carlos G.

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Posts: 711
Joined: Thu Oct 06, 2005 09:57 PM
Re: Resoluci贸n de Pantalla
Posted: Wed Feb 27, 2008 10:12 AM
FiveWiDi wrote:C贸mo usabas Autoresize? Porqu茅 es complicado aplicarlo a Say y Get?


La us茅 en varios di谩logos a帽adiendo autresize() a la clausula ON INIT

Resimensionaba el di谩logo, pero no lo centraba en la pantalla.

Si puedes, publica un ejemplo de modificaci贸n de un di谩logo, donde existan say, get, checkbock, buttonbmp, etc para ver como tu lo aplicas, tanto con codigo como desde recursos.
No es necesario pongas la funcion AUTRESIZE() que ya la tengo.



Muchas gracias
Un saludo



Manuel
Posts: 1445
Joined: Mon Oct 10, 2005 02:38 PM
Re: Resoluci贸n de Pantalla
Posted: Wed Feb 27, 2008 12:04 PM
Manuel Valdenebro wrote:
FiveWiDi wrote:C贸mo usabas Autoresize? Porqu茅 es complicado aplicarlo a Say y Get?


La us茅 en varios di谩logos a帽adiendo autresize() a la clausula ON INIT

Resimensionaba el di谩logo, pero no lo centraba en la pantalla.

Si puedes, publica un ejemplo de modificaci贸n de un di谩logo, donde existan say, get, checkbock, buttonbmp, etc para ver como tu lo aplicas, tanto con codigo como desde recursos.
No es necesario pongas la funcion AUTRESIZE() que ya la tengo.
Muchas gracias


Manuel,

Busca:
If lRepaint
oWnd:Show()
EndIf
y sustit煤yelo por:
If lRepaint
If( ( "DIALOG" $ oWnd:Classname() ) .and. oWnd:lCentered, WndCenter( oWnd:hWnd ) , Nil )
oWnd:Show()
EndIf

creo que ahora deber铆a centrar los DIALOG (el nativo de FiveWin TDIALOG, y los propios tipo MYTDIALOG, ...)

Por otro lado, si se aplica en la cl脿usula INIT del ACTIVATE, deber铆a redimensionar los controles.

Saludos
Carlos G.

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Posts: 711
Joined: Thu Oct 06, 2005 09:57 PM
Re: Resoluci贸n de Pantalla
Posted: Thu Feb 28, 2008 11:17 AM
FiveWiDi wrote:creo que ahora deber铆a centrar los DIALOG (el nativo de FiveWin TDIALOG, y los propios tipo MYTDIALOG, ...)Por otro lado, si se aplica en la cl脿usula INIT del ACTIVATE, deber铆a redimensionar los controles.


Carlos,
Realizada la modificaci贸n, ahora si vuelve a centrar el di谩logo. Pero los controles del dialogo, aunque los modifica, no los realiza correctamente. El listbox no respeta la anchura de los campos que se muestran y los botones, aunque los modifica, no quedan proporcionales a como estaban antes.
Un saludo



Manuel
Posts: 1445
Joined: Mon Oct 10, 2005 02:38 PM
Re: Resoluci贸n de Pantalla
Posted: Thu Feb 28, 2008 12:49 PM
Manuel Valdenebro wrote:
FiveWiDi wrote:creo que ahora deber铆a centrar los DIALOG (el nativo de FiveWin TDIALOG, y los propios tipo MYTDIALOG, ...)Por otro lado, si se aplica en la cl脿usula INIT del ACTIVATE, deber铆a redimensionar los controles.


Carlos,
Realizada la modificaci贸n, ahora si vuelve a centrar el di谩logo. Pero los controles del dialogo, aunque los modifica, no los realiza correctamente. El listbox no respeta la anchura de los campos que se muestran y los botones, aunque los modifica, no quedan proporcionales a como estaban antes.


Busca en el c贸digo de la funci贸n el literal "TFOLDER", y donde aparezca sustituye los condicionales por los siguientes:

If oWnd:ClassName() == "TFOLDER"
If ValType( oWnd:aDialogs ) = "A"
For nContador := 1 To Len( oWnd:aDialogs )
AutResiz( lAutoresize, nWhatSize, oWnd:aDialogs[nContador], nResolution, .F. )
EndFor
EndIf
ElseIF oWnd:Classname() == "TWBROWSE"
AEval( oWnd:aColSizes, { | eCol | eCol = (eCol * nFactorWitdh) } )
Else
If ValType( oWnd:aControls ) = "A"
For nContador := 1 To Len( oWnd:aControls )
AutResiz( lAutoresize, nWhatSize, oWnd:aControls[nContador], nResolution, .F. )
EndFor
EndIf
EndIf

Este nuevo condicional no lo he probado, creo que deber铆a funcionar al menos para los TWBROSE.

El tema de los BUTTON no lo veo claro. En principio deber铆an pintarse correctamente, a mi en un entorno MDI as铆 lo hace.
Utilizas variantes de BUTTON?

Saludos
Carlos G.

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Posts: 711
Joined: Thu Oct 06, 2005 09:57 PM
Re: Resoluci贸n de Pantalla
Posted: Thu Feb 28, 2008 07:51 PM
FiveWiDi wrote:
ElseIF oWnd:Classname() == "TWBROWSE"
AEval( oWnd:aColSizes, { | eCol | eCol = (eCol * nFactorWitdh) } )
Este nuevo condicional no lo he probado, creo que deber铆a funcionar al menos para los TWBROSE.


Carlos,

En primer lugar, muchas gracias por tu ayuda.

Al final, ha funcionado la redimensi贸n de los campos del wBrowse, con lo siguiente:

// redimension automatica campos wBrowse
ElseIF oWnd:Classname() == "TWBROWSE"
FOR nSize=1 TO LEN (oWnd:aColSizes)
oWnd:AcolSizes[nSize] *= nFactorWitdh
NEXT

Aunque estoy trabajando con un sistema h铆brido (el tuyo y el mio) y en este caso, como en el REDEFINE del BROWSE aparecen los SIZE, es facil multiplicar cada uno por nAncho. Por otro lado, para centrar los Headers, tambien lo hago de esta forma.
Un saludo



Manuel
Posts: 1445
Joined: Mon Oct 10, 2005 02:38 PM
Re: Resoluci贸n de Pantalla
Posted: Thu Feb 28, 2008 10:04 PM
Manuel Valdenebro wrote:
Carlos,

En primer lugar, muchas gracias por tu ayuda.

Al final, ha funcionado la redimensi贸n de los campos del wBrowse, con lo siguiente:

// redimension automatica campos wBrowse
ElseIF oWnd:Classname() == "TWBROWSE"
FOR nSize=1 TO LEN (oWnd:aColSizes)
oWnd:AcolSizes[nSize] *= nFactorWitdh
NEXT

Aunque estoy trabajando con un sistema h铆brido (el tuyo y el mio) y en este caso, como en el REDEFINE del BROWSE aparecen los SIZE, es facil multiplicar cada uno por nAncho. Por otro lado, para centrar los Headers, tambien lo hago de esta forma.


No hay de que; de paso estoy aplicando estas mejoras en mi sistema.

Saludos
Carlos G.

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Posts: 581
Joined: Tue Oct 11, 2005 11:28 AM
Resoluci贸n de Pantalla
Posted: Thu Feb 28, 2008 10:12 PM

Carlos, Manuel,

Una pregunta: 驴Esto funcionaria con dialogs hechas desde recursos?

Saludos,

Kleyber Derick



FWH / xHb / xDevStudio / SQLLIB
Posts: 711
Joined: Thu Oct 06, 2005 09:57 PM
Resoluci贸n de Pantalla
Posted: Thu Feb 28, 2008 10:35 PM
Kleyber wrote:Carlos, Manuel,

Una pregunta: 驴Esto funcionaria con dialogs hechas desde recursos?

Saludos,


Kleiber,

Funciona en dialogos desde recursos. Desde c贸digo, en mi opini贸n, es mas f谩cil la soluci贸n que yo propongo al principio.
Un saludo



Manuel
Posts: 581
Joined: Tue Oct 11, 2005 11:28 AM
Resoluci贸n de Pantalla
Posted: Thu Feb 28, 2008 11:00 PM

Gracias, Manuel. Lo voy a probar, entonces.

saludos,

Kleyber Derick



FWH / xHb / xDevStudio / SQLLIB
Posts: 46
Joined: Fri Mar 09, 2007 01:31 PM
Resoluci贸n de pantalla.
Posted: Fri Feb 29, 2008 01:25 PM

Hola,

Comentaros mi experiencia al respecto de resolucion de pantalla, yo tuve ese mismo problema tiempo atr脿s y en el foro me aconsejaron que utilizara la funcion Autoresiz(), como utilizaba recursos tuve que realizar una serie de ajustes en la funcion como los que os han sido indicados en el foro. En el tema de recursos, el problema se centraba en los textos fijos y la solucion pasa por definirlos en el RC con un identificador (distinto de -1), por ejemplo 101, etc.), de forma que en el programa se haga lo suiguiente:

redefine say prompt ' ... ...' of odlg id 101

De esta manera, cuando se cambia la resolucion estos textos tambien se dimensionan.

Ojo, importante es no definir fonts en el RC (ya que todavia no he conseguido que se dimensionen cuando est脿n definidos).

Suerte.