Ler SubClasse Delphi

27/03/2019

0

Pessoal boa tarde, estou tentando alimentar uma subclasse da minha classe, e não estou conseguindo, alguém tem alguma dica?

Motorista = class(TRemotable)
private
FCPF: Int64;
FNome: string;
FNome_Specified: boolean;
FCNH: Int64;
FDataNascimento: TXSDateTime;
FNomeDeSolteiraDaMae: string;
FNomeDeSolteiraDaMae_Specified: boolean;
FEndereco: Endereco;
FEndereco_Specified: boolean;
FTelefones: Telefones;
FTelefones_Specified: boolean;
procedure SetNome(Index: Integer; const Astring: string);
function Nome_Specified(Index: Integer): boolean;
procedure SetNomeDeSolteiraDaMae(Index: Integer; const Astring: string);
function NomeDeSolteiraDaMae_Specified(Index: Integer): boolean;
procedure SetEndereco(Index: Integer; const AEndereco: Endereco);
function Endereco_Specified(Index: Integer): boolean;
procedure SetTelefones(Index: Integer; const ATelefones: Telefones);
function Telefones_Specified(Index: Integer): boolean;

Quero alimentar a classe endereço.

Desde já agradeço,
Wagner
Wagner Novaes

Wagner Novaes

Responder

Posts

31/03/2019

Hélio Devmedia

Olá Wagner,

Tem várias formas de fazer isso a principal delas é adicionando o item na lista recebendo de volta o seu index;
No caso da propriedade indexada você precisaria acrescentar a função publica add();

   function add(AEndereco: Endereco): integer;
   begin
      ListEndereco.add(AEndereco); //A Lista já tem um método Add também;
      result:=ListaEndereco.count-1; // retorna o indice deste endereço para que outras rotinas possam utilizar posteriormente.
   end;


e na hora de utilizar o método seria mais ou menos assim:

AEndereco:=Endereco.create;
AEndereco.Logradouro:='Barra da Tijuca';
AEndereco.CEP:= 22041080;

pos:= Motorista.Add(AEndereco);

//Exemplo do que fazer com o index. Selecionar o endereço no listBox;

listbox.itemIndex:=pos;


Você não é obrigado a retornar o index. É somente uma prática.

Você também pode usar o método overload e fazer um add pra cada classe:

function add(AEndereco: Endereco): integer;overload;
function add(ATelefone: Telefone): integer;overload; //Colocando o overload você pode ter o mesmo nome de função várias vezes trocando apenas o parâmetro.


Espero ter ajudado. Um forte abraço e fique com Deus.
Responder

01/04/2019

Wagner Novaes

Helio bom dia..
Primeiramente obrigado por tirar um tempo para tentar me ajudar...

Nas classes eu não poderia mexer, porque ela vinha de um webservice...
Mas o meu problema eu consigo resolver... Era só referenciar uma classe criada (Endereco) ao meu motorista...

Abraço,
Wagner
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar