Usar el mismo evento para varios botones  

Enviado Por: Q3 Team
Web : www.q3.nu
Email: dlib@q3.nu
Fecha: 26/09/99

Truco accedido 111 veces

 


A veces es muy útil utilizar el mismo código de tratamiento de un evento en varios controles iguales, pero claro... se nos plantea una duda ¿Como sé desde que control ha sido ejecutado el evento?.

Pues muy fácil, con el parámetro sender del procedimiento de tratamiento del evento.

Por ejemplo:

  • Crea una form y pon en ella dos TButton (Button1 y Button2) y un TLabel (Label1)
  • Crea un procedimiento de tratamiento de eventos como este:


        procedure TForm1.TrataClick(Sender: TObject);
        begin
          if sender = button1 then
            label1.caption := 'Se pulsó el Boton1'; {Button1}
          if sender = button2 then
            label1.caption := 'Se pulsó el boton 2'; {Button2}
        end;
    




    Asigna este procedimiento a los eventos OnClick de los botones:

    (Por ejemplo en el evento OnCreate de la form)


        procedure TForm1.FormCreate(Sender: TObject);
        begin
          button1.OnClick := TrataClick;
          button2.OnClick := TrataClick;
        end;
    



    O tambien puedes hacerlo desde el Object Inspector, poniendo TrataClick como tratamiento del evento OnClick