Разрешить контекстное меню только на некоторых столбиках cxGrid-а.

Во-первых, вместо TPopupMenu нужно взять cxGripPopupMenu. В его обработчике onPopup есть параметр AllowPopup. Остаётся только определить в каком мы столбике и принять решение, можно ли показывать контекстное меню:

procedure TMain.cxGridPopupMenu1Popup(ASenderMenu: TComponent;
  AHitTest: TcxCustomGridHitTest; X, Y: Integer; var AllowPopup: Boolean);
begin
   AllowPopup := (AHitTest is TcxGridColumnHeaderHitTest ) and
    (TcxGridDBColumn(
      TcxGridColumnHeaderHitTest(AHitTest).Column
                     ).DataBinding.FieldName = 'НазваниеСтолбика');
end;

 

Метки: