222222 发表于 2011-5-7 13:12:43

[已解决](谢谢republican)关于GUI、数组、动态显示的让人摸不着头脑的问题

本帖最后由 222222 于 2011-5-7 13:30 编辑

#include <IE.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Main = GUICreate("", 269, 300, 18, 18)
$Begin = GUICtrlCreateButton("开始", 216, 12, 42, 66, $BS_DEFPUSHBUTTON)
$Name0 = GUICtrlCreateEdit("", 8, 115, 150, 22, BitOR($ES_CENTER, $ES_AUTOHSCROLL))
$Name1 = GUICtrlCreateEdit("", 8, 140, 150, 22, BitOR($ES_CENTER, $ES_AUTOHSCROLL))
$Name2 = GUICtrlCreateEdit("", 8, 165, 150, 22, BitOR($ES_CENTER, $ES_AUTOHSCROLL))
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

Dim $NameNumber
For $i = 0 To 2
        $NameNumber[$i] = "$Name" & $i
Next

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $Begin
                        For $u = 0 To 2
                                GUICtrlSetData($NameNumber[$u], 999)
                        Next
        EndSwitch
WEnd


===============================
编了一段代码,想循环赋值,在三个编辑框里都显示999,但是怎么都不行。

【一个个赋值我懂,这里就是想了解下循环赋值在GUI界面显示的方法】

参考贴:http://www.autoitx.com/thread-8396-1-1.html
其中Afan 的代码中有If GUICtrlRead($s[$i1]) = 0 then GUICtrlSetData($s[$i1], 1)
的语句。

备注:我的软件版本为本论坛的AUTOIT_3.3.6.1-2

republican 发表于 2011-5-7 13:22:09

回复 1# 222222

$NameNumber[$i] = "$Name" & $i

改为

$NameNumber[$i] = eval("Name" & $i)

222222 发表于 2011-5-7 13:29:17

回复 2# republican


    谢谢!搞定了。高手一出马,果然不一样。

我解决问题的思路也偏了,尽考虑语法上面的问题去了,没想到是数据类型的原因。

刚才还在分析http://www.autoitx.com/forum.php?mod=viewthread&tid=5276&highlight=%D7%D4%B6%A8%D2%E5%B7%FE%CE%F1%BC%E0%CA%D3%C6%F7%2B%2B   帖子呢,里面也有类似的动态显示语句。看得我好辛苦……

===============
高手把问题解决了,我来做点增补工作,补上Eval的官方说明,为后来人做点贡献。

Eval
--------------------------------------------------------------------------------
返回字符串形式的变量的值.

Eval ( 表达式 )

参数
字符串 字符串代表的变量.

返回值
成功: 返回变量的值.
失败: 返回一个""(空字符串)并把 @error 设为非0.

注意/说明
如果有需要使用 Eval() 来读取一个变量,在大多数情况下,Assign() 应该用于创建/写入到变量和 IsDeclared() 应该用来检查变量存在.
页: [1]
查看完整版本: [已解决](谢谢republican)关于GUI、数组、动态显示的让人摸不着头脑的问题