Как вы можете reset максимальную ширину для списка элементов PopupMenu?
Скажем, вы добавляете несколько TMenuItems во время выполнения в popupmenu:
item1: [xxxxxxxxxxxxxxxxxxx]
item2: [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]
В меню автоматически настраивается размер, соответствующий самому большому элементу. Но затем вы делаете Items.Clear и добавляете новый элемент:
item1: [xxxxxxxxxxxx ]
Он заканчивается таким образом, с большим пустым пространством после заголовка.
Есть ли какой-нибудь обходной путь помимо повторного создания popupmenu?
Здесь приведен код для воспроизведения этой аномалии:
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;