anchor.diff:  
   function TCustomVisualGrid.GetRows(ARow: Integer): Variant;
   begin
  -  Result := FDataTable.Rows[ARow];
  +  Result := ActiveDataTable.Rows[ARow];
   end;
   
   function TCustomVisualGrid.GetSelection: TVisualGridSelection;
  
positive.code: begin
    if ARow = 0 then
    begin
      if ACol < Length(FDataTable.Columns) then
        LText := FDataTable.Columns[ACol]
      else
        raise EVisualGridError.CreateFmt('Improper column index. Max expected is %d but %d found.', [Length(FDataTable.Columns)-1,ACol]);
      FDrawGrid.Canvas.TextRect(Rect, Rect.Left+2, Rect.Top+2, LText)
    end
    else
  
negative.code:   Result := FColumns[Index];
  end;
  
  function TCustomVisualGrid.GetActiveDataTable: PDataTable;
  begin
    if FFetchDataThreadTimer.Enabled then
      Result := FCachedDataTable
    else
      Result := @FDataTable;
  end;
  
  function TCustomVisualGrid.GetRowCount: Integer;
  begin
    Result := Length(ActiveDataTable.Rows);
  end;
  
  function TCustomVisualGrid.GetCaption: TCaption;
  