Instância de Forms
Tenho um form chamado fmFiltro
Dentro de um outro form, chamado fmEqpto, quero instânciá-lo e faço assim:
lfmFiltro := fmfiltro.Create(fmEqpto);
Mas, dentro do fmEqpto tenho comando que usa variáveis do fmFiltro, tipo
fmFiltro.pmTipo := 1;
Ao compilar tudo bem, mas no momento de execução dá um erro de exceção, o que é obvio, pois o fmfiltro não está aberto e, sim, a sua instância.
Como resolver isto aí?
Dentro de um outro form, chamado fmEqpto, quero instânciá-lo e faço assim:
lfmFiltro := fmfiltro.Create(fmEqpto);
Mas, dentro do fmEqpto tenho comando que usa variáveis do fmFiltro, tipo
fmFiltro.pmTipo := 1;
Ao compilar tudo bem, mas no momento de execução dá um erro de exceção, o que é obvio, pois o fmfiltro não está aberto e, sim, a sua instância.
Como resolver isto aí?
Crpavao
Curtidas 0
Respostas
Marco Salles
06/09/2009
Vc tem que instanciar a partir da classe e não do objeto
lfmFiltro := fmfiltro.Create(fmEqpto); vai da acesso violado
Agora , não é obrigatorio , mesmo que vc instancie este form a partir de
outro que o mesmo seje o seu proprietário ... Tem que ver a real necessidade
disso.
Mas a principio para a sua duvida a utilização acima deve resolver
lfmFiltro := fmfiltro.Create(fmEqpto); vai da acesso violado
lfmFiltro := Tmfiltro.Create(fmEqpto);
Agora , não é obrigatorio , mesmo que vc instancie este form a partir de
outro que o mesmo seje o seu proprietário ... Tem que ver a real necessidade
disso.
Mas a principio para a sua duvida a utilização acima deve resolver
GOSTEI 0
Crpavao
06/09/2009
Marco,
Obrigado pela força.
Mas era isto mesmo que estava fazendo (só passei errado a informação).
O problema era outro: eu Estava definindo a variável lfmFiltro : TForm e deveria ser lfmFiltro : TfmFiltro.
Agora tô com outro pau, mas vou tentar resolver por aqui mesmo (questão de lógica, penso eu).
Obrigado, cara!
Obrigado pela força.
Mas era isto mesmo que estava fazendo (só passei errado a informação).
O problema era outro: eu Estava definindo a variável lfmFiltro : TForm e deveria ser lfmFiltro : TfmFiltro.
Agora tô com outro pau, mas vou tentar resolver por aqui mesmo (questão de lógica, penso eu).
Obrigado, cara!
GOSTEI 0