vms Postado Fevereiro 12, 2008 Denunciar Share Postado Fevereiro 12, 2008 stou fazendo um programa usando MDI (não é editor de texto)tenho 3 janelas filhas e cada uma so abre uma vezcomo faço pra aparecer a lista de janelas filhas aberta no menu (Janela)onde eu clico e foca a janela desejada? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Vivendo&Aprendendo Postado Fevereiro 12, 2008 Denunciar Share Postado Fevereiro 12, 2008 (editado) Olá Vms...Adicione no menu do seu form principal um menu Janela;Adicione na uses do seu form filho a clausula Menus;Adicione na uses do form filho a unit do form principal, porque é dele que será puxado o menu;No OnCreate do seu form filho coloque o seguinte código:procedure TForm1.FormCreate(Sender: TObject); var MyMenu: TMenuItem; begin FrmPrincipal.Janela1.Tag := FrmPrincipal.Janela1.Tag + 1; Mymenu := TMenuItem.Create(FrmPrincipal.Janela1); MyMenu.Caption := Caption; MyMenu.OnClick := FormToFront; MyMenu.Tag := FrmPrincipal.Janela1.Tag; Tag := MyMenu.Tag; FrmPrincipal.Janela1.Add(MyMenu); end; Esse evento fará aparecer o nome do form filho no menu. Onde Janela1 é o nome do Menu que você criou. No evento OnDestroy do form filho coloque o seguinte código: var I: Integer; begin for I := 0 to FrmPrincipal.Janela1.Count - 1 do begin if FrmPrincipal.Janela1.Items[i].Tag = Tag then begin FrmPrincipal.Janela1.Delete(I); Break; end; end; end; Este código irá excluir do menu caso o form seja fechado. Adicione este procedimento, que irá fazer ativar a janela clicada no menu procedure TForm1.FormToFront(Sender: TObject); begin BringToFront; end;Para esete código funcionar você terá que declarar ele junto com os procedimentos que o delphi declara automaticamente...É isso ai, qualquer dúvida posta aiAbraços Editado Fevereiro 12, 2008 por Micheus Substituída tag QUOTE por CODE. Por favor utilize a tag adequada. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vms Postado Fevereiro 13, 2008 Autor Denunciar Share Postado Fevereiro 13, 2008 cara, é Vivendo&Aprendendo mesmo hein!é exatamente isso que eu queria, valeu!so mais uma pergunta. como faço pra deixar o menu da janela focada marcada (Checked)?desde já agradeço pelo dica. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Vivendo&Aprendendo Postado Fevereiro 13, 2008 Denunciar Share Postado Fevereiro 13, 2008 (editado) Opa VmsBasta você colocar no evento OnDeactivate do form filho este código:procedure TFrmClientes.FormDeactivate(Sender: TObject);begin MyMenu.Checked := False;end;Este código irá desmarcar o menu quando este não estiver ativo.Pegue a variável var MyMenu: TMenuItem; que está no OnCreate e coloque ela como variável global, porque o procedimento acima irá usar ela também.O seu OnCreate irá ficar da seguinte forma:procedure TFrmClientes.FormCreate(Sender: TObject);begin FrmPrincipal.Janela1.Tag := FrmPrincipal.Janela1.Tag + 1; Mymenu := TMenuItem.Create(FrmPrincipal.Janela1); MyMenu.Caption := Caption; MyMenu.OnClick := FormToFront; MyMenu.Tag := FrmPrincipal.Janela1.Tag; Tag := MyMenu.Tag; FrmPrincipal.Janela1.Add(MyMenu);end;O procedimento que traz o form clicado no menu para frente, deixe ele da seguinte forma:procedure TFrmClientes.FormToFront(Sender: TObject);begin BringToFront; MyMenu.Checked := True;end;No Evento OnActivate do form filho coloque este código para que quando você abrir o form ele já esteja marcado no menu.procedure TFrmContasReceber.FormActivate(Sender: TObject);begin MyMenu.Checked := True;end;O evento OnDestroy ficará da mesma forma.Qualquer dúvida posta ai.Abraços Editado Fevereiro 13, 2008 por Vivendo&Aprendendo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vms Postado Fevereiro 14, 2008 Autor Denunciar Share Postado Fevereiro 14, 2008 valeu garoto, você é D+deu certinho! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
vms
stou fazendo um programa usando MDI (não é editor de texto)
tenho 3 janelas filhas e cada uma so abre uma vez
como faço pra aparecer a lista de janelas filhas aberta no menu (Janela)
onde eu clico e foca a janela desejada?
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.