PDA

Ver la Versión Completa : hacer doble click en una celda de un dbgrid


davidgaldo
11-02-2004, 12:19:51
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.

Taribus
11-02-2004, 13:00:11
el evento es el OnDBlClick, que esta en la pestaña de events del DBgrid.

roman
11-02-2004, 16:41:23
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:


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.


// Saludos

__cadetill
11-02-2004, 16:54:24
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)

roman
11-02-2004, 17:08:28
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