anchor.diff:    TVisualGridSelection = record
     private
       function GetCol: longint;
  +    function GetColCount: longint;
       function GetRow: longint;
       function GetRowCount: longint;
     public
  
positive.code:        (FDrawGrid.MouseToGridZone(X, Y) = gzNormal) then
      begin
        FDrawGrid.MouseToCell(X, Y, LPoint.x, LPoint.y);
        SetLength(LSelection.Selections, FDrawGrid.SelectedRangeCount);
        for i := 0 to High(LSelection.Selections) do
        begin
          LSelection.Selections[i] := FDrawGrid.SelectedRange[i];
          if not LContains then
            LContains := LSelection.Selections[i].Contains(LPoint);
          LSelection.Selections[i].Top:=LSelection.Selections[i].Top-1; // - fixed row
        end;
        if not LContains then
          Exit;
        FOnPreparePopupMenu(Self, LSelection, LPopup);
  
negative.code:   if Length(Selections) = 0 then
      Exit(-1);
    Result := Selections[0].Left;
  end;
  
  function TVisualGridSelection.GetColCount: longint;
  begin
    if Length(Selections) = 0 then
      Exit(0);
    Result := Selections[0].Width;
  end;
  
  function TVisualGridSelection.GetRow: longint;
  