请选择 进入手机版 | 继续访问电脑版

 找回密码
 立即注册
查看: 547|回复: 0

[已解决] 读取文本文件生成动态按钮菜单

[复制链接]

3

主题

5

帖子

23

积分
交易币
0

新手入门

Rank: 1

发表于 2021-2-25 22:04:26 | 显示全部楼层 |阅读模式
本帖最后由 cqtzh 于 2021-2-25 22:05 编辑

/*
//程序目录\menu.txt
//空行为新列
业务系统,d:\ywxt\main.exe
邮件,d:\oa\a.bat,d:\oa\mail.exe

其他,d:\other\other.exe

退出
*/

//读取文本文件生成动态按钮菜单

import win.ui;
import win;
import process;
/*DSG{{*/
mainForm = win.form(text="aardio工程_menu";right=959;bottom=591)
mainForm.add()
/*}}*/

//批量添加button菜单
menu_file=io._exedir+"menu.txt"
var i,j,n,k = 54,31,1,0;  //left,top,列,计数
var dict1,dict2={},{}  //字典
for line in io.lines(menu_file){
        line=string.fromto(line,0,65001);
        arr = string.split(line,",");
        var name,cmd,cmd2 = arr[1],arr[2],arr[3];
        if(cmd) dict1[name]=tostring(cmd);
        if(cmd2) dict2[name]=tostring(cmd2);
        if(name) {
                k=k+1;
                left,top,right,bottom=i,j,i+153,j+31;
                mainForm.add({
                        ["button"+k]={cls="button";text=name;left=left;top=top;right=right;bottom=bottom;z=1};
                })
                j+ = 31+31*1.5;
        }
        if(!name or j>500){
                n+=1; i=54+(153+54)*(n-1); j=31;  //新列
        }
}

//按钮控件响应事件
for(name,ctrl in mainForm.eachControl("button") ){
        ctrl.oncommand=function(id,event){
                mainForm.msgbox(name+','+ctrl.text);  //button1,业务系统
                prog=dict1[ctrl.text]; if(io.exist(prog)) process(prog);
                prog=dict2[ctrl.text]; if(io.exist(prog)) process(prog);
                if(ctrl.text="退出") mainForm.close();
        }
}

mainForm.show();
return win.loopMessage();

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



GMT+8, 2021-4-15 00:57 , Processed in 0.062369 second(s), 25 queries .

© 2001-2011 Powered by Discuz! X3.2.

快速回复 返回顶部 返回列表