autoit 和 koda:gui create 如何知道要使用哪种 koda 形式?
autoit and koda: how does gui create knows which koda form to use?
我是 autoit 的新手,我想创建 2 个表单并通过单击第一个表单的按钮打开第二个表单。
这是我在 koda 中的表格:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Act = GUICreate("Activités et Compétences", 615, 441, 196, 125)
$RetourAccueil=1
$ETAPE = 1
$Label1 = GUICtrlCreateLabel(" Activités && Compétences", 41, 12, 558, 85)
GUICtrlSetFont(-1, 36, 800, 0, "My Lucky Penny")
$PPE = GUICtrlCreateButton("PPE", 48, 168, 75, 25)
$TP = GUICtrlCreateButton("TP", 152, 168, 75, 25)
$TD = GUICtrlCreateButton("TD", 256, 168, 75, 25)
$STAGE1 = GUICtrlCreateButton("STAGE 1", 368, 168, 75, 25)
$STAGE2 = GUICtrlCreateButton("STAGE 2", 480, 168, 75, 25)
$Group1 = GUICtrlCreateGroup("Activités", 24, 136, 561, 81)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Func RetourAccueil()
EndFunc
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $PPE
if $ETAPE=1 THEN
GUICtrlSetData(-1, "|PPE2.1-Mission ADISPO|PPE -Installation PFSENSE|PPE-Cas Kaspersky|Autres")
EndIf
Case $TP
$TP = GUICtrlCreateButton("NewName", 480, 168, 75, 25)
Case $TD
$TD = GUICreate("Activités et Compétences", 615, 441, 196, 125)
WinActivate($TDPAGE)
Case $STAGE1
MsgBox(64,'information','ok')
Case $STAGE2
EndSwitch
WEnd
这是我 运行 它的结果:
通过单击 TD 按钮,我想打开第二个表单并关闭第一个表单,但我不知道我是如何尝试的:
Case $TD
$TD = GUICreate("Activités et Compétences", 615, 441, 196, 125)
WinActivate($TDPAGE)
但是没用...
在KODA中生成表单代码时,只会生成当前选中的表单的代码,所以需要另外生成第二个表单的代码。
您当前的代码不起作用的原因是默认情况下新的 GUI 是不可见的,您需要在创建它们之后通过执行 GUISetState(@SW_SHOW)
使它们可见(就像 KODA 生成的代码为第一种形式)。
如果要关闭第一个表单,请使用 GUIDelete()
。如果你看AutoIt的文档,你会发现所有的GUI函数都接受一个可选参数来指定你想在哪个GUI上操作,如果你不指定它,它会使用你最后创建的window (或手术)。由于要专门删除第一个 GUI,因此必须确保在创建第二个 GUI 之前将其删除,或者明确指定要删除的 GUI,即 GUIDelete($Act)
.
最后,你好像写错了WinActivate($TDFORM)
。您是要写 WinActivate($TD)
吗?无论如何,都不需要激活表单,因为新创建的 GUI 会自动激活。
我是 autoit 的新手,我想创建 2 个表单并通过单击第一个表单的按钮打开第二个表单。
这是我在 koda 中的表格:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Act = GUICreate("Activités et Compétences", 615, 441, 196, 125)
$RetourAccueil=1
$ETAPE = 1
$Label1 = GUICtrlCreateLabel(" Activités && Compétences", 41, 12, 558, 85)
GUICtrlSetFont(-1, 36, 800, 0, "My Lucky Penny")
$PPE = GUICtrlCreateButton("PPE", 48, 168, 75, 25)
$TP = GUICtrlCreateButton("TP", 152, 168, 75, 25)
$TD = GUICtrlCreateButton("TD", 256, 168, 75, 25)
$STAGE1 = GUICtrlCreateButton("STAGE 1", 368, 168, 75, 25)
$STAGE2 = GUICtrlCreateButton("STAGE 2", 480, 168, 75, 25)
$Group1 = GUICtrlCreateGroup("Activités", 24, 136, 561, 81)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Func RetourAccueil()
EndFunc
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $PPE
if $ETAPE=1 THEN
GUICtrlSetData(-1, "|PPE2.1-Mission ADISPO|PPE -Installation PFSENSE|PPE-Cas Kaspersky|Autres")
EndIf
Case $TP
$TP = GUICtrlCreateButton("NewName", 480, 168, 75, 25)
Case $TD
$TD = GUICreate("Activités et Compétences", 615, 441, 196, 125)
WinActivate($TDPAGE)
Case $STAGE1
MsgBox(64,'information','ok')
Case $STAGE2
EndSwitch
WEnd
这是我 运行 它的结果:
通过单击 TD 按钮,我想打开第二个表单并关闭第一个表单,但我不知道我是如何尝试的:
Case $TD
$TD = GUICreate("Activités et Compétences", 615, 441, 196, 125)
WinActivate($TDPAGE)
但是没用...
在KODA中生成表单代码时,只会生成当前选中的表单的代码,所以需要另外生成第二个表单的代码。
您当前的代码不起作用的原因是默认情况下新的 GUI 是不可见的,您需要在创建它们之后通过执行 GUISetState(@SW_SHOW)
使它们可见(就像 KODA 生成的代码为第一种形式)。
如果要关闭第一个表单,请使用 GUIDelete()
。如果你看AutoIt的文档,你会发现所有的GUI函数都接受一个可选参数来指定你想在哪个GUI上操作,如果你不指定它,它会使用你最后创建的window (或手术)。由于要专门删除第一个 GUI,因此必须确保在创建第二个 GUI 之前将其删除,或者明确指定要删除的 GUI,即 GUIDelete($Act)
.
最后,你好像写错了WinActivate($TDFORM)
。您是要写 WinActivate($TD)
吗?无论如何,都不需要激活表单,因为新创建的 GUI 会自动激活。