Problemas ao fechar todos os MDIChild abertos
Ola pessoal, estou tentando fechar todos os MDI Child que tenho aberto no pai, mas não está dando certo.
To tentando dessa forma:
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.
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
Curtidas 0
Respostas
Digaopachesen
18/09/2008
Tenho esta função e esta funcionando:
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...
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...
GOSTEI 0
Sérgio Gobbo
18/09/2008
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.
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.
GOSTEI 0
Digaopachesen
18/09/2008
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);
GOSTEI 0