How to add an OnMouseDown event to a TPopupMenu #117
Question
I need to add a right-click capability to a popup menu. I created a
component that inherits from TPopupMenu.
I suggest that you write the OnMouseDown event similar to the following:
{ ... } TNewPopupMenu = class(TPopupMenu) private FOnMouseDown: TMouseEvent; protected procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); dynamic; procedure DoMouseDown(var Message: TWMMouse; Button: TMouseButton; Shift: TShiftState); published property OnMouseDown: TMouseEvent read FOnMouseDown write FOnMouseDown; end; procedure TNewPopupMenu.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if Assigned(FOnMouseDown) then FOnMouseDown(Self, Button, Shift, X, Y); end; procedure TNewPopupMenu.DoMouseDown(var Message: TWMMouse; Button: TMouseButton; Shift: TShiftState); begin with Message do MouseDown(Button, KeysToShiftState(Keys) + Shift, XPos, YPos); end;
Original resource: | The Delphi Pool |
---|---|
Author: | Kalman Hadarics |
Added: | 2009/10/26 |
Last updated: | 2009/10/26 |