Como saber se um form já foi criado?

Delphi

22/11/2007

Eu gostaria de saber se tem como saber se um form já foi criado?

trabalho da seguinte forma:

Form := TForm.Create(self)

tem como saber se essa linha já foi executada, ou melhor se o form já foi criado?


Luiz_aquino

Luiz_aquino

Curtidas 0

Respostas

Vispo

Vispo

22/11/2007

Colega:

if Form <> NIL then
begin
  Showmessage(´O Form já foi criado!´);
end;



GOSTEI 0
Abadia

Abadia

22/11/2007

Existem várias formas de saber isto... umas mais seguras outras nem tanto.

Se vc tem pleno controle da variável que aponta para o TForm vc pode verificar se ela é nil, porem vc tem que certificar-se que ao destruir o formulário coloque nil na variável.

Outro modo é verificar se a variável encontra-se na lista de formulários mantida por Screen. Isto pode ser feito da seguinte forma:
var
I: Integer;
FormCreated: Boolean;
begin
FormCreated := False;
for I := 0 to Screen.CustomFormCount -1 do
if Screen.CustomForms[I] = Form then
begin
FormCreated := True;
Break;
end;
end;

Onde Form é o nome da variável de seu formulário e FormCreated o resultado de sua procura.


GOSTEI 0
Eniorm

Eniorm

22/11/2007

Colega:
if Form <> NIL then
begin
  Showmessage(´O Form já foi criado!´);
end;


isso só funciona se vc fazer assim na hora de liberar o form da memoria

form.Release;
form := Nil;
// ou
form.Release;
FreeAndNil(form)


do contrario não será válido o if form <> nil


GOSTEI 0
Rodc

Rodc

22/11/2007

E com assign, funciona mesmo não colocando nil ao excluir? Nunca testei!
if Assigned(Form1) then 
begin 
  Showmessage(´O Form já foi criado!´); 
end;



GOSTEI 0
POSTAR