anchor.diff:      FDeselectionType: TDeselectionType;
       FCurrentSelectionType: TSelectionType;
       FLastSelection: TVisualGridSelection;
  +    FLastSelectionEvent: TVisualGridSelection;
       FIgnoreSelectionEvent: boolean;
       FCellPadding : TRect;
       FWidgetControl: TControl;
  
positive.code:     function GetRow: longint;
      function GetRowCount: longint;
    public
      Selections: array of TRect;
      property Col: longint read GetCol;
      property Row: longint read GetRow;
  
negative.code:         else
          if (FCurrentSelectionType <> stNone) and SelectionsEquals(LSelection, FLastSelection) then
          begin
            ResetSelection(FLastSelection);
            UpdateSelection(stNone, true)
          end
          else begin
            // lock for select event, otherwise we get false information about selection
            // (highly visible problem for deselection option)
            FIgnoreSelectionEvent := true;
            UpdateSelection(FSelectionType, true);
            FIgnoreSelectionEvent := false;
            FLastSelection := LSelection;
            GridSelection(nil, 0, 0);
  