首页 > 程序开发 > 软件开发 > 其他 > 正文
delphi 入门之《动态创建菜单》
2017-06-19       个评论    来源:  
收藏    我要投稿

delphi 入门之《动态创建菜单》

由于在项目中用到动态创建菜单的功能,简单的记录下,主要是根据json的配置文件动态的创建菜单,用到的有一个json菜单配置文件,json转换的工具类SuperObject,具体的代码如下所示:

1、json配置文件

[choj]
HomeUrl=
MenuUrl=
menu=[{"name":"主菜单1","children":[{"name":"主菜单1_1","url":""},{"name":"主菜单1_2","url":""}]},{"name":"主菜单2","children":[{"name":"主菜单2_1","url":""},{"name":"主菜单2_2","url":""}]}]

2、实现的代码

var
  menuStr: string;        
  homeurl:string;
  menuItem: TMenuItem;
  subMenuItem: TMenuItem;

  json: ISuperObject;
  menuArray: TSuperArray;
  subSenuArray: TSuperArray;
  i:Integer;  
  j:Integer;
begin
    // --- 动态加载菜单 start ---
    try
        menuStr:=ReadIniFile('Menu');
        if varIsNull(menuStr)  then
          begin
             showmessage('未找到菜单配置文件!');
             Exit;
           end;
        json:=SO(menuStr);// -- 转为json对象 --
        menuArray := json.AsArray;
        for i:=0 to menuArray.Length-1 do
          begin
            menuItem:= TMenuItem.Create(Self);
            menuItem.Caption:=menuArray[i]['name'].AsString;
            print_MainMenu.Items.Add(menuItem);

            subSenuArray:= menuArray[i]['children'].AsArray;
            for j:=0 to subSenuArray.Length-1 do
              begin
                subMenuItem:= TMenuItem.Create(Self);
                subMenuItem.Caption:=subSenuArray[j]['name'].AsString;
                subMenuItem.Hint:=subSenuArray[j]['url'].AsString;
                subMenuItem.OnClick := MenuClick;
                menuItem.Add(subMenuItem);
              end;
          end;
      except
       showmessage('出现异常!');
      end;
    // --- 动态加载菜单 end ---
end;
点击复制链接 与好友分享!回本站首页
上一篇:LintCode 中位数
下一篇:最后一页
相关文章
图文推荐
文章
推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 |
版权所有: 88bifa.com--致力于做实用的IT技术学习网站