RESOLUCAO

JPAULO101 02/06/2011 11:39:37
#375667
Bom dia amigos. Olha fiz uma pequena aplicação em meu pc com resolução do monitor 1024x768, mais quando fui instalar no notebook do cliente ficou menha tela, verifique a resolução do not e está 1622x767, alguém poderia mim ajudar a como resolver esse problema.

Abraços.
KERPLUNK 02/06/2011 11:42:54
#375668
Não é muito simples, mas vc tem que fazer o redimensionamento de seus forms dinâmico, ou seja, se ajustar à resolução da máquina em que estiver rodando.
SNNIFFER 02/06/2011 12:08:37
#375670
Kerplunk, existe algum código especifico ou função para isso?
KERPLUNK 02/06/2011 12:14:29
#375671
Não, infelizmente, não.
ROBIU 02/06/2011 12:53:01
#375675
Você pode mudar a resolução da máquina do cliente para a resolução que sua aplicação foi desenvolvida. Para isso, ao iniciar sua aplicação, verifica a resolução e se não for tal, altera. aí você guarda a resolução inicial em uma variável para quando fechar a aplicação retornar para a resolução do cliente. Você pode ver isso em alguns jogos. Paa isso você vai precisar de um código que verifique a resolução e ajuste-a. Segue um código que verifica e ajusta a resolução ao click na opção desejada.
SNNIFFER 02/06/2011 13:38:05
#375681
Legal Robiu, mas, a alteração da resolução é feita para o sistema operacional completo, tem como fazer a alteração da resoluçao apenas para o sistema?

Pois, quando o sistema é executado a resolução é modificada, mas, se o usuario realizar outra operação que não seja do sistema, estará fora da resolução padrão.
ROBIU 02/06/2011 14:06:24
#375684
Esse código muda a resolução do sistema. Podemos acertar para ao minimizar ou perder o foco, retornar a resolução correta e ao restaurar ou receber o foco ajustar para a resolução do seu projeto.
JPAULO101 02/06/2011 17:14:47
#375702
ROBIU SERÁ QUE VOCÊ PODE MIM AJUDAR COM ESSE PROPLEMA.

AGRADEÇO

MARCELO.TREZE 02/06/2011 17:39:52
#375711
joâo paulo vc poderia postar a tela de seu programa, pois as vezes achamos que soluções absurdas resolvem problema quando algo mais simples é melhor.

por exemplo, se vc colocar todos seus textbox,caption, botoes, dentro de uma picture com um tamanho especifico, e a propriedade maximized doform como true, e centralizado, vc poderia criar um código simples para ajustar a picturebox no centro do form, mas claro trabalhe com uma resolução minima.
RICARDO.RAPA 02/06/2011 18:09:04
#375720
Resposta escolhida
Cara é bem facil: faça assim:

Coloque um modulo no seu projeto e copie o código a baixo:

Type POINTAPI
x As Long
Y As Long
End Type

Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

Type APPBARDATA
cbSize As Long
hwnd As Long
uCallbackMessage As Long
uEdge As Long
Rc As RECT
lParam As Long
End Type

Public ResX As Single
Public ResY As Single
Public OldX As Single
Public OldY As Single
Public resolucao As Boolean

[ô]muda data e símbolo de R$
Public Const LOCALE_SSHORTDATE = &H1F
Public Const LOCALE_SCURRENCY = 20
Public Declare Function GetSystemDefaultLCID Lib [Ô]kernel32[Ô] () As Long
Public Declare Function SetLocaleInfo Lib [Ô]kernel32[Ô] Alias [Ô]SetLocaleInfoA[Ô] (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String) As Boolean

Public Declare Function GetClipCursor Lib [Ô]user32.dll[Ô] (lprc As RECT) As Long

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

Dim DevM As DEVMODE

Public Sub ChangeRes(iWidth As Single, iHeight As Single)
Dim A As Boolean
Dim i As Long
Do
A = EnumDisplaySettings(0&, i, DevM)
i = i + 1
Loop Until (A = False)

Dim B As Long
DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT
DevM.dmPelsWidth = iWidth
DevM.dmPelsHeight = iHeight
B = ChangeDisplaySettings(DevM, 0)
End Sub

NO FORM COLOQUE ASSIM:

Private Sub Form_Load()
[ô]ALTERA PARA RESOLUÇÃO DO SEU APLICATIVO
Call MudaResolucao
End Sub

Private Sub Form_Terminate()
[ô]VOLTA PARA RESOLUÇÃO DO WIN NORMAL
If resolucao = True Then
Call ChangeRes(OldX, OldY)
End If
End Sub

Public Sub MudaResolucao()
Dim t As Boolean
Dim s As Boolean
Dim r As RECT
t = True
s = True
ResX = 1024 [ô]ALTERAR RESOLUÇÃO PARA QUALQUER UMA
ResY = 768 [ô]ALTERAR RESOLUÇÃO PARA QUALQUER UMA
Call GetClipCursor(r)
OldX = r.Right
OldY = r.Bottom
If test = False Then
If OldX <> ResX Then
troq = MsgBox([Ô]Clique em SIM para Ajustar Resolução de Vídeo[Ô], vbInformation + vbYesNo)
test = True
If troq = vbYes Then
resolucao = True
Call ChangeRes(ResX, ResY)
Else
resolucao = False
End
End If
Else
resolucao = False
End If
End If

End Sub


Pronto. Ver se lhe ajuda.
JPAULO101 02/06/2011 18:21:41
#375722
COLOQUE CONFORME O CÓDIGO POSTADO, E ESTÁ DANDO ERRO NA SEGUINTE ROTINA
Página 1 de 2 [18 registro(s)]
Tópico encerrado , respostas não são mais permitidas