GARANTIR DESCONTO

Fórum MDI: Como detectar a janela ativa? #194205

11/11/2003

0

Oi pessoal,

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

Yankleber

Responder

Posts

11/11/2003

Afarias

|1) Como detectar a janela que está ativa;

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+


Responder

Gostei + 0

11/11/2003

Yankleber

Olá,

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!


Responder

Gostei + 0

11/11/2003

Afarias

ActiveMDIChild retorna um TForm.

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+


Responder

Gostei + 0

11/11/2003

Yankleber

Funcionou!
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!


Responder

Gostei + 0

11/11/2003

Gbastos

Apesar de chegar um pouco tarde, já q já tiraram suas dúvidas, mas tb estou desenvolvendo um editor de texto, se tiver dúvidas ou boas idéias fale comigo..
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


Responder

Gostei + 0

11/11/2003

Yankleber

Oi,

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!


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar