diff --git a/funcext/tvclib/tcontrol.tsf b/funcext/tvclib/tcontrol.tsf index 3c92b18..afb0ad8 100644 --- a/funcext/tvclib/tcontrol.tsf +++ b/funcext/tvclib/tcontrol.tsf @@ -1446,7 +1446,7 @@ type tcontrol = class(tcomponent) property OnSize:eventhandler read FOnSize write FOnSize; property OnMove:eventhandler read FOnMove write FOnMove; property OnMouseMove:eventhandler read FOnMouseMove Write FOnMouseMove; - property OnPopupMenu read FOnPopupMenu write FOnPopupMenu; + property OnPopupMenu:eventhandler read FOnPopupMenu write FOnPopupMenu; property OnMouseDown:eventhandler read FOnMouseDown write FOnMouseDown; {** @param(OnMouseMove)(function[TControl,TMMouse]) 鼠标移动回调函数 %% diff --git a/funcext/tvclib/twincontrol.tsf b/funcext/tvclib/twincontrol.tsf index f21b02a..fe4a67d 100644 --- a/funcext/tvclib/twincontrol.tsf +++ b/funcext/tvclib/twincontrol.tsf @@ -1911,6 +1911,16 @@ type TWinControl = class(tcontrol) if factivated and factivecontrol and ContainsControl(factivecontrol) then factivecontrol.SetFocus(); end end + function TrackPopupMenu(x,y); //弹出菜单 + begin + pp := PopupMenu; + if HandleAllocated() and pp and pp.HandleAllocated() then + begin + xy := ClientToScreen(x,y); + uf := TPM_LEFTALIGN .| TPM_TOPALIGN .| TPM_RIGHTBUTTON; + _wapi.TrackPopupMenu(PopupMenu.Handle,uf,xy[0],xy[1],0,self.Handle,nil); + end + end function Notification(ac,op);override; begin if op=opRecycling and ac=factivecontrol then