Dann würde ich CheckBoxen benutzen und auf der 2. GUI einen 'Weiter'-Button erstellen. Wenn der 'Weiter'-Button angeklickt wird erstellst du die 3. GUI entsprechend der CheckBoxen der 2. GUI. Sonst mußt du globale Variablen nehmen die mit '0' angelegt werden und auf '1' gesetzt werden wenn der entsprechende Button gedrückt wird (also die Installation ausgelöst wird). Mit dieser Information kannst du dann auch auf der 3. GUI anzeigen was gemacht wurde. Ich hoffe du kannst deine Installation so anpassen.
Zielordner Auswahlmöglichkeit
-
- [ offen ]
-
cryc -
5. März 2007 um 15:25 -
Geschlossen -
Erledigt
-
-
moinsen! allen nen schönen karfreitag! habe folgende Frage:
Habe es jetzt hinbekommen, dass mir auf der dritten GUI angezeigt wird, welche Checkboxen auf der zweiten GUI angeklickt wurden.
und zwar dadurch, indem ich die 3. GUI erst erzeuge, wenn ich in der zweiten GUI auf "weiter" klicke. nicht wie vorher, das die GUI schon vorher erzeugt wird und dann nur angezeigt wird.
Aber wie immer, bekomme ich jetzt ein neues Problem:
Ich will der dritten GUI einen "INSTALLIEREN" Button erstellen und wenn man dann darauf klickt sollen entsprechende Progamme installiert werden.
Mein Prob ist aber nun, dass die 3. GUI ja erst erstellt wird wenn man in der 2. auf weiter klickt. Und deswegen kann ich nicht schon in der Case bedingung was mit dem Button anstellen.
denn er meckert dann:
Error: Variable used without being declared.
Kann man das irgendwie anders hinbekommen?
Gruß
-
- Offizieller Beitrag
Als grundsätzlichen Tipp mal überlegen, generell 'OnEventMode' zu verwenden. Da treten solche Probleme nicht auf.
-
- Offizieller Beitrag
Hi!
Im "Case Else":
If IsDeclared("ButtonInstall") then
if $msg = $buttonInstall then
;[hier dein Zeug rein]
endIf
endifOder OnEvent-Mode (siehe Hilfe).
peethebee
Edit: BugFix wird jetzt gesperrt - du kannst doch nicht einfach schneller sein als dein Admin!?
-
EDIT:
JUHU, habe es selber rausgefunden. Wenn ich sie als Global deklariere
Hi!
Und frohe ostern
Habe das jetzt mal versucht auf EventMode umzustellen.
Klappt soweit auch ganz gut!
Ich denke mal der Sinn und Zweck davon ist ähnlich dem ActionListener bei Java.
Ich habe jetzt nur das Problem, dass wenn ich in der 2. GUI bin, ich nicht auf weiter oder zurück klicken kann, denn er meckert:
Line 73
GUISwitch($GUI2)
GUISwitch(^ERRORError: Variable used without being declared
Allerdings wurde die doch schon deklariert. Nämlich als sie erstellt wurde.
Und das gleiche dann beim weiter Button zeile 81
Kann mir vielleicht jemand da weiterhelfen?
Gruß
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
Sleep(1000) ; Häng rum
WEndFunc WEITERButtonGUI_1()
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_HIDE, $GUI1)
$GUI2 = GUICreate("CTMSCP Computerunterstütztes Therapiemanagement System - Installation",600,400,-1,-1,$WS_SIZEBOX+$WS_SYSMENU)
$INSTALL_BOX1 = GUICtrlCreateCheckbox("Install" , 17 , 160 )
GUICtrlSetState($INSTALL_BOX1,1)
$LABEL1 = GUICtrlCreateLabel("CTMSCP - Software", 115, 162, 125, 20)
GUICtrlSetFont($LABEL1, 10, 800, 0, "Arial")
$INPUT1 = GUICtrlCreateInput ( "C:\Programme\CTMS", 280, 161 , 180, 20)
$BUTTON_SELECT_1 = GUICtrlCreateButton( "Durchsuchen", 470, 160, 100, 20)
$INSTALL_BOX2 = GUICtrlCreateCheckbox("Install" , 17 , 196 )
GUICtrlSetState($INSTALL_BOX2,1)
$LABEL2 = GUICtrlCreateLabel("MySQL - Server ", 115, 197, 100, 20)
GUICtrlSetFont($LABEL2, 10, 800, 0, "Arial")
$INPUT2 = GUICtrlCreateInput ( "C:\Programme\MySQL\MySQL Server 4.1\", 280, 196 , 180, 20)
$BUTTON_SELECT_2 = GUICtrlCreateButton( "Durchsuchen", 470, 195, 100, 20)
$INSTALL_BOX3 = GUICtrlCreateCheckbox("Install" , 17 , 235 )
GUICtrlSetState($INSTALL_BOX3,1)
$LABEL3 = GUICtrlCreateLabel("JAVA R. E. XX.XX", 115, 235, 180, 20)
GUICtrlSetFont($LABEL3, 10, 800, 0, "Arial")
$INPUT3 = GUICtrlCreateInput ( "C:\Programme\Java\jre1.5.0_11", 280, 231 , 180, 20)
$BUTTON_SELECT_3 = GUICtrlCreateButton( "Durchsuchen", 470, 230, 100, 20)
$LABEL4 = GUICtrlCreateLabel("Bitte wählen Sie die zu installierenden Programme und die entsprechenden Zielordner", 15, 100, 480, 40)
GUICtrlSetFont($LABEL4, 13, 800, 0, "Arial")
$LABEL_COPY = GUICtrlCreateLabel( "Copyright by SoPra Gruppe 16 , WS 06/07", 5, 357)
GUICtrlSetFont($LABEL_COPY , 7 , "1000" ,0, "Arial")
$BUTTON_GUI2_ZURUECK = GUICtrlCreateButton("Zurück", 310, 335 ,80, 20, 0 )
$BUTTON_GUI2_WEITER = GUICtrlCreateButton("Weiter", 400, 335, 80, 20, -1)
$BUTTON_GUI2_ABBRECHEN = GUICtrlCreateButton("Abbrechen", 490, 335 ,80, 20, 0 )
GUISetBkColor (0xFFFFFF)
GUICtrlCreatePic("logo.gif",0,0, 598, 90)GUICtrlSetOnEvent($BUTTON_GUI2_ZURUECK, "ZURUECKButtonGUI_2")
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetOnEvent($BUTTON_GUI2_WEITER, "WEITERButtonGUI_2")
GUICtrlSetOnEvent($BUTTON_GUI2_ABBRECHEN, "CLOSEClicked")GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
[/autoit] [autoit][/autoit] [autoit]GUISetState(@SW_SHOW, $GUI2)
[/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit] [autoit][/autoit] [autoit]Func ZURUECKButtonGUI_2()
[/autoit] [autoit][/autoit] [autoit]
GUISwitch($GUI2)
GUISetState(@SW_HIDE)
GUISwitch($GUI1)
GUISetState(@SW_SHOW)
EndFuncFunc WEITERButtonGUI_2()
[/autoit] [autoit][/autoit] [autoit]GUISetState(@SW_HIDE, $GUI2)
[/autoit] [autoit][/autoit] [autoit]
$GUI3 = GUICreate("CTMSCP Computerunterstütztes Therapiemanagement System - Installation",600,400,-1,-1,$WS_SIZEBOX+$WS_SYSMENU)
$TOP_TEXT = GUICtrlCreateLabel("Es wurden folgende Programme zur Installation ausgewählt:", 15, 100, 480, 40)
GUICtrlSetFont($TOP_TEXT, 13, 800, 0, "Arial")
$LABEL_COPY = GUICtrlCreateLabel( "Copyright by SoPra Gruppe 16 , WS 06/07", 5, 357)
GUICtrlSetFont($LABEL_COPY , 7 , "1000" ,0, "Arial")
$BUTTON_GUI3_ZURUECK = GUICtrlCreateButton("Zurück", 310, 335 ,80, 20, 0 )
$BUTTON_GUI3_INSTALLIEREN = GUICtrlCreateButton("Installieren", 400, 335, 80, 20, -1)
$BUTTON_GUI3_ABBRECHEN = GUICtrlCreateButton("Abbrechen", 490, 335 ,80, 20, 0 )
If(GUICtrlRead($INSTALL_BOX1)) = 1 Then
$LABEL_CTMS_ICON = GUICtrlCreatePic("haken.gif",40,148, 10, 10)
Else
GUICtrlCreatePic("cross.gif",40,149, 9,9)
EndIf
$LABEL_CTMS = GUICtrlCreateLabel("CTMSCP - Software", 65, 145, 125, 20)
GUICtrlSetFont($LABEL_CTMS, 10, 800, 0, "Arial")If(GUICtrlRead($INSTALL_BOX2)) = 1 Then
[/autoit] [autoit][/autoit] [autoit]
$LABEL_CTMS_ICON = GUICtrlCreatePic("haken.gif",40,178, 10, 10)
Else
GUICtrlCreatePic("cross.gif",40,149, 9,9)
EndIf
$LABEL_CTMS = GUICtrlCreateLabel("MySQL-Server 5.2", 65, 175, 125, 20)
GUICtrlSetFont($LABEL_CTMS, 10, 800, 0, "Arial")
If(GUICtrlRead($INSTALL_BOX3)) = 1 Then
$LABEL_CTMS_ICON = GUICtrlCreatePic("haken.gif",40,208, 10, 10)
Else
GUICtrlCreatePic("cross.gif",40,149, 9,9)
EndIf
$LABEL_CTMS = GUICtrlCreateLabel("JAVA - R. E. 1.5.11", 65, 205, 125, 20)
GUICtrlSetFont($LABEL_CTMS, 10, 800, 0, "Arial")GUICtrlCreatePic("logo.gif",0,0, 598, 90)
[/autoit] [autoit][/autoit] [autoit]GUICtrlSetOnEvent($BUTTON_GUI3_ZURUECK, "ZURUECKButtonGUI_3")
[/autoit] [autoit][/autoit] [autoit]
;GUICtrlSetOnEvent($BUTTON_GUI3_WEITER, "WEITERButtonGUI_2")
GUICtrlSetOnEvent($BUTTON_GUI3_ABBRECHEN, "CLOSEClicked")GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
[/autoit] [autoit][/autoit] [autoit]GUISwitch($GUI3)
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_SHOW)EndFunc
[/autoit] [autoit][/autoit] [autoit]Func ZURUECKButtonGUI_3()
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_SHOW, $GUI2)
GUISetState(@SW_HIDE, $GUI3)
EndFuncFunc CLOSEClicked()
[/autoit]
;Die Installation wird beendet
Exit
EndFunc -
- Offizieller Beitrag
Hi,
wenn du die Dinge in Funktionen deklarierst, dann kann Autoit nicht wissen, wann diese angepsrochen werden.
Deklariere deine Variablen einfach alle ganz oben im Skript.
So long,
Mega
-
Danke,
hatte ich dann auch schon gemacht
Habe eine neue Frage
Wie kriege ich es hin, bei einer Installation auf einen Radio Button zu klicken?
Bei der MySQL Installation kann man sich irgendwie wohl registrieren lassen.
Das kann man aber auch Skippen. sprich, da sind drei verschiedene Radiobutton und einer davon ist "Skip bla".
Ich habe es so versucht:
[autoit]ControlClick("MySQL.com Sign Up - Setup Wizard","","TTntRadioButton.UnicodeClass1")
[/autoit]Das funktioniert aber nicht
Das gleiche bei einer Checkbox. Hier der code:
ControlClick("MySQL Server Instance Configuration Wizard","","TTntCheckBox.UnicodeClass2")
Woran liegt das bzw wie schaffe ich es auf den radiobutton und die checkbox zu klicken, um danach einfach nur Return zu senden.
Gruß
-
- Offizieller Beitrag
Hi,
guck dir mal ControlCommand an.
So long,
Mega
-