找回密码
 加入
搜索
查看: 2273|回复: 3

[AU3基础] [已解决]关于变量的定义名称,能否使用变量?提示语法错误,请教如何处理

[复制链接]
发表于 2015-10-9 16:19:06 | 显示全部楼层 |阅读模式
本帖最后由 xyx115 于 2015-10-9 22:56 编辑
Local $size
For $i = 1 To 3 Step +1
        For $j = 1 To 3 Step +1
                Local $size[$j]="这是第"& $i &"次出现"
                MsgBox(0,$j,$size[$j])
        Next
Next
这段代码中,提示error: syntax error
如果把$size[$j]改为$size,则正确。
有时候需要定义大量的名称。如$size1,$size2,$size3,。。。。。。
使用循环无疑是最好的办法。但是不知道方法!请教有什么办法吗?

感谢A大的帮助,问题已经完美解决。解决后的代码如下:
d_1()
d_2()

Func d_1()
;==================================================A大的方法
        Global $i, $j, $size[3 * 3], $x = -1
        For $i = 1 To 3
                For $j = 1 To 3
                        $x += 1
                        $size[$x] = "这是第 " & $i & " - " & $j & " 次出现"
                        ;     MsgBox(0, '', $size[$x])
                Next
        Next
;===================================================我的方法
        Global $a[3][4] = [ _
                        ["句柄名称A", 1, 2, 3], _
                        ["句柄名称B", 4, 5, 6], _
                        ["句柄名称C", 7, 8, 9]]
        For $b = 0 To 2 Step +1
                $a[$b][0] = $a[$b][1] & $a[$b][2] & $a[$b][3]
                ;MsgBox(0,$a[$b][3],$a[$b][0])
        Next
EndFunc   ;==>d_1

Func d_2()
        MsgBox(0, 0, $size[2]);A大的方法
        MsgBox(0, 0, $a[1][0]);我的方法
EndFunc   ;==>d_2
发表于 2015-10-9 17:07:40 | 显示全部楼层
Local $i, $j, $size[3 * 3], $x = -1
For $i = 1 To 3
        For $j = 1 To 3
                $x += 1
                $size[$x] = "这是第 " & $i & " - " & $j & " 次出现"
                MsgBox(0, '', $size[$x])
        Next
Next
 楼主| 发表于 2015-10-9 22:38:31 | 显示全部楼层
本帖最后由 xyx115 于 2015-10-9 22:48 编辑
        Global $a[3][4] = [ _
                        ["句柄名称A",1,2,3], _
                        ["句柄名称B",4,5,6], _
                        ["句柄名称C",7,8,9]]
                        ;........可以更多,这里的“A”可以设定为自己的句柄名称......
        For $b = 0 To 2 Step +1
                $a[$b][0] = $a[$b][1] & $a[$b][2] &  $a[$b][3]
                MsgBox(0,$a[$b][3],$a[$b][0])
        Next
感谢A大的帮助,回家后登陆才看到。我最后是这样解决的。如果调用句柄,我是使用类似这样写的: $Wo[2][0]
这是我正在写的一段:
        Global $Wo[10][10] = [ _
                        ["Wo0", "0x000000", 400, 0, 90, 556, 23, $ES_CENTER, -1, "使用帮助"], _
                        ["Wo1", "0x999999", Default, 20, 120, 556, 23, -1, -1, "1.使用帮助"], _
                        ["Wo2", "0x999999", Default, 20, 150, 556, 23, -1, -1, "2.使用帮助"], _
                        ["Wo3", "0x999999", Default, 20, 180, 556, 23, -1, -1, "3.使用帮助"], _
                        ["Wo4", "0x999999", Default, 20, 210, 556, 23, -1, -1, "4.使用帮助"], _
                        ["Wo5", "0x999999", Default, 20, 240, 556, 23, -1, -1, "5.使用帮助"], _
                        ["Wo6", "0x999999", Default, 20, 270, 556, 23, -1, -1, "6.使用帮助"], _
                        ["Wo7", "0x999999", Default, 20, 300, 556, 23, -1, -1, "7.使用帮助"], _
                        ["Wo8", "0x999999", Default, 20, 330, 556, 23, -1, -1, "8.使用帮助"], _
                        ["Wo9", "0x999999", Default, 20, 360, 556, 23, -1, -1, "9.使用帮助"]]
        For $k = 0 To 9 Step +1
                $Wo[$k][0] = GUICtrlCreateLabel($Wo[$k][9], $Wo[$k][3], $Wo[$k][4], $Wo[$k][5], $Wo[$k][6], $Wo[$k][7], $Wo[$k][8])
                GUICtrlSetColor($Wo[$k][0], $Wo[$k][1]);更改文本颜色
                GUICtrlSetFont($Wo[$k][0], Default, $Wo[$k][2]);设置文本字体
        Next
d_1()
d_2()

Func d_1()

        Global $i, $j, $size[3 * 3], $x = -1
        For $i = 1 To 3
                For $j = 1 To 3
                        $x += 1
                        $size[$x] = "这是第 " & $i & " - " & $j & " 次出现"
                        ;     MsgBox(0, '', $size[$x])
                Next
        Next

        Global $a[3][4] = [ _
                        ["句柄名称A", 1, 2, 3], _
                        ["句柄名称B", 4, 5, 6], _
                        ["句柄名称C", 7, 8, 9]]
        ;........可以更多,这里的“A”可以设定为自己的句柄名称......
        For $b = 0 To 2 Step +1
                $a[$b][0] = $a[$b][1] & $a[$b][2] & $a[$b][3]
                ;MsgBox(0,$a[$b][3],$a[$b][0])
        Next

EndFunc   ;==>d_1

Func d_2()
        MsgBox(0, 0, $size[2])
        MsgBox(0, 0, $a[1][0])
EndFunc   ;==>d_2
A大的代码更好。

评分

参与人数 1金钱 +80 收起 理由
lpxx + 80 很棒的见解

查看全部评分

发表于 2015-10-13 21:17:19 | 显示全部楼层
来学习学习,谢谢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-4-26 03:20 , Processed in 0.077036 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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