anchor.diff:          FDataset.GotoBookmark(tmpBookmark);
         end;
       finally
  -      FGrid.EndUpdate(true);
  +      FGrid.DataSource.DataSet.EnableControls; // EndUpdate(true);
       end;
     end
     else //if FGrid.SelectedRows.Count =  1 then
  
positive.code: var
    newHash : string;
  begin
    if FAutomaticChildsUpdateMode = cuOnChangeSelection then
    begin
      if FGrid.SelectedRows.Count > 1 then
      begin
        newHash:= FGrid.SelectedRows.CalculateHashCode;
        if newHash <> FLastSelectedRowsHash then
        begin
          FLastSelectedRowsHash:= newHash;
          FLastSelectedRow := FGrid.DataSource.DataSet.Bookmark;
          FLastSelectedRowsCount := FGrid.SelectedRows.Count;
          if Assigned(Self.Parent) then
            InvokeChildsRefresh;
        end;
      end
      else begin
        if (FGrid.SelectedRows.Count = 0) and ((FGrid.DataSource.DataSet.BookmarkValid(FLastSelectedRow)) or (FLastSelectedRowsCount > 0)) then
        begin
          FLastSelectedRow:= nil;
          FLastSelectedRowsCount:= 0;
          if Assigned(Self.Parent) then
            InvokeChildsRefresh;
        end
        else
        begin
          if FGrid.DataSource.DataSet.CompareBookmarks(FLastSelectedRow, FGrid.DataSource.DataSet.Bookmark) <> 0 then
          begin
            FLastSelectedRow := FGrid.DataSource.DataSet.Bookmark;
            FLastSelectedRowsCount := 1;
            if Assigned(Self.Parent) then
              InvokeChildsRefresh;
          end;
        end;
      end;
    end
    else
    begin
      FLastSelectedRow:= nil;
      FLastSelectedRowsCount:= 0;
      if Assigned(Self.Parent) then
        InvokeChildsRefresh;
    end;
  end;
  
  procedure TUramakiBaseGridPlate.DoSelectAll(Sender: TObject);
  begin
    FGridHelper.SelectAllRows;
  end;
  
  procedure TUramakiBaseGridPlate.DoAutoAdjustColumns(Sender: TObject);
  
negative.code:   FLastSelectedRowsCount:= 0;
    FLastSelectedRowsHash := '';
    Self.AutomaticChildsUpdateMode:= cuOnChangeSelection;
    FRunningDoUpdateChilds := false;
  end;
  
  destructor TUramakiBaseGridPlate.Destroy;
  