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
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...