我需要明显通过循环创建的44个编辑字段,我不知道如何从编辑框中获取值。我想遍历每个值。
#SingleInstance Force
#NoEnv
#include config.ahk
SetWorkingDir %A_ScriptDir%
SetBatchLines -1
i := 20
Loop 10 {
Gui Add, Edit, x%i% y100 w30 h20, 0
i := i+70
}
Gui Add, Button, x275 y450 w80 h23 default, Start
Gui Show, w650 h531, Window
Return
GuiEscape:
GuiClose:
ExitApp
我可以将一个edit元素的值存储在全局变量中,并在只有一个框的情况下使用它。如果使用循环,则无法将值存储在变量中。
答案 0 :(得分:1)
您需要为每个“编辑”赋予一个唯一的名称,并且您可以根据需要通过循环动态地执行此操作。这样的事情会起作用:
Gui Add, Edit, x%i% y100 w30 h20 vEditName%A_Index% , 0
然后,每个编辑将其值存储在EditName1
至EditName44
中。从那里,您可以遍历这些内容并将其存储在数组中或任何您想做的事情。
是的,这对我来说也是一个有趣的挑战。对于我曾经工作过的公司,我创建了一个GUI来操纵其Inventor工程图上的修订版。有四行重复的控件,所以我想动态地创建和放置-与您想要的类似。如果您愿意,我可以发布GUI部分的代码。
编辑: 为上述GUI添加了代码
我删除了所有功能,但是下面的代码将构建如图所示的GUI。
nRevW := 25 , nDescW := 400 , nDateW := 75 , nByW := 60
aPE := [] , nCt := 0
Gui , New , ToolWindow , Rev. Block Info. Import/Export Update
Gui , Margin , 3
Gui , Add , Text , xm+35 section w%nRevW% center , REV.
Gui , Add , Text , ys w%nDescW% center , REVISION DESCRIPTION
Gui , Add , Text , ys w%nDateW% center , DATE
Gui , Add , Text , ys w%nByW% center , CHK'D.
Loop , 4
{
nMasterIndex := A_Index
Loop , 4
nVarNo%A_Index% := 4 * (nMasterIndex - 1) + A_Index
Gui , Add , Text , xm section , Line %nMasterIndex%:
Gui , Add , Edit , xm+35 ys w%nRevW% Center vvEdit%nVarNo1%
If A_Index = 1
Gui , Add , ComboBox , ys w%nDescW% vvEdit%nVarNo2% , PRELIMINARY|ISSUED FOR CHECKING & PRICING|ISSUED FOR CONSTRUCTION
Else
Gui , Add , Edit , ys w%nDescW% vvEdit%nVarNo2%
Gui , Add , Edit , ys w%nDateW% Center vvEdit%nVarNo3%
Gui , Add , Edit , ys w%nByW% Center vvEdit%nVarNo4%
Gui , Add , Button , ys-1 w15 -TabStop vvImport%nMasterIndex% ggIELine , I
Gui , Add , Button , x+0 ys-1 w15 -TabStop vvExport%nMasterIndex% ggIELine , E
}
Gui , Font , S7
Gui , Add , Text , xm section , Usage notes:`nMiddle-click date field to put current date.`nMiddle-click "Line [No.]:" text to clear line.
Gui , Font , S14
Gui , Add , Button , x+115 ys w75 -TabStop ggIE , Import
Gui , Add , Button , x+1 ys w75 -TabStop ggIE , Export
Gui , Add , Button , x+1 ys w140 -TabStop ggUpdate Default , Update
Gui , Add , Button , x+2 ys w30 -TabStop ggShiftUp , ▲
Gui , Show
Return
gIELine:
gIE:
gShiftUp:
gUpdate:
Return