关于$buuton变量的问题
&buuton1&buuton2
后面的数字咋样可以用变量代替
$buutton&$ip 用&连接测试失败.
各位大佬有知道的不..麻烦说下 谢谢哈 eval('button' & $i) 为什么不把整个$ButtonX做变量??? to 蛋蛋:没看明白蛋蛋你是啥意思,eval 函数似乎是返回变量的值的说,似乎不能用来创建变量的说。
to 楼主:我能想到的办法是,首先预计你的最大可能变量个数,比如100个,然后Dim $button,然后$button = GUICtrlCreateButton(...)
$button = GUICtrlCreateButton(...)
...
$button = GUICtrlCreateButton(...)
...
当然循环创建的话就是For $i = 0 To 99
$button[$i] = GUICtrlCreateButton(...)
Next 本帖最后由 netegg 于 2012-8-24 18:05 编辑
to: 楼上
eval的参数是字符串代表的变量,返回的是变量值,guictrlcreate*返回的不是变量值(多数情况是控件索引)吗? 本帖最后由 ajian55 于 2012-8-24 18:14 编辑
回复 5# netegg
好吧,我直接贴帮助中的例子:Dim $a_b = 12
$s = Eval("a" & "_" & "b"); $s 设置为12
$s =Eval("c"); $s = "" 与 @error = 1
我确实不太懂 $s = Eval("a" & "_" & "b") 是不是等同于 $s = $a_b
但是用eval,变量首先必须存在吧,当我需要创建不确定个button时,难不成能 Eval("button"&$i ) = GuiCtrlCreateButton(...) 这么用?
也可能是我误解楼主为什么需要这么用变量了~ 本帖最后由 netegg 于 2012-8-24 18:18 编辑
回复 6# ajian55
对呀,"a"&"_"&"b"l把$a_b变成了纯字符串了,但是为什么第二句里的$s会是12
guictrlcreate*只是操作,并把返回值(也就是控件的索引)赋值给前面的变量
最好办的,你按eval做个界面出来,用info看看控件信息就知道了
看lz的意思,是想用循环来操作button后面的数字,创建不同的button 回复 7# netegg
话说还是没看懂,难道真能
Eval("button"&$i ) = GuiCtrlCreateButton(...)
这么用?
我试了下,在我这里这么用会出错的说,如果不能,如何解决定义不确定个 全局相似变量呢? 不好意思,记反了,assign
#include <GUIConstantsEx.au3>
Example()
Func Example()
Local $msg, $button1, $button2
GUICreate("My GUI Button") ; 创建一个对话框,并居中显示
Opt("GUICoordMode", 2)
For $i = 1 To 3
Assign('button' & $i, GUICtrlCreateButton($i, 100, 10 + $i * 16, 10, 10))
Next
GUISetState() ; 显示有两个按钮的对话框
; 运行界面,直到窗口被关闭
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $button1
Run('Notepad.exe') ; 点击按钮 1 打开记事本
Case $msg = $button2
MsgBox(4096, '测试', '你点击了测试按钮') ; 点击按钮 2 显示一个简单的对话框
EndSelect
WEnd
EndFunc ;==>Example
回复 9# netegg
学习了,以前只会用数组,原来还可以这么做。 这好像是例子吗 回复 9# netegg
蛋蛋兄的代码总能让人眼前一亮,赏心悦目~~
学习了~ 回复 4# ajian55
谢谢谢谢 回复 9# netegg
谢谢 谢谢
页:
[1]