Eventos no Delphi

Delphi

10/03/2011

Pessoal, como fazer o equivalente desse código no Delphi? O código abaixo está em C#. private void MeuClick(object sender, EventArgs e){ MessageBox.Show("MeuClick"); } private void button1_Click(object sender, EventArgs e){ MessageBox.Show("button1_Click"); } private void button2_Click(object sender, EventArgs e){ this.button1.Click += new EventHandler(MeuClick); } No delphi e tentei fazer isso, mas não teve o efeito que eu esperava. Depois eu fui ver que eu estava atribuindo, ou seja, substituindo. Mas eu queria adicinonar, como no C#. Valeu!!!!   procedure TForm1.btn1Click(Sender: TObject);
begin
 ShowMessage('btn1Click');
end;   procedure TForm1.MeuClick(Sender: TObject);
begin
 ShowMessage('MeuClick');
end;   procedure TForm1.btn2Click(Sender: TObject);
begin
 TForm(btn1).OnClick := MeuClick;
end;
Fabio Colli

Fabio Colli

Curtidas 0

Respostas

Leonardo Xavier

Leonardo Xavier

10/03/2011

Cara como seria o resultado final desse seu cógigo pois até agora so vejo o user vendo uma mensagem Meu click. o que vc quer que seja apresentado na tela?
GOSTEI 0
Fabio Colli

Fabio Colli

10/03/2011

Após clicar no botão 2 o botão 1 deveria executar os dois ShowMessage.
GOSTEI 0
Wilson Junior

Wilson Junior

10/03/2011

Veja se é isto que você quer fazer
procedure TForm1.btn1Click(Sender: TObject); 
begin 
 ShowMessage('btn1Click'); 
end; 
 
procedure TForm1.MeuClick(Sender: TObject); 
begin 
 ShowMessage('MeuClick'); 
end; 
 
procedure TForm1.btn2Click(Sender: TObject); 
begin 
  btn1Click( btn1 );
  MeuClick( btn1 );
end;


Espero ter colaborado.
GOSTEI 0
Fabio Colli

Fabio Colli

10/03/2011

Isso vai funcionar. Mas o que eu postei é um simples/didático, para que o entendimento seja fácil. Mas na verdade eu vou usar isso num FrameWork e será genérico. Primeiro eu tenho ver como funciona num exemplo simples para depois passar isso para nível mais baixo. Além disso o objetivo principal é adicionar eventos num evento original.
GOSTEI 0
POSTAR