Советы по Delphi

         

Использование контекстного меню с VBX


Я хочу, чтобы при щелчке правой кнопкой мыши на моем VBX, возникало контекстное меню. При вызове контекстного меню формы я не могу определить где был произведен щелчок. Я же хочу показывать меню при щелчке правой кнопкой на моем vbx.

Как мне перехватить это?

Например, так:

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]



Содержание раздела