Na realidade,
você deve utilizar o formprincipal.MDIChildCount para saber a quantidades de
janelas abertas, e dentro de uma estrutura de for, voce corre e utilizando
formprincipal.MDIChildren[i] voce vai testando a classe e fecha os q vc
quiser:

procedure TForm1.Button1Click(Sender: TObject);
var
  i :Integer;
begin
  for i := 0 to Self.MDIChildCount -1 do
    if Self.MDIChildren[i] is TForm2 then
      Self.MDIChildren[i].Close;
end;


espero ter ajudado

falow


-- 
Thales Eduardo Barros de Oliveira
Desenvolvedor Delphi / Firebird
Emails:
[EMAIL PROTECTED] (GoogleTalk)
[EMAIL PROTECTED] (MSN)
Blog:
http://tebosoftware.blogspot.com/

"Tente ser uma pessoa de valor, não de sucesso"
Albert Einstein

Em 21/01/08, Ricardo Ravelli <[EMAIL PROTECTED]> escreveu:
>
>   Boa noite a todos,
>
> Tenho uma aplicação MDI que no evento onclose do form principal faço com
> que
> ele oculte e fique somente no icon tray. Mas o problema é quando tem algum
> form MDIChild aberto, ao tentar fazer ocultar o sistema não oculta
> direito.
>
> No evento onclose do form principal:
>
> Action := caNone;
> FrmPrincipal.Hide;
>
> A minha dúvida é a seguinte: como eu faço pra verificar se tem qualquer
> form
> "filho" aberto no sistema e fechar esses forms filhos de f dentro do form
> principal??
> Já tentei usar IF( NomeForm <> NIL ) then só que mesmo que o form filho
> esteje aberto ele aparece sendo igual a NIL..
>
> Por favor, se alguém puder me ajudar com esse problema, alguém que
> trabalha
> com aplicações MDI, é o meu primeiro sistema em formato MDI.
>
> Obrigado.
> Ricardo Ravelli.
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]

Responder a