Как мне перехватить это?
Например, так:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);beginif button = mbRight thenwith (Sender AS TControl) dowith ClientToScreen(Point(X,Y)) dobeginPopupMenu1.PopupComponent := TComponent(Sender);PopupMenu1.Popup(X,Y);end;end; |
Примечание: Свойство формы PopupMenu должно быть пустым, иначе контекстное меню будет появляться везде. Если вы хотите, чтобы форма была единственным местом, где бы появлялось контекстное меню, разместите данный метод в обработчике события формы OnMouseDown. Если вы хотите, чтобы единственно возможным местом для появления контексного меню был бы VBX, то разместите приведенный выше метод в обработчике события OnMouseDown самого VBX, ну и так далее по аналогии.
[000839]