anchor.diff:  begin
     if ColCount = 0 then
       Exit;
  -   OnPreparePopupMenu := PreparePopupMenu;
     case Button of
       mbRight:
         if (SelectionType <> stNone) and Assigned(FOnPreparePopupMenu) and
  
positive.code:         Dec(LRow);
          LSelection := Selection;
          for i := 0 to High(LSelection.Selections) do
          begin
            if not LContains then
            begin
              with LSelection.Selections[i] do
                LContains := (LCol >= Left) and (LRow >= Top) and (LCol <= Right) and (LRow <= Bottom);
              Break;
            end;
          end;
  
          if not LContains then
            Exit;
  
negative.code:   Result := FDrawGrid.Canvas;
  end;
  
  procedure TCustomVisualGrid.SetCells(ACol, ARow: Integer; AValue: Variant);
  begin
    TTableRowData(FDataTable.Rows[ARow]).vvalues[ACol] := AValue;
  