USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Aplicativo passa da tela ao abrir com 800/600
JOM
BOM JESUS DA LAPA
BA - BRASIL
Postada em 08/06/2007 11:07 hs            
Criei um aplicativo usando a configuração de Tela do Windows 1024 por 768 pixels, mas quando a resolução é alterada para 800 po 600 pixels meu aplicativo passa do tamanho da tela, como configurá-lo melhor? para que rode em diferentes resoluções de telas sem problemas.
 
Desde já agradeço a atenção.
     
LCRamos
Pontos: 2843
GOIANIA
GO - BRASIL
Postada em 08/06/2007 20:08 hs            
Isto é complicado, amigo, não fica perfeito, mas, tem solução, meio no "BRAÇO", mas eu fiz assim:
Quando entra no sistema voce pega a resolução da tela:
Assim, se for 1024 X 768:
Nomeie duas variaveis públicas em um módulo do tipo Long:
Dim lHEIGHT As Long
Dim lWIDTH As Long
Nomeie duas variaveis, no form inicial do tipo Long
Dim yPixels As Long
Dim xPixels As Long
 
No formulário Inicial
 yPixels = Screen.Height / yTwips
 xPixels = Screen.Width / xTwips
 lHEIGHT = (yPixels / 768)
 lWIDTH = (xPixels / 1024)
Se a resolução for a mesma, estas variaveis valem 1.
 
Em cada Form, quando carregar
Private Sub Form_Load
 Me.Top =0
 Me.Left =0
 Me.Height = (9000 * lHEIGHT)
 Me.Width = (12000 * lWIDTH)
End Sub
 
Bem, claro que voce agora tem que fazer uma função em um módulo, alterando todos seus controles, posição e tamanho de acordo com a resolução, mas nada dificil, o importante é voce padronizar os nomes dos seus controles, com as 3 primeiras letras, ai, voce faz uma função que altera.
Dá trabalho, mas só uma vez, fiz e deu certo.
 
vlu// 
 
     
LCRamos
Pontos: 2843
GOIANIA
GO - BRASIL
Postada em 08/06/2007 20:18 hs            
Veja se entende a função que altera os controles
No módulo:
Public oOBJ  As Control
Public sRESIZE As Form
 
Public Function TAMANHO()
 Dim sSTR As String
 Dim I As Integer
 Dim nCOL As Column
 If lHEIGHT <> 1 Then
  For Each oOBJ In sRESIZE.Controls
   sCONTROL = oOBJ.Name
   sSTR = UCase$(Left(sCONTROL, 3))
   If sSTR <> "MNU" Then
    If sSTR <> "STE" Then
     If sSTR <> "TMR" Then
      If sSTR <> "DTA" Then
       If oOBJ.Top >= 70 Then
        oOBJ.Top = (oOBJ.Top * lWIDTH)
       End If
       If oOBJ.Left >= 70 Then
        oOBJ.Left = (oOBJ.Left * lHEIGHT)
       End If
       If sSTR <> "LBL" And sSTR <> "LAB" And sSTR <> "TXT" And sSTR <> "TEX" And sSTR <> "CBO" And sSTR <> "DRI" And sSTR <> "DTP" Then
        oOBJ.Height = (oOBJ.Height * lHEIGHT)
       End If
       If sSTR <> "PIC" Then
        oOBJ.Width = (oOBJ.Width * lWIDTH)
       End If
       If sSTR = "DBG" Then
        I = 0
        For Each nCOL In oOBJ.Columns
         nCOL.Width = oOBJ.Columns(I).Width
         oOBJ.Columns(I).Width = (nCOL.Width * lWIDTH)
         I = I + 1
        Next
       End If
      End If
     End If
    End If
   End If
  Next
 End If
 Exit Function
End Function
 
Chame assim do Formulário
 
Set sRESIZE = Me
TAMANHO
 
Agora a variavel sSTR, pega as 3 primeiras letras dos controles, que tem que serem padronizados.
Se não servir, descarte.
 
vlu//
     
JOM
BOM JESUS DA LAPA
BA - BRASIL
Postada em 08/06/2007 20:19 hs            
Muito obrigado, mais uma vez LcRamos.
valeu!
     
DCM
GOIÂNIA
GO - BRASIL
Postada em 09/06/2007 15:59 hs            
Aproveitando o embalo..........
 
COMO FAÇO PARA COLOCAR EM 800X600 automaticamente quando o usuario entrar no meu programa????????
 
alguem ai sabe????Emoções

"Se fizeres o bem, não é certo que serás aceito? E se não fizeres o bem, o pecado jaz à porta, e sobre ti será o seu desejo; mas sobre ele tu deves dominar - Gênesis 4.7" Emoções
     
LCRamos
Pontos: 2843
GOIANIA
GO - BRASIL
Postada em 09/06/2007 19:05 hs            
Coloque no módulo
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
 
Depois chame do formulário inicial
 
Call ChangeRes(800, 600)
 
vlu//
     
Página(s): 1/2      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página