《Gui控件功能扩展增强系列 6》
问:我们为什么要制作好看的界面呢?直接改脚本内容不就行了吗?
答:界面就跟向老板汇报的PPT一样。我们不能要求老板们直接去读代码,所以界面做得好不好,就直接影响到老板会不会给你批资金和预算。
设计理念
当我们需要写界面时,一般都是给别人使用的时候。既然都写界面了,那肯定要给用户保存配置ini。
既然要写配置文件,那为什么不合二为一简化流程呢?让你快速交付用户可定制的带界面的脚本
于是这个库就诞生了,此库是以数组的方式读写ini的。比原生命令方便得多,也实现了用数组写Gui
此库可以和 ImageButton按钮样式库-优化版 批量替换控件样式结合,实现快速生成好看的控件
IBStyle(0, , , "White")
调用和使用的代码片段:
; 防误修改路径 := A_AppData "\iniGuiConfig.ini" ; 如果不希望别人动ini影响Gui可以改路径 SplitPath, A_ScriptFullPath, , , , 脚本名无后缀 ini路径 := A_ScriptDir "\" 脚本名无后缀 ".ini" ; FileDelete, % ini路径 ; 方便调试生成界面用 ; 如果不存在指定ini配置时,将生成ini保证Gui加载 if !FileExist(ini路径) { ; iniGui库只会读取键名的最后一个【】来做参数指定,存在两个【】时,第一个【】可以正常显示 AHKini := New Easyini(ini路径) AHKini["决斗", " 停止自动决斗的条件:【文本】"] := "" AHKini["决斗", "当 金币 到上限时停止【勾选】"] := 1 AHKini["决斗", "当 斗币 到上限时停止【勾选】"] := 0 AHKini["决斗", "1【换行】"] := "" AHKini["决斗", "开关集结等待功能【勾选】"] := 1 AHKini["决斗", " 在几分钟集结后,仍然不开始就退出此房间【30】"] := 4 AHKini["决斗", "2【换行】"] := "" AHKini["决斗", "快捷键设置【热键】"] := "F1" AHKini["决斗", "关闭脚本【按钮1】"] := "AHKiniGui关闭脚本" AHKini["答题", "请勾选监控【文本】"] := "哪天 开启 自动答题?" AHKini["答题", "01【勾选】"] := 0 ; 用01号起个头,避免下面循环时勾选跟随 Loop 30 ; 用Format来补全日期成0X,然后批量生成30个控件 if (Mod(A_Index, 7)=0) AHKini["答题", Format("{:02}", A_Index+1) "【勾选】"] := 0 else AHKini["答题", Format("{:02}", A_Index+1) "【勾选跟随】"] := 0 AHKini["答题", "3【换行】"] := "" AHKini["答题", "显示答题调试信息【勾选】"] := 0 AHKini["全局设置", "开机启动【勾选】"] := 0 AHKini["全局设置", " 开机延时几秒后启动脚本【30】"] := 5 AHKini["全局设置", "启动时弹出设置界面【勾选】"] := 1 AHKini["全局设置", "1【换行】"] := "" AHKini["全局设置", "快捷键触发编号介绍 -【文本】"] := "1:决斗、2:答题、3:调查" AHKini["全局设置", " 按下快捷键启动流程【30】"] := 1 AHKini["全局设置", "2【换行】"] := "" AHKini["全局设置", "iOS推送SCKEY【220】"] := "https://123.com/45/6" AHKini["全局设置", "加字【按钮3】"] := "取左边编辑框标签" AHKini["全局设置", "3【换行】"] := "" AHKini["全局设置", "功能介绍 -【文本】"] := "此行仅为演示iniGui库支持多行滚动条功能" AHKini["全局设置", "界面版本:【文本】"] := "1.3" AHKini.Save() } iniGui(ini路径) ; 以默认参数加载ini界面 ; ahk自带ini读写命令测试 ; iniRead, ini读取到变量, % ini路径, 决斗, 快捷键设置【热键】 ; MsgBox % "ini读取到的键值:" ini读取到变量 "`n`nEasyini的等效读取写法:" AHKini["决斗", "快捷键设置【热键】"] Return 取左边编辑框标签: ControlGetFocus, _, ahk_id %inigui_id% ControlGetPos, ___x_, ___y_, , ___h_, %_%, ahk_id %inigui_id% ControlClick, % "x" ___x_-30 " y" ___y_+___h_//2, ahk_id %inigui_id% ; Sleep 1 ControlGetFocus, _, ahk_id %inigui_id% ControlGetText, 左边编辑框内容, %_%, ahk_id %inigui_id% if InStr(_, "Edit") ControlSetText, %_%, %左边编辑框内容%加, ahk_id %inigui_id% Return
以ini配置文件来生成Gui界面.ahk
声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。
评论(0)