DUVIDA NO FORM MDI

USUARIO.EXCLUIDOS 13/04/2007 16:06:43
#211780
alguem sabe me dizer o que esta errado ou o que fazer para meu form abrir sempre na mesma posição dentro de um MDI pois ja coloque no load FORM.MOVE 0,0 mas quando fecho e abro novamente ele muda de posição
ALMARTI 13/04/2007 16:16:28
#211783
Primeiro, os forms que esta abrindo são MDIChild?

Se sim, eles devem obdecer suas configurações de TOP e LEFT


USUARIO.EXCLUIDOS 13/04/2007 16:22:57
#211784
ALMARTI são child mas não obedeçe.
LUIS.HERRERA 13/04/2007 16:23:41
#211785
Jair o que o Almarti disse é verdade.

Eu uso em meus programas a seguinte função para centralizar qualquer form, seja MDIchild ou não e também com ou sem o MDIPai estar aberto.

 Public Sub CentralizaForm(F As Form)
Dim TopXTop As Integer, TopYLeft As Integer
If F.MDIChild Then
TopYLeft = (MDIAmbiente.ScaleWidth - F.ScaleWidth) / 2
TopXTop = ((MDIAmbiente.ScaleHeight - F.ScaleHeight) / 2) - 100
Else
If Form_Esta_Carregado("MDIAmbiente") = True Then
TopYLeft = ((MDIAmbiente.Width - F.Width) / 2) + MDIAmbiente.Left
TopXTop = ((MDIAmbiente.Height - F.Height) / 2) + MDIAmbiente.Top
Else
TopYLeft = (Screen.Width - F.Width) / 2
TopXTop = (Screen.Height - F.Height) / 2
End If
End If
F.Move TopYLeft, TopXTop
End Sub

Public Function Form_Esta_Carregado(NomeForm As String) As Boolean
Dim Frm As Form
For Each Frm In Forms
If Frm.Name = NomeForm Then
Form_Esta_Carregado = True
Exit Function
End If
Next
Form_Esta_Carregado = False
End Function


Para usar no Load de cada form use:

CentralizaForm Me

LUIS.HERRERA 13/04/2007 16:24:34
#211787
Só um detalhe, o "MDIAmbiente" é o nome do formulário MDIPai ok.
USUARIO.EXCLUIDOS 13/04/2007 16:26:22
#211788
luiz ja baixei o centralizaform aqui do site mas continua o mesmo vou testar com a sua versão obrigado.
LUIS.HERRERA 13/04/2007 16:28:43
#211789
Jair veja se a propriedade StartUpPosition = 0-Manual para seguir o código do Load.
USUARIO.EXCLUIDOS 13/04/2007 16:49:11
#211797
tambem tá certo não sera porque é sexta-feira 13 , já aconteceu isto um tempo atras mas era autoshowchildren = true mas desta vez não .
USUARIO.EXCLUIDOS 13/04/2007 17:38:52
#211818
Resposta escolhida
JAIR300 tem certeza que seus forms (filhos) estão com a propriedade MDICHILD igual a TRUE?

Se estiverem coloque no Form_Load() o seguinte (exemplo):

me.top=1000
me.left=1000

AGORA o mais usual é usar uma rotina para centralizar qualquer form, como postou nosso amigo LUIS HERRERA.
USUARIO.EXCLUIDOS 13/04/2007 17:57:00
#211825
GALERA VALEU PELA AJUDA MAS " MOVE 0,0" OU "CENTRALIZAFORM" NÃO DEU CERTO . MAS PARA MINHA FELICIDADE FOI A DICA DO AMIGO FRAU QUE DEU CERTO . POR ISSO ESTOU ENCERRANDO O TOPICO E MAS UMA VEZ VALEU AMIGOS .
Tópico encerrado , respostas não são mais permitidas