RE:Resolucion de pantalla
Saludos desde Maracay, Venezuela.
Sí puedes capturar la resolución de la pantalla, pero te recomiendo que siempre programes pensando en 800x600 que es una resolución que es standard hoy en dia. Si la resolución es mayor al ejecutar maximizada la aplicación entonces se adaptará a 1024, etc...
Yo lo que hago es capturar la resolución y luego todas las ventanas al abrirlas las coloco centradas en la pantalla con una función que me retorna la posicón de acuerdo al tamaño de la ventana que voy a abrir.
-- Se definen dos variables globales para mantener la resolución del monitor para toda la aplicación::
integer gi_x, gi_y
-- En el script del open de la aplicación obtengo la resolución del monitor:
// Elaborado por L.A.Taylhardat
environment env
integer rtn
rtn = GetEnvironment(env)
IF rtn <> 1 THEN
HALT
else
gi_y=PixelsToUnits ( env.ScreenHeight, YPixelsToUnits! )
gi_x=PixelsToUnits ( env.ScreenWidth, XPixelsToUnits! )
...
END IF
Nota: la aplicación se cancela si no puede obtener la resolución del monitor...
-- Función que me calcula la posición para centrar cualquier ventana "f_posicion":
Argumentos:
integer a_w, a_h
Script:
// Elaborado por L.A.Taylhardat
string sl_retorno
int x, y
x = (gi_x - a_w) / 2
y = (gi_y - a_h) / 2
sl_retorno= left("00000",(5 - (len(string(x))))) + string(x) + "," + &
left("00000",(5 - (len(string(y))))) + string(y)
return(sl_retorno)
Nota: retorna una cadena de 10 caracteres: los cinco (5) primeros es el eje x de la posición y los cinco (5) últimos el eje y.
-- En el open de la ventana:
// Elaborado por L.A.Taylhardat
string posicion
posicion=f_posicion (this.Width, this.Height)
this.X=integer(left(posicion,5))
this.Y=integer(right(posicion,5))
Espero que les sirva y coloquen la referencia....