Mas é o endereço que sabe a quem ele pertence!!!

Ex.:

Type
   Endereco = Class(TObject)
   Private
     FCodigo      : Integer;
     FLogradouro  : String;
     FNumero      : String;
     FComplemento : String;
     FBairro      : String
     FCEP         : String;
     FCidade      : TCidade;
   Protected
     ...
   Public
     Constructor Create;
     Property Codigo      : Integer Read FCodigo;
     Property Logradouro  : String  Read FLogradouro  Write FLogradouro;
     Property Numero      : String  Read FNumero      Write FNumero;
     Property Complemento : String  Read FComplemento Write FComplemento;
     Property Bairro      : String  Read FBairro      Write FBairro;
     Property CEP         : String  Read FCEP         Write FCEP;
     Property Cidade      : TCidade Read FCidade      Write FCidade;

     Class Function ListaEnderecos(oPessoa: TPessoa): TList;
   End;

Implementation

Uses SeuDataModule;

...

Class Function TEndereco.ListarEnderecos(oPessoa: TPessoa): TList;
Var
   lstEnderecos : TList;
   oEndereco : TEndereco;
Begin

   lstEnderecos := TList.Create;

   SeuDataModule.ListarEnderecos(oPessoa);

   With SeuDataModule.SeuClientDataSet do
   Begin

     Try

       If RecordCount > 0 Then
       Begin

         First;

         While Not EOF do
         Begin

           oEndereco := TEndereco.Create;

           oEndereco.Codigo     := FieldByName('cod_vale'   ).AsInteger;
           oEndereco.Logradouro := FieldByName('logradouro' ).AsInteger;
           oEndereco.Numero     := FieldByName('numero'     ).AsInteger;
           oEndereco.Complemento:= FieldByName('complemento').AsInteger;
           oEndereco.Bairro     := FieldByName('bairro'     ).AsDateTime;
           oEndereco.CEP        := FieldByName('cep'        ).AsCurrency;
           oEndereco.Cidade.Buscar(FieldByName('cidade'     ).AsInteger);

           lstEnderecos.Add(oEndereco);

           Next;

         End;

       End;

     Except

       on E: Exception do
       ShowMessage(E.Message);

     End;

   End;

   Result := lstEnderecos;

End;

{ <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> }


Se isso não ajudar, dê exemplo reais do que você pretende para que eu 
possa criar os exemplos de acordo com eles.

Sds,

Romario




Francisco Trindade escreveu:
> Nesse caso sim, segunido o seu exemplo, o que eu queria era q o endereco
> pudesse saber a que pessoa ele pertence.
>  Do jeito que tu faz, é possivel, pois os enderecos estao em uma lista
> generica, mas o que pode acontecer é a associacao de uma classe q nao é do
> tipo endereco com a lista de enderecos, o que eu queria evitar.
>  Sds,
> Francisco
> 
>  On 11/11/05, Romario (Listas) <[EMAIL PROTECTED]> wrote:
> 
>>Eu coloquei a relação de herança, mas também a relação de ASSOCIAÇÃO com
>>a classe de Endereços para demonstrar o que você precisa.
>>
>>Note que uma pessoa pode ter um ou vários endereços e esses endereços
>>estarão armazenados em um lista dentro da classe Pessoa.
>>
>>Não é isso que você precisa???
>>
>>Sds,
>>
>>Romario
>>
>>
>>
>>
>>Francisco Trindade escreveu:
>>
>>>Nao sei se estamos nos entendedo.
>>>O codigo enviado por ti implementa uma relacao de heranca, o que é
>>>diferente.
>>>TPessoaFisica descende de TPessoa.
>>>Eu estou falando de uma relacao 1 para N, entre objetos de classes
>>>diferentes, como TGrupoDeItens contem N TItens.
>>>Type
>>>TGrupoDeItens = Class(TObject)
>>>Private
>>>FNome
>>>LstItens : TObjectList;
>>>Protected
>>>...
>>>Public
>>>Constructor Create;
>>>Property Nome : String Read FNome Write FNome;
>>>Property Itens : TObjectList Read LstItens Write LstItens;
>>>
>>>End;
>>>//---
>>>uses uGrupo;
>>>Type
>>>TItem = Class(TObject)
>>>Private
>>>FNome : String;
>>>FGrupo : TGrupoDeItens
>>>Protected
>>>...
>>>Public
>>>Constructor Create;
>>>Property Nome : String Read FNome Write FNome;
>>>Property Grupo: String Read FGrupo Write FGrupo;
>>>
>>>End;
>>>
>>>Esse é o codigo que eu tinha imaginado. O problema é o uso de
>>
>>TObjectList,
>>
>>>pois terei que fazer um typecast na associacao, o que pode levar a
>>
>>erros.
>>
>>>Outra solucao seria eu criar um tipo
>>>TArrayItens = Array of TItem
>>>porem isso me levaria a precisar da classe TItem na interface do grupo,
>>
>>o
>>
>>>que seria uma referencia circular.
>>>Era isso, fico no aguardo de sugestoes.
>>>Sds,
>>>Francisco

        

        
                
_______________________________________________________ 
Yahoo! Acesso Grátis: Internet rápida e grátis. 
Instale o discador agora!
http://br.acesso.yahoo.com/



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

<*> Para ver as mensagens antigas, acesse:
    http://br.groups.yahoo.com/group/delphi-br/messages

<*> Para falar com o moderador, envie um e-mail para:
    [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a