In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Diferentes resoluciones en equipos del cliente.

Foro público de Xailer en español
Responder
Sergio Ibarra
Mensajes: 10
Registrado: Mié Sep 10, 2008 12:51 am

Diferentes resoluciones en equipos del cliente.

Mensaje por Sergio Ibarra »

Hola amigos:
Les pido que me ayuden a encontrar una solución a lo siguiente:
¿Como puedo controlar desde Xailer el uso del area cliente del monitor
para que independientemente de la resolución de las PC donde se instale
la misma aplicación, el tamaño de sus formularios se ajuste en forma
automática y quepan sin el scroll extra que se agrega en forma
indeseable (sobre todo el vertical) en dicha area cliente?
He pensado en mutilar los formularios y al hacer pruebas funciona bien,
sin embargo cuando se corre la aplicación en una PC con mayor resolución
se ven muy chiquitos los formularios y dan la impresión de falta de
habilidad en el diseño.
Observo el comportamiento de Office y me doy cuenta de que posee el
control automático que deseo darle a mi aplicación, pues Office se
ajusta siempre a las posibilidades de cada PC sin problemas.
Se que la clase TScreen() proporciona la siguiente información:
WITH OBJECT oScreen := TScreen()
aMon := :aMonitors // Regresa un array vacio
aRes1 := :PaperRes()
aRes2 := :Resolution()
nBits := :nBitsPerPixel // Regresa NIL
nPixe := :nPixelsPerInch // Regresa NIL
:New()
:Create()
END
A pesar de que tres propiedades de la clase TScreen() (aMonitors,
nBitsPerPixel, nPixelsPerInch) no ofrecen información, los métodos
PaperRes() y Resolution() si nos dan la resolución y a partir de alli
quizá se pueda efectuar el control automático que les comento.
Gracias por su ayuda.
Sergio Ibarra Luna
seribalun@live.com.mx
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Diferentes resoluciones en equipos del cliente.

Mensaje por jfgimenez »

Sergio,
> WITH OBJECT oScreen := TScreen()
> aMon := :aMonitors // Regresa un array vacio
> aRes1 := :PaperRes()
> aRes2 := :Resolution()
> nBits := :nBitsPerPixel // Regresa NIL
> nPixe := :nPixelsPerInch // Regresa NIL
> :New()
> :Create()
> END
Esas propiedades te devuelven Nil porque estás creando una nueva instancia
de TScreen, y no estás usando el objeto Screen público de Xailer. Prueba a
poner:
LogDebug( Screen:nBitsPerPixels, Screen:nPixelsPerInch )
y verás que sí devuelven el valor correcto.
Respecto al problema de fondo de la resolución del monitor, hemos estado
haciendo varias pruebas recientemente para "escalar" sobre la marcha los
formularios, dándole previamente un valor a ese factor de escala. P.ej., con
un factor de escala de 1.25 los formularios serían un 25% más grandes,
incluida la fuente y el tamaño de todos los controles. No obstante, es una
técnica que todavía requiere de un tiempo de puesta a punto, y tardaremos
algo en sacarla, pero estará sin duda para la versión 2.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Responder