Teste quot;Assigned(form1)quot; no evento quot;form1.onSh
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
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
Curtidas 0
Respostas
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
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
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
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.
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