如何将TPopupMenu与表单的右侧对齐?问题是在调用之前似乎没有办法获得弹出菜单的宽度Popup(X, Y: Integer).
我试图获得类似于Chrome中系统菜单的行为.

Ser*_*yuz 14
最简单的解决方案是自己启动弹出菜单:
procedure TForm1.Panel1ContextPopup(Sender: TObject; MousePos: TPoint;
var Handled: Boolean);
var
PopupPt: TPoint;
begin
PopupPt := ClientToScreen(Point(ClientWidth, 0));
TrackPopupMenu(PopupMenu1.Handle, TPM_RIGHTALIGN or TPM_TOPALIGN,
PopupPt.X, PopupPt.Y, 0, PopupList.Window, nil);
end;
Run Code Online (Sandbox Code Playgroud)
请参阅文档TrackPopupMenu或TrackPopupMenuEx各种标志的含义.
Ond*_*lle 13
你也可以只设置Alignment到paRight和呼叫
with ClientToScreen(Point(ClientWidth - 1, 0)) do
Popup(X, Y);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1479 次 |
| 最近记录: |