#include <EditConstants.au3>
#Include <GuiStatusBar.au3>
#include <GUIConstantsEx.au3>
#include <GUIConstantsEx.au3>
#include <file.au3>
#include <array.au3>
#include <WindowsConstants.au3>
#include <GuiTab.au3>
#include <date.au3>
#include <ButtonConstants.au3>
#include <GuiButton.au3>
#include <Misc.au3>
Mygui()
Func Mygui()
;====================================================================================================================
;================================================定义变量==========================================================
;====================================================================================================================
Dim $i,$text,$n,$m
Dim $button[6]
Global $a1button[25],$a2button[25],$a3button[25],$a4button[25],$a5button[25],$a6button[25],$a7button[25],$a8button[25],$a9button[25]
Global $buttonarray[10]=[9,$a1button,$a2button,$a3button,$a4button,$a5button,$a6button,$a7button,$a8button,$a9button]
;====================================================================================================================
;================================================生成界面==========================================================
;====================================================================================================================
$guiparent=GUICreate("测试", 1200, 600)
For $i=1 To 5
$button[$i]=GUICtrlCreateButton('读取第'&$i&'行',50,50+($i-1)*60,150,35)
Next
;生成按钮组
For $i=1 To 5
Mycreatebutton($buttonarray[$i],220,50+($i-1)*60) ;问题1,该处的循环,无法将按钮的id赋值给 从$a1button 到$a5button这五个数组
Next
;测试行
$text=GUICtrlRead($a1button[3]);如果上一句赋值成功,则$text不等于空,应该等于3
MsgBox(0,'测试','如果赋值成功,应该是3,但现在是空,即:'&$text)
GUISetState()
;====================================================================================================================
;================================================执行部分==========================================================
;====================================================================================================================
While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit
Case $button[1] To $button[5]
;问题2所在地方。例如按下了$button[4],如果能够的到4(也就是 $button[$i]中的$i), 即则很容易知道要删除的是$a4button. 但现在通过$msg 无法得到这个而信息
;此处问题已经解决。http://www.autoitx.com/thread-43724-1-1.html
Mydeletearray($msg)
EndSwitch
WEnd
EndFunc
;====================================================================================================================
;================================================自定义函数==========================================================
;====================================================================================================================
;==============生成按钮===========================
Func Mycreatebutton(ByRef $Bt,$x,$y)
For $i=1 To 5
$Bt[$i]=GUICtrlCreateButton($i,$x+($i-1)*180,$y,150,30)
Next
EndFunc
;==============读取按钮===========================
Func Mydeletearray(ByRef $m)
;通过变换得到$button[$i]中的$i
$text=GUICtrlRead($m) ;因为按钮标签的格式是‘删除第$i行’,第四个字符即是button[$i]中的$i
$n=StringMid($text,4,1)
;问题3所在, 仍然以$button[4]为例,即是知道了要删除的是$a4button,如何根据4 合成$a4button,使用 $a='a'&$i&'button' $id=Eval($a),好像行不通。
For $i=1 To 5
;~ GUICtrlDelete($a'$n'button[$i]);此行程序有误,无法有效的合成'a'&$i&'button
Next
EndFunc