Instllationsscript Porbleme

  • Ich bin gerade dabei ein Installationsscript zu schreiben.
    An einigen Stellen hängt's aber und ich finde keinen Ausweg.

    1. Problem:

    Wenn ich das Programm ausführe, wird mir gesagt,
    Variabel $Durchsuchen wurde nicht deklariert,
    wobei ich das meiner Meinung nach eine Zeile davor getan habe:

    [autoit]


    $Durchsuchen = GUICtrlCreateButton("Durchsuchen",215,80)
    GUICtrlSetOnEvent($Durchsuchen, "_Suchen")

    [/autoit]

    [BEHOBEN]

    2. Problem:

    Ich möchte gern den Fortschritt der Installation anzeigen
    mithilfe einer 'Progressbar'
    Lässt es sich einrichten dass diese voll sein soll wenn fileinstall fertig ist,
    und sich bis dahin gleichmäßig auffüllt?


    3. Problem:

    Gibt es einen Filter beim openfiledialog,
    der dem Programm sagt es soll den Ordnerpfad auswählen?

    [autoit]

    $Suchen = FileOpenDialog("Durchsuchen ...", @DesktopDir, "(*.exe)")
    GUICtrlSetData($Direktion, $Suchen)

    [/autoit]


    Hier noch einmal das ganze bisherige Script:

    Spoiler anzeigen
    [autoit]


    #include
    #include
    #include
    #include
    #include

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

    Opt("GUIOnEventMode", 1)

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

    ; ---------- Angaben tätigen ----------------;
    $Programname = " "
    $Programautor = "Buckiuxx"
    ; ---------- Angaben tätigen ----------------;

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

    Global $i, $Dir = "C:\Programme\AJGadgets", $durchsuchen, $Direktion, $Suchen, $wirdinstalliert, $Fortschritt

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

    $Form1 = GUICreate($Programname & " Installer", 310, 217, 346, 263)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Ende")

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

    $Ende = GUICtrlCreateButton("Abbrechen", 24, 152, 129, 49, 0)
    GUICtrlSetOnEvent($Ende, "_Ende")

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

    $Start = GUICtrlCreateButton("Weiter ->", 160, 152, 129, 49, 0)
    GUIctrlsetOnEvent($Start, "_Start")

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

    $Titel = GUICtrlCreateLabel("Installation von " & $Programname, 1, 13, 310, 44, $SS_CENTER)
    GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")

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

    $Willkommen = GUICtrlCreateLabel("Herzlich Willkommen zur Installation von " & $Programname, 1, 88, 310, 25, $SS_CENTER)
    GUISetState(@SW_SHOW)

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

    While 1
    Sleep(10)
    WEnd

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

    Func _Ende()
    MsgBox(64,"Abgebrochen", "Vergang wurde Abgebrochen!" & @crlf & "Das Programm wird beendet...")
    Exit
    EndFunc

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

    Func _Start()
    GUICtrlDelete($Willkommen)
    GUICtrlDelete($Start)

    $Instal = GUICtrlCreateButton("Weiter -->", 160, 152, 129, 49, 0)
    GUICtrlSetOnEvent($Instal, "_Instal")

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

    $Durchsuchen = GUICtrlCreateButton("Durchsuchen",215,80)
    GUICtrlSetOnEvent($Durchsuchen, "_Suchen")

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

    $Direktion = GUICtrlCreateInput($Dir,25,81,185)

    EndFunc

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

    Func _Suchen()
    $Suchen = FileOpenDialog("Durchsuchen ...", @DesktopDir, "(*.exe)")
    GUICtrlSetData($Direktion, $Suchen)
    EndFunc

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

    Func _Instal()
    GUICtrlDelete($Durchsuchen)
    GUICtrlDelete($Direktion)
    $wirdinstalliert = GUICtrlCreateLabel("Das Programm wird installiert...", 20, 60)
    $Fortschritt = GUICtrlCreateProgress(20,80)
    EndFunc

    [/autoit]


    Vielen Dank im Vorraus!

    3 Mal editiert, zuletzt von Buckiuxx (16. Juni 2010 um 17:46)

  • Bei mir findet er die Varriable "$Direktion"(Zeile 66) nicht(dies lässt sich aber mit nem Global lösen).
    Dafür findet er bei mir die Varriable $Durchsuchen ohne Probleme ?(
    [Edit:] und du könntest Tab statt Leerzeichen verwenden.


    [Edit2:] hab jetzt herausgefunden warum $Durchsuchen nicht gefunden wird. Du hast es in einer andern Funktion Deklariert, deswegen musst du es mit Global deklarieren :thumbup:

    [Edit3:] wenn eine Varriable nicht Global ist dann kann sie nur in der Funktion genützt werden in der sie Deklariert worden ist. Wenn sie auserhalb von Funktionen deklariert worden ist kannst du sie zwar in Funktionen nützen aber nicht verändern.

    Einmal editiert, zuletzt von Zeitriss (16. Juni 2010 um 12:58)

  • mkey^^

    ich frag mich echt wieso...

    aber wie lässt sich das mitm global lösen? ich will doch nur den Button im 2. Fenster

  • es geht,
    danke

    Das es so stumpf ist, da wär ich nie draufgekommen...
    hmm...versteh nicht wieso aber es geht danke!

    ...1. Post editiert...