Array
(
)

MDI Form - Verificar se ja esta ativo

Wagnermarrane
   - 07 fev 2006

Bom dia Pessoal

EU gostaria de saber como posso fazer para verificar se o meu fomulário ja esta aberto e caso ele esteja abero que o sistema o coloque como janela ativa novamente.

Atualmente estou usando um esquema de MDI Form e quando eu clique por ventura duas ou trez vezes no local em que crio o form ele simplismente recria o form e eu não quero que ele faça isso

abaixo o código de acesso do form

#Código

Application.CreateForm(TFrmEstacoes, FrmEstacoes);
FrmEstacoes.Show;


eu tentei colocar como SHOWMODAL, porém creio que MDI não da suporte.

Bom fico no aguardo de um help


Desde de ja agradeço

Wagner


Martins
   - 07 fev 2006

tente fazer assim:

#Código



if Formx = nil then
begin
Formx := TFormx.Create(Nil);
Formx.Show;
end
else
ShowMessage(´O form já está instanciado...´);
Formx.Show;


No OnDestroy do Formx coloque

#Código

Formx := Nil;


Boa sorte!!!


Paullsoftware
   - 07 fev 2006

tenho uma função que pode te ajudar bastante!
#Código

// Verifica se o form a ser criado já esta carregado
function FormExiste(aberto: Tform): Boolean;
var
I:Integer;
begin
FormExiste := false;
for I := 0 to Screen.FormCount -1 do
if Screen.Forms[i] = aberto then
begin
FormExiste := true;
Break;
end
end;

modo de usar
if Not FormExiste( fMostraRecados ) then
begin
fMostraRecados := TfMostraRecados.Create(Self);
fMostraRecados.BringToFront;
fMostraRecados.Focused;
end
else
begin
fMostraRecados.BringToFront;
fMostraRecados.Focused;
end;
onde fMostraRecados é o nome do form a ser verificado