Romário, mais uma vez, valeu pela dica. Quanto os tipos dos atributos, estou fazendo um programa bem específico (proj. final de faculdade) para um determinado lugar, não me preocupando em distribuí-lo para outros. A minha preocupação é, somente, passar e ter o canudo nas mãos, entende? O tempo está curtíssimo e não estou apto (atualmente) para fazer "aquele projeto". Tenho que fazer um capaz de passar.
Aproveitando, gostaria de pedir uma dica sua, caso vc possa dar e saiba: estou com uma base de dados no interbase e, quando tento incluir um novo registro, ele simplesmente é criticado, não deixando gravar por causa do código que é PK. A minha rotina pra, antes de gravar, é a seguinte: consulto no banco o último código da seguinte maneira: SELECT * FROM EVENTO --- SqlEvento.last ---- codigo:=SqlEvento['codigo_Evento']; Depois o incremento em 1. Só que, ao fazer esse passo a passo todo para pegar o último registro, na verdade o registro retornado é o penúltimo e eu não entendo por que. Será que existe outra forma de fazer isso, com o mesmo pensamento? Em 28/05/07, Romario (Listas) <[EMAIL PROTECTED]> escreveu: > > Ricardo, > > Os atributos da sua classe TUCSacramento podem até estar corretos, mas o > tipo deles é que acho que estão errados. Você tem "OBJETOS" na classe > tratados como String e/ou TDatetime. > > Note que paróquia, curso e celebrante tem vida própria. Ou seja, eles > existem mesmo que não haja o Sacramento. > > Quanto ao seu problema, só faltou o OVERRIDE na classe Batismo. > > Ficaria assim: > > Classe Sacramento: > Function Consultar (Var Texto: String; ID: Byte): Byte; Virtual; > ... > Function TUCSacramento.Consultar (Var Texto: String; ID: Byte): Byte; > Begin > {código a ser executado} > End; > ---------------------------------------------------------- > Classe Batismo > Type TUCBatismo = Class (TUCSacramento) > ... > Function Consultar (Var Texto: String; ID: Byte): Byte; Override; > .... > Function TUCBatismo.Consultar (Var Texto: String; ID: Byte): Byte; > Begin > Inherited; > {código do consultar batismo a ser executado} > End; > ---------------------------------------------------------- > > Sds, > > Romario > > Ricardo Souza escreveu: > > > > Romário, antes de mais nada, agradeço a atenção dispensada para o meu > > problema. Quanto a ele, os atributos anteriormente informados estão > > corretos, pois a classe sacramento engloba 4 classes especialistas, a > saber: > > batismo, crisma, eucaristia e matrimônio e os atributos que constam nela > > estão corretos. > > > > E, sobre o problema de executar o que está na function consultar > localizada > > em sacramento, basta eu colocar o termo virtual e fazer o código > normalmente > > e, depois, em batismo faço nova declaração da mesma function consultar > e, no > > corpo dela, incluo inherited para que faça o que antecessor tem + o > código > > do herdeiro? > > Ex.: > > ---------------------------------------------------------- > > classe sacramento: > > function consultar (var texto:string;id:byte):byte; virtual; > > ... > > function TUCSacramento.consultar (var texto:string;id:byte):byte; > > begin > > {código a ser executado} > > end; > > ---------------------------------------------------------- > > classe batismo > > type TUCBatismo = class (TUCSacramento) > > ... > > function consultar (var texto:string;id:byte):byte; > > .... > > function TUCBatismo.consultar (var texto:string;id:byte):byte; > > begin > > inherited; > > {código do consultar batismo a ser executado} > > end; > > ---------------------------------------------------------- > > > > É isso mesmo que eu entendi? > > > [As partes desta mensagem que não continham texto foram removidas]