anchor.diff:    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(FDataTable.Rows);
  +  Result := Length(ActiveDataTable.Rows);
   end;
   
   function TCustomVisualGrid.GetCaption: TCaption;
  
positive.code:   if ARow = 0 then
      ResizeSearchEdit(ACol);
    if (ARow > 0) and Assigned(FDataSource) then
    begin
      if FFetchDataThreadTimer.Enabled then
        LSource := FCachedDataTable
      else
        LSource := @FDataTable;
  
      LCellData := LSource^.Rows[ARow-1]._(ACol);
    end;
  
    if Assigned(FOnDrawVisualCell) then
      FOnDrawVisualCell(Self, ACol, ARow, Canvas, Rect, State, LCellData, LHandled);
  
negative.code:     procedure BeforeFetchPage;
      procedure FetchPage(out AResult: TPageFetchResult);
      procedure AfterFetchPage;
      property ActiveDataTable: PDataTable read GetActiveDataTable;
    public
      constructor Create(Owner: TComponent); override;
      destructor Destroy; override;
  