Funktionreferenz


GUICtrlCreateProgress

Beschreibung anzeigen in

Erstellt eine Progressbar für die GUI.

GUICtrlCreateProgress ( left, top [, width [, height [, style = -1 [, exStyle = -1]]]] )

Parameter

left Die linke Seite des Controls. Wird -1 verwendet, dann wird left mit Hilfe von GUICoordMode berechnet.
top Die Oberkante des Controls. Wird -1 verwendet, dann wird top mit Hilfe von GUICoordMode berechnet.
width [optional] Die Breite des Controls (voreingestellt ist die zuvor verwendete Breite).
height [optional] Die Höhe des Controls (voreingestellt ist die zuvor verwendete Höhe).
style [optional] Legt den Stil des Controls fest. Siehe Anhang GUI-Stile für Controls.
exStyle [optional] Legt den erweiterten Stil des Controls fest. Siehe Tabelle der erweiterten Stile.

Rückgabewert

Erfolg: Die Identifikationsnummer (Control-ID) des neuen Controls.
Fehler: 0.

Bemerkungen

Um den Wert des Controls zu erhalten siehe GUICtrlRead().
Um Informationen im Control zu setzen oder zu verändern siehe GUICtrlUpdate...() Funktionen.

Um die Position des Balkens zu verändern ist GUICtrlSetData() zu verwenden.

Um weitere Stile zusätzlich zum Standardstil zu verwenden ist BitOR($GUI_SS_DEFAULT_PROGRESS, newstyle, ... ) zu benutzen.
Um die oben angegebenen Werte verwenden zu können, muss #include <ProgressConstants.au3> in das Skript eingefügt werden.

Als Standard für das Verhalten des Controls (bzgl. Größe und/oder Position) bei Größenänderung der GUI gilt $GUI_DOCKAUTO. (Größe und Position werden entsprechend dem neuen Fenster angepasst.)
Mögliche Resizing-Parameter siehe GUICtrlSetResizing.

- - - - - - - - Erklärung der Controls - - - - - - - -

Verwandte Funktionen

GUICoordMode (Option), GUICtrlSetData, GUICtrlUpdate..., GUIGetMsg

Beispiel

#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <ProgressConstants.au3>

Example()

Func Example()
    GUICreate("Meine GUI Progressbar", 220, 100, 100, 200)
    Local $idProgressbar1 = GUICtrlCreateProgress(10, 10, 200, 20)
    GUICtrlSetColor(-1, 32250) ; Funktioniert nicht mit Windows XP Style
    Local $idProgressbar2 = GUICtrlCreateProgress(10, 40, 200, 20, $PBS_SMOOTH)
    Local $idButton = GUICtrlCreateButton("Start", 75, 70, 70, 20)
    GUISetState(@SW_SHOW)

    Local $iWait = 20 ; Warte 20ms bis zum nächsten Schritt
    Local $iSavPos = 0 ; Progressbar-Startposition

    Local $idMsg, $idM
    ; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst.
    Do
        $idMsg = GUIGetMsg()
        If $idMsg = $idButton Then
            GUICtrlSetData($idButton, "Stop")
            For $i = $iSavPos To 100
                If GUICtrlRead($idProgressbar1) = 50 Then MsgBox($MB_SYSTEMMODAL, "Info", "Die Hälfte ist fertig ...", 1)

                $idM = GUIGetMsg()
                If $idM = $GUI_EVENT_CLOSE Then ExitLoop

                If $idM = $idButton Then
                    GUICtrlSetData($idButton, "Weiter")
                    $iSavPos = $i ; Speichere aktuelle Balkenposition in $iSavPos
                    ExitLoop
                Else
                    $iSavPos = 0
                    GUICtrlSetData($idProgressbar1, $i)
                    GUICtrlSetData($idProgressbar2, (100 - $i))
                    Sleep($iWait)
                EndIf
            Next
            If $i > 100 Then
                GUICtrlSetData($idButton, "Start")
            EndIf
        EndIf
    Until $idMsg = $GUI_EVENT_CLOSE
EndFunc   ;==>Example