Und was ist bei diesem Setup falsch?

  • Hallo, schon wieder ein Setup-Problem...

    Beim Schritt 6 will er die Input-Box und den Button nicht anzeigen, was ist falsch?

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <array.au3>
    #include <GUIConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $Schritt = "1", $Alt = "0"
    Global $Checkbox[8], $CheckText = StringSplit("Speech|Touchless|Text-To-Speech|Gadgetsammlung|Externe Variablenweitergabe|SciTE (falls noch nicht vorhanden)|Hilfe-Dateien|Deinstallationsassistenten", "|")
    Global $RadioBox[2], $RadioText = StringSplit("Expressinstallation|Benutzerdefinierte Installation", "|")

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", 1)
    $Form1 = GUICreate("Installationsassistent - Multivision", 317, 429, 193, 125)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
    $Edit1 = GUICtrlCreateEdit("", 0, 0, 313, 145, BitOR($ES_READONLY, $ES_WANTRETURN))
    $Group1 = GUICtrlCreateGroup("", 0, 152, 313, 241)
    $Button1 = GUICtrlCreateButton("< Zurück", 0, 400, 121, 25, 0)
    GUICtrlSetOnEvent(-1, "Button1Click")
    $Button2 = GUICtrlCreateButton("Weiter >", 192, 400, 121, 25, 0)
    GUICtrlSetOnEvent(-1, "Button2Click")
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    If $Schritt <> $Alt Then
    $Alt = $Schritt
    _Schritt($Schritt)
    EndIf
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func Button1Click()
    $Schritt -= 1
    EndFunc ;==>Button1Click

    [/autoit] [autoit][/autoit] [autoit]

    Func Button2Click()
    $Schritt += 1
    EndFunc ;==>Button2Click

    [/autoit] [autoit][/autoit] [autoit]

    Func _exit()
    $exit = MsgBox(292, "Installationsassistent", "Setup wirklich beenden?" & @CRLF & @CRLF & "Sie können die Installation später nicht fortsetzen, sondern müssen neu starten.")
    If $exit = 6 Then Exit
    EndFunc ;==>_exit

    [/autoit] [autoit][/autoit] [autoit]

    Func _Schritt($a)
    Switch $a
    Case 1
    GUICtrlSetState($Button1, $GUI_DISABLE)
    GUICtrlSetData($Edit1, StringFormat("Herzlich Willkommen bei Multivision.\r\nDieser Installationsassistent wird Sie durch das Setup begleiten.\r\n\r\n\r\nKlicken Sie auf " & Chr(34) & "Weiter" & Chr(34) & " um zu beginnen."))
    For $i = 0 To 7
    GUICtrlDelete($Checkbox[$i])
    Next
    Case 2
    GUICtrlSetData($Edit1, StringFormat("Wählen Sie bitte die Funktionen aus, die Sie integrieren möchten."))
    GUICtrlSetState($Button1, $GUI_ENABLE)
    For $i = 0 To 7
    $Checkbox[$i] = GUICtrlCreateCheckbox($CheckText[$i + 1], 16, 168 + $i * 25, 250, 17)
    GUICtrlSetState(-1, $GUI_CHECKED)
    Next
    For $i = 0 To 1
    GUICtrlDelete($RadioBox[$i])
    Next
    Case 3
    GUICtrlSetData($Edit1, StringFormat("Wählen Sie nun aus, ob das Programm sofort mit normalen Optionen installiert werden soll, oder ob sie selbst Anpassungen vornehmen wollen."))
    For $i = 0 To 7
    GUICtrlDelete($Checkbox[$i])
    Next
    For $i = 0 To 1
    $RadioBox[$i] = GUICtrlCreateRadio($RadioText[$i + 1], 16, 168 + $i * 25, 250, 17)
    GUICtrlSetOnEvent(-1, "Radio")
    GUICtrlSetState($Button2, $GUI_DISABLE)
    Next
    Case 4
    GUICtrlSetData($Edit1, StringFormat("Bitte warten Sie einen Moment.\r\n Ihre Daten werden verarbeitet."))
    GUICtrlSetState($Button1, $GUI_DISABLE)
    GUICtrlSetState($Button2, $GUI_DISABLE)
    For $i = 0 To 1
    GUICtrlDelete($RadioBox[$i])
    Next
    If $RadioBox[0] = 1 Then
    $Schritt = 10
    Else
    $Schritt = 5
    EndIf
    Sleep(1000)
    Case 5
    GUICtrlSetData($Edit1, StringFormat("Benutzerdefinierte Installation gestartet.\r\nKlicken Sie bitte auf " & Chr(34) & "Weiter" & Chr(34) & "."))
    GUICtrlSetState($Button2, $GUI_ENABLE)
    Case 6
    GUISetState($Button1, $GUI_ENABLE)
    GUICtrlSetData($Edit1, StringFormat("Wo soll die Software gespeichert werden?"))
    $Input1 = GUICtrlCreateInput("Input", 16, 176, 233, 21)
    $Button3 = GUICtrlCreateButton("...", 256, 176, 33, 25, 0)
    GUICtrlSetOnEvent(-1, "FileSave")
    EndSwitch
    ;hier kommt auch noch was hin
    EndFunc ;==>_Schritt

    [/autoit] [autoit][/autoit] [autoit]

    Func Radio()
    GUICtrlSetState($Button2, $GUI_ENABLE)
    EndFunc ;==>Radio

    [/autoit] [autoit][/autoit] [autoit]

    Func FileSave()
    ;Hier kommt noch was hin
    EndFunc ;==>FileSave

    [/autoit]

    Einmal editiert, zuletzt von MatthiasG. (30. November 2008 um 13:54)

  • Weiß auch nicht... aber würde das mit Child GUIs machen, etwa so :)

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <array.au3>
    #include <GUIConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $Schritt = 1, $Alt = 0
    Global $Checkbox[8], $CheckText = StringSplit("Speech|Touchless|Text-To-Speech|Gadgetsammlung|Externe Variablenweitergabe|SciTE (falls noch nicht vorhanden)|Hilfe-Dateien|Deinstallationsassistenten", "|")
    Global $RadioBox[2], $RadioText = StringSplit("Expressinstallation|Benutzerdefinierte Installation", "|")

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", 1)
    $Form1 = GUICreate("Installationsassistent - Multivision", 317, 429, 193, 125)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
    $Edit1 = GUICtrlCreateEdit("", 0, 0, 313, 145, BitOR($ES_READONLY, $ES_WANTRETURN))
    $Button1 = GUICtrlCreateButton("< Zurück", 0, 400, 121, 25, 0)
    GUICtrlSetOnEvent(-1, "Button1Click")
    $Button2 = GUICtrlCreateButton("Weiter >", 192, 400, 121, 25, 0)
    GUICtrlSetOnEvent(-1, "Button2Click")
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    Global $Schritte[7]
    $Schritte[1] = GUICreate("",317,399-146,0,146,$WS_CHILD,0,$Form1)

    $Schritte[2] = GUICreate("",317,399-146,0,146,$WS_CHILD,0,$Form1)

    $Group1 = GUICtrlCreateGroup("sd", 0, 5, 313, 241)
    For $i = 0 To 7
    $Checkbox[$i] = GUICtrlCreateCheckbox($CheckText[$i + 1], 16, 22 + $i * 25, 250, 17)
    GUICtrlSetState(-1, $GUI_CHECKED)
    Next

    [/autoit] [autoit][/autoit] [autoit]

    $Schritte[3] = GUICreate("",317,399-146,0,146,$WS_CHILD,0,$Form1)

    $Group2 = GUICtrlCreateGroup("sd", 0, 5, 313, 241)
    For $i = 0 To 1
    $RadioBox[$i] = GUICtrlCreateRadio($RadioText[$i + 1], 16, 22 + $i * 25, 250, 17)
    GUICtrlSetOnEvent(-1, "Radio")
    Next
    $Schritte[4] = GUICreate("",317,399-146,0,146,$WS_CHILD,0,$Form1)

    [/autoit] [autoit][/autoit] [autoit]

    $Schritte[5] = GUICreate("",317,399-146,0,146,$WS_CHILD,0,$Form1)
    $Schritte[6] = GUICreate("",317,399-146,0,146,$WS_CHILD,0,$Form1)
    $Input1 = GUICtrlCreateInput("Input", 16, 176, 233, 21)
    $Button3 = GUICtrlCreateButton("...", 256, 176, 33, 25, 0)
    GUICtrlSetOnEvent(-1, "FileSave")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    _Schritt(1)
    While 1
    Sleep(10)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func Button1Click()
    $Schritt -= 1
    _Schritt($Schritt)
    EndFunc ;==>Button1Click

    [/autoit] [autoit][/autoit] [autoit]

    Func Button2Click()
    $Schritt += 1
    _Schritt($Schritt)
    EndFunc ;==>Button2Click

    [/autoit] [autoit][/autoit] [autoit]

    Func _exit()
    $exit = MsgBox(292, "Installationsassistent", "Setup wirklich beenden?" & @CRLF & @CRLF & "Sie können die Installation später nicht fortsetzen, sondern müssen neu starten.")
    If $exit = 6 Then Exit
    EndFunc ;==>_exit

    [/autoit] [autoit][/autoit] [autoit]

    Func Schritt1()
    GUICtrlSetData($Edit1, StringFormat("Herzlich Willkommen bei Multivision.\r\nDieser Installationsassistent wird Sie durch das Setup begleiten.\r\n\r\n\r\nKlicken Sie auf " & Chr(34) & "Weiter" & Chr(34) & " um zu beginnen."))
    GUICtrlSetState($Button1, $GUI_DISABLE)
    EndFunc
    Func Schritt2()
    GUICtrlSetData($Edit1, StringFormat("Wählen Sie bitte die Funktionen aus, die Sie integrieren möchten."))
    GUICtrlSetState($Button1, $GUI_ENABLE)
    EndFunc
    Func Schritt3()
    GUICtrlSetData($Edit1, StringFormat("Wählen Sie nun aus, ob das Programm sofort mit normalen Optionen installiert werden soll, oder ob sie selbst Anpassungen vornehmen wollen."))
    GUICtrlSetState($Button2, $GUI_DISABLE)
    EndFunc
    Func Schritt4()
    GUICtrlSetData($Edit1, StringFormat("Bitte warten Sie einen Moment.\r\n Ihre Daten werden verarbeitet."))
    GUICtrlSetState($Button1, $GUI_DISABLE)
    GUICtrlSetState($Button2, $GUI_DISABLE)
    If $RadioBox[0] = 1 Then
    $Schritt = 10
    Else
    $Schritt = 5
    EndIf
    Sleep(1000)
    _Schritt($Schritt)
    EndFunc
    Func Schritt5()
    GUICtrlSetData($Edit1, StringFormat("Benutzerdefinierte Installation gestartet.\r\nKlicken Sie bitte auf " & Chr(34) & "Weiter" & Chr(34) & "."))
    GUICtrlSetState($Button2, $GUI_ENABLE)
    EndFunc
    Func Schritt6()
    GUISetState($Button1, $GUI_ENABLE)
    GUICtrlSetData($Edit1, StringFormat("Wo soll die Software gespeichert werden?"))
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Schritt($a)
    If $a < 1 Then $a = 1
    If $a >= UBound($Schritte) Then $a = UBound($Schritte)-1
    For $i = 1 To 6
    GUISetState(@SW_HIDE,$Schritte[$i])
    Next
    Call("Schritt" & $a)
    GUISetState(@SW_SHOW,$Schritte[$a])
    ;hier kommt auch noch was hin
    EndFunc ;==>_Schritt

    [/autoit] [autoit][/autoit] [autoit]

    Func Radio()
    GUICtrlSetState($Button2, $GUI_ENABLE)
    EndFunc ;==>Radio

    [/autoit] [autoit][/autoit] [autoit]

    Func FileSave()
    ;Hier kommt noch was hin
    EndFunc ;==>FileSave

    [/autoit]
    • Offizieller Beitrag

    Ich habe den Fehler gefunden , weiß aber auch net warum es ein Fehler ist . Ändere mal folgenden Code dann funzt es .

    [autoit]

    Case 6
    GUICtrlSetData($Edit1, StringFormat("Wo soll die Software gespeichert werden?"))
    $Input1 = GUICtrlCreateInput("Input", 16, 176, 233, 21)
    $Button3 = GUICtrlCreateButton("...", 256, 176, 33, 25, 0)
    GUICtrlSetOnEvent(-1, "FileSave")
    GUISetState($Button1, $GUI_ENABLE)

    [/autoit]

    Edit :

    Dein Fehler liegt einfach in Zeile 89 daran :

    [autoit]

    GUISetState($Button1, $GUI_ENABLE)

    [/autoit]


    das sollte eigentlich so heißen

    [autoit]

    GUICtrlSetState($Button1, $GUI_ENABLE)

    [/autoit]

    hab des net sofort gemerkt weil ich Migräne habe und net so schnell denken kann . Die 1. Lösung ist somit falsch und überflüssig.

    Progandy´s Lösung ist finde ich gut. Hat aber den gleichen Fehler in sein Script eingebaut nicht GUISetState sondern GUICrtlSetState
    in Zeile 100

  • Achso, herzlichen Dank! Das mit dem Ctrl hatte ich übersehen, tut mir Leid. Ich werde es dann ändern. Danke!