TC官方合作论坛

标题: 【原创开源】一键读写界面全部控件配置_0827-1512 [打印本页]

作者: 610761555    时间: 2014-8-24 16:37
标题: 【原创开源】一键读写界面全部控件配置_0827-1512
本帖最后由 610761555 于 2014-8-27 15:27 编辑

[attach]17034[/attach][attach]17007[/attach]
[attach]17033[/attach]
刚写的,新鲜出炉,不限制控件名称数量,傻瓜式读写
[attach]17010[/attach]  0827-1512
1.修复编辑框不能保存空字符;
2.修复编辑框,下拉框,列表框有 | 符无法读写;
3.支持子窗口读写配置

如有其它BUG、建议、更好的方法请告知,谢谢;

说明:
1.支持所有能设置属性的控件,表格只支持文本;
发布软件时请将 项目资源下的main.twin复制一份到生成目录下;
如果界面添加或修改过控件名称,得更新生成目录下的 main.twin;
将源码以下两个功能复制到你的脚本就可以了
[attach]17036[/attach]

调用格式:
//空间名.配置文件("保存",你的窗口名称)
//空间名.配置文件("读取",你的窗口名称)

缺点:
表格行列过多,读写表格配置比较慢;
编辑框,下拉框,列表框内容太多也较慢;
还好影响不大,一般都不会存放太多数据;
如有更效率的效法求分享,唉,知道TC两年了,
用TC写的东西比较少之前还一直一个控件写1行配置;

以下为代码片段,完整代码请参考附件。
  1. function 配置文件(操作,窗口名字)
  2.     var 过滤控件,过滤名称,过滤1,过滤2
  3.     过滤控件="图片框,定时器,浏览器" //匹配控件 配置将不被保存
  4.     过滤名称="edit2,edit3" //匹配控件名称  配置将不被保存
  5.     var 界面文件,配置文件,读取内容
  6.     var j,k,len1,len2,len3,len4
  7.     var 控件信息=array[],控件名称=array[],控件=array[]
  8.     var 控件属性,键码,功能键
  9.     var 起始位置,控件组
  10.     控件组="标签,按钮,单选框,复选框,编辑框,分组框,列表框,下拉框,图片框,进度条,滑块,浏览框,选项卡,定时器,热键,日期框,浏览器,表格"
  11.     界面文件=程序路径&"\\main.twin"
  12.     配置文件=程序路径&"\\"&窗口名字&".ini"
  13.    
  14.     if(file.exist(界面文件)==false)
  15.         help.messagebox(操作&"失败")
  16.         返回 false
  17.     endif
  18.    
  19.     //*********分割main.twin,取窗口信息*********
  20.     var 窗口信息=array[],窗口名称=array[],c,clen,tlen
  21.     读取内容=file.readfileex(界面文件)
  22.     str.split(读取内容,"窗口结束",窗口信息)
  23.     arraysp.size(窗口信息,clen)
  24.     for(c=0;c<clen;c++)
  25.         //============取出窗口信息============//
  26.         替换=str.replace(窗口信息[c],"| |","|")
  27.         str.split(替换,"|",控件信息)
  28.         arraysp.size(控件信息,len1)
  29.         str.split(控件组,",",控件)
  30.         arraysp.size(控件,len2)
  31.         for(j=0;j<len1;j++)
  32.             控件信息[j]=str.replace(控件信息[j],"\n","")
  33.             str.split(控件信息[j]," ",控件名称)
  34.             arraysp.size(控件名称,len3)
  35.             if(len3>1)
  36.                
  37.                 for(k=0;k<len2;k++)
  38.                     起始位置=str.findstr(控件信息[j],控件[k]&" ")
  39.                     if(起始位置>-1)
  40.                         len4=str.strleng(控件[k])
  41.                         控件名称[0]=str.strsub(控件信息[j],起始位置,起始位置+len4)
  42.                         控件名称[0]=str.replace(控件名称[0]," ","")
  43.                         
  44.                         //--过滤器--//
  45.                         过滤1=str.findstr(过滤控件,控件名称[0])
  46.                         过滤2=str.findstr(过滤名称,控件名称[1])
  47.                         if(过滤1>-1||过滤2>-1)
  48.                             break
  49.                         endif
  50.                         //--过滤器--//
  51.                         
  52.                         //============取出窗口名称============//
  53.                         str.split(窗口信息[c]," ",窗口名称)
  54.                         arraysp.size(窗口名称,tlen)
  55.                         if(tlen>1)
  56.                             if(窗口名字==窗口名称[1])
  57.                                 traceprint("窗口名称:"&窗口名称[1]&",控件:"&控件名称[0]&",控件名称:"&控件名称[1])
  58.                                 配置文件.读写配置(控件名称[0],控件名称[1],窗口名称[1],操作,配置文件)
  59.                             endif
  60.                         endif
  61.                         //====================================//
  62.                         
  63.                     endif
  64.                 endfor
  65.             endif   
  66.         endfor
  67.         //====================================//
  68.     endfor
  69.     traceprint("【配置文件】—— "&操作&"完毕")
  70. endfunction
复制代码






作者: qjj754    时间: 2014-8-24 21:51
果断回贴.比我写的那一键保存配置 强大多了

作者: 千叶de悠一    时间: 2014-8-25 00:15
看帖   要回
作者: 续花丶    时间: 2014-8-25 05:22
点赞.
作者: whoyeyang    时间: 2014-8-25 16:13
收藏收藏
作者: 610761555    时间: 2014-8-27 15:28
0827-1512更新,支持子界面,傻瓜式调用~~~~~~
作者: lidongxu    时间: 2014-9-5 21:12
收藏了
作者: se7en-15    时间: 2014-9-9 14:40
main.twin  为什么要带着个?
作者: 610761555    时间: 2014-9-9 16:22
se7en-15 发表于 2014-9-9 14:40
main.twin  为什么要带着个?

没有它不能知道控件名,就无法保存
作者: IGS    时间: 2014-9-23 09:10
{:soso_e179:}
作者: winbei2010    时间: 2014-9-24 15:35
好贴!
作者: 章昊    时间: 2014-10-8 18:17
看帖就回
作者: 1592003973    时间: 2014-11-8 01:52
留个记号,谢谢
作者: mohack    时间: 2014-11-28 10:58
牛逼啊啊啊啊
作者: 1172930657    时间: 2015-11-23 12:04
这种不隐藏的更要顶顶了。




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1