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.

Como usar nScale

Foro público de Xailer en español
Responder
Sommus
Mensajes: 310
Registrado: Vie Jul 24, 2009 9:39 pm

Como usar nScale

Mensaje por Sommus »

Prezados,
Tenho uma aplicação que quero que ela esteja no mesmo "tamanho" na tela,
independente da resolução de ví­deo. A propriedade "nScale" de TApplication
até funciona bem, mas como calcular a proporção se desenvolvi a aplicação
para 1024x768, quando o usuário utilizar, por exemplo, 1440x900 ?
O maior problema é que o percentual de 1024 para 1440 é um, e o percentual
de 768 para 900 é outro.
Desde já agradeço
Reginaldo
jlalin
Mensajes: 926
Registrado: Sab Dic 25, 2010 11:10 pm

Como usar nScale

Mensaje por jlalin »

Reginaldo,
en samplesautoscale tienes un ejemplo de uso y si quieres evitar hacer
cálculos usa la propiedad TApplication:lAutoScale.
Saludos,
José Lalí­n
Sommus
Mensajes: 310
Registrado: Vie Jul 24, 2009 9:39 pm

Como usar nScale

Mensaje por Sommus »

Caro José Latin,
Obrigado por responder...
Realmente, "nScale" funciona bem... Não vi a utilidade de "lAutoScale"...
Mas a questão é que a mesma janela (tela cheia) fica diferente, dependendo
da resolução de ví­deo. Estou fazendo uma tela de PDV (Ponto de venda) e o
que eu precisava é que independente da resolução de ví­deo ela teria o mesmo
"desenho", ocuparia o mesmo espaço em toda a tela...
Att.
"José Lalí­n" <dezac@corevia.com> escreveu na notí­cia da
mensagem:4e2094b6$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Reginaldo,
>
> en samplesautoscale tienes un ejemplo de uso y si quieres evitar hacer
> cálculos usa la propiedad TApplication:lAutoScale.
>
> Saludos,
> José Lalí­n
>
jlalin
Mensajes: 926
Registrado: Sab Dic 25, 2010 11:10 pm

Como usar nScale

Mensaje por jlalin »

Reginaldo,
> Realmente, "nScale" funciona bem... Não vi a utilidade de "lAutoScale"...
Es lo mismo pero es la aplicación se encarga de calcular el valor de nScale.
Si quieres ver cómo se calcula el valor de nScale, mira en el fuente de
TApplication.prg el método SetScale().
Saludos,
José Lalí­n
Sommus
Mensajes: 310
Registrado: Vie Jul 24, 2009 9:39 pm

Como usar nScale

Mensaje por Sommus »

Caro José Lalí­n
Talvez eu esteja fazendo algo errado, mas, no meu caso, o "lAutoScale" não
fez efeito algum, se eu coloco a resolução 1440x900, por exemplo, o
formulário fica menor, e deveria ficar no mesmo tamanho que na resolução
1024x768. Ou seja, não fez diferença, lAutoScale:=.F. ou lAutoScale:=.T.
PS: Estou testando isso no WINDOWS 7, talvez seja a versão do windows... e
estou compilando com a versão demo do xailer 2.4
Att.
"José Lalí­n" <dezac@corevia.com> escreveu na notí­cia da
mensagem:4e209a44$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Reginaldo,
>
>> Realmente, "nScale" funciona bem... Não vi a utilidade de "lAutoScale"...
>
> Es lo mismo pero es la aplicación se encarga de calcular el valor de
> nScale.
>
> Si quieres ver cómo se calcula el valor de nScale, mira en el fuente de
> TApplication.prg el método SetScale().
>
> Saludos,
> José Lalí­n
>
Avatar de Usuario
Marcelo Coelho Silva
Mensajes: 269
Registrado: Sab May 31, 2008 4:49 pm
Ubicación: Brasil
Contactar:

Como usar nScale

Mensaje por Marcelo Coelho Silva »

Prezado Reginaldo,
Fiz Teste com o Xailer (DEMO) 2.1.4 e 2.4, utilizando o exemplo
"autoscale", em um micro co WINDOWS 7 (32 bits) e também não teve
diferença entre abrir as janelas (os botíµes da aplicação) com a opção
AUTOSCALE marcada ou não.
Att.
Marcelo Coelho Silva
Mhacker Software
Brasil.
Em 15/07/2011 20:25, Sommus - Reginaldo escreveu:
> Caro José Lalí­n
>
> Talvez eu esteja fazendo algo errado, mas, no meu caso, o "lAutoScale"
> não fez efeito algum, se eu coloco a resolução 1440x900, por exemplo, o
> formulário fica menor, e deveria ficar no mesmo tamanho que na resolução
> 1024x768. Ou seja, não fez diferença, lAutoScale:=.F. ou lAutoScale:=.T.
>
> PS: Estou testando isso no WINDOWS 7, talvez seja a versão do windows...
> e estou compilando com a versão demo do xailer 2.4
>
> Att.
>
> "José Lalí­n" <dezac@corevia.com> escreveu na notí­cia da
> mensagem:4e209a44$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>> Reginaldo,
>>
>>> Realmente, "nScale" funciona bem... Não vi a utilidade de
>>> "lAutoScale"...
>>
>> Es lo mismo pero es la aplicación se encarga de calcular el valor de
>> nScale.
>>
>> Si quieres ver cómo se calcula el valor de nScale, mira en el fuente
>> de TApplication.prg el método SetScale().
>>
>> Saludos,
>> José Lalí­n
>>
Att.

Marcelo Coelho Silva
Brasil.
jlalin
Mensajes: 926
Registrado: Sab Dic 25, 2010 11:10 pm

Como usar nScale

Mensaje por jlalin »

Reginaldo,
disculpa, te habí­a entendido mal. Las propiedades nScale y lAutoScale
sirven para cambiar la escala de las fuentes automáticamente basando los
cálculos en el tamaño de la fuente establecida en el sistema.
Saludos,
José Lalí­n
jlalin
Mensajes: 926
Registrado: Sab Dic 25, 2010 11:10 pm

Como usar nScale

Mensaje por jlalin »

Reginaldo,
si lo que necesitas es cambiar el valor de nScale en tiempo de ejecución,
añade un botón al test AutoScale y pon este código:
METHOD Button4Click( oSender ) CLASS TForm1
// 800 es el tamaño del form en tiempo de diseño
Screen:GetValues()
Application:nScale := ( Screen:nWidth * 100 ) / 800
RETURN Nil
Ahora puedes cambiar la resolución de pantalla desde las propiedades del
escritorio y verás que cada vez que ejecutes RunForm2, 3 y 4 el formulario
se irá adaptando al tamaño actual.
Saludos,
José Lalí­n
ALINE
Mensajes: 30
Registrado: Jue Feb 03, 2011 11:25 am

Como usar nScale

Mensaje por ALINE »

Buenas tardes,
He probado el ejemplo anterior, y esta fórmula no funcionó.
Coloque el 1024 X 768 de resolución y ejecutar el ejemplo adjunto.
Form1 no se ha adaptado a la resolución.
Gracias!
jlalin
Mensajes: 926
Registrado: Sab Dic 25, 2010 11:10 pm

Como usar nScale

Mensaje por jlalin »

Aline,
relee el mensaje anterior. Deber cambiar el valor 800 por la resolución de
la pantalla en tiempo de diseño.
Saludos,
José Lalí­n
ALINE
Mensajes: 30
Registrado: Jue Feb 03, 2011 11:25 am

Como usar nScale

Mensaje por ALINE »

Gracias!
Sommus
Mensajes: 310
Registrado: Vie Jul 24, 2009 9:39 pm

Como usar nScale

Mensaje por Sommus »

José,
Parece que funciona... Mas, não consegui entender o que é o 800
Att.
Reginaldo
"José Lalí­n" <dezac@corevia.com> escreveu na notí­cia da
mensagem:4e23e893$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Reginaldo,
>
> si lo que necesitas es cambiar el valor de nScale en tiempo de ejecución,
> añade un botón al test AutoScale y pon este código:
>
> METHOD Button4Click( oSender ) CLASS TForm1
>
> // 800 es el tamaño del form en tiempo de diseño
> Screen:GetValues()
> Application:nScale := ( Screen:nWidth * 100 ) / 800
>
> RETURN Nil
>
> Ahora puedes cambiar la resolución de pantalla desde las propiedades del
> escritorio y verás que cada vez que ejecutes RunForm2, 3 y 4 el formulario
> se irá adaptando al tamaño actual.
>
> Saludos,
> José Lalí­n
>
Sommus
Mensajes: 310
Registrado: Vie Jul 24, 2009 9:39 pm

Como usar nScale

Mensaje por Sommus »

Caro José,
Não funciona exatamente como preciso. Pois, dessa forma trato apenas a
largura (Screen:nWidth) e quanto a altura (Screen:nHeight), essa irá ficar
maior/menor que deveria...
A solução seria eu dimensionar toda a aplicação (altura e largura).
Att.
"José Lalí­n" <dezac@corevia.com> escreveu na notí­cia da
mensagem:4e23e893$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Reginaldo,
>
> si lo que necesitas es cambiar el valor de nScale en tiempo de ejecución,
> añade un botón al test AutoScale y pon este código:
>
> METHOD Button4Click( oSender ) CLASS TForm1
>
> // 800 es el tamaño del form en tiempo de diseño
> Screen:GetValues()
> Application:nScale := ( Screen:nWidth * 100 ) / 800
>
> RETURN Nil
>
> Ahora puedes cambiar la resolución de pantalla desde las propiedades del
> escritorio y verás que cada vez que ejecutes RunForm2, 3 y 4 el formulario
> se irá adaptando al tamaño actual.
>
> Saludos,
> José Lalí­n
>
Sommus
Mensajes: 310
Registrado: Vie Jul 24, 2009 9:39 pm

Como usar nScale

Mensaje por Sommus »

José,
O problema está na seguinte questão: Estou fazendo o projeto na resolução
1024x768, então meu form principal tem essa medida. Então se aumento a
resolução para 1280x800, o que eu queria é que meu form principal assumisse
esse tamanho (1280x800). porém ao aplicar o que sugere meu form principal
fica nesse tamanho: 1276x812. Até que ficar um pouco menor como o 1276, não
tem problema... o problema é ficar maior como o 812, pois atrapalha toda a
tela...
Atenciosamente,
Reginaldo
"José Lalí­n" <dezac@corevia.com> escreveu na notí­cia da
mensagem:4e23e893$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Reginaldo,
>
> si lo que necesitas es cambiar el valor de nScale en tiempo de ejecución,
> añade un botón al test AutoScale y pon este código:
>
> METHOD Button4Click( oSender ) CLASS TForm1
>
> // 800 es el tamaño del form en tiempo de diseño
> Screen:GetValues()
> Application:nScale := ( Screen:nWidth * 100 ) / 800
>
> RETURN Nil
>
> Ahora puedes cambiar la resolución de pantalla desde las propiedades del
> escritorio y verás que cada vez que ejecutes RunForm2, 3 y 4 el formulario
> se irá adaptando al tamaño actual.
>
> Saludos,
> José Lalí­n
>
Sommus
Mensajes: 310
Registrado: Vie Jul 24, 2009 9:39 pm

Como usar nScale

Mensaje por Sommus »

José,
í‰ como eu comentei antes, as resoluçíµes de telas "atualmente" não tem mais a
mesma proporção de altura e largura: Exemplo: A proporção de 1024 para 1280
é diferente da proporção de 768 para 800... Daí­ o ideal seria se pudesse
trabalhar a altura e a largura da tela de forma independente...
Att.
Reginaldo
"José Lalí­n" <dezac@corevia.com> escreveu na notí­cia da
mensagem:4e23e893$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Reginaldo,
>
> si lo que necesitas es cambiar el valor de nScale en tiempo de ejecución,
> añade un botón al test AutoScale y pon este código:
>
> METHOD Button4Click( oSender ) CLASS TForm1
>
> // 800 es el tamaño del form en tiempo de diseño
> Screen:GetValues()
> Application:nScale := ( Screen:nWidth * 100 ) / 800
>
> RETURN Nil
>
> Ahora puedes cambiar la resolución de pantalla desde las propiedades del
> escritorio y verás que cada vez que ejecutes RunForm2, 3 y 4 el formulario
> se irá adaptando al tamaño actual.
>
> Saludos,
> José Lalí­n
>
jlalin
Mensajes: 926
Registrado: Sab Dic 25, 2010 11:10 pm

Como usar nScale

Mensaje por jlalin »

Reginaldo,
> Parece que funciona... Mas, não consegui entender o que é o 800
Es el ancho de la resolución que tení­a en mi monitor en el momento de
diseñar el formulario. Es el valor "base" para hacer el cálculo.
Saludos,
José Lalí­n
Sommus
Mensajes: 310
Registrado: Vie Jul 24, 2009 9:39 pm

Como usar nScale

Mensaje por Sommus »

Caro José,
Entendi... Mas, leia minhas 3 últimas postagens antes dessa e entenderá
porque não funciona...
Att.
"José Lalí­n" <dezac@corevia.com> escreveu na notí­cia da
mensagem:[email=4e377c5b@svctag-j7w3v3j....]4e377c5b@svctag-j7w3v3j....[/email]
> Reginaldo,
>
>> Parece que funciona... Mas, não consegui entender o que é o 800
>
> Es el ancho de la resolución que tení­a en mi monitor en el momento de
> diseñar el formulario. Es el valor "base" para hacer el cálculo.
>
> Saludos,
> José Lalí­n
>
Responder