Teste quot;Assigned(form1)quot; no evento quot;form1.onSh

Delphi

22/11/2005

pessoal
no Onshow do Form1, eu executo uma função que está no meu DataModule, lá nessa função eu faço:

if assigned(form1) then
begin
...
end;

só que o form1 aparece como NIL.

coloquei a função no Form1.Onshow porque ela deve ser executada toda vez que o form é criado.

Qual evento devo usar? ou devo substituir o teste com ´assigned´ por outra função ?


obrigado

Diogo


Diogoalles

Diogoalles

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

22/11/2005

não faz muito sentido ter uma função como essa. se a rotina será executada sempre que o form for criado, porque não colocá-la diretamente no form? além de deixar seu código mais ´limpo´, não seria necessário avaliar se o form está instanciado.


GOSTEI 0
Diogoalles

Diogoalles

22/11/2005

a função é utilizada por vários forms, por isso está centralizada facilitando a manutenção.

eu tb poderia utilizar a chamada dessa função diretamente onde ele é criado, só que os forms são criados a partir de vários pontos no sistema, então teria que ficar controlando todas as chamdas de criação dos forms ao invés de estar facilitado chamando no evento do proprio form.

obrigado

Diogo


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

22/11/2005

certo. ótimo.

então porque existe o [b:ca24eb6955]if assigned(form1)[/b:ca24eb6955] nessa função? se é uma função genérica, porque form1 está fixado lá? uma outra questão: se a função será chamada sempre que o form é exibido, porque o teste? se está sendo exibido (onShow) é porque foi criado.

de qualquer forma, se você precisar realmente saber qual form chamou essa função, eu sugiro que você passe o form como parâmetro.


GOSTEI 0
POSTAR