mwramos
|
PORTO ALEGRE RS - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 10/01/2007 17:05 hs
Eu quero colocar o meu form no canto inferior direito da tela, estou calculando da seguinte forma:
form1.Top = Screen.Height - form1.Height
Mas uma parte do form fica por baixo da barra de tarefas do windows, e no XP a diferença fica maior ainda...
Espero que possam me ajudar. Obrigado!
|
|
|
|
CSRocha
|
BRASILIA DF - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 11/01/2007 22:43 hs
Calcule a altura da barra em twips (no olhômetro, tentative-e-erro mesmo). E desconte no screen.Height
form1.Top = (screen.height - x) - form1.height
Espero que ajude.
|
|
|
|
Postada em 12/01/2007 14:07 hs
Esta forma do "olhômetro" é exatamente o que tenho hoje e me gera transtornos, pois a altura da barra varia conforme a versão do Windows e coforme o tema utilizado. Mas achei a solução, para quem interesse: Obrigado!
|
|
|
|
Postada em 12/01/2007 15:41 hs
Ja tentou fazer um calculo com esta logica que segue? heigth da tela - heigth da barra inicialização (ou Top) - heigth do form = top do form. Pense com esta lógica e tente... vale a tentativa.
|
TÓPICO EDITADO
|
|
|
|
|
Postada em 12/01/2007 16:12 hs
Tente tambem maximizar o form, pegar o heigth, e voce terá o Top da barra de inicialização... acho que é scaleheigth (propriedade do form maximizado), pegue o heigth do form minimizado ou no tamanho que voce dimencionou e determine o seu Top desejado. Espero que a logica te ajude, to sem programar faz tempo, se não te faria um exeplo mastigadinho. Abraço
|
|
|
Geronimo
não registrado
|
|
ENUNCIADA !
|
|
|
Postada em 14/01/2007 16:26 hs
O código abaixo tem vantagem de funcionar mesmo que a barra esteja no topo da tela ou em um dos lados.
Para testar basta desenhar um commandbutton e colar o seguinte código:
Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long) As Long Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type Private Const SPI_GETWORKAREA = 48
Sub TelaToda(frm As Form)
Dim lNewTop As Long, lNewLeft As Long Dim WA As RECT, lReturn As Long ' Busca as coordenadas da tela excluindo a barra de tarefas lReturn = SystemParametersInfo(SPI_GETWORKAREA, 0&, WA, 0&)
' Converte de pixels para twips WA.Left = WA.Left * Screen.TwipsPerPixelX WA.Right = WA.Right * Screen.TwipsPerPixelX WA.Top = WA.Top * Screen.TwipsPerPixelY WA.Bottom = WA.Bottom * Screen.TwipsPerPixelY
Me.Move 0, 0, WA.Right - WA.Left, WA.Bottom - WA.Top End Sub
Private Sub Command1_Click()
TelaToda Me End Sub
Private Sub Form_Load()
Command1.Caption = "Clique Para Maximizar" End Sub
|
|
|