Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Nodles en 9 Junio 2008, 11:33 am



Título: Resolucion de pantalla
Publicado por: Nodles en 9 Junio 2008, 11:33 am
Tengo un programa bastante complicado, dos filas de tabs, grids, ..... y esta para una resolucion de 1024*768, el problema está cuando cambias la resolucion a  1280, sigue manteniendo las proporciones de 1024 y sobre espacio, y queda bastante feo.
Hay alguna forma de que se autoajuste el tamaño del formulario dependiendo de la resolucion de pantalla?
Es en Visual Basic 6.0
Muchas gracias


Título: Re: Resolucion de pantalla
Publicado por: Hans el Topo en 9 Junio 2008, 12:07 pm
en el evento Form_Resize para cuando cambie manualmente las dimensiones

e inicialmente el objeto screen con las propiedades de ancho y lardo de la pantalla (creo k en twips)


Título: Re: Resolucion de pantalla
Publicado por: Nodles en 9 Junio 2008, 12:46 pm
Aparece directamente maximizado, con lo que el evento form_resize no soluciona mucho, ademas el formulario se adapta bien, lo que no se adapta son los controles de dentro, necesito hacer un resize de todo el contenido, los grid, los textbox, los label, en definitiva, todo.
Un saludo


Título: Re: Resolucion de pantalla
Publicado por: cassiani en 9 Junio 2008, 15:38 pm
Aparece directamente maximizado, con lo que el evento form_resize no soluciona mucho

Cuando corres un programa este se dimensiona de acuerdo a como lo configuraste previamente, por lo tanto se produce el evento "resize" y es hay donde debes colocar el algoritmo que redimensione los controles dentro de tu aplicación, por ejemplo:

Adaptamos el TextBox a las dimensiones del formulario (como para un editor de texto por ejemplo) esto evento ocurrirá independientemente de lo que hallas indicado en la propiedad "WindowState".

Código
  1. Private Sub Form_Resize()
  2.    ' Redimensionando...
  3.    With Text1
  4.        .Top = 0
  5.        .Left = 0
  6.        .Width = ScaleWidth
  7.        .Height = ScaleHeight
  8.    End With
  9. End Sub

Independientemente de la resolusión cambiarán los valores de ScaleWidth y ScaleHeight y esos valores son los que les paso la text para redimensionaarlo, lo que dará como resultado que este siempre me quede ajustado.

Tendrás que hacer algunos calculos dependiendo de la cantidad de controles que tengas en el form, las posiciones y dimensiones que les quieras dar a cada uno de los controles...


Título: Re: Resolucion de pantalla
Publicado por: cobein en 9 Junio 2008, 15:55 pm
Si son muchos controles te conviene hacer un algoritmo generico y redimensionar todos los controles en base a condiciones, estas condiciones las podes almacenar en el tag de cada control ej: si el control se va a redimensionar en alto y/o ancho, si va a estar anclado en un una posicion o se va a mover, si va a tener tamaño maximo y/o minimo etc.

Sino busca que hay muchos ya hechos.