Fórum Verifica se form já está aberto. #402513
07/06/2011
0
Júnior Garcia
Curtir tópico
+ 0Posts
07/06/2011
Nigro
Gostei + 0
07/06/2011
Rafael Mattos
Ja instanciado
Gostei + 0
07/06/2011
Júnior Garcia
eu até faço isso no menu, tipo:
if Form = nil then Application.CreateForm(TForm, Form);
Form.Show;Form.BringToFront;
(isso porque pode ser necessário abrir mais de um form DIFERENTE)
Só que quando fecho ele e abro denovo ele cria vários forms, como se ele já tivesse sido criado. Me disseram pra usar o Release; mas não deu certo, dá o Access Violation quando eu tento abrir novamente.
Gostei + 0
07/06/2011
Rafael Mattos
Gostei + 0
07/06/2011
Júnior Garcia
Está aparentemente funcionando quando coloquei no onClose de cada Form o FreeAndNil(Form); Parece que não tá dando nenhum erro.
Gostei + 0
27/10/2011
Flávio Lopes
Existe casos em que o form pode estar instanciado na memória e estar "hide" ou "close".
então creio que a opção melhor seria
if form nil then
begin
showmessage(Form criado na memória !);
if form.visible then
begin
showmessage(Form está aberto/visível. Fecharei);
form.close;
end
else
begin
showmessage(O form não está aberto. Abrirei.);
form.showmodal;
end;
// liberando form da memória
form.release;
form.free;
form:= nil;
if form = nil then
showmessage(O form foi liberado da memória);
end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)