Problemas de Resoluccion de Pantallas

Hola, necesito su ayuda en algo que no he podido hacer, por que no tengo ni la menor idea de como hacerlo. Estoy haciendo un sistema en Visual Basic 6, en mi casa, cuando lo llevo a la escuela a presentar avances, el maestro al ejecutarlo lo ve todo mal, se ven los formularios más grandes, entonces e tratado de cambiar la resolucciion del monitor para que se vea como en mi casa y sigue igual, necesito el código para poder ver la dimensiones del furmulario iguales en cualquier maquina que lo vaya a ejecutar... Espero y se pueda solucionar esto... Muchas gracias...

1 respuesta

Respuesta
1
¿Cuál es la resolución que tienen en la escuela? Y ¿Cuál es la resolución que tiene en su casa?
Julius
-Guatemala-
Pues en la en mi casa esta en 1280 por 1024 pixeles, en la escuela no me acuerdo cuanto tiene pero ya intente ponerle la misma resolución que tengo en casa pero de todas formas las pantallas del sistema no se acoplan... y lo que quisiera es que al ejecutarlo en cualquier maquina con diferente resolución, los formularios en ejecuccion se acoplen... sin la necesidad de estar cambiando la resolución de la pantalla del monitor... no se si se pueda..
Lamentablemente Visual Basic no tiene un control 'spacer' como lo tienen otras herramientas (como QT por ejemplo), se me ocurren dos soluciones, la primera que es la más sencilla, es crear el formulario principal (el MDI) de tamaño 600x800, y centrarlo en la pantalla, se puede utilizar el control screen. Width, screen. Height, para averiguar el ancho y alto del monitor y poder centrarlo, en la actualidad, ya no se usan los 460x680, sino que la mayor cantidad parten de 600x800, haciendo eso aseguramos que se vea en los monitores que resolución baja, y en monitores con resolución alta lo que sucederá es que tendremos una ventana de un tamaño fijo siempre.
La otra solución es que al cargar cada uno de los formularios (en el evento OPEN del form) se definen las coordenadas POR, Y de CADA UNO de los controles, siempre se parte de un tamaño base (el más pequeño) para que así al tener una resolución más alta cambia la posición (se puede modificar el ancho y el alto también.
Por ejemplo, en una resolucion de 600x800 un control en particular tiene las propiedades X = 100, Y=100; pero si estamos en un monitor de 1280*1024 entonces ese control se reubica dentro de la forma en
X = 100 x 1280 / 800   = 160
Y = 100 x 1024 / 600   =  170.66
Eso también se puede hacer para las propiedades width y height de cada uno de los controles,
para hacerlo más fácil se puede utilizar el conjunto CONTROLS que tiene visual basic más o menos (si la memoria no me falla) la sintaxis es
Dim i as control
for i in controls
    i.x = i.x * res_x / 800
    i.y = i.y * res_y / 600
next
Claro, hay que averiguar el valor de res_x, res_y, y si vamos a utilizar esos valores de 800x600 como base
Julius
-Guatemala-
OK, que da más entendido... tratare de hacerlo de la primera forma ya que se ve que es la más sencilla, y también tratare con la segunda para poder saber de las dos formas y ver cual es la más viable... muchas gracias por todo... si tengo problemas estaré en contacto... muchas gracias, hasta luego!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas