Page 1 of 1

Cordenadas en pixeles diferentes en Windows y en Dialogs

Posted: Sat Aug 26, 2006 10:40 pm
by creswinman
¿ Porque Dialogo realizado sin recursos al pasarlo a Ventata (o Viceversa)
cambia sus posiciones y dimensiones en los controles que contiene?

como si cada pixel de una window equivaliese a 2 en un dialogo

:shock: :cry:

Posted: Sun Aug 27, 2006 11:17 am
by Antonio Linares
Ignacio,

Es un comportamiento propio de Windows, ya que con las ventanas usa pixeles, pero con los diálogos usa "unidades base de diálogo" que calcula en base a GetDialogBaseUnits().

Si revisas la documentación de GetDialogBaseUnits() encontrarás una explicación de como calcular, más ó menos, de unas a otras.

Posted: Mon Aug 28, 2006 4:00 pm
by creswinman
Pues creo que ese comportamiento natural de Windows solo genera problemas.....

Se puede corregir en el Metodo Initiate de la TDialog si al final ponemos...

AEVAL( ::aControls, { | o , n | IF( o:ClassName()=="TIMAGE" .OR.
o:ClassName()=="TBITMAP" , ;
o:Move( o:nTop/2 , o:nLeft/2 , 0 , 0 , .T. ) , ;
o:Move( o:nTop/2 , o:nLeft/2 , o:nWidth/2 , o:nHeight/2,.T. ) ) } )

Posted: Mon Aug 28, 2006 4:45 pm
by Antonio Linares
Ignacio,

> Pues creo que ese comportamiento natural de Windows solo genera problemas.....

Sí, es cierto.

> Se puede corregir en el Metodo Initiate de la TDialog si al final ponemos...

Pero a estas alturas romperíamos las aplicaciones de muchos usuarios...