我在AHK中创建了一个GUI,现在效果很好。我正在处理多个记录,并希望能够跟踪我所在的位置。我的代码遍历每个记录并执行一些操作,然后再转到下一个记录。发生这种情况时,会显示GUI窗口。我也在AHK中写这个,然后使用转换工具并用它创建一个.exe。我正在开发这个工具,作为一个独立的EXE分发,可以安装/保存,然后在他们想要的时候运行。下面是工具的屏幕截图和要加载的名称代码。
Gui, PasteGUI:Add, Text,, Please add the Names that you want to Process.
Counter := 0
Loop, parse, Clipboard, `n, `r
{
x%A_Index% := A_LoopField
Counter++
}
Counter--
Loop, %Counter% ; Dynamic List length
Gui PasteGUI:Add, Edit, vButton%A_Index%, % x%A_Index%
Gui PasteGUI:Add, Button, x200 y270 w88 h26 vButton02 gGoCont Default, Continue
Gui PasteGUI:Add, Button, x290 y270 w88 h26 vButton03 gGoQuit, Cancel
Gui, PasteGUI:Show
}
Return
GoCont:
{
Loop, %Counter%
{
CODE TO PROCESS MY EACH NAME
}
MsgBox Done!
Gui Destroy
}
Return
GoQuit:
Gui Destroy
Return
我想添加一些东西,以便在我处理Jason时可以识别它。当我循环遍历列表时,有一个箭头移动会很好。正如我在下面描述的那样,我画了它。否则,如果我可以将过去的记录转换成也可以使用的颜色。因此,对于以下示例,名称" Chris" &安培; "本"将以某种颜色突出显示,或者框会以某种方式被识别为不同。我不知道该如何做,所以如果可能的话,学习两者都会很棒。最后,无论描述什么方法,我都需要能够使用Ahk2Exe将其转换为.exe,然后才能运行.exe,并且不需要在程序中有任何其他文件或其他引用也无法工作。这是在标准Windows计算机上运行的,因此如果有一些可以访问的默认图像也可能有用。
答案 0 :(得分:0)
好的,我已经用PGilm的复选框方法解决了如何做到这一点。您也可以使用某种表格来执行此操作。但是下面的代码看起来对我有用。
另外,我想告诉您我已将var x
更改为cliparray
,因此更容易阅读。
Gui, Add, Text,section, Please add the Names that you want to Process.
Counter := 0
Loop, parse, Clipboard, `n, `r
{
cliparray%A_Index% := A_LoopField
Counter++
}
Counter--
Loop, %Counter% {
; Dynamic List length
Gui, Add, Checkbox, xs vCheckBox%A_Index%
Gui Add, Edit, yp+1 xs+30 vTextbox%A_Index%, % cliparray%A_Index%
}
Gui Add, Button, x200 y270 w88 h26 gGoCont vButton02 Default, Continue
Gui Add, Button, x290 y270 w88 h26 vButton03 gGoQuit, Cancel
Gui, Show
Return
GoCont:
;needed to get the variables from the edits and check box, else the varibles dont exist See below for more information.
Gui, Submit, NoHide
msgbox, Go..
Loop, %Counter%
{
line=Textbox%A_Index%
GuiControl,, CheckBox%A_Index%, 1
backone:=A_Index-1
GuiControl,, CheckBox%backone%, 0
Msgbox % "variable " line " contains: " Textbox%A_Index%
}
MsgBox Done!
Return
GoQuit:
Gui Destroy
Return
;Used to debug to see list of all variables. Super helpful :D
F7::
ListVars
return
需要注意的一些逻辑将在添加编辑和复选框的行上。我使用Gui定位的Section逻辑进行编辑并检查同一行。在此代码中,section元素在文本部分的第一个Gui, Add,
中设置。从而归结为其他gui元素。 Section AHK Documentation
Gui, Add, Checkbox, xs vCheckBox%A_Index%
Gui Add, Edit, yp+1 xs+30 vTextbox%A_Index%, % cliparray%A_Index%
接下来要仔细研究的是GoCont
函数。我正在使用循环索引来检查 CheckBox%A_Index%
复选框,以便当前行开启。我还使用GuiControl,, CheckBox%backone%, 0
行关闭了最后一个索引的复选框。当您在每个元素中处理文本时,这会产生复选框在列表中移动的效果。
最后一行是Gui, Submit, NoHide
。如果没有这个,您将缺少为每个复选框创建的变量并进行编辑。这将使用来自每个gui元素的数据创建和填充变量。 Gui, Submit AHK Documentation