Eu até vi o Demo 12, que mostra como trabalhar com herança. Porém lá
não tem essa situação, de ter uma propriedade que é do mesmo tipo que
o objeto.
Eu quero poder pegar o nome do aluno e o nome do pai do aluno assim:
varNomeAluno := Aluno.NomePessoa;
varNomePaiAluno := Aluno.Pai.NomePessoa;
E isso eles não mostram nos exemplos.
Eu dei uma vasculhada também no forum internacional... tem alguns
posts que tratam de herança, mas também nenhum com esta situação.
Olha, to quase desistindo o tiOPF... é complicado pra caramba... tem
que se fazer muiiiiita coisa pra chegar a um resultado simples.
Edelson.
On 19 jun, 09:04, Joao Henrique Levada <joaolev...@gmail.com> wrote:
> Olha, acho que deves usar a herança sim. Porém não sei como
> funcionaria a implementação da classe, não tenho experiência com
> tiOPF.
> Se souber um pouco de inglês, pode se inscrever em: news.tiopf.com
> Lá, certamente vai obter boa ajuda.
> Abraços e boa sorte.
> On 18 jun, 18:31, edregis <edre...@gmail.com> wrote:
> > Olá Pessoal!
> > Como uso o conceito de herança com um objeto herdado do TtiObject?
> > Exemplo:
> > Tenho as minhas classes TPessoa e TPessoaList, herdadas de TtiObject e
> > TtiObjectList.
> > TPessoa só tem as propriedades OID e NomePessoa.
> > Aí quero implementar a classe TAluno, herdada de TPessoa.
> > Essa classe TAluno, além das propriedades OID e NomePessoa (que já
> > existem em TPessoa), deve ter a propriedade OID_Pai, que seria digamos
> > o "pai" do aluno, e que é do mesmo tipo que TPessoa.
> > Como implementar isso? Como ficariam os meus visitors?
> > Eu andei fazendo uns testes aqui, e não encontrei solução que não seja
> > criar a classe TAluno herdada de TtiObject sem aproveitamento nenhum
> > da TPessoa.
> > As tabelas no banco seriam assim:
> > Pessoa:
> > OID varchar(36) not null primary key;
> > NomePessoa varchar(100) not null;
> > Aluno:
> > OID varchar(36) not null primary key;
> > OID_PAI varchar(36) not null primary key; (apontando para o OID da
> > tabela Pessoa)
> > Obs: isso é só um exemplo bobo... na verdade quero usar o mesmo
> > conceito para outra coisa...
> > Seguem as classes;
> > TPessoaList = class(TtiObjectList)
> > private
> > protected
> > function GetItems(i: integer): TPessoa; reintroduce;
> > procedure SetItems(i: integer; const Value: TPessoa); reintroduce;
> > public
> > property Items[i: integer]: TPessoa read GetItems write SetItems;
> > procedure Add( pObject: TPessoa; pDefDispOrdr: boolean = true );
> > reintroduce;
> > procedure Clear; override;
> > procedure Read; override;
> > procedure Save; override;
> > end;
> > TPessoa = class(TtiObject)
> > private
> > FPessoaNome: string;
> > protected
> > ...
> > public
> > ...
> > published
> > property PessoaNome: string read FPessoaNome write
> > FPessoaNome;
> > end;
> > TAluno = class(TPessoa)
> > private
> > FPai: TPessoa;
> > protected
> > ...
> > public
> > ...
> > published
> > property Pai: TPessoa read FPai write FPai;
> > end;
> > Eu quero instanciar o TAluno, e conseguir acessar a propriedade pai
> > assim:
> > varNomeDoPai := Aluno.Pai.PessoaNome;
> > A minha dúvida é como implementar os Visitors da classe TAluno.
> > Será que precisarei implementar a classe TAluno do zero, sem herdar
> > nada de TPessoa?
> > Grato,
> > Edelson.