anchor.diff:      FBlockStart, FBlockEnd : Int64;
       procedure DoUpdateBlockChainGrid(ANode : TNode; var AList : TList<TBlockChainData>; ABlockStart, ABlockEnd : Int64);
     protected
  +    FGridUpdateCount: Integer;
       procedure BCExecute; override;
  +    procedure RefreshGrid;
     public
       constructor Create(ABlockChainGrid : TBlockChainGrid);
     End;
  
positive.code:       for i := 0 to list.Count-1 do begin
          FOperationsGrid.FOperationsResume.Add(list[i]);
        end;
        FOperationsGrid.InitGrid;
      end;
    finally
  
negative.code:         FBlockChainGrid.FBlockChainDataList.Add(Llist[i]);
        end;
        if Assigned(FBlockChainGrid.DrawGrid) then begin
          if Llist.Count>0 then FGridUpdateCount := Llist.Count+1
          else FGridUpdateCount := 2;
          Synchronize(RefreshGrid);
        end;
      end;
    finally
      Llist.Free;
    end;
  end;
  
  procedure TBlockChainGridUpdateThread.RefreshGrid;
  begin
    if not Assigned(FBlockChainGrid) or not Assigned(FBlockChainGrid.DrawGrid)
      then Exit;
    FBlockChainGrid.DrawGrid.RowCount := FGridUpdateCount;
    FBlockChainGrid.FDrawGrid.Invalidate;
  end;
  
  constructor TBlockChainGridUpdateThread.Create(ABlockChainGrid : TBlockChainGrid);
  