Ver Mensaje Individual
  #2  
Antiguo 19-12-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Reputación: 24
Caro Va por buen camino
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
__________________
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