criando data module ...
ola amigos ...
nao sei se é usual fazer isso ... mas estou deixando os datamodules sem carregar no comeco da aplicacao, eu crio somente quando vou usar
para criar to usando o seguinte codigo ....
e no evento onDestroy do datamodule coloco o codigo:
esse datamodule é destinado apenas a um formulario, criei mais por motivos de organizacao ... quando abro o formulario, crio o datamodule, e depois crio o form ... no evento onclose do form vai o seguinte codigo:
agora me digam, isso esta certo???
é uma pratica segura???
conto com sua colaboracao ...
abraçoss
nao sei se é usual fazer isso ... mas estou deixando os datamodules sem carregar no comeco da aplicacao, eu crio somente quando vou usar
para criar to usando o seguinte codigo ....
if not Assigned(DmRE)then Application.CreateForm(TDmRE,DmRE);
e no evento onDestroy do datamodule coloco o codigo:
DmRE:= nil;
esse datamodule é destinado apenas a um formulario, criei mais por motivos de organizacao ... quando abro o formulario, crio o datamodule, e depois crio o form ... no evento onclose do form vai o seguinte codigo:
procedure TFrmRE.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:= CaFree; FrmRe:= nil; DmRE.Destroy; end;
agora me digam, isso esta certo???
é uma pratica segura???
conto com sua colaboracao ...
abraçoss
Rafael Gomes
Curtidas 0
Respostas
Aroldo Zanela
27/01/2006
Colega,
O importante é que ele esteja criado e disponível no momento que necessitar. Particularmente, prefiro criá-lo na inicialização do sistema.
O importante é que ele esteja criado e disponível no momento que necessitar. Particularmente, prefiro criá-lo na inicialização do sistema.
GOSTEI 0
Tnaires
27/01/2006
Olá
Acho q seu código está bom, com exceção do DmRE.Destroy. Ao invés disso, chame DmRE.Free.
Abraços
Acho q seu código está bom, com exceção do DmRE.Destroy. Ao invés disso, chame DmRE.Free.
Abraços
GOSTEI 0
Rafael Gomes
27/01/2006
qual a diferenca dos metodos destroy e free????
[]ss
[]ss
GOSTEI 0
Tnaires
27/01/2006
Extraído da ajuda do Delphi:
O método Free verifica se a referência ao objeto não é nil antes de chamar o Destroy.
Do not call Destroy directly. Call Free instead. Free verifies that the object reference is not nil before calling Destroy.
Unlike Destroy, Free provides a safeguard when destroying objects that are nil.
O método Free verifica se a referência ao objeto não é nil antes de chamar o Destroy.
GOSTEI 0
Rafael Gomes
27/01/2006
entao chamando chamando free, logo em sguida é chamado o metodo destroy, e a vairavel fica valendo nil???
ou devo utilizar o seguinte codigo ..
ou somente
desculpe a pergunta, mas ficou meio confuso ...
[]ss
[/i]
ou devo utilizar o seguinte codigo ..
DmRE.Free; DmRE:= nil;
ou somente
DmRE.Free;
desculpe a pergunta, mas ficou meio confuso ...
[]ss
[/i]
GOSTEI 0
Tnaires
27/01/2006
Não, a variável deve ser setada como nil manualmente mesmo. O Free só elimina o objeto, mas a referência continua apontando para o endereço do objeto.
Por isso, vc deve usar o Free, e logo em seguida, atribuir nil à referência.
Abraços
Por isso, vc deve usar o Free, e logo em seguida, atribuir nil à referência.
Abraços
GOSTEI 0