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行配置;
以下为代码片段,完整代码请参考附件。
function 配置文件(操作,窗口名字)
var 过滤控件,过滤名称,过滤1,过滤2
过滤控件="图片框,定时器,浏览器" //匹配控件 配置将不被保存
过滤名称="edit2,edit3" //匹配控件名称 配置将不被保存
var 界面文件,配置文件,读取内容
var j,k,len1,len2,len3,len4
var 控件信息=array[],控件名称=array[],控件=array[]
var 控件属性,键码,功能键
var 起始位置,控件组
控件组="标签,按钮,单选框,复选框,编辑框,分组框,列表框,下拉框,图片框,进度条,滑块,浏览框,选项卡,定时器,热键,日期框,浏览器,表格"
界面文件=程序路径&"\\main.twin"
配置文件=程序路径&"\\"&窗口名字&".ini"
if(file.exist(界面文件)==false)
help.messagebox(操作&"失败")
返回 false
endif
//*********分割main.twin,取窗口信息*********
var 窗口信息=array[],窗口名称=array[],c,clen,tlen
读取内容=file.readfileex(界面文件)
str.split(读取内容,"窗口结束",窗口信息)
arraysp.size(窗口信息,clen)
for(c=0;c<clen;c++)
//============取出窗口信息============//
替换=str.replace(窗口信息[c],"| |","|")
str.split(替换,"|",控件信息)
arraysp.size(控件信息,len1)
str.split(控件组,",",控件)
arraysp.size(控件,len2)
for(j=0;j<len1;j++)
控件信息[j]=str.replace(控件信息[j],"\n","")
str.split(控件信息[j]," ",控件名称)
arraysp.size(控件名称,len3)
if(len3>1)
for(k=0;k<len2;k++)
起始位置=str.findstr(控件信息[j],控件[k]&" ")
if(起始位置>-1)
len4=str.strleng(控件[k])
控件名称[0]=str.strsub(控件信息[j],起始位置,起始位置+len4)
控件名称[0]=str.replace(控件名称[0]," ","")
//--过滤器--//
过滤1=str.findstr(过滤控件,控件名称[0])
过滤2=str.findstr(过滤名称,控件名称[1])
if(过滤1>-1||过滤2>-1)
break
endif
//--过滤器--//
//============取出窗口名称============//
str.split(窗口信息[c]," ",窗口名称)
arraysp.size(窗口名称,tlen)
if(tlen>1)
if(窗口名字==窗口名称[1])
traceprint("窗口名称:"&窗口名称[1]&",控件:"&控件名称[0]&",控件名称:"&控件名称[1])
配置文件.读写配置(控件名称[0],控件名称[1],窗口名称[1],操作,配置文件)
endif
endif
//====================================//
endif
endfor
endif
endfor
//====================================//
endfor
traceprint("【配置文件】—— "&操作&"完毕")
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