anchor.diff:  end;
   
   procedure TCustomVisualGrid.GridSelection(Sender: TObject; aCol, aRow: Integer);
  -begin
  -  if (FCurrentSelectionType <> stNone) and Assigned(FOnSelection) and (not FIgnoreSelectionEvent) then
  -    FOnSelection(Self, Selection);
  +var
  +  LSelection: TVisualGridSelection;
  +begin
  +  if Assigned(FOnSelection) and (not FIgnoreSelectionEvent) then
  +  begin
  +    if FCurrentSelectionType = stNone then
  +      ResetSelection(LSelection)
  +    else
  +      LSelection := Selection;
  +
  +    if not SelectionsEquals(FLastSelectionEvent, LSelection) then
  +    begin
  +      FOnSelection(Self, LSelection);
  +      FLastSelectionEvent := LSelection;
  +    end;
  +  end;
   end;
   
   procedure TCustomVisualGrid.GridHeaderClick(Sender: TObject; IsColumn: Boolean;
  
positive.code:   FMultiSearchEdits := TObjectList<TSearchEdit>.Create;
    FColumns := TObjectList<TVisualColumn>.Create;
    FFilters := TList<TColumnFilter>.Create;
    ResetLastSelection;
  
    { component layout }
  
  
negative.code:     Exit;
  
    FPageIndex := Value;
    RefreshPageIndexData(false);
  end;
  
  