Então a melhor forma de resolver seu problema é através de agregação.

 

Ou seja, agregue a lógica que você não quer replicar em uma outra classe, e 
utilize-a de dentro desse seu TEditBase

 

[ ]s

 

 

 

De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em nome 
de Vinicius
Enviada em: terça-feira, 3 de fevereiro de 2009 08:20
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: [delphi-br] Dúvida em Herança

 

Eu tentei com interface tbem...mas no meu caso não vai adiantar...eu 
tenho que implementar os métodos da interface em todas as classes que 
herdam dela, e eu não queria fazer isso, no meu caso acho que somente 
herança múltipla me ajudaria mesmo...
Vocês tem alguma idéia do que seria a saída mais elegante ?

Rubem Nascimento da Rocha escreveu:
>
>
> O q vc quer fazer chama-se herança múltipla de classes, ou seja, algo 
> assim:
>
> type
> TEditbase = class(TCustomEdit, TClassBase)
>
> e isso em Object Pascal não é possível, pq o Object Pascal não suporta 
> herança múltipla. O que vc deveria ter feito era criar uma interface 
> contendo as declarações dos métodos que vc implementou em TClassBase 
> e, depois, criar um componente descendente de TCustomEdit e que 
> implementasse essa interface.
>
> type
> IClassBase = interface
> { declare aqui os métodos que existem em TClassBase }
> end;
>
> TEditBase = class(TCustomEdit, IClassBase)
> { aqui, além de declarar os métodos de IClassBase, e seus escopos
> apropriados (private, protected ou public), vc os implementaria
> também! }
> end;
>
>
>
> TEditBase = class(TEdit, IClassBase)
> { aqui, além de declarar os métodos de IClassBase, e seus escopos
> apropriados (private, protected ou public), vc os implementaria
> também! }
> end;
>
> Em Object Pascal, uma classe pode implementar 'n' interfaces, mas só 
> pode ser descendente de apenas uma única classe.
>
> Boa sorte.
> Sds.
>
> ________________________________
> > To: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br>  
> > <mailto:delphi-br%40yahoogrupos.com.br>
> > From: vinic...@msisolucoes.com.br <mailto:vinicius%40msisolucoes.com.br>  
> > <mailto:vinicius%40msisolucoes.com.br>
> > Date: Mon, 2 Feb 2009 14:02:50 -0200
> > Subject: [delphi-br] Dúvida em Herança
> >
> >
> > Pessoal, tenho uma classe derivada de TWinControl, com vários métodos
> >
> > implementados, chamada de TClassBase
> >
> > Agora eu quero fazer um componente derivado de TEdit, com as
> >
> > características da TClassBase
> >
> > Isso é possível ???
> >
> >
> >
> > Obrigado.
> >
> __________________________________________________________
> Receba GRÁTIS as mensagens do Messenger no seu celular quando você 
> estiver offline. Conheça o MSN Mobile!
> http://mobile.live.com/signup/signup2.aspx?lc=pt-br 
> <http://mobile.live.com/signup/signup2.aspx?lc=pt-br>
>
> 

 



[As partes desta mensagem que não continham texto foram removidas]

Responder a