Fórum Verificar se o Form está aberto #267954
09/02/2005
0
Esta é moleza, e pra variar eu não sei
Tenho vários forms. Criados em tempo de execução.
Como faço para saber se o um Form está criado ou não?
Valeu OBrigado.
Dbergkamps
Curtir tópico
+ 7Post mais votado
09/02/2005
obrigado e boa noite.
Dbergkamps
Gostei + 4
Mais Posts
09/02/2005
Poeta Noturno
faça assim:
if form1 = nil then
[não está criado]
else
[está criado]
um abraço
Rodrigo
Gostei + 1
09/02/2005
Massuda
Assumindo que você só tem um form de cada classe, o seguinte código resolveria o problema de saber se um form está criado (não testei):
function FormEstaCriado(AClass: TClass): Boolean; var I: Integer; begin Result := False; for I := 0 to Screen.FormCount -1 do begin if Screen.Forms[I] is AClass then begin Result := True; Break; end; end; end;
if not FormEstaCriado(TSeuForm) then begin ...
Gostei + 1
10/02/2005
Rodc
if Assigned(TForm1) then //Criado else //Não criado
O Assigned faz nada mais que comparar o objeto com nil.
Gostei + 2
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/visível. 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 + 1
Clique aqui para fazer login e interagir na Comunidade :)