Ver Mensaje Individual
  #5  
Antiguo 21-09-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No sé de dónde viene la excepción que mencionas ya que en lo que pruebo no me sale; quizá de alguna sentencia posterior.

De cualquier manera, en lugar de manejar la excepción yo checaría que las coordenadas que obtengo realmente corresponden a una celda:

Código Delphi [-]
procedure TForm1.StringGrid1MouseDown(
  Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
  GridCoord: TGridCoord;

begin
  if Button = mbRight then
  begin
    GridCoord := StringGrid1.MouseCoord(X, Y);

    if
      (GridCoord.X >= StringGrid1.FixedCols) and
      (GridCoord.Y >= StringGrid1.FixedRows)
    then
    begin
      StringGrid1.Col := GridCoord.X;
      StringGrid1.Row := GridCoord.Y;
    end;
  end;
end;

Según he visto, si haces click fuera de las celdas, ambas coordenadas se fijan en -1 de manera que sólo tienes que checar que no toque las filas o columnas fijas.

// Saludos
Responder Con Cita