MDIChild problema c fusão de componentes. (Leia mais...)
Oi, seguinte... estou tendo uns probleminhas.
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.
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.
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!?
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.
Curtidas 0
Respostas
Discorpio
10/08/2008
Boa noite .lg.
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:
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;
GOSTEI 0
.lg.
10/08/2008
´Uma mão lava a outra.´
É 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.
É 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.
GOSTEI 0
.lg.
10/08/2008
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;
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.
GOSTEI 0
.lg.
10/08/2008
ninguem... hmm que triste. :cry:
GOSTEI 0
Digaopachesen
10/08/2008
Cara no evento onClose faça o seguinte:
action :=CaFree;
NomedoForm:=nil;
Estas duas linhas devem resolver o seu problema
action :=CaFree;
NomedoForm:=nil;
Estas duas linhas devem resolver o seu problema
GOSTEI 0
Godzilla_xf
10/08/2008
Cara no evento onClose faça o seguinte:
action :=CaFree;
NomedoForm:=nil;
Estas duas linhas devem resolver o seu problema
Olá, eu uso como o amigo acima descreveu, pode fazer que funciona normalmente.
GOSTEI 0
.lg.
10/08/2008
:o
Minha salvação.
Gracias.
Att.
.lg.
Minha salvação.
Gracias.
Att.
.lg.
GOSTEI 0