I want to replace all the popup menus displayed by delphi in the TCustomEdit components like TEdit or TMemo using my own popup menu (which has a lot of more actions). So far I replace the PopUpMenu property of each component manually with my own TPopUpMenu. but I wondering if I can do this without modify this property manually for each component in all my forms.
I want something like a hook to intercept the calls to this system menu and replace for my own menu. is this possible?

In your main form, add the following code. It should apply to all your form’s custom control.
It is just a simplified version (in the point of view of coding) of kobik’s answer and will also address any TCustomEdit that are created by code or other complex Controls which do not use the Form as Owner.
His instruction on how to determine which CustomEdit popup apply.
Edit : Add Grid InplaceEditor Support