anchor.diff:  begin
     if ARow = 0 then
     begin
  -    if ACol < Length(FDataTable.Columns) then
  -      LText := FDataTable.Columns[ACol]
  +    if ACol < Length(ActiveDataTable.Columns) then
  +      LText := ActiveDataTable.Columns[ACol]
       else
  -      raise EVisualGridError.CreateFmt('Improper column index. Max expected is %d but %d found.', [Length(FDataTable.Columns)-1,ACol]);
  +      raise EVisualGridError.CreateFmt('Improper column index. Max expected is %d but %d found.', [Length(ActiveDataTable.Columns)-1,ACol]);
       FDrawGrid.Canvas.TextRect(Rect, Rect.Left+2, Rect.Top+2, LText)
     end
     else
  
positive.code: 
  function TCustomVisualGrid.GetCells(ACol, ARow: Integer): Variant;
  begin
    Result := FDataTable.Rows[ARow]._(ACol);
  end;
  
  function TCustomVisualGrid.GetColCount: Integer;
  
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;
  