procedure GetSubItem(mi: TMenuItem; sTabs: String);
var
i: Integer;
begin
if (mi.Visible = False) then Exit;
sl.Add(sTabs + mi.Caption);
for i := 0 to (mi.Count - 1) do
GetSubItem(mi.Items[i], sTabs + ' '); //这里的TAB字符用于控制层次
end;
begin
sl := TStringList.Create;
for j := 0 to 11 do GetSubItem(MainMenu1.Items[j], '');
sl.SaveToFile('主菜单结构.txt');
sl.Free;
end;