《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

 

Gui控件功能扩展增强系列目录

 

声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。