Hola jogagua, los eventos OnMouseDown, OnMouseMove y OnMouseUp tienen el parametro Shift que te indica el boton que se ha presionado en el Mouse o si se ha presionado la tecla shift, alt... Para el click derecho es ssRight, pero no es suficiente saber que se ha presionado click derecho, si haces una prueba no se va a posicionar en la celda que selecciones, para que haga eso puedes utilizar el procedimiento MouseToCell que nos devuelve la fila y columna de las coordenadas X y Y.
Código Delphi
[-]
procedure TForm1.StringGrid1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
Col, Row : Integer;
begin
if Shift = [ssRight] then
begin
StringGrid1.MouseToCell(X, Y, Col, Row);
if (Row<>0) and (Col<>0) then
begin
StringGrid1.Row := Row;
StringGrid1.Col := Col;
end;
end;
end;
Saluditos