TC官方合作论坛

 找回密码
 立即注册
查看: 5066|回复: 15

[界面] 【原创开源】一键读写界面全部控件配置_0827-1512

  [复制链接]
发表于 2014-8-24 16:37:38 | 显示全部楼层 |阅读模式
本帖最后由 610761555 于 2014-8-27 15:27 编辑



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

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

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


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

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

以下为代码片段,完整代码请参考附件。
  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
复制代码





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 2威望 +20 金币 +20 收起 理由
cylhb + 10 + 10 很给力!
qjj754 + 10 + 10 很给力!

查看全部评分

回复

使用道具 举报

发表于 2014-8-24 21:51:03 | 显示全部楼层
果断回贴.比我写的那一键保存配置 强大多了
回复 支持 反对

使用道具 举报

发表于 2014-8-25 00:15:49 | 显示全部楼层
看帖   要回
回复 支持 反对

使用道具 举报

发表于 2014-8-25 05:22:35 | 显示全部楼层
点赞.
回复

使用道具 举报

发表于 2014-8-25 16:13:34 | 显示全部楼层
收藏收藏
回复

使用道具 举报

 楼主| 发表于 2014-8-27 15:28:19 | 显示全部楼层
0827-1512更新,支持子界面,傻瓜式调用~~~~~~
回复 支持 反对

使用道具 举报

发表于 2014-9-5 21:12:30 | 显示全部楼层
收藏了
回复

使用道具 举报

发表于 2014-9-9 14:40:44 | 显示全部楼层
main.twin  为什么要带着个?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-9-9 16:22:07 | 显示全部楼层
se7en-15 发表于 2014-9-9 14:40
main.twin  为什么要带着个?

没有它不能知道控件名,就无法保存
回复 支持 反对

使用道具 举报

发表于 2014-9-23 09:10:17 | 显示全部楼层
{:soso_e179:}{:soso_e179:}{:soso_e179:}{:soso_e179:}{:soso_e179:}{:soso_e179:}{:soso_e179:}{:soso_e179:}{:soso_e179:}{:soso_e179:}{:soso_e179:}
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-5-5 21:56 , Processed in 0.042577 second(s), 26 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

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