Fórum MDI: Como detectar a janela ativa? #194205
11/11/2003
0
Estou fazendo um pequeno aplicativo (um mini editor de textos) usando MDI. Preciso, a partir da janela-pai, controlar as janelas-filhas, ou seja, os controles para SALVAR, SALVAR COMO, FECHAR, etc, estarão na janela-pai.
Minhas dúvidas são:
1) Como detectar a janela que está ativa; e
2) Como enviar um comando da janela-pai para a janela-filha, ou seja, quando eu der um SALVAR na janela-pai, como fazer com que ele execute o SALVAR na janela correta?
Obrigado!
Yankleber
Curtir tópico
+ 0Posts
11/11/2003
Afarias
Screen.ActiveForm
|2) Como enviar um comando da janela-pai para a janela-filha, ou seja,
|quando eu der um SALVAR na janela-pai, como fazer com que ele
|execute o SALVAR na janela correta?
(Screen.ActiveForm as TMeuForm).SalvarDados;
vc pode tb usar o evento OnActiveFormChange do objeto Screen para saber quando o usuário mudou de um form para outro.
T+
Gostei + 0
11/11/2003
Yankleber
Já consegui acessar a janela ativa usando ActiveMDIChild.
Contudo, quando tento executar o salvamento do conteúdo de um Memo através de uma janela de diálogo, ocorre o seguinte...
Se eu fizer:
ActiveMDIChild.memTexto.Lines.SaveToFile(dlgSalvar.filename);
o programa não compila pois diz que memTexto não foi definido
Agora, se eu fizer:
frmFilho.memTexto.Lines.SaveToFile(dlgSalvar.filename);
quando executa a linha acima, causa um erro de exceção...
O que deve estar acontecendo???
Grato!
Gostei + 0
11/11/2003
Afarias
vc tem q ´dizer´ q está acessando um TfrmFilho (sub-classe de TForm) para fazer o q precisa::
(ActiveMDIChild as TfrmFilho).memTexto.Lines.SaveToFile(dlgSalvar.filename);
T+
Gostei + 0
11/11/2003
Yankleber
Valeu mesmo, cara!
Eu ainda estou apanhando um pouco com o Delphi, em relação a essas minúncias... mas eu chego lá!
Um abraço!
Gostei + 0
11/11/2003
Gbastos
Para quando clicar o botão no pai salvar no filho, eu fiz diferente, criei uma procedure Salvar no filho e o OnClick do botao do pai chamava essa procedure: (ActiveMDIChild as TEditorForm).Salvar
Outra coisa que vc talvez ache útil é o MDIChildren[I] que acessa os forms filhos, aí se vc quiser acessar todos os forms vc pode fazer algo como:
for I := MDIChildCount - 1 to 0 do begin with (MDIChildren[I] as TEditorForm) do
Abraços
Gostei + 0
11/11/2003
Yankleber
O MDIChildren é muito útil mesmo.
Eu já tinha encontrado por aí, e usei para fazer um botão que fecha todas as janelas.
Esse editorzinho que estou fazendo ficou muito bom (acabei de terminá-lo agora) e é um trabalho para a faculdade. Se você tiver interesse, posso te mandar uma cópia dos fontes para dar uma olhada...
Um abraço!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)