AAA
|
OURINHOS SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 16/09/2007 13:42 hs
Tenho um sistema que usa um form mdi, o no form filho todos os objetos coloquei dentro de uma label. Então, quando o mdi está maximizado, o filho também fica maximizado e a label fica centralizada no form filho. Preciso saber se tem como, em tempo de execução, conforme eu altere a dimensão do mdi com o mouse eu também posicione a label, ou seja, fixar a label sempre no centro do form. O valor left e ou top altera conforme eu movimento o form mdi. Tem como?
|
|
|
|
|
Postada em 17/09/2007 15:31 hs
Vc tem que trabalhar com as propriedade Width e Height da label conforme as dimensões do MDI. Faça uma proporção: width mdi por height mdi = width label por height label Se vc maximizar quais as dimensões de width e height do form mdi e da label? Pegue os valores e depois faça a proporção. Qualquer dúvida é só postar. At+ obs: eu não tenho como testar no momento, se não conseguir posso passar depois.
|
|
|
AAA
|
OURINHOS SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 18/09/2007 00:58 hs
ghost_jlp obrigado pela dica. O que eu faço no sistema é o seguinte: No evento load do form filho: If frmMDI.WindowState = 2 Then varCentraliza = (frmMDI.Width - pnlPrincipal.Width) / 2 pnlPrincipal.Left = varCentraliza End If varCentraliza é uma variável global que uso em todo sistema que recebe um determidado valor que é passado para a propriedade left da label. Funciona bem, porém, o que eu queria saber é se tem uma forma de fixar a label no centro conforme eu altere o tamnho pelo mouse. Do jeito que está só altera na propriedade .WindowState=0 then pnlPrincipal.Left=0.
|
|
|
Tekki
|
UBERLÂNDIA MG - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 18/09/2007 23:52 hs
AAA não sei se compreendi bem o que você quer mas fiz um pequeno exemplo, veja se é isto.... 'Declarar uma variável do tipo form Dim p_Form As Form 'No Resize do MDI form Private Sub MDIForm_Resize() For Each p_Form In Forms If p_Form.Name <> "frmMDI" Then varCentraliza = (frmMDI.Width - p_Form.pnlPrincipal.Width) / 2 p_Form.pnlPrincipal.Left = varCentraliza End If Next End Sub
|
|
|
AAA
|
OURINHOS SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 19/09/2007 00:23 hs
Ficou perfeito, funcionou do jeito que eu precisava, sugiro colocar este trecho de código nas dicas (se já não o fez). Valeu.
|
|
|