Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-11-2009
abmicros abmicros is offline
Registrado
 
Registrado: nov 2008
Posts: 2
Poder: 0
abmicros Va por buen camino
Asignar una funcion al evento on click

Hola buenas, estoy haciendo una aplicacion en la que tengo que poner muchos botones (unos 50) que hagan casi lo mismo, por lo que esta pensando usar un array de botones para poder modificar caracteristicas como captions, posiciones, colores y cosas asi mediante un for, pero tengo problemas al asignar el metodo OnClick, ya que no puedo hacer:

boton1.Onclick := 'procedure'+i;


¿Como puedo hacer algo asi?


Muchas gracias.
Responder Con Cita
  #2  
Antiguo 11-11-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por abmicros Ver Mensaje
...pensando usar un array de botones para poder modificar caracteristicas como captions, posiciones, colores y cosas asi mediante un for, pero tengo problemas al asignar el metodo OnClick, ya que no puedo hacer:
boton1.Onclick := 'procedure'+i;
¿Como puedo hacer algo asi?
La idea es buena, lo que debes hacer es asignar a los 50 botones el mismo evento.

Código Delphi [-]
   boton1.Onclick := MyOnClickProcedure;
   boton2.Onclick := MyOnClickProcedure;
  ...

Dentro del procedimiento y utilizando el parámetro Sender puedes saber cual de los 50 botones es el que ha hecho la llamada.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 11-11-2009
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola abmicros, como te dice Neftali lo mejor es que asignes el mismo evento a todos tus botones y utilizar el parametro Sender, algo que también te podría ayudar es la propiedad Tag de cada boton dandole un numero correlativo, de esa forma puedes hacer esto:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
 Case TButton(Sender).Tag of
  1 : Showmessage(TButton(Sender).Name);
  2 : Showmessage(TButton(Sender).Name);
  ................................
  ................................
 end;
end;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #4  
Antiguo 12-11-2009
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Hola,
puedes hacer tal cual habias planteado al principio (buscando el metodo mediante su nombre en una cadena y asignandolo a OnClick). Echale un vistazo a este truco. Un saludo.
Responder Con Cita
  #5  
Antiguo 12-11-2009
abmicros abmicros is offline
Registrado
 
Registrado: nov 2008
Posts: 2
Poder: 0
abmicros Va por buen camino
Solucionado

Muchas gracias, me ha funcionado tal cual queria usando el sender y el tag del boton.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Evento click de un datagrid Ivan_25 .NET 5 11-07-2006 17:03:08
Evento Doble Click en DBgrid enecumene Conexión con bases de datos 1 03-07-2006 08:15:42
Dbgrid, evento para seleccion con click Alejandro Vilte OOP 3 19-10-2005 21:00:03
evento click de bitbton en la creacion componente satabel Varios 2 02-09-2005 16:47:47
evento click de un bitbtn creacion componente satabel Varios 3 31-08-2005 17:02:37


La franja horaria es GMT +2. Ahora son las 14:36:54.


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
Copyright 1996-2007 Club Delphi