本帖最后由 levinfish 于 2014-3-4 22:06 编辑
整理了一个简单的代码,请高手们看一下。
问题有两个:
1. 如何快速的得到数组的二维信息。
我自己试了几种方法,可以得到数组$array[$i][$j]的$i和$j的值,但是感觉比较复杂,就是想看看有没有什么函数之类,直接就能得到二维信息。
按理说,数组是自己定义的,autoit应该保存了这方面的信息吧,方便随时调用。
2. 因为按钮组是随机生成的,如何在case的判定行里面,包含所有的按钮。
Case $array[1][1] To $array[1][$array[1][0]-1] (第一列的所有按钮),$array[2][1] To $array[2][$array[2][0]-1](第二列的所有按钮)
如果生成了三列按钮,则上述语句未包含所有已生成的按钮,如果生成了一列按钮,上述判定语句溢出,程序出错#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 $array[8][10],$i,$j,$a,$b
;====================================================================================================================
;================================================生成界面==========================================================
;====================================================================================================================
$guiparent=GUICreate("测试", 1200, 600)
GUISetBkColor(0x00E0FFFF)
For $i=1 To Random(1,6,1)
For $j=1 To Random(2,8,1)
$array[$i][$j]=GUICtrlCreateButton('按钮',50+($i-1)*180,50+($j-1)*60,160,50)
Next
$array[$i][$j]=GUICtrlCreateButton('添加',50+($i-1)*180,50+($j-1)*60,160,50)
$array[$i][0]=$j
Next
GUISetState()
;====================================================================================================================
;================================================执行部分==========================================================
;====================================================================================================================
While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit
Case $array[1][1] To $array[1][$array[1][0]-1],$array[2][1] To $array[2][$array[2][0]-1];问题1所在位置。
myfunc($i,$j);$i,$j代表数组的位置,例如如果是$array[1][5],就把1和5作为参数传递给一个自定义函数
EndSwitch
WEnd
EndFunc
;====================================================================================================================
;================================================自定义函数==========================================================
;====================================================================================================================
Func myfunc($a , $b)
EndFunc
|