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

22/11/2005

0

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

Responder

Posts

22/11/2005

Emerson Nascimento

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

22/11/2005

Emerson Nascimento

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

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar