Fórum Herança #135745

11/02/2003

0

Caros colegas,

Criei um novo componente a partir de um DBEdit e modifiquei os métodos KeyPress, OnEnter e OnExit.
Se eu colocar este componente no form e implementar um destes métodos, o método escrito no código do componente é sobrescrito.

Como evitar este problema ?

Rafael Perazzo


Perazzo_br

Perazzo_br

Responder

Posts

12/02/2003

Cdaraujo

Caro amigo,

Para que vc possa usar a implementação da classe ancestral do referido componente é essencial que o caro utilize a palavra reservada ´inherited´ em seu procedimento.

A palavra reservada ´inherited´ é uma regra especial para a implementação de herança.

Exemplo:

procedure ....
begin
inherited;
//implementação de seu código
end;

Atenciosamente,

Daniel Araújo
ICQ:111769805
www.cdinformatica.hpg.com.br


Responder

Gostei + 0

12/02/2003

Rafael Heise

No seu componente faça o seguinte.. crie procedure iguais aos eventos
KeyPress, OnEnter e OnExit que vc modificou ...
exe :
procedure novoOnExit(params...); {...}
e crie também variáveis do tipo KeyPress e OnEnter e OnExit. Talvez sejam do tipo TNotifyEvent, mas tem que ver....
e no OnCreate do seu componente faça o seguinte
VarOnExit := Self.OnExit; {...}
e depois associe os eventos as suas novas procedures...
Self.OnExit := novoOnExit; {...}
e faça isso pra todas....
e dentro de cada procedure.. vc faz o seguinte
if Assigned(VarOnExti) then VarOnExit(params....); {...}
faça isso para todos os eventos que vc modificou.. isso vai fazer com que sempre funcione o seu onExit, tanto com seu código modificado no componente como o que vc colocar depois na sua form...
abraços....


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar