Fórum Referência circular #298895
10/10/2005
0
Olá pessoal, tô com um perrengue sinistro!
É o seguinte: tenho uma classe de negócios TPeca, que possui métodos de persistência como Salvar, Consultar, Excluir etc. Esses métodos usam uma classe utilitária responsável pelos detalhes de persistência, TRepositorioPeca.
O problema é que TPeca possui um TRepositorioPeca, mas TRepositorioPeca também referencia TPeca em seus métodos. Tipo assim, TPeca.Salvar chamaria TRepositorioPeca.Salvar(Self), onde Self é to tipo TPeca.
O problema é que colocando TPeca e TRepositorioPeca em units separadas dá erro fatal de referência circular, e na mesma unit ocorre o seguinte na declaração das classes:
TPeca referencia TRepositorioPeca, que só está definida abaixo e o Delphi diz que não conhece TRepositorioPeca. E se inverto a ordem também acontece! TRepositorioPeca referencia TPeca que está definida abaixo e é desconhecida...
Acho que não teria problema fazer isso com Java... Alguém tem uma solução? :D
[quote:7ea07b62d8=´Moderação´]Título editado por Massuda.
Removido do título: ´perrengue sinistro!´[/quote:7ea07b62d8]
É o seguinte: tenho uma classe de negócios TPeca, que possui métodos de persistência como Salvar, Consultar, Excluir etc. Esses métodos usam uma classe utilitária responsável pelos detalhes de persistência, TRepositorioPeca.
O problema é que TPeca possui um TRepositorioPeca, mas TRepositorioPeca também referencia TPeca em seus métodos. Tipo assim, TPeca.Salvar chamaria TRepositorioPeca.Salvar(Self), onde Self é to tipo TPeca.
O problema é que colocando TPeca e TRepositorioPeca em units separadas dá erro fatal de referência circular, e na mesma unit ocorre o seguinte na declaração das classes:
TPeca referencia TRepositorioPeca, que só está definida abaixo e o Delphi diz que não conhece TRepositorioPeca. E se inverto a ordem também acontece! TRepositorioPeca referencia TPeca que está definida abaixo e é desconhecida...
Acho que não teria problema fazer isso com Java... Alguém tem uma solução? :D
[quote:7ea07b62d8=´Moderação´]Título editado por Massuda.
Removido do título: ´perrengue sinistro!´[/quote:7ea07b62d8]
Renatosilva
Curtir tópico
+ 0
Responder
Posts
10/10/2005
Massuda
O problema é que colocando TPeca e TRepositorioPeca em units separadas dá erro fatal de referência circular,
Isso não funciona.e na mesma unit ocorre o seguinte na declaração das classes:
TPeca referencia TRepositorioPeca, que só está definida abaixo e o Delphi diz que não conhece TRepositorioPeca. E se inverto a ordem também acontece! TRepositorioPeca referencia TPeca que está definida abaixo e é desconhecida...
Para não dar erro, faça algo assim...type TRepositorioPeca = class; TPeca = class... // definição de TPeca end; TRepositorioPeca = class... // definiçào de TRepositorioPeca end;
Responder
Gostei + 0
10/10/2005
Renatosilva
Caraca massuda!!! Muito boa!! Valeuzão cara, funcionou!
Agora eu entendo o porquê de várias classes da VCL estarem com essa declaração simplória... muito legal... valeu!!! :D :D
Agora eu entendo o porquê de várias classes da VCL estarem com essa declaração simplória... muito legal... valeu!!! :D :D
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)