TcxGridPopupMenu.OnPopup Event
Allows you to identify the target grid View UI element and disable the predefined pop-up menu in certain cases.
#Declaration
property OnPopup: TcxGridBeforePopupProc read; write;
#Remarks
You can handle the OnPopup
event execute custom code when the predefined pop-up menu is about to appear.
#Event Occurrence
The OnPopup
event occurs every time the TcxGridPopupMenu component is about to display the data grid control’s predefined pop-up menu. The AlwaysFireOnPopup property specifies if the OnPopup
event occurs before the OnPopup event of the custom pop-up menu associated with the target data grid UI element.
#Event Parameters
You can use ASenderMenu
and AHitTest
parameters to identify the menu that raised the OnPopup
event and the target UI element.
X
and Y
parameters return the current mouse pointer coordinates.
You can assign False
to the AAllowPopup
parameter within an OnPopup
event handler to prevent the pop-up menu from appearing.
Refer to the TcxGridBeforePopupProc procedural type description for detailed information on parameters accessible within an OnPopup
event handler.
#Code Example: Disable the Grid Pop-Up Menu for Individual Columns
The code example in this section prevents the pop-up menu from appearing when a user right-clicks the Price column’s header in an unbound grid Table View.
Follow the steps below to test this code example in your RAD Studio IDE:
- Copy the DFM code snippet below.
- Create a new project in the IDE and focus an empty form.
- Press Ctrl+V to populate the form with preconfigured components.
- Select cxGrid1DBTableView1 in the TcxGrid on the form.
- Create an empty
OnPopup
event handler, paste the code example, and run the project.
object cxGrid1: TcxGrid
Left = 96
Top = 72
Width = 250
Height = 200
TabOrder = 0
object cxGrid1TableView1: TcxGridTableView
Navigator.Buttons.CustomButtons = <>
ScrollbarAnnotations.CustomAnnotations = <>
DataController.Summary.DefaultGroupSummaryItems = <>
DataController.Summary.FooterSummaryItems = <>
DataController.Summary.SummaryGroups = <>
DataController.Data = {
660000000F00000044617461436F6E74726F6C6C657231020000001200000054
6378537472696E6756616C75655479706512000000546378537472696E675661
6C75655479706501000000445855464D540000050000004E0061006D00650031
00000200000031003000}
object cxGrid1TableView1Column2: TcxGridColumn
Caption = 'Name'
end
object cxGrid1TableView1Column1: TcxGridColumn
Caption = 'Price'
end
end
object cxGrid1Level1: TcxGridLevel
GridView = cxGrid1TableView1
end
end
object cxGridPopupMenu1: TcxGridPopupMenu
Grid = cxGrid1
PopupMenus = <
item
GridView = cxGrid1TableView1
HitTypes = [gvhtColumnHeader]
Index = 0
PopupMenu = PopupMenu1
end>
Left = 196
Top = 72
end
object PopupMenu1: TPopupMenu
Left = 472
Top = 160
object Item1: TMenuItem
Caption = 'Item1'
end
end
uses
cxGridPopupMenu; // This unit declares the TcxGridPopupMenu class
// ...
procedure TMyForm.cxGridPopupMenu1Popup(ASenderMenu: TComponent;
AHitTest: TcxCustomGridHitTest; X, Y: Integer; var AllowPopup: Boolean);
var
AColumn: TcxGridColumn;
begin
if AHitTest is TcxGridColumnHeaderHitTest then
begin
AColumn := (AHitTest as TcxGridCustomHeaderHitTest).Column;
if AColumn.Caption = 'Price' then
AllowPopup := False; // Disables the pop-up menu for the "Price" column
end;
end;