找回密码
 加入
搜索
楼主: itzyx

[网络通信] 已解决 如何实现控件参数的 简易修改

[复制链接]
 楼主| 发表于 2020-9-4 12:44:19 | 显示全部楼层
gyp2000 发表于 2020-9-4 10:08
ini每个条目可以保存一组数据,只是ini过大的话,AU3内置函数是无法读取全部内容的。

谢谢大佬,你说的这个办法,我回头试试, 应该也是要控件写入,不过相比较来讲,配置文件的读取,写入是方便了一点
发表于 2020-9-4 12:57:57 | 显示全部楼层
itzyx 发表于 2020-9-4 12:42
确实,少的话复制粘贴一遍比较容易 ,不过 A大 你说的控件多的话 一般怎么循环处理啊?可以学习一下嘛

比如 test.ini 内容如下:

[测试]
Edit1=2000
Edit4=1900
Edit6=800
Edit8=600

以下代码就可以将上面4组数据一次循环即可完成输入,如果有更多的如 Edit10 等等,设置好 ini 文件就行了
Local $arr = IniReadSection('test.ini', '测试')
For $ii = 1 To $arr[0][0]
        ControlSetText("物品参数设置", "", $arr[$ii][0], $arr[$ii][1])
Next

当然,打好基础最重要,然后才是逻辑简化、优化。
 楼主| 发表于 2020-9-4 13:32:27 | 显示全部楼层
afan 发表于 2020-9-4 12:57
比如 test.ini 内容如下:

[测试]

好的,谢谢A大  
发表于 2020-9-4 13:45:28 | 显示全部楼层
itzyx 发表于 2020-9-4 13:32
好的,谢谢A大

及时贴出代码,可以很快被找出问题。
及时跟进,及时进步。
多看帮助文档相关实例,简单问题都可以自行解决,这是必走之路。
难点的问题就去英文论坛逛逛找找答案,那里有很多各个国家的编程高手。
 楼主| 发表于 2020-9-4 15:00:24 | 显示全部楼层
afan 发表于 2020-9-4 13:45
及时贴出代码,可以很快被找出问题。
及时跟进,及时进步。
多看帮助文档相关实例,简单问题都可以自行 ...

好的,A大说得对, 以后肯定及时更进问题, 也会多看看帮助文档,能自行解决的,自己先想办法; 最终目的  向大佬们看齐
 楼主| 发表于 2020-9-4 17:49:57 | 显示全部楼层
itzyx 发表于 2020-9-4 15:00
好的,A大说得对, 以后肯定及时更进问题, 也会多看看帮助文档,能自行解决的,自己先想办法; 最终目的 ...

A大 按照你给的方法实现了,不过我想请教一下,For $ii = 1 To $arr[0][0]  表示$ii 变量,从初始值到终值的意思,
test.ini 内容如下:

[测试]
Edit1=2000
Edit4=1900
Edit6=800
Edit8=600

那么$arr[1][0]是不是表示 Edit1,$arr[1][1]表示 2000,然后  ControlSetText 实现参数填写

那么如果想加一个 [测试2]

test.ini 内容如下:
[测试]
Edit1=2000
Edit4=1900
Edit6=800
Edit8=600
[测试2]
Edit1=1000
Edit4=900
Edit6=800
Edit8=300

代码如下:
Local $brr = IniReadSection('test.ini', '测试2')
For $gg = 6 To $brr[5][0]
        ControlSetText("物品参数设置", "", $brr[$gg][0], $brr[$gg][1])
Next
这个怎么不对,$brr[6][0] 不是表示Edit1 ,$brr[6][1] 不是表示1000的意思吗? 1 To $arr[0][0] 的意思 是不是我理解错了
发表于 2020-9-4 17:56:17 | 显示全部楼层
itzyx 发表于 2020-9-4 17:49
A大 按照你给的方法实现了,不过我想请教一下,For $ii = 1 To $arr[0][0]  表示$ii 变量,从初始值到终 ...

那你只需要改之前的代码一处就行了
Local $arr = IniReadSection('test.ini', '测试2')
$arr 都不用改,都使用原来的。
因为上面的  $arr 读取的是“测试2”这个字段,序号都是从1开始的
 楼主| 发表于 2020-9-4 18:10:29 | 显示全部楼层
afan 发表于 2020-9-4 17:56
那你只需要改之前的代码一处就行了
Local $arr = IniReadSection('test.ini', '测试2')
$arr 都不用改 ...

额,这个怎么提示问题错误啊

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2020-9-4 18:20:22 | 显示全部楼层
itzyx 发表于 2020-9-4 18:10
额,这个怎么提示问题错误啊

你确定ini文件新增加的内容保存了?
 楼主| 发表于 2020-9-4 21:45:06 | 显示全部楼层
afan 发表于 2020-9-4 18:20
你确定ini文件新增加的内容保存了?

好吧,犯傻了,不得不说A大你也太强了  
发表于 2020-9-4 22:17:16 | 显示全部楼层
itzyx 发表于 2020-9-4 12:42
确实,少的话复制粘贴一遍比较容易 ,不过 A大 你说的控件多的话 一般怎么循环处理啊?可以学习一下嘛


Global $aButNum[25] ;按钮总数
Global $iNumber = 5 ;每行按钮数量
Global $iSpacingX = 50, $iSpacingY = 50 ;垂直、水平,间距

Opt('GUIOnEventMode', 1)

GUICreate('循环创建按钮', 300, 300)
GUISetOnEvent(-3, '_ButtonEvents')
For $i = 0 To UBound($aButNum) - 1
        $aButNum[$i] = GUICtrlCreateButton($i + 1, $iSpacingX * Mod($i, $iNumber) + 25, $iSpacingY * Floor($i / $iNumber) + 25, 50, 50)
        GUICtrlSetOnEvent(-1, '_ButtonEvents')
Next
GUISetState()

While 1
        Sleep(250)
WEnd

Func _ButtonEvents()
        Switch @GUI_CtrlId
                Case -3
                        Exit
                Case $aButNum[0] To $aButNum[UBound($aButNum) - 1]
                        MsgBox(0, '', '按钮 - ' & @GUI_CtrlId - 2)
        EndSwitch
EndFunc   ;==>_ButtonEvents
 楼主| 发表于 2020-9-6 23:33:40 | 显示全部楼层
kk_lee69 发表于 2020-9-4 22:17
[au3]
Global $aButNum[25] ;按钮总数
Global $iNumber = 5 ;每行按钮数量

感谢,感谢  多谢各位大佬
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-18 16:27 , Processed in 0.075749 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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