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
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
Curtir tópico
+ 0
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();
e na hora de utilizar o método seria mais ou menos assim:
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:
Espero ter ajudado. Um forte abraço e fique com Deus.
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
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
Clique aqui para fazer login e interagir na Comunidade :)