TELA DE FUNDO

FUTURA 06/05/2015 15:29:16
#446428
Pessoal, coloquei uma picture no form mdi, e o logotipo fica posicionado, à direita e abaixo no form, no meu micro ficou legal, testei em 2 micros de um cliente, e em um deles com config igual ao meu, ficou boa, ja em outro com config de 1024 x 768, come metade da imagem...como vcs fazem esse ajuste ?

FABRICIOWEB 06/05/2015 15:36:38
#446429
Mostra um print para ver oque e
F001E 06/05/2015 17:38:32
#446435
Veja se isso te ajuda.
FUTURA 06/05/2015 17:56:50
#446436
F001E, o [Ô]veadinho[Ô] parece acompanhar o movimento da tela, mas não entendi a lógica, estou pensando em deixar o logo, a esquerda e acima perto da toolbar, assim vai aparecer em qualquer resolução..Não fica com visual bom igual posicionando a direita e abaixo (acima da statusbar), mas..........
FUTURA 06/05/2015 18:26:55
#446438
eu vi um sistema, que conforme muda a resolução do windows, (800x600 - 1024x768, etc) a tela de fundo do form principal, se ajusta à nova configuração, ficando maior ou maior, e não corta a imagem, no meu caso, coloquei uma picture no form mdi como imagem de fundo, mas se alguém tiver uma dica, agradeço.
TUNUSAT 07/05/2015 08:38:40
#446447
Futura,

Estava olhando na internet e achei isto:

http://www.scriptbrasil.com.br/forum/topic/139107-resolvido-centralizar-uma-imagem-em-um-form-mdi/

Parece que o camarada não colocou a imagem direto dentro do MDI, mas fez isto via código ajustando-a de acordo om a resolução encontrada no ambiente que irá rodar o programa.

[Ô]... mas primeiro cloquei uma picture depois uma image e dentro da image coloquei a imagem que eu queria e coloquei este código... [Ô]

Dim mode As Integer
Private Sub MDIForm_DblClick()
mode = mode + 1
If mode > 2 Then
MDIForm_Resize
End If
End Sub
Private Sub MDIForm_Load()
Picture1.Visible = False
Picture1.BackColor = Me.BackColor
MDIForm_Resize
End Sub
Private Sub MDIForm_Resize()
Picture1.AutoRedraw = True
Picture1.Cls
Picture1.Height = Me.ScaleHeight + Picture1.Height - Picture1.ScaleHeight


Select Case mode
Case 0 [ô]centered
Picture1.PaintPicture Image1.Picture, (Me.ScaleWidth - Image1.Width) / 2, (Me.ScaleHeight - Image1.Height) / 2
Case 1 [ô]stretched
Picture1.PaintPicture Image1.Picture, 0, 0, Me.ScaleWidth, Me.ScaleHeight
Case 2 [ô]tiled
Dim i As Integer, j As Integer


For i = 0 To Screen.Height Step Image1.Height


For j = 0 To Screen.Width Step Image1.Width
Picture1.PaintPicture Image1, j, i, Image1.Width, Image1.Height
Next

Next

End Select

Me.Picture = Picture1.Image
Picture1.AutoRedraw = False
End Sub


[][ô]s,
Tunusat.
F001E 07/05/2015 14:00:55
#446457
Veja agora.....[Ô]sem veado[Ô]....
FUTURA 08/05/2015 10:32:05
#446487
F001E, o problema era o [Ô]VEADO[Ô], rs.. valeu.
FUTURA 12/05/2015 11:33:47
#446564
Reabri o tópico, apareceu um problema ao minimizar o form, da erro nesta linha:

Picture1.PaintPicture Image1.Picture, 0, 0, Me.ScaleWidth, Me.ScaleHeight

Coloquei dentro de um if como abaixo:

If Me.ScaleWidth > 0 And Me.ScaleHeight > 0 Then
Picture1.PaintPicture Image1.Picture, 0, 0, Me.ScaleWidth, Me.ScaleHeight
End If

Resolveu o erro, mas quando restaura perde a imagem do fundo, fica [Ô]vazio[Ô]... bloquiei o minimizar no form, mas se usar a função para visualizar area de trabalho do windows, quando restaura o sistema, também volta sem o fundo, alguma dica ?
FUTURA 12/05/2015 12:49:28
#446566
acho que resolvi, coloquei o bloco de comando do resize, pra executar somente de estado do form (windowstate) for diferente de 1, vou deixar aberto o tópico até finalizar os testes.
F001E 12/05/2015 14:02:20
#446567
Private Sub MDIForm_Resize()
mode = 1
Picture1.AutoRedraw = True
If MDIForm1.WindowState <> vbMinimized Then

Picture1.Cls
Picture1.Height = Me.ScaleHeight + Picture1.Height - Picture1.ScaleHeight
Select Case mode
Case 0 [ô]centered
Picture1.PaintPicture Image1.Picture, (Me.ScaleWidth - Image1.Width) / 2, (Me.ScaleHeight - Image1.Height) / 2
Case 1 [ô]stretched
If Me.ScaleWidth > 0 And Me.ScaleHeight > 0 Then
Picture1.PaintPicture Image1.Picture, 0, 0, Me.ScaleWidth, Me.ScaleHeight
End If
Case 2 [ô]tiled
Dim i As Integer, j As Integer
For i = 0 To Screen.Height Step Image1.Height
For j = 0 To Screen.Width Step Image1.Width
Picture1.PaintPicture Image1, j, i, Image1.Width, Image1.Height
Next
Next
End Select
Me.Picture = Picture1.Image
End If
Picture1.AutoRedraw = False

End Sub
Página 1 de 2 [11 registro(s)]
Tópico encerrado , respostas não são mais permitidas