Erstellt eine Progressbar für die GUI.
GUICtrlCreateProgress ( left, top [, width [, height [, style = -1 [, exStyle = -1]]]] )
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. |
Erfolg: | Die Identifikationsnummer (Control-ID) des neuen Controls. |
Fehler: | 0. |
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 - - - - - - - -
GUICoordMode (Option), GUICtrlSetData, GUICtrlUpdate..., GUIGetMsg
#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