MDIChild problema c fusão de componentes. (Leia mais...)
10/08/2008
0
Já vi em alguns sistemas que o componente ´TMainMenu´ de um fsMDIChild pode se unir com o ´TMainMenu´ do fsMDIForm.
Meu problema é dois.
1. Ao dar chamar o formulário fsMDIChild.
Application.CreateForm(TfrmTeste, frmTeste);
O componente ´TMainMenu´ sobrepõe os menus do programa. Estou tentando fazer com que os menus do form filho se fundam a direita dos menus do form pai.
Alguem pode me dar uma luz!?
2. Este é o que está mais me incomodando... sei que tenho que retirá-lo da memória de alguma forma, mas já procurei e num to achando.
Close;
Simplismente fechar estaria facil demais neh!? e tinha que cair na contradição. Fechando o form filho com o codigo acima, o form pai não recupera os componentes dele próprio. Fica com os componentes do form filho.
Socorro :!:
O que devo fazer!?
.lg.
Posts
10/08/2008
Discorpio
Respondendo a primeira pergunta.
Vá no MDIForm e click no TMainMenu e selecione o primeiro Item de Menu e vá no Object Inspector e na sua propriedade GroupIndex defina com o valor 1. Neste caso, somente o primeiro Item se juntará ao Menu dos MDIChildren, obviamente que se voce quiser que todos eles se juntem ao Menu dos MDIChildren (Forms Filhos), então defina a propriedade GroupIndex com o valor 1 de todos eles.
Respondendo a segunda pergunta.
Vá em cada Formulário Filho (MDIChildren) e no Object Inspector de cada um deles, vá na Aba Events e selecione clicando duas vezes na combo do Evento OnClose do mesmo, e defina assim o código:
procedure TForm4.FormClose(Sender: TObject; var Action: TCloseAction); begin FreeAndNil(Form4); end;
11/08/2008
.lg.
É interessante como coisas tão simples solucionam problemas tão grandes.
Estou no servio so a oite vou poder testar o codigo.
Obrigado pela grande ajuda.
Abraços,
.lg.
11/08/2008
.lg.
procedure TForm4.FormClose(Sender: TObject; var Action: TCloseAction); begin FreeAndNil(Form4); end;
Infelizmente a segunda resposta não deu certo. Os menus do ´fsMDIChild´ continuam no fsMDIForm.
Mas a primeira resposta funcionou.
mais alguem pode me ajudar!?
Att.
.lg.
16/08/2008
Digaopachesen
action :=CaFree;
NomedoForm:=nil;
Estas duas linhas devem resolver o seu problema
16/08/2008
Godzilla_xf
Olá, eu uso como o amigo acima descreveu, pode fazer que funciona normalmente.
Clique aqui para fazer login e interagir na Comunidade :)