FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
hacer doble click en una celda de un dbgrid
Hola, cual es el evento que permite que si hago un doble click en una celda de un dbgrid pueda realizar una acción. Gracias a todos.
|
#2
|
|||
|
|||
el evento es el OnDBlClick, que esta en la pestaña de events del DBgrid.
|
#3
|
||||
|
||||
Añadir a lo dicho por Taribus que el evento que menciona es general para el grid y no para la celda de manera que no es directo saber sobre qué celda se hizo el doblde click. Una posible solución sería utilizar una variable privada que almacene el número de columna. Dicha variable se asignaría en el evento OnCellClick:
Código:
type TForm1 = class(TForm) procedure DBGrid1CellClick(Column: TColumn); procedure DBGrid1DblClick(Sender: TObject); private ColIndex: Integer; end; implementation procedure TForm1.DBGrid1CellClick(Column: TColumn); begin ColIndex := Column.Index; end; procedure TForm1.DBGrid1DblClick(Sender: TObject); begin if ColIndex = 2 then ShowMessage('Doble click en campo #2'); end; end. |
#4
|
|||
|
|||
Ampliando la respuesta del amigo Román, y como dentro de un Grid podemos movernos con el teclado (no necesariamente con el ratón), también se podría acceder a la propiedad SelectedField del Grid (el cual nos devolverá el TField que tiene el foco en ese momento)
|
#5
|
||||
|
||||
Por favor hagan como si mi vergonzosa respuesta anterior nunca hubiera sido escrita. Por alguna razón tenía idea de lo que menciona cadetill pero no lo encontré. Desde luego su respuesta no amplía la mía (gracias, ¡qué amable! ) sino que la sustituye por completo y es en todo punto más adecuada.
// Saludos |
|
|
|