我有TPopupMenu
,在运行时添加了项目。我想用标题对它们进行排序:“Abc”,“MyItem”,“Zztop”。我在菜单项列表中找不到Sort方法。
Delphi7的。
答案 0 :(得分:6)
由于您在运行时添加项目,首选方法是添加已排序的项目
如果您必须将项目添加到已包含项目的菜单中,您可以通过将项目的MenuIndex
设置为所需的值来对其进行排序。
一种简单的方法是将Items带到已排序的StringList并从列表中应用MenuIndex。
Procedure SortMenuItems(Menu: TPopupMenu);
var
i: Integer;
sl: TStringList;
begin
sl := TStringList.Create;
try
sl.Sorted := true;
for i := 0 to Menu.Items.Count - 1 do
begin
sl.AddObject(Menu.Items[i].Caption, Menu.Items[i]);
end;
for i := 0 to sl.Count - 1 do
TMenuItem(sl.Objects[i]).MenuIndex := i;
finally
sl.Free;
end;
end;