Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Evento onClick (https://www.clubdelphi.com/foros/showthread.php?t=15553)

jzk 27-10-2004 16:42:50

Evento onClick
 
Hola a tod@s,

Tengo en una aplicación tres botones distintos que basicamente tienen que hacer lo mismo. Lo que he decidido es escribir en el Boton1 el código que necesito (en el evento OnClick) y los otros dos redirigir su correspodiente evento onClick al del boton1.

Cuando dije que básicamente tienen que hacer lo mismo era porque en cada uno de ellos hay una pequeña excepción, por lo que pretendo saber cual de ellos ha sido pulsado una vez este dentro del evento OnClick.

Es posible tal hazaña y de ser así de que manera puede hacerse???

Código:

Procedure TForm1.Boton1Click(Sender: TObject);
Begin
          query1.Insert;
          showmessage('hola');
End;


Trigger 27-10-2004 16:56:31

Saludos

Me imagino que en los eventos de Boton2 y Boton3 de onclick, le asignas boton1.onclick, bueno entonces tienes que hacer lo siguiente

Código:

procedure TForm1.Boton1Click(Sender: TObject);
begin
  if Sender = Boton1 then
  begin         
    query1.Insert;
    showmessage('1');
  end;
  if Sender = Boton2 then
  begin         
    query2.Insert;
    showmessage('2');
  end;
  if Sender = Boton3 then
  begin         
    query3.Insert;
    showmessage('3');
  end;

end;

Tambien puedes declarar un evento general no necesariamente tiene que estar asociado a ningun objeto, y se lo puedes asignar a los tres botones

OK

roman 27-10-2004 17:18:31

Cita:

Empezado por Triger
if Sender is Boton1 then

Debería ser

if Sender = Boton1 then

// Saludos

jzk 27-10-2004 17:42:51

Ahora mismo iba a escribir lo mismo que tu Roman.

Gracias a los dos, de esta manera tan sencilla puedo adecuar el funcionamiento del programa en función del botón pulsado.

Gracias de nuevo.

defcon1_es 27-10-2004 18:46:02

Hola,
sólo quiero comentar que también puedes asignarle valores distintos a la propiedad Tag de cada botón,
con lo que ahorrarás líneas de código.

Ejemplo suponiendo que los botones son TButton:
Código Delphi [-]
procedure TForm1.Boton1Click(Sender: TObject);
begin
  case (Sender as TButton).Tag of
    1: query1.Insert;
    2: query2.Insert;
    3: query3.Insert;
  end;
  showmessage(IntToStr((Sender as TButton).Tag));
end;

Salu2.


La franja horaria es GMT +2. Ahora son las 11:18:08.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi