Fórum Eventos no Delphi #397041

10/03/2011

0

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

Responder

Posts

10/03/2011

Leonardo Xavier

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?
Responder

Gostei + 0

10/03/2011

Fabio Colli

Após clicar no botão 2 o botão 1 deveria executar os dois ShowMessage.
Responder

Gostei + 0

10/03/2011

Wilson Junior

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.
Responder

Gostei + 0

10/03/2011

Fabio Colli

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.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar