Ricardo,

Ao meu ver, você está colocando quatro objetos em uma classe só.

1) Paróquia

2) Sacramento

3) Curso

4) Celebrante

Identifique as propriedades de cada uma dessas classes e depois monte a 
classe TUCSacramento.

Ex.:

Type

   TUCSacramento = Class(TObject)

   Private

     Codigo         : Integer;
     Paroquia       : TUCParoquia;
     Celebrante     : TUCCelebrante;
     Curso          : TUCCurso;
     TipoSacramento : String;
     Observacao     : String;

   Protected

   Public

   End;


Quanto ao seu problema, defina o método como "VIRTUAL" para aproveitar 
as facilidades oferecidas pelo polimorfismo e modificar o comportamento 
do acessor.

Ex.:

Function Cadastrar : Boolean; Virtual;

Function Consultar(Var Texto: String; ID: Byte): Byte; Virtual;


Sds,

Romario




ricardo_sx escreveu:
> 
> Há um tempo atrás questionei sobre o termo "Inherited", onde me
> informaram que ele significa "faça aquele código contido no herdado"
> + o código posterior ao termo. Blz.
> 
> Eu, agora estou com a seguinte dificuldade: tenho duas classes: uma
> genérica e outra especializada, seguem:
> 
> type TUCSacramento = class {classe genérica}
> private
> codigo_Sacramento:string;
> codigo_Paroquiano:string;
> tipo_Sacramento:string;
> celebrante:string;
> data_Inscricao:TDateTime;
> inicio_Curso:TDateTime;
> termino_Curso:TDateTime;
> obs:string;
> public
> function cadastrar:boolean;
> function consultar(var texto:string;id:byte):byte;
> function alterar:boolean; virtual;
> function excluir(codigo:string):boolean;
> end;
> 
> function TUCSacramento.consultar(var texto:string;id:byte):byte;
> begin
> texto:='qualquer coisa';
> result:=1;
> end;
> 
> e a classe especializada:
> 
> type TUCBatismo = class(TUCSacramento)
> private
> padrinho:string;
> madrinha:string;
> diocese_Batismo:string;
> paroquia_Batismo:string;
> data_Batismo:TDateTime;
> livro_Batismo:string;
> folha_Batismo:string;
> numero_Batismo:string;
> public
> function cadastrar:boolean;
> function consultar(var texto:string;id:byte):byte;
> function alterar:boolean; override;
> function excluir(codigo:string):boolean; override;
> end;
> 
> function TUCBatismo.consultar(var texto:string;id:byte):byte;
> begin
> inherited;
> result:=2;
> end;
> 
> Meu problema é o seguinte: Eu tenho um código pra ser realizado na
> classe Sacramento e um outro na classe batismo. Sendo que na classe
> batismo eu preciso que, antes de executar seu respectivo código,
> realize o código descrito na classe Sacramento. Então pensei nesse
> tal de "inherited", porém não estou conseguindo fazê-lo funcionar.
> Será que alguém poderia me ajudar?





Responder a