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
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
Curtir tópico
+ 0
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
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....
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
Clique aqui para fazer login e interagir na Comunidade :)