Como saber se um form já foi criado?
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?
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
Curtidas 0
Respostas
Vispo
22/11/2007
Colega:
if Form <> NIL then begin Showmessage(´O Form já foi criado!´); end;
GOSTEI 0
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.
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
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
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