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

2017-06-18 19:31:09来源:CSDN作者:qq_38428623人点击

由于在项目中用到动态创建菜单的功能,简单的记录下,主要是根据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;



最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台