PROBLEMA COM TELAS E RESOLUCOES DIFERENTES
Pessoal e o seguinte eu crio meus sistemas em resolução de tela em 1028 x 800 entao as tela sao feitas neste padrao mas quando inst os sistemas e os clientes nao tem monitores com a mesma resolucao ai dano! como eu poderia resolver isso tem alguma maneira do sistema ajustar-se a resolucao ou coisa parecida ?


Você deve programar em resolução de tela mais baixa...
Eu programo em 600 x 800 e nunca tive problemas...
Nossa mas vc nao acha ruim os controles ficam enormes e nao tem espaço na tela pra nada ?
voce poderia usar as opcoes archor e outra que redimensiona os itens dentro da form.....eu to com esse mesmo problema mais estou aprendendo ainda a usar essas opcoes..
entao se eu fizer em resolucao de 800x600 quando a reso for 1024x768 ai sai tudo do lugar fica muito feio tem que ter outro jeito !
Nao seria interessante tipo Pasta do sistema
C:\SISTEMA
ai vc fazer as 3 opcoes tipo uma pasta ex
1 - C:\SISTEMA\800X600
2 - C:\SISTEMA\1024X748
3 - C:\SISTEMA\1028X800
ai uma tela que cheque qual resolucao vc esta na tela e entao execute o executavel correpondente sei que vcs vao falar que da uma roça mas e o unico jeito que vejo pra nao ter prob com os ajustes de tela !
C:\SISTEMA
ai vc fazer as 3 opcoes tipo uma pasta ex
1 - C:\SISTEMA\800X600
2 - C:\SISTEMA\1024X748
3 - C:\SISTEMA\1028X800
ai uma tela que cheque qual resolucao vc esta na tela e entao execute o executavel correpondente sei que vcs vao falar que da uma roça mas e o unico jeito que vejo pra nao ter prob com os ajustes de tela !
Olha só souza primeiro ao criar seu sistema, vc deve colocar requisitos, no caso um dos requisitos seria uma resolução minima de 1024X768.
se vc deseja que o seu sistema funcione em 800X600, acredito que somente computadores muito antigos ainda possuem esta resolução, entã terá de criar seu sistema nesta resolução.
outra solução seria alterar a resolução do PC e ao terminar o programa voltar a resolução original
veja este exemplo
No form principal cole
e em um módulo cole
se vc deseja que o seu sistema funcione em 800X600, acredito que somente computadores muito antigos ainda possuem esta resolução, entã terá de criar seu sistema nesta resolução.
outra solução seria alterar a resolução do PC e ao terminar o programa voltar a resolução original
veja este exemplo
[ô]No General do form
Dim Res() As String
No form principal cole
Private Sub Form_Load()
Dim intX As Integer
Dim intY As Integer
Dim strResolucao As String
intX = Screen.Width / Screen.TwipsPerPixelX
intY = Screen.Height / Screen.TwipsPerPixelY
strResolucao = intX & [Ô]x[Ô] & intY
If strResolucao <> [Ô]1024x768[Ô] Then
Res = Split(strResolucao, [Ô]x[Ô]) [ô]Armazena a resolução em uma array
Call ChangeRes(1024, 768) [ô]altera a resolução para 1024x768
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
[ô]quando você encerrar o programa
Call ChangeRes(CInt(Res(0)), CInt(Res(1))) [ô]Retorna para resolução padrão do PC
End Sub
e em um módulo cole
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
Private Const CCDEVICENAME = 32
Private Const CCFORMNAME = 32
Private Const DM_PELSWIDTH = &H80000
Private 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
Global Res() As String
Public Sub ChangeRes(iWidth As Single, iHeight _
As Single)
Dim DevM As DEVMODE
Dim a As Boolean
Dim i As Long
Dim b As Long
i = 0
Do
a = EnumDisplaySettings(0&, i&, DevM)
i = i + 1
Loop Until (a = False)
DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT
DevM.dmPelsWidth = iWidth
DevM.dmPelsHeight = iHeight
b = ChangeDisplaySettings(DevM, 0)
End Sub
marcelo vc diz que vc deve criar entao um padrao fixo tipo o cliente tem que ter no minimo uma pc que tem a resolucao 1024x768 isso ?
exato,
repare os programas de renome a maioria dlees existe uma configuração minima.
então se vc ter certeza que seu programa ira funcionar plenamente em uma configuração minima deverá exigir isto do cliente entendeu?
repare os programas de renome a maioria dlees existe uma configuração minima.
então se vc ter certeza que seu programa ira funcionar plenamente em uma configuração minima deverá exigir isto do cliente entendeu?
Fiz como vc falou so que uma comando para centralizar as tela no form parou de funcionar oq pode ser uso a seguinte linha pra centralizar
[ô]Centraliza a tela
Me.Left = (Screen.Width - Me.Width) / 2
Me.Top = (Screen.Height - Me.Height) / 2
c tiver em resolucao altar ele centraliza c voltar pra 1024x768 ele centraliza errado ?
[ô]Centraliza a tela
Me.Left = (Screen.Width - Me.Width) / 2
Me.Top = (Screen.Height - Me.Height) / 2
c tiver em resolucao altar ele centraliza c voltar pra 1024x768 ele centraliza errado ?
como assim centralizar a tela no form?
como você fez afinal? colocou um MDI
como você fez afinal? colocou um MDI
Tópico encerrado , respostas não são mais permitidas