Por Que Pasa

Por Que Pasa

Postby colthop » Thu Feb 12, 2009 7:49 am

Hola amigos.

Siempre me ha pasado pero como sabia como controlarlo no me preocupaba pero ahora quero hacer una reforma de lo visual de la aplicacion y me gustaria saber como puedo controlarlo, es lo siguente:

Yo defino una Window principal y de ella salen otras Windows o Dialogos de principio parece igual pero existen variaciones como son:

Si yo quero poner dos textos con PIXEL uno debajo del otro y lo hago en la Window tengo que poner

@ 10, 80 SAY odlg01 VAR "Tipo Cotización" OF oFol:aDialogs[1] PIXEL COLOR escri10, fondo10 SIZE 120,18
@ 30, 80 SAY odlg02 VAR "Periodo" OF oFol:aDialogs[1] PIXEL COLOR escri10, fondo10 SIZE 120,18

Y quedan bien con una diferencia de 20 pixel y con un tamaño de 18, pero si lo hago en un dialogo para que quede igual debo poner

@ 5, 40 SAY odlg01 VAR "Tipo Cotización" OF oFol:aDialogs[1] PIXEL COLOR escri10, fondo10 SIZE 60, 9
@ 15, 40 SAY odlg02 VAR "Periodo" OF oFol:aDialogs[1] PIXEL COLOR escri10, fondo10 SIZE 60, 9

y quedan igual pero si observamos todos los parametros estan a la mitad, tambien pasa que si se destruyen los dos objetos y los vuelvo a pintar ya tendria que hacerlo como si fuera una Window y no con las coordenadas que pongo en un principio.

Tambien me pasa que cuando pinto en un Dialog un objeto con la clausula BORDER me lo pone RAISED y si lo hago en una Window NO pasa y en este ultimo sitio nunca me lo pone RAISED por mas que se lo diga.

Gracias por vuestra ayuda.

Un saludo

Carlos
Colt Hop ED, S.L.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es

Nunca se termina de aprender, por eso necesito siempre ayuda.
colthop
 
Posts: 505
Joined: Sat Apr 22, 2006 9:09 am
Location: Madrid - España

Re: Por Que Pasa

Postby Antonio Linares » Thu Feb 12, 2009 12:51 pm

Carlos,

El API de Windows usa las coordenadas de los diálogos como unidades "lógicas" en vez de pixeles y luego las transforma automaticamente en pixeles, usando unos determinados coeficientes en función del font usado, etc. Por eso la diferencia que observas en esos valores.

Una vez esta creado el diálogo, las coordenadas ya son en pixeles.

Cosas del API de Windows :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42122
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Por Que Pasa

Postby colthop » Thu Feb 12, 2009 4:37 pm

Hola y gracias como siempre Antonio, ya se porque pasa. Pero hay alguna manera para evitar ese cambio y desde un principio poner las coordenadas y los tamaños bien.

Un saludo

Carlos
Colt Hop ED, S.L.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es

Nunca se termina de aprender, por eso necesito siempre ayuda.
colthop
 
Posts: 505
Joined: Sat Apr 22, 2006 9:09 am
Location: Madrid - España

Re: Por Que Pasa

Postby Antonio Linares » Thu Feb 12, 2009 7:27 pm

Carlos,

No es algo simple. Si revisas esta funcion del API de Windows que "explica" las coordenadas logicas, veras que el tema no queda nada claro:

http://msdn.microsoft.com/en-us/library/ms645475(VS.85).aspx
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42122
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 51 guests