나는 TPopupMenu
을 런타임에 추가했습니다. 나는 캡션으로 그들을 분류하고 싶다 : "Abc", "MyItem", "Zztop". 메뉴 항목 목록에서 Sort 메서드를 찾을 수 없습니다.캡션별로 PopupMenu 항목 정렬
델파이 7.
나는 TPopupMenu
을 런타임에 추가했습니다. 나는 캡션으로 그들을 분류하고 싶다 : "Abc", "MyItem", "Zztop". 메뉴 항목 목록에서 Sort 메서드를 찾을 수 없습니다.캡션별로 PopupMenu 항목 정렬
델파이 7.
런타임에 항목을 추가하기 때문에 선호하는 방법은 이미 정렬 된 항목을 추가하는 것입니다.
이미 항목이 포함 된 메뉴에 항목을 추가해야하는 경우 해당 항목의 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;
항목을 정렬 된 순서로 menue에 추가하십시오. –
@Sir 그렇게 할 수있는 기회가 있다고 가정합니다. 메뉴가 단계적으로 또는'Assign' 구조체 또는'ActionList'에 의해 채워지거나, 다른 언어로 번역 될 필요가 있다고 생각하면 ... 그러나 OP는 확실히 그것에 대해 더 분명 할 수 있습니다! – NGLN
@NGLN 문제를 해결하는 무언가를 만드는 것은 일반적인 프로그래머들의 삶입니다. 단계별로 추가하고 유추하는 유스 케이스가있는 경우 분류, 번역 및 프리젠 테이션을 위해 항목을 관리하는 클래스를 만들어야합니다. –