Eventos no Delphi
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;
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
Curtidas 0
Respostas
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
10/03/2011
Após clicar no botão 2 o botão 1 deveria executar os dois ShowMessage.
GOSTEI 0
Wilson Junior
10/03/2011
Veja se é isto que você quer fazer
Espero ter colaborado.
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
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