Fórum Problemas ao fechar todos os MDIChild abertos #364084

18/09/2008

0

Ola pessoal, estou tentando fechar todos os MDI Child que tenho aberto no pai, mas não está dando certo.

To tentando dessa forma:

for i:= 0 to Form.MDIChildrenCount -1
      Form.MDIChildren[i].Close;


Mas ele dá um erro num endereço de memória.

Já tentei de tudo.... tentei fechar do ultimo para o primeiro, tentei fechar sempre o indice 0......... mas nada dá certo.

Alguém sabe alguma outra forma de fechar todos os child?

Obrigado.


Sérgio Gobbo

Sérgio Gobbo

Responder

Posts

18/09/2008

Digaopachesen

Tenho esta função e esta funcionando:

var
  i:integer;
begin
  for i:=MdichildCount-1 downto 0 do
    mdichildren[i].close;


esta quase igual ao seu, veja se vai funcionar, tambem talves verifique se vc collocou em todos os form no evento onClose, Action := CaFree;

Tenta ai..Espero ter Ajudado...


Responder

Gostei + 0

19/09/2008

Sérgio Gobbo

Então Digão, já tinha tentado esse código anteriormente, mas dá o mesmo erro.

Mas hoje percebi que só ocorre quando tem 2 janelas do mesmo formulário aberto. Pra testar eu clicava duas vezes no mesmo botão, abrindo 2X o mesmo form, será que é isso? Pois quando abro vários forms, mas todos diferentes não gera o erro.

Acho que o mais sensato seria impedir a abertura do mesmo form mais de uma vez simultâneamente.

Obrigado pela ajuda.


Responder

Gostei + 0

19/09/2008

Digaopachesen

Tenta isso aki, so copie nao tentei blz flw
LockWindowUpdate(Handle);
  if (NomedoForm= nil) then
    begin
      try
        Application.CreateForm (TNomedoForm, NomedoForm);
      except
        NomedoForm.Free;
      end;
    end;
  NomedoForm.Show;
  LockWindowUpdate(0);



Responder

Gostei + 0

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

Aceitar