Instanciar Data Module

07/01/2010

7

Pessoal,   Como posso fazer para instanciar um mesmo data module em dois formulários diferentes para trabalharem simultaneamente.   Exemplificando:   Tenho um data module de clientes, tenho um formulário de cadastro de clientes e um outro de agendamento de visitas em ambos os formulários estão fazendo referencia o data module de clientes.   Problema: Quando seleciono um cliente na tela de cadastro o mesmo registro aparece no agendamento de visitas e vice-versa.   Pesquisei aqui no fórum e não consegui resolver o problema. Criei variável private nos formulários e não resolveu este problema.   Utilizao D2005, Firebird e dsp + cds + ds no data module.   Alguém tem alguma sugestão?   Att,   Rodolfo
Responder

Posts

crie uma nova instância do dm e aponte todos os seus componentes para esse novo dm.

- no form de agendamento, crie uma variável na seção private (essa variável será a nova instância do dm): SuaVariavel: TSeuDM;
- no onCreate do form agendamento, crie a instância do dm, com Application.CreateForm(TSeuDM, SuaVariavel);
- depois de instanciado o novo dm, aponte seus componentes para esse novo dm.

não esqueça de eliminar o novo dm  no onDestroy do form agendamento: FreeAndNil(SuaVariavel);


Responder