我正在尝试模拟一个下拉菜单,用于TButton按钮,如下所示:
procedure DropMenuDown(Control: TControl; PopupMenu: TPopupMenu);
var
APoint: TPoint;
begin
APoint := Control.ClientToScreen(Point(0, Control.ClientHeight));
PopupMenu.Popup(APoint.X, APoint.Y);
end;
procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button = mbLeft then
begin
DropMenuDown(Button1, PopupMenu1);
// ReleaseCapture;
end;
end;
问题在于当菜单下拉时,如果我再次点击按钮,我希望菜单关闭,但实际上它又会下拉。
我正在寻找一个特别针对通用的Delphi TButton的解决方案,而不是任何第三方等效物。