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

22/11/2005

1

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


Responder

Posts

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.


Responder

22/11/2005

Diogoalles

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


Responder
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.


Responder