En este grupo En todos

Foro de Visual FoxPro



Como ajustar mis formularios (scx) al tamaño de cualquier monitor?

Rosa
Ingeniera en sistemas de información u...
Escrito por Rosa Gomez
el 26/11/2009

Hola a todos. Quería saber como puedo ajustar el tamaño de mis formularios de pantalla (scx) al tamaño de cualquier monitor?
Diseñé una aplicación y me doy cuenta que en algunos monitores algunos de los formularios no entran en la pantalla, evidentemente por que le definición de éstos utiliza una configuración distinta al mío.
Hay alguna sentencia de fox que me permita ajustar mi diseño a cualquier configuración de monitor? Desearía desarrollar una aplicación y tener la certeza que va a funcionar y se va a ajustar perfectamente a cualquier configuración de pantalla.
Mil gracias desde ya.

Manuel Zevallos Benavides
Programacion base de datos universidad...
Escrito por Manuel Zevallos Benavides
el 28/11/2009

Estimada Rosa... A mi tambien me pasó esto. Creo que no hay algo parecido. Lo que sí podrias hacer, en teoria, identificar el tipo de monitor en tu programacion y en base a esto establecer anchos y altos del formulario, pero aun asi.... Los objetos como quedarian?

Yo particularmente, averiguo antes qué monitor tiene mi cliente y sobre este trabajo.


Saludos.



Jonathan Zepeda
Programador en foxpro imb-pc
Escrito por Jonathan Zepeda
el 29/11/2009

Rosa, con este Codigo puedes saber que resolucion tiene el monitor para poder adaptar el formulario a ese tamaño, el problemas es que solo el formulario se podra adaptar a la pantalla o resolucion del monitor, o puedes hacer una cosa, inicia el siguiente codigo para saber la resolucion Inicial del monitor esos datos los guardas en una variable, luego que tu aplicacion cambie la resolucion de pantalla del monitor por la que tu deseas y antes de salir del programa que se restablesca la resolucion inicial que tienes guardadas en las variables y listo, con esto podras diseñar tu aplicacion con la resolucion que tu desees..

Public anchoinicio,altoinicio,lancho,lalto

DO CASE
CASE SYSMETRIC(1)=640 AND SYSMETRIC(2)=480
LANCHO=SYSMETRIC(1)
LALTO =SYSMETRIC(2)
CASE SYSMETRIC(1)=800 AND SYSMETRIC(2)=600
LANCHO=SYSMETRIC(1)
LALTO =SYSMETRIC(2)
CASE SYSMETRIC(1)=1024 AND SYSMETRIC(2)=768
LANCHO=SYSMETRIC(1)
LALTO =SYSMETRIC(2)
CASE SYSMETRIC(1)=1280 AND SYSMETRIC(2)=600
LANCHO=SYSMETRIC(1)
LALTO =SYSMETRIC(2)
CASE SYSMETRIC(1)=1280 AND SYSMETRIC(2)=720
LANCHO=SYSMETRIC(1)
LALTO =SYSMETRIC(2)
CASE SYSMETRIC(1)=1280 AND SYSMETRIC(2)=768
LANCHO=SYSMETRIC(1)
LALTO =SYSMETRIC(2)
CASE SYSMETRIC(1)=1280 AND SYSMETRIC(2)=800
LANCHO=SYSMETRIC(1)
LALTO =SYSMETRIC(2)
CASE SYSMETRIC(1)=1280 AND SYSMETRIC(2)=1024
LANCHO=SYSMETRIC(1)
LALTO =SYSMETRIC(2)
OTHERWISE
MESSAGEBOX([LA RESOLUCION DEL MONITOR ES DESCONOCIDA])
ENDCASE
anchoinicio=lancho
altoinicio=lalto
MESSAGEBOX([LA RESOLUCION DEL MONITOR ES]+STR(LANCHO)+SPACE(2)+STR(LALTO ))

Jonathan Zepeda
Programador en foxpro imb-pc
Escrito por Jonathan Zepeda
el 29/11/2009

Ahora si deseas poder controlar o cambiar la resolucion de pantalla, me avisas y con gusto te dare el codigo

Rosa Gomez
Ingeniera en sistemas de información u...
Escrito por Rosa Gomez
el 29/11/2009

Muchas Gracias Jonathan, en realidad mi aplicación deberá adaptarse a 35 estaciones de trabajo todas diferentes, entonces me parece mas conveniente hacer lo que tu dijiste, quela aplicación cambie la resolución del monitor y antes de salir restablezca la configuración inicial. Pero como te parece que debería hacerlo? Tenes algún codigo para ello? Mil gracias desde ya.

Jonathan Zepeda
Programador en foxpro imb-pc
Escrito por Jonathan Zepeda
el 30/11/2009

Ok Rosa, Realizare hoy un documento con los procedimientos y codigos para que los adaptes a tu aplicacion y se pueda realizar la configuracion. Hoy en la Noche te lo envio. Me gustaria que me puedas publicar o enviarme en mensaje con tu correo.

Jonathan Zepeda
Programador en foxpro imb-pc
Escrito por Jonathan Zepeda
el 01/12/2009

Por favor Rosa , Revisa tu correo, el Ejemplo ha sido Enviado, cualquier cosa me avisas. El codigo del Ejemplo lo puedes adaptar a tu proyecto y en tu PRG inicial, lo puedes adaptar el codigo en la parte cuando el programa se finaliza o se cierra inesperadamente.. En los formularios en la propiedad UNLOAD Y en los botones que utilizaras para Salir.

Jonathan Zepeda
Programador en foxpro imb-pc
Escrito por Jonathan Zepeda
el 01/12/2009

Pero recuerda que las resoluciones entre una pantalla widescreen o normal son diferentes, por lo cual debes elegir una resolucion que sea compatible con ambas pantallas

Adrian Antonio Aguilar Lopez
Ingenieria en sistemas isima (intituto...
Escrito por Adrian Antonio Aguilar Lopez
el 01/12/2009

Hola, A mi me pasava lo mismo, y encontre una solucion fácil; puedes hacer algo muy simple para poder redimencionar la pantalla y todos sus objetos contenidos en ella. Solo tienes que modificar una propiedad en los objetos.


En el Init de mi formulario base (una clase que uso para hacer todfas mis pantallas) escribí esto:

LOCAL i
i=0
FOR i=1 TO This. ControlCount
This. Controls(i). Anchor=240
NEXT

Puedes probar metiendo unos controles a un form, y redimencionarlo jalando los bordes.

Espero que te sea de utlidad.

Suerte!

Jonathan Zepeda
Programador en foxpro imb-pc
Escrito por Jonathan Zepeda
el 02/12/2009

Exelente opcion Adrian Antonio Aguilar Lopez Felicitaciones por compartir tu conocimiento y ayuda.

Exitos y sigue adelante.

Jorge Andrade
Chiriqui, Panamá
Escrito por Jorge Andrade
el 22/12/2009

Hola adrian vi tu solucion a este problema y a mi me pasa igual pero puse el codigo y me arrincona toda la pantalla en una esquina me puedes ayudar con eso gracias

Jorge

Daniel Bojorge
Ingenieria en computación universidad ...
Escrito por Daniel Bojorge
el 29/12/2009

Es muy interesante las respuestas que han dado.


Has probado utilizar la propiedad ANCHOR? En el init del formulario podés poner que se maximice y con el ANCHOR en 240 éste se ajustará (obviamente todos los elementos dentro del formulario tendrían que tener algún valor similiar)


Es una alternativa (a la ya planteada anteriormente)