FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Capturar evento Dobleclick
Hola a todos, tengo 2 problemillas que me estan quitando el sueño y a lo mejor es una tonteria:
1º: No se como se puede capturar el evento DobleClick,es decir, por ejemplo preguntar en un procedimiento si se ha hecho dobleclick sobre un objeto que tengo en el form. 2º:Tengo en el form varios objetos del mismo tipo y quiero hacer un procedimiento generico que cuando se haga un click en alguno de ellos, haga ciertas acciones.Se que esto se podria hacer en el evento OnClick de cada uno de ellos, pero me gustaria encontrar la forma de hacer una funcion o procedimiento generico. Muchas gracias a todos. |
#2
|
|||
|
|||
Cita:
Código:
procedure TForm1.Button1DblClick(Sender: TObject); begin // cosas comunes ....... if Sender = Button1 then begin // lo que sea del Button1 end; if Sender = Button2 then begin // lo que sea del Button2 end; // más cosas comunes ........ end; Código:
procedure TFomr1.MiProc(Sender: TObject); begin // lo mismo que antes end; procedure TForm1.Objecto1DblClick(Sender: TObject; otros parámetros); begin MiProc(Sender); end; procedure TForm1.Objeto2DblClick(Sender: TObject; parámetros diferentes); begin MiProc(Sender); end; Última edición por __cadetill fecha: 18-01-2004 a las 14:11:55. Razón: Especificar algo más |
#3
|
||||
|
||||
Cita:
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#4
|
|||
|
|||
Si los objetos son del mismo tipo, por ejemplo buttons, yo también les asigno un tag y hago mas o menos esto
Código:
with (Sender as TBitbtn) do begin case tag of 1: begin Application.CreateForm(TForm1, Form1); Form1.show; end; 2: begin Application.CreateForm(TForm2, Form2); Form2.show; end; 3: begin Application.CreateForm(TForm3, Form3); Form3.show; end; end; |
#5
|
||||
|
||||
Manejadores de eventos compartidos
¡Buen día a todos!
Es decir, varios componentes pueden compartir el mismo manejador de evento (procedimiento genérico común) para uno de sus eventos en particular. Al ejecutarse un manejador de evento compartido, el parámetro Sender (remitente) es el objeto que disparó el evento (el componente para el cual se está ejecutando). Para crear un manejador de evento compartido, aconsejo seleccionar todos los componentes que tendrán en común ese manejador de evento, y enseguida, con el inspector de objetos, escribir un nombre adecuado para el manejador en la celda correspondiente al evento en cuestión. Espero esto sea de utilidad. Seguimos en contacto. Al González . |
#6
|
|||
|
|||
Yo te doy ideas, que no significan que sean las mejores.
1.Puedes recorrerte todos los componentes y en el que tenga el evento doble click asignarle un procedimineto, que te hara lo que quieres, y que te diga cuando ha sido pulsado el objeto y qual es. 2.recuperar el mensaje de windows del doble click del raton y mirar donde esta l cursor en ese momento.Segun donde este, si hay un componente en ese lugar pues mirar qual es. Suerte Saludos
__________________
La victoria tiene cien padres. La derrota es huérfana (Napoleón). |
|
|
|