Como mudar o Evento de um componente a partir de outro?
Ae rapaziada, blz?
To precisando do seguinte, com Delphi 6
Estou fazendo um componente, e esse componente precisa ADICIONAR procedimentos ao evento de um determinado componente na tela, um edit por exemplo.
Digamos que, para cada componente que eu escolher, quando ele ganhar o foco, execute um ShowMessage(); (nao é isso, mas serve de exemplo)
Mas, eu nao posso perder o que esse componente fazia antes.
Vamos dizer que é um campo de CNPJ, e ele faz uma verificacao no OnEnter. Além dessa verificacao, ele exibirá a mensagem do meu componente
Espero ter sido claro, e que me ajudem.
Desde já, obrigado e Feliz Natal a todos!
To precisando do seguinte, com Delphi 6
Estou fazendo um componente, e esse componente precisa ADICIONAR procedimentos ao evento de um determinado componente na tela, um edit por exemplo.
Digamos que, para cada componente que eu escolher, quando ele ganhar o foco, execute um ShowMessage(); (nao é isso, mas serve de exemplo)
Mas, eu nao posso perder o que esse componente fazia antes.
Vamos dizer que é um campo de CNPJ, e ele faz uma verificacao no OnEnter. Além dessa verificacao, ele exibirá a mensagem do meu componente
Espero ter sido claro, e que me ajudem.
Desde já, obrigado e Feliz Natal a todos!
_chiappone_
Curtidas 0
Respostas
Marcelo Saviski
23/12/2004
uma maneira seria assim, crie uma procedure com os mesmos parametros do evento em que vc quer adicionar algo, salve o que já tinha no evento desse componente, e mude o evento para essa sua procedure que cv criou, depois quando essa proxcedure foi chamada, chmae o código salvo e execute mais o que vc deseja.
melhor, um exemplo com código:
no lugar aonde deve adicionar o código:
e o código do AoClicar:
não sei se fui muito claro, se tiver problemas comente aqui
melhor, um exemplo com código:
(...) EventoAntigo: TNotifyEvent; procedure AoClicar(Sender: TObject); (...)
no lugar aonde deve adicionar o código:
EventoAntigo := Edit.OnClick; Edit.OnCkick := AoClicar;
e o código do AoClicar:
if Assigned(EventoAntigo) then EventoAntigo(Sender); //Executa o código adicional quando foi clicado //O qual componente foi clicado vem em Sender
não sei se fui muito claro, se tiver problemas comente aqui
GOSTEI 0
_chiappone_
23/12/2004
Valeu cara!
Era isso mesmo que eu tava querendo!
Era isso mesmo que eu tava querendo!
GOSTEI 0