Fórum Como saber se um form já foi criado? #349459

22/11/2007

0

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

Responder

Posts

22/11/2007

Vispo

Colega:

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



Responder

Gostei + 0

22/11/2007

Abadia

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.


Responder

Gostei + 0

23/11/2007

Eniorm

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


Responder

Gostei + 0

23/11/2007

Rodc

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;



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar