anchor.diff:      property SingleSearch: boolean read GetSingleSearch write SetSingleSearch default true;
       property Canvas: TCanvas read GetCanvas;
       property SelectionType: TSelectionType read FSelectionType write SetSelectionType;
  +    property Selection: TVisualGridSelection read GetSelection;
  +
  +    property Cells[ACol, ARow: Integer]: Variant read GetCells write SetCells;
  +    property Rows[ARow: Integer]: Variant read GetRows write SetRows;
   
       property OnDrawVisualCell: TDrawVisualCellEvent read FOnDrawVisualCell write FOnDrawVisualCell;
       property OnPreparePopupMenu: TPreparePopupMenuEvent read FOnPreparePopupMenu write FOnPreparePopupMenu;
  
positive.code:     property Col: longint read GetCol;
      property Row: longint read GetRow;
      property RowCount: longint read GetRowCount;
    end;
  
    TPreparePopupMenuEvent = procedure(Sender: TObject; constref ASelection: TVisualGridSelection; out APopupMenu: TPopupMenu) of object;
  
negative.code:   Result := FTopPanelRight.Visible;
  end;
  
  procedure TCustomVisualGrid.SetCells(ACol, ARow: Integer; AValue: Variant);
  begin
    TTableRowData(FDataTable.Rows[ARow]).vvalues[ACol] := AValue;
    FDrawGrid.InvalidateCell(ACol, ARow);
  end;
  
  procedure TCustomVisualGrid.SetFetchDataInThread(AValue: boolean);
  begin
    if FFetchDataInThread=AValue then Exit;
  