Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Problema con la resolucion

Estas en el tema de Problema con la resolucion en el foro de Visual Basic clásico en Foros del Web. Hola gente, yo tengo un programa que es para ver en una resolucion 800 x 600 y la maquina del cliente esta en otra resolucion ...
  #1 (permalink)  
Antiguo 16/10/2008, 08:47
Avatar de gasafonso  
Fecha de Ingreso: septiembre-2008
Mensajes: 357
Antigüedad: 15 años, 8 meses
Puntos: 1
Problema con la resolucion

Hola gente, yo tengo un programa que es para ver en una resolucion 800 x 600

y la maquina del cliente esta en otra resolucion , como puedo hacer para que cuando ingrese al sistema se mantenga la resolucion 800 x 600

gracias


PD: ah otra cosa si yo tengo cuatro textbox con datos , un msflexigrisd y un boton agregar, como hago para incorporar los datos de los textbox al msflexigrid,

ir agregando varios apretando agregar


grtacias
  #2 (permalink)  
Antiguo 23/10/2008, 11:52
Avatar de Laforge  
Fecha de Ingreso: noviembre-2004
Ubicación: Galaxia 34, Cuadrante 972, Área 31
Mensajes: 174
Antigüedad: 19 años, 6 meses
Puntos: 2
Respuesta: Problema con la resolucion

Para la pregunta nº 1:

En función de lo que quieras hacer... quieres cambiar la resolución de la pantalla del cliente a 800x600 para que vea el formulario maximizado a la resolución adecuada? si es así, deberás usar API ChangeDisplaySettings (aunque no te lo recomiento por que al salir del programa deberías volver a poner la resolución a los valores originales).

Si lo único que quieres es que tu programa no modifique el tamaño del formulario, es tan simple como que la propiedad WindowState de los formularios esté en vbNormal y BorderStyle esté en Fixed Single o Fixed Dialog para evitar que manipulen 'a mano' el tamaño del formulario.... it's so easy!!

Saludos
__________________
Nunca esperes un mejor momento para abrir esa botella de vino...........nunca llega.

No hay vida después de MySQL
  #3 (permalink)  
Antiguo 23/10/2008, 12:45
Avatar de gasafonso  
Fecha de Ingreso: septiembre-2008
Mensajes: 357
Antigüedad: 15 años, 8 meses
Puntos: 1
De acuerdo Respuesta: Problema con la resolucion

gracias lo voy a probar
  #4 (permalink)  
Antiguo 23/10/2008, 14:31
Avatar de A.H.H  
Fecha de Ingreso: mayo-2007
Ubicación: IRUN,(GUIPUZCOA) España
Mensajes: 178
Antigüedad: 17 años
Puntos: 4
Respuesta: Problema con la resolucion

Hola en las faq yo puse un ejemplo hace un tiempo de como cambiar la resolucion y luego cuando termine el programa el cliente vuelva a su configuracion.
  #5 (permalink)  
Antiguo 23/10/2008, 19:24
Avatar de gasafonso  
Fecha de Ingreso: septiembre-2008
Mensajes: 357
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Problema con la resolucion

Que es la faq?


no lo vi, me lo podras re-enviar ? gracias
  #6 (permalink)  
Antiguo 25/10/2008, 15:43
Avatar de A.H.H  
Fecha de Ingreso: mayo-2007
Ubicación: IRUN,(GUIPUZCOA) España
Mensajes: 178
Antigüedad: 17 años
Puntos: 4
Respuesta: Problema con la resolucion

Hola con esto tu programa servira en cualquier pc ya que cambia la resolucion de la pantalla a la que tu pongas, tambien puedes guardar en unas variables la resolucion de pantalla que tiene el pc antes de correr el programa para asi cuando acabe el programa devolverle la resolucion de pantalla que tenia, me explico??
- si tengo un programa que quiero que se ejecute en 800x600 y el ordenador en el que lo voy a ejecutar tiene puesto 1024x768, guardo en unas variables el 1024x768 y cambio la resulucion a 800x600, cuando el usuario salga o termine el programa se vuelve a cambiar a la que tenia puesta el usuario 1024x768.

VAMOS A USAR UN MODULO Y UN FORM.AL ABRIR EL PROGRAMA SE CAMBIARA LA RESOLUCION A 800X600 Y AL CERRAR LA VENTANA DEL FORM SE CAMBIARA A LA QUE TENIA EL PC(NATURALMENTE SI TIENES LA MISMA QUE EL EJEMPLO EL EFECTO NO SE NOTA).

COPIA ESTO EN UN MODULO LLAMALO COMO QUIERAS:

Cita:
Private Declare Function EnumDisplaySettings Lib "user32" Alias "EnumDisplaySettingsA" _
(ByVal lpszDeviceName As Long, ByVal iModeNum As Long, lpDevMode As Any) As Boolean

Private Declare Function ChangeDisplaySettings Lib "user32" Alias "ChangeDisplaySettingsA" _
(lpDevMode As Any, ByVal dwflags As Long) As Long

Const CCDEVICENAME = 32
Const CCFORMNAME = 32
Const DM_PELSWIDTH = &H80000
Const DM_PELSHEIGHT = &H100000


Private Type DEVMODE
dmDeviceName As String * CCDEVICENAME
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer
dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer
dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer
dmFormName As String * CCFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type

Sub ChangeRes(iWidth As Single, iHeight As Single)

Dim DevM As DEVMODE
Dim a As Boolean
Dim i&
i = 0


Do
a = EnumDisplaySettings(0&, i&, DevM)
i = i + 1
Loop Until (a = False)

Dim b&

DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT
DevM.dmPelsWidth = iWidth
DevM.dmPelsHeight = iHeight

b = ChangeDisplaySettings(DevM, 0)

End Sub
COPIA ESTO EN UN FORM:


Cita:
Public ancho As Single
Public alto As Single
Private Sub Form_Load()
'guardamos la resolucion actual en ancho y alto para
'luego volver a ponerla cuando se cierre el programa
'con la x

ancho = iWidth
alto = iHeight
'cambiamos la resolucion a 800x600

Call ChangeRes(800, 600)
End Sub

Private Sub Form_Unload(Cancel As Integer)'cuando se cierra el form
Call ChangeRes(ancho, alto)'devolvemos la resolucion guardada en ancho,alto

End Sub
asi tu programa se vera en todos los ordenadores en la resolucion en que tu lo has creado...

--------------------------------------------------------------------------------
salu2


nota: las faq´s son ejemplos de codigos que pone la gente, puedes acceder a ellos al entrar a este foro de visual basic en la pagina principal donde pone faq´s

Última edición por A.H.H; 26/10/2008 a las 05:53
  #7 (permalink)  
Antiguo 26/10/2008, 16:20
Avatar de gasafonso  
Fecha de Ingreso: septiembre-2008
Mensajes: 357
Antigüedad: 15 años, 8 meses
Puntos: 1
De acuerdo Respuesta: Problema con la resolucion

gracias me anduvo muy bien
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:17.