Programación General > Visual Basic 6.0 e inferiores

 No Me Funciona Este Código

(1/2) > >>

DiabloRojo:
Hola. Qué tal amigos del foro?
Les comento que estoy tratando de lograr que el formulario principal de una aplicación que estoy desarrollando modifique su tamaño (propiedades Height y Width) y posición (Left y Top) de acuerdo a la resolución de pantalla que elija un usuario. Para este propósito utilizo un control SysInfo que detecta el momento en que se elige otra resolución de pantalla. No sé que estoy haciendo mal pero este código no me resulta, es decir, no cambia ni el tamaño del form ni cambia su posición en la pantalla. Este es el código que estoy empleando:



--- Código: Text --- Private Sub SysInfo1_DisplayChanged()   Dim miwidth As Long   Dim miheight As Long      Text1.Text = SysInfo1.WorkAreaTop   Text2.Text = SysInfo1.WorkAreaLeft   Text3.Text = SysInfo1.WorkAreaHeight   Text4.Text = SysInfo1.WorkAreaWidth   '   'Calculamos la resolución   miwidth = Screen.Width / 15   miheight = Screen.Height / 15   '   'esto no actualiza el tamaño del form :-S   If ((miwidth = 800) And (miheight = 600)) Then      Me.Width = SysInfo1.WorkAreaWidth      Me.Height = SysInfo1.WorkAreaHeight      Me.Left = 0      Me.Top = 0   ElseIf ((miwidth > 800) And (miheight > 600)) Then      Me.Width = (Screen.Width * 0.75) 'el ancho es el 75% del ancho de la pantalla      Me.Height = (Screen.Height * 0.75) 'el largo es el 75% de la pantalla      Me.Left = (Screen.Width - Me.Width) / 2 ' Centra el form horizontalmente      Me.Top = (Screen.Height - Me.Height) / 2 'Centra el form verticalmente   ElseIf ((miwidth < 800) And (miheight < 600)) Then      MsgBox "resolución no soportada por la aplicación"   End IfEnd Sub  
Alguien sabe qué está pasando? Hay una mejor manera de hacer lo que pretendo?

De antemano agradezco a todos su ayuda.


DiabloRojo

cpmario:
En mi equipo esto si funciona:

--- Código: Text ---  'Calculamos la resolución  miwidth = Screen.Width / 15  miheight = Screen.Height / 15 Proporciona en forma correcta la resolución de pantalla.

Esto también funciona

--- Código: Text ---  ElseIf ((miwidth > 800) And (miheight > 600)) Then     Me.Width = (Screen.Width * 0.75) 'el ancho es el 75% del ancho de la pantalla     Me.Height = (Screen.Height * 0.75) 'el largo es el 75% de la pantalla     Me.Left = (Screen.Width - Me.Width) / 2 ' Centra el form horizontalmente     Me.Top = (Screen.Height - Me.Height) / 2 'Centra el form verticalmente Coloca la forma en el centro y al 75% del tamaño de la pantalla.

Como no proporcionas el código del control o clase "SysInfo1" no puedo decirte nada al respecto.
 :comp:

DiabloRojo:
Hola cpmario. Gracias por tu pronta respuesta. Te comento que el control SysInfo es un activeX de VB que puedes añadir en la sección de componentes de tu proyecto. De éste sólo uso el evento DisplayChanged para averiguar la resolución que toma la pantalla y a partir de ésta hacer los cambios al form. Lamentablemente en mi equipo no funciona :( . Pienso que tal vez sea mi máquina... De cualquier forma si hay alguna sugerencia o alguien tiene algún otro modo de averiguar la resolución de la pantalla y de cambiar el tamaño del form en consecuencia le estaré muy agradecido.

Nuevamente cpmario muchas gracias por responder a este post.


DiabloRojo

cpmario:
Se puede modificar tu rutina sin usar el componente ActiveX.

--- Código: Text ---    Dim miwidth As Long    Dim miheight As Long    miwidth = Screen.Width / 15    miheight = Screen.Height / 15    If ((miwidth = 800) And (miheight = 600)) Then        Me.Width = Screen.Width        Me.Height = Screen.Height - 350        Me.Left = 0        Me.Top = 0    ElseIf ((miwidth > 800) And (miheight > 600)) Then        Me.Width = (Screen.Width * 0.75) 'el ancho es el 75% del ancho de la pantalla        Me.Height = (Screen.Height * 0.75) 'el largo es el 75% de la pantalla        Me.Left = (Screen.Width - Me.Width) / 2 ' Centra el form horizontalmente        Me.Top = (Screen.Height - Me.Height) / 2 'Centra el form verticalmente    ElseIf ((miwidth < 800) And (miheight < 600)) Then        MsgBox "resolución no soportada por la aplicación"    End If 
Te quería adjuntar un archivo ZIP con un ejemplo, pero aparece un error en el foro que dice "No puedes adjuntar este tipo de archivos" ? ignoro el motivo.....

 :comp:

DiabloRojo:
Hola cpmario. No había tenido tiempo para responder... con las modificaciones que me propones... se puede saber en tiempo real si el usuario a cambiado la resolución de la pantalla?

Saludos.


DiabloRojo

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa