Herança, novos métodos que não funcionam!

Delphi

12/02/2003

Caros amigos,

Estou com um problema na criação de um componente, o caso é o seguinte:

O componente foi criado com um ação no Evento OnEnter e OnExit, os procedimentos funcionam mas se no Form que você estiver usando o componente você também for executar uma ação no evento a ação original do componente não é executada só a do Form, já foi usado (inherited) e mesmo assim não funcionou.

Exemplo

TNovoEdit:

procedure TNovoEdit.Create(AOwner:TComponent);
begin
inherited Create(AOwner);
OnEnter := Enter;
.
.
.
end;

procedure TNovoEdit.Enter(Sender:TObject);
begin
inherited;
Color := clRed;
.
.
.
end;

Se no Form Colocarmos um objeto TNovoEdit e quizermos executar uma ação no evento OnEnter ele não executa o evento Pai, por exemplo:

procedure TForm1.NovoEdit1Enter(Sender:TObject);
begin
inherited;
ShowMessage(´Ola mundo´);
end;

# Este procedimento só executa o ShowMessage e não executa a mudança de cor que foi colocada no Componente.

Espero que vocês possam me responder esta grande dúvida.


Anonymous

Anonymous

Curtidas 0

Respostas

Navoid

Navoid

12/02/2003

cara declare as funções doenter e doexit na seção protected com a clausula override;
depois coloque elas assim:
****
procedure TnovoEdit.DoExit;
begin
//seu código
inherited DoExit;
end;
procedure TnovoEdit.DoExit;
begin
//seu código
inherited DoExit;
end;
****

uma dica, procure nos fontes da vcl, saber qual função executa determinado evento do componente, foi assim que descobri o doexit e o doenter

até


GOSTEI 0
POSTAR