Berdam wrote: > ai pessoal blz > Tenho um dúvida, eu tenho um sistema, e enfrentamos problemas de Acess > Violation na abertura e fechamento dos datamodules. > > AS telas de cadastro não são showmodal e portanto pode abrir várias telas. > > AContece que no create do form, nós criamos o dm e no close do form > destruímos. > Se o usuário abrir duas telas que usem o mesmo dm e depois fechar uma e > tentar manipular o dados na outra acontece o av. > > Eu pergunto, seria um boa idéia, criar o dm na inicialização do programa (são > 10 dms ao todo) e deixar os componentes Tquery e ClientDataset com a > propriedade active false??, quando existisse alguma manipulação de dados, > trocaríamos a propriedade dos componenentes para true. > Dessa maneira pesaria muito a inicialização do programa ou deixando com false > esse peso é descartado???
Use contagem de referência. Aquele que criar o dm atribui 1 para a contagem. O próximo incrementa, passando para 2, e assim por diante. Quando dispensar o dm, decrementa o contador. Quando estiver em 1, ao invés de passar para 0, você o destrói. -- Joao Morais