Verificar se form(MDI) já foi criado, ou se está ativo
Olá, como faço para saber qual form(MDI) dá minha aplicação está ativo? Eu tentei fazer isso com mas acho que isso só funciona para uma aplicação SDI. Alguém poderia me ajudar? Obrigado
if (Form1 = nil) then ...
Giancorrea
Curtidas 0
Respostas
Massuda
18/11/2005
No seu form principal...[list:b9eb66a632][*:b9eb66a632]a propriedade ActiveMDIChild indica qual form MDI child está ativo[*:b9eb66a632]a propriedade MDIChildCount indica quantos forms MDI child estão em uso[*:b9eb66a632]a propriedade MDIChildren é um array com os forms MDI child que estão em uso[/list:u:b9eb66a632]
GOSTEI 0
Giancorrea
18/11/2005
Massuda, desculpe a minha ignorância, mas como eu posso fazer uma verificação? Eu gostaria de criar um formulário uma vez só. Mas quero utilizar janelas MDI. Obrigado
GOSTEI 0
Massuda
18/11/2005
Você disse que vai ter uma único form de cada classe, mas poderá ter vários forms (de classes diferentes) criados simultaneamente?
GOSTEI 0
Giancorrea
18/11/2005
Isso mesmo. Há algo de errado nisso? :?: :?
GOSTEI 0
Massuda
18/11/2005
Isso mesmo. Há algo de errado nisso? :?: :?
Não... mas se você respondesse que só poderia ter um único form de cada classe e que num dado instante só poderia ter um form criado, eu diria para você continuar usando SDI.Imaginando que cada form seu é de uma classe diferente, para testar se já existe um form MDI child de uma determinada classe, faça algo assim em seu form principal...
var I: Integer; ... for I := 0 to MDIChildCount - 1 do begin if MDIChildren[I] is TSuaClasse then begin // já existe um form da classe TSuaClasse // MDIChildren[I] é o form Break; end; end; ...
GOSTEI 0
Giancorrea
18/11/2005
Valeu pelas dicas Massuda
GOSTEI 0
Eniorm
18/11/2005
eu num projetinho MDI eu usava assim pra abrir os forms e evitar que fosse aberto o mesmo form + de 1 vez
if (form = Nil) then
application.CreateForm(tform, form);
form.Show
e no OnClose do form (filho) eu uso
Action := caFree;
Release;
form := Nil;
fununciava blza!!!!!!!! e se vc tentasse abrir um form ja aberto, iria apenas mostrar o q ja estava aberto, sem re-criar ele
abraço
if (form = Nil) then
application.CreateForm(tform, form);
form.Show
e no OnClose do form (filho) eu uso
Action := caFree;
Release;
form := Nil;
fununciava blza!!!!!!!! e se vc tentasse abrir um form ja aberto, iria apenas mostrar o q ja estava aberto, sem re-criar ele
abraço
GOSTEI 0