Fórum Orientação a Obj #418056

04/06/2012

0

Boa noite pessoal, estou com a seguinte situação: tenho um objeto chamado

TEmpresaBO e dentro dele tenhu uma propriedade

[TBusinessObject]
[TJoinColumn(emppademp,Codigo)]
[TColumn(emppademp, ftWideString, 3, False, Empresa Padrão, ,False)]
property EmpresaPadrao : TEmpresaBO read GetEmpresaPadrao write SetEmpresaPadrao;


o Construtor do objeto deveria ser assim:


constructor TEmpresaBO.Create;
begin
  Self.FEstado := TEstadoBO.Create;
  Self.FCep := TCepBO.Create;
  Self.FBairro := TBairroBO.Create;
  Self.FEmpresaPadrao := TEmpresaBO.Create
end;


Dessa forma temos o stackoverflow, qual seria a melhor maneira de tratar isso ?

Leandro

Leandro

Responder

Posts

04/06/2012

Marco Salles

qual o objetivo desta propriedade ??

property EmpresaPadrao : TEmpresaBO read GetEmpresaPadrao write SetEmpresaPadrao

ela é a propria instancia .. è o proprio Objeto

se nçao desse StackOverflow imagine a situação

var
obj:TEmpresaBO;
begin
obj:=TEmpresaBO.crate;
ai teriamos
Obj = obj.EmpresaPadrao ????
Responder

Gostei + 0

05/06/2012

Leandro

a propriedade é do mesmo tipo do objeto sim...

é que no cadastro de empresa tenho uma empresa padrao de onde pode ser compartilhado os dados...

o property é do mesmo tipo da empresa isso nao quer dizer que é o objeto em si..

posso resolver a situação criando uma tabela de relacionamento...

EmpresaAtiva : TEmpresaBO
EmpresaPadrao : TEmpresaBO

mais nao queria ter que agir dessa forma... por que é algo comum no seu objeto voce ter uma propriedade dele mesmo...
Responder

Gostei + 0

05/06/2012

William

Uma alternativa seria subrescrever o constructor, passando um parâmetro do tipo TEmpresaBO, ou seja, uma instância do próprio objeto, será que seria viável?
Responder

Gostei + 0

07/06/2012

Leandro

Olá pessoal a forma que achei mais interessante foi criar um outro objeto TEmpresaPadraoBO, sem a propriedade de empresa.
acredito que seja uma das formas mais corretas.

abraço a todos.
Responder

Gostei + 0

07/06/2012

Marco Salles

Vc tentou fazer omo o colega sugeriu ????

Uma alternativa seria subrescrever o constructor, passando um parâmetro do tipo TEmpresaBO, ou seja, uma instância do próprio objeto, será que seria viável?
Responder

Gostei + 0

07/06/2012

Leandro

Não tentei, por que pelo que intendi ia ficar preso a mesma questão, pois esse objeto passado por parametro teria a propriedade empresa, logo teria o mesmo problema.
Responder

Gostei + 0

07/06/2012

Marco Salles

Acho que não , pq ocontructor seria diferente
Responder

Gostei + 0

07/06/2012

Leandro

É mais esse objeto diferente ia possuir uma outra propriedade Empresa chegando a um loop teste ai
que vais entender.
Responder

Gostei + 0

07/06/2012

Marco Salles

É mais esse objeto diferente ia possuir uma outra propriedade Empresa chegando a um loop teste ai
que vais entender.


Mas ai que entra o singleton para permitir somente uma isntancia , para não ficar no Loop
Responder

Gostei + 0

08/06/2012

William

Colega analisando novamente seu constructor, realmente minha idéia de sobreescrever o constructor não serve.

Uma segunda alternativa seria mudar de lugar essa atribuição da propriedade.
Responder

Gostei + 0

08/06/2012

Leandro

Ate pensei em criar uma tabela pra relacao... mais da forma que fiz funcionou...

valeu.
Responder

Gostei + 0

08/06/2012

Marco Salles

Ate pensei em criar uma tabela pra relacao... mais da forma que fiz funcionou...

valeu.


de fato , tentei utilizar com o overload do constructor e o Singleton mas tb não consegui . Apesar de não entender
a real necessidade , seria bom se vc colocasse a sua solução completa para servir de referencia a futuras dúvidas
similares
[]sds
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar