[已解决](谢谢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 回复 1# 222222
$NameNumber[$i] = "$Name" & $i
改为
$NameNumber[$i] = eval("Name" & $i) 回复 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]