Circular unit reference

13/01/2006

tenho a seguinte situação:
no Form1 delaro uma property do tipo de um TDataModule1 e no DataModule1 declaro uma property do tipo TForm1.
tá aí a referência circular. sendo que eu preciso fazer assim.
como posso resolver isso?


Raserafim

Respostas

13/01/2006

Marcelo Saviski

isso ocoore quando faz referencia a uma unidade em outra unidade e a outra na uma...

por exemplo, digamos que você tenha uma Unit1 e uma Unit2

A unit1 pode estar assim
unit Unit1; uses Windows, ..., Classes, ...., [b:47edbaa21c]Unit2[/b:47edbaa21c];

e na unit 2
unit Unit2; uses Windows, ..., Classes, ...., [b:47edbaa21c]Unit1[/b:47edbaa21c];


isso é a referencia circular.

para resolver, vc vai ter que declarar a sua property do tipo Form1 em um lugar fora da classe, depois do [b:47edbaa21c]implementation[/b:47edbaa21c], remover a Unit do form do uses ´de cima´ e colocar isso depois do implementation:

uses UnitDoForm


ou pode fazer isso na unit do form ao invez na do DataModule.

A solução é você ter uma das units (a ´secundária´) declarada no uses ´de baixo´, depois do implementation, ai vc pode fazer referencia entra ambas as units.


Responder Citar

14/01/2006

Raserafim

foi exatamente isso q acabei fazendo.
valeu Marcelo


Responder Citar