使用AHK GUI创建输入框的标识符

时间:2018-03-28 16:10:53

标签: user-interface autohotkey

我在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计算机上运行的,因此如果有一些可以访问的默认图像也可能有用。

Tool Processing Jason

1 个答案:

答案 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

相关问题