Progress Bar

  • Hi Leute,

    Ich habe mir mit GUICtrlCreateProgress() ein Ladebalken erzeugt.
    Ich möchte das er von Anfang bis zum Ende einer Funktion durchläuft
    und dann am Ende auch am Ende angekommen ist :D
    Meine Frage : Wie kann ich die Größe eines Balkens festlegen?


    LG
    Silverlight

  • Die Hilfe zu lesen hilft manchmal wunder.

    Zitat

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

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Ja aber das setzt den nur auf 1, die Größe weiß ich trotzdem nicht, ebenso nicht wie viel er für einen ganzen "Durchlauf" brauch ?(

  • Schau dir einmal die Hilfe zu der Funktion an.

    Mit GUICtrlCreateProgress () erstellst du eine Progressbar und mit GUICtrlSetData() kannst du den "Fortschritt" verändern. Kurzes Pseudo-Beispiel

    Code
    $progressbar = GUICtrlCreateProgress (10,10,100,10)
    GUICtrlSetData($progressbar,40) ; auf 40%

    Beispiel von mir:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    $Form2 = GUICreate("Progressbar", 370, 82)
    $Progress = GUICtrlCreateProgress(8, 8, 353, 41)
    $Label = GUICtrlCreateLabel("0 %", 8, 56, 353, 17, $SS_CENTER)
    GUISetState(@SW_SHOW)

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

    For $i = 1 to 100 ; 1 bis 100%
    GUICtrlSetData($Progress,$i)
    GUICtrlSetData($Label,$i & " %")
    Sleep(50)
    Next

    [/autoit]

    Einmal editiert, zuletzt von Jautois (9. März 2011 um 21:35)

  • Naja, du musst wissen, wie viele Arbeitsschritte deine Funktion hat..
    dann gehst du pro Arbeitsschritt 100/Arbeitsschritte nach vorne.

    BsP:

    Spoiler anzeigen
    [autoit]

    $anz_berechnung = 50000;5000 Berechnungen
    $hGui = guicreate("Progressbar Test", 500, 50)
    $Progress = guictrlcreateprogress(0, 0, 500, 30)
    guisetstate(@SW_SHOW)

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

    _fill()
    While 1
    $msg = GUIGetMsg()
    If $msg = -3 then Exit
    WEnd

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

    Func _fill()
    For $x = 0 to 50000
    $test = $x^2
    guictrlsetdata($progress, $x*(100/$anz_berechnung))
    Next
    EndFunc

    [/autoit]

    MfG,
    Fresapore