你如何重置弹出菜单项列表的最大宽度?
比如,你在运行时向弹出菜单添加了几个TMenuItem:
菜单会自动调整大小以适应最大的项。 但是如果您执行Items.Clear并添加新项:
比如,你在运行时向弹出菜单添加了几个TMenuItem:
item1: [xxxxxxxxxxxxxxxxxxx]
item2: [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]
菜单会自动调整大小以适应最大的项。 但是如果您执行Items.Clear并添加新项:
item1: [xxxxxxxxxxxx ]
最后结果就是,在标题后面有一个很大的空白区域。
除了重新创建弹出菜单,还有其他解决方法吗?
以下是用于复制此异常的代码:
procedure TForm1.Button1Click(Sender: TObject);
var
t: TMenuItem;
begin
t := TMenuItem.Create(PopupMenu1);
t.Caption := 'largelargelargelargelargelarge';
PopupMenu1.Items.Add(t);
PopupMenu1.Popup(200, 200);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
t: TMenuItem;
begin
PopupMenu1.Items.Clear;
t := TMenuItem.Create(PopupMenu1);
t.Caption := 'short';
PopupMenu1.Items.Add(t);
PopupMenu1.Popup(200, 200);
end;