Retroceder   Foros del Web > Temas generales de computación > Programación > Visual Basic

Respuesta
 
Herramientas Desplegado
Antiguo 16-jun-2008, 07:39   #1 (permalink)
etxebe ha deshabilitado el karma
 
Fecha de Ingreso: enero-2008
Mensajes: 61
Problema de visualizacion

Hola a todos:

He hecho mi aplicacion en mi PC y no tengo ningun problema. Sin embargo, cuando pruebo el ejecutable en el portatil, no se ve toda la pantalla. Solo se visualiza la parte superior izquierda de la ventana, como si estuviera recortada. Como puedo solucionarlo?? Alguien puede ayudarme??

Gracias de antemano. Un saludo,

Agur.
etxebe está desconectado   Responder Citando
Antiguo 16-jun-2008, 11:00   #2 (permalink)
Txoco ha deshabilitado el karma
 
Avatar de Txoco
 
Fecha de Ingreso: junio-2008
Ubicación: Perdido en tierras Quijotescas
Mensajes: 132
Respuesta: Problema de visualizacion

Hola!

Esa aplicación está hecha en VB6? Has comprobado las propiedades WindowState y BorderStyle del form?
Txoco está desconectado   Responder Citando
Antiguo 17-jun-2008, 00:41   #3 (permalink)
etxebe ha deshabilitado el karma
 
Fecha de Ingreso: enero-2008
Mensajes: 61
Respuesta: Problema de visualizacion

Si, la aplicacion es de VB6. Las propiedades que dices las tengo asi:

WindowState = Normal
BorderStyle = Sizable

Pero no creo que influyan, ya que cuando maximizo la ventana parece como si no entrara en el monitor...pero eso solo cuando ejecuto el programa en el portatil. Ademas, si restauro la ventana no aparece ningun ScrollBar para poder ver todo el formulario. Como puedo hacer esto?
etxebe está desconectado   Responder Citando
Antiguo 17-jun-2008, 01:51   #4 (permalink)
Insomnia no se puede cailificar en este momento
 
Fecha de Ingreso: noviembre-2005
Mensajes: 458
Respuesta: Problema de visualizacion

Hola

Puede ser por tema de resolución de pantalla, es decir, si en tu ordenador lo has programado en una resolución de 1024x768 ocupando toda la pantalla y luego en el portátil utilizas una resolución de 800x600 no vas a conseguir ver la pantalla completa.

Comprueba que tienes la misma resolución en los dos equipos.

Agur.
Insomnia está desconectado   Responder Citando
Antiguo 17-jun-2008, 04:30   #5 (permalink)
etxebe ha deshabilitado el karma
 
Fecha de Ingreso: enero-2008
Mensajes: 61
Respuesta: Problema de visualizacion

Hola Insomnia

Creo que tienes razon con lo que dices. Es un problema de resolucion. En mi ordenador tengo una resolucion de 1280 x 1024 y he hecho toda la aplicacion con esta configuracion. Sin embargo, la resolucion maxima del portatil es de solo 1024 x 768 y por eso no se ve toda la ventana.

El problema es que si quiero que se vea en el portatil, tengo que cambiar la configuracion del ordenador y despues cambiar todas las ventanas de la aplicacion, lo que me llevaria mucho tiempo. Seria una locura!!

Existe alguna manera para que, segun la resolucion de cada ordenador, se aplique algun zoom en la aplicacion?? O algo parecido...
etxebe está desconectado   Responder Citando
Antiguo 17-jun-2008, 06:54   #6 (permalink)
Colaborador
David el Grande llegará a ser famoso muy prontoDavid el Grande llegará a ser famoso muy prontoDavid el Grande llegará a ser famoso muy pronto
 
Avatar de David el Grande
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 5.346
Exclamación Respuesta: Problema de visualizacion

Cita:
Iniciado por etxebe Ver Mensaje
Hola Insomnia

Creo que tienes razon con lo que dices. Es un problema de resolucion. En mi ordenador tengo una resolucion de 1280 x 1024 y he hecho toda la aplicacion con esta configuracion. Sin embargo, la resolucion maxima del portatil es de solo 1024 x 768 y por eso no se ve toda la ventana.

El problema es que si quiero que se vea en el portatil, tengo que cambiar la configuracion del ordenador y despues cambiar todas las ventanas de la aplicacion, lo que me llevaria mucho tiempo. Seria una locura!!

Existe alguna manera para que, segun la resolucion de cada ordenador, se aplique algun zoom en la aplicacion?? O algo parecido...
Creo que dependiendo de cuáles son los controles que tienes en tu ventana te será más difícil crear el código para ajustar a la configuración del monitor que cambiarlo manualmente. Pero si de todos modos quieres hacerlo puedes enviarnos una captura de pantalla de tu ventana para que sepamos cómo ayudarte...
__________________
"En la vida muchas veces tenemos que ser aprendices, y muchas veces maestros"
P.S.: Pregunta siempre en el foro correcto.
David el Grande esta en línea ahora   Responder Citando
Antiguo 17-jun-2008, 12:16   #7 (permalink)
Txoco ha deshabilitado el karma
 
Avatar de Txoco
 
Fecha de Ingreso: junio-2008
Ubicación: Perdido en tierras Quijotescas
Mensajes: 132
Respuesta: Problema de visualizacion

Hola etxebe:

Probablemente te interese utilizar un formulario MDI para alojar todos los formularios de tu aplicación. Si no sabes qué es esto, abre una base de datos que tengas en Access y después abre una o dos consultas o tablas. Verás que tienes varias ventanas y que si las mueves, no solo no se salen de la principal, si no que te aparecerán las barras de desplazamiento. Esa es la idea del MDI (Multiple Document Interface - Interfaz de Múltiples Documentos).

Para que te funcione, tienes que agregar un nuevo formulario MDI (hay una opción explícita en VB). Ten en cuenta que sólo puedes tener un form MDI por aplicación.

Después, establece en cada uno de tus formularios la propiedad MDIChild a True, verás que les cambia el icono en la vista de proyecto.

Y ya está. Ejecuta el proyecto sin tocar nada y redimensiona el form MDI para ver cómo aparecen las barras si alguna ventana no cabe en el area.

Como ventaja adicional, puedes centralizar todas las opciones en el menú del Form MDI, y agregar un menú al estilo del "Ventana" del propio VB, en la que te sale una lista de todos los formularios abiertos.

También te recomiendo para estos casos un programita que me pasó una vez un amigo, se llama Sizer, es gratuito, y te permite elegir el tamaño que quieres que tenga una ventana cualquiera. Con esto puedes probar cómo quedan tus formularios a cualquier resolución.
Txoco está desconectado   Responder Citando
Antiguo 18-jun-2008, 01:29   #8 (permalink)
Insomnia no se puede cailificar en este momento
 
Fecha de Ingreso: noviembre-2005
Mensajes: 458
Respuesta: Problema de visualizacion

Hola

Creo que como dice David el Grande la opción más rápida es volver a dimensionar los formularios a mano, la forma correcta es por ejemplo utilizando un control de ComponentOne que permite que cuando el usuario redimensiona un formulario todos los controles incluidos en el mismo se adapten al nuevo tamaño del formulario o en su defecto aparezcan barras de desplazamiento.

El nombre del control es ComponentOne SizerOne que como indica en una de sus características sirve para mostrar forms en distintas resoluciones

Cita:
Controls all resolutions
Looking for a tool that adds resolution-independence to your forms so they keep looking great no matter how your user resizes them? SizerOne fits the bill: EGA, VGA, VSGA—it doesn't matter!
El único inconveniente que tiene el control es que es de pago.

--Saludos--
Insomnia está desconectado   Responder Citando
Antiguo 18-jun-2008, 03:49   #9 (permalink)
etxebe ha deshabilitado el karma
 
Fecha de Ingreso: enero-2008
Mensajes: 61
Respuesta: Problema de visualizacion

Hola a todos:

Con respecto a los formularios MDI, lo he probado pero sigo teniendo el mismo problema...

El control de ComponentOne parece que esta muy bien pero si es de pago, no me lo puedo permitir...

Al final, se mas dificil o no, he decidido intentar hacerlo mediante codico. He estado buscando por ahi, y mas o menos voy avanzando. Pero tengo un problema. Este es el codigo. Haber que os parece:

Sub SizeAdaptor(y As Form)
Dim Ctl As Control
Dim sCtlType As String

' Invocar la rutina que calcula los factores de correccion de tamaño
Call Factores
' Si el uso y el diseño se realizan con una misma resolución de pantalla,
' no hace falta corrección alguna y se puede salir de la subrutina.
If SizingFactor = 1 Then
Exit Sub
End If
' Si el uso y el diseño se realizan con resoluciones de pantalla distintas
' hay que modificar las medidas y ubicación de cada componente.
' Adaptar el formulario en si.
' Esconder el formulario y su contenido mientras se hace la adaptación.
y.Visible = False
y.Left = 0
y.Top = 0
y.Height = Screen.Height
y.Width = Screen.Width

For Each Ctl In y.Controls
sCtlType = TypeName(Ctl)

If sCtlType = "Line" Then
Call LineResizing(Ctl)
ElseIf sCtlType = "SSTab" Then
Call SSTabResizing(Ctl)
ElseIf sCtlType = "ListView" Then
Call ListViewResizing(Ctl)
ElseIf sCtlType = "ComboBox" Then
Call ComboResizing(Ctl)
ElseIf sCtlType = "ListBox" Then
Call ComboResizing(Ctl)
ElseIf sCtlType = "CommandButton" Then
Call CommButtonResizing(Ctl)
ElseIf sCtlType = "TextBox" Then
Call TextBoxResizing(Ctl)
ElseIf sCtlType = "Label" Then
Call LabelResizing(Ctl)
ElseIf sCtlType = "PictureBox" Then
Call PictResizing(Ctl)
ElseIf sCtlType = "Menu" Then
'No hace nada
ElseIf sCtlType = "StatusBar" Then
'Aqui no se
ElseIf sCtlType = "Toolbar" Then
'Aqui no se
ElseIf sCtlType = "CommonDialog" Then
'No hace nada
ElseIf sCtlType = "ImageList" Then
'No hace nada
Else
Call ControlsResizing(Ctl)
End If
Next
' Una vez completado el proceso de adaptacion volvemos a mostrar el formulario
' con todo su contenido.
y.Visible = True
End Sub

Sub Factores()
' Se hace uso de la función Screen, accesible solamente durante el procesado
' del programa, que da el ancho y alto de la pantalla en twips.
SizingFactor = 0
HorFactor = Screen.Width / 19200
VerFactor = Screen.Height / 15360
' Si la pantalla de uso tiene la misma resolución que la de diseño
' no habrá que hacer nada, lo cual indicamos con la bandera SizingFactor igual a 1.
If HorFactor = 1 And VerFactor = 1 Then
SizingFactor = 1
End If
End Sub

Sub SSTabResizing(x As Control)
x.Left = x.Left * HorFactor
x.Top = x.Top * VerFactor
x.Width = x.Width * HorFactor
x.Height = x.Height * VerFactor
x.Font.Size = x.Font.Size * VerFactor
End Sub

Sub ListViewResizing(x As Control)
x.Left = x.Left * HorFactor
x.Top = x.Top * VerFactor
x.Width = x.Width * HorFactor
x.Height = x.Height * VerFactor
x.Font.Size = x.Font.Size * VerFactor
End Sub

Sub LineResizing(x As Control)
' Redimensiona (incluido grosor) y reubica una linea recta
x.X1 = x.X1 * HorFactor
x.X2 = x.X2 * HorFactor
x.Y1 = x.Y1 * VerFactor
x.Y2 = x.Y2 * VerFactor
x.BorderWidth = x.BorderWidth * VerFactor
End Sub

Sub ComboResizing(x As Control)
'adapta medidas y ubicación de una caja combo
x.Left = x.Left * HorFactor
x.Top = x.Top * VerFactor
x.Width = x.Width * HorFactor
'x.Height = x.Height * VerFactor
End Sub

Sub CommButtonResizing(x As Control)
'Adapta medidas y ubicación de un botón de comando
x.Left = x.Left * HorFactor
x.Top = x.Top * VerFactor
x.Width = x.Width * HorFactor
x.Height = x.Height * VerFactor
x.Font.Size = x.Font.Size * HorFactor
End Sub

Sub TextBoxResizing(x As Control)
x.Left = x.Left * HorFactor
x.Top = x.Top * VerFactor
x.Width = x.Width * HorFactor
x.Height = x.Height * VerFactor
x.FontSize = x.FontSize * VerFactor
End Sub

Sub LabelResizing(x As Control)
' Redimensiona y reubica un label
x.Left = x.Left * HorFactor
x.Top = x.Top * VerFactor
x.Width = x.Width * HorFactor
x.Height = x.Height * VerFactor
x.Font.Size = x.Font.Size * VerFactor
End Sub

Sub PictResizing(x As Control)
'Redimensiona y reubica un objeto de tipo picture
x.Top = Screen.Height / 2 - x.Height / 2
x.Left = Screen.Width / 2 - x.Width / 2
End Sub

Sub ControlsResizing(x As Control)
'Redimensiona y reubica un control genérico
x.Left = x.Left * HorFactor
x.Top = x.Top * VerFactor
x.Width = x.Width * HorFactor
x.Height = x.Height * VerFactor
End Sub

En el form_load del formulario llamo a Call SizeAdaptor(Me) y aunque no va perfecto, en general va bastante bien, excepto un problema:

En el formulario principal tengo un SSTab con varias pestañas. El problema es que la redimension de los controles funciona solamente con los controles de la pestaña activa. Es decir, los controles de la pestaña que se muestra por defecto al cargar el formulario aparecen redimensionados...pero el resto de las pestañas esta vacia!!!Esto pasa sea cual sea la pestaña por defecto.

Alguien sabria decirme como puedo hacer para que se redimensionen los controles de todas las pestañas??
etxebe está desconectado   Responder Citando
Antiguo 18-jun-2008, 15:07   #10 (permalink)
Colaborador
David el Grande llegará a ser famoso muy prontoDavid el Grande llegará a ser famoso muy prontoDavid el Grande llegará a ser famoso muy pronto
 
Avatar de David el Grande
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 5.346
Idea Respuesta: Problema de visualizacion

Puedes volver a llamar al procedimiento de redimensionado al hacer click en el TabStrip...
__________________
"En la vida muchas veces tenemos que ser aprendices, y muchas veces maestros"
P.S.: Pregunta siempre en el foro correcto.
David el Grande esta en línea ahora   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 15:13.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93