Fortschrittsbalken mit Zeit

  • Was muss ich tun, damit der Balken und der Countdown zur selben Zeit angezeigt werden?

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    Opt("GUIOnEventMode", 1)
    $Form1 = GUICreate("Installation", 315, 200, -1, -1)
    GUISetBkColor(0x3366CC)
    GUISetOnEvent($guI_EVENT_CLOSE, "close")
    $Progress1 = GUICtrlCreateProgress(24, 88, 265, 25, 0x01)
    GUICtrlSetData(-1, 0)
    $label2 = GUICtrlCreateLabel("", 150, 63, 60, 14)
    Guictrlsetcolor($Label2, 0xFFFFFF)
    $Label1 = GUICtrlCreateLabel("Möchten Sie die Installation starten?", 74, 24, 189, 17)
    Guictrlsetcolor($Label1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "close")
    $button2 = GUICtrlCreateButton("Start", 24,136,100,25)
    Guictrlsetcolor($button2, 0x0000AA)
    GUICtrlSetOnEvent(-1, "start")
    $button3 = GUICtrlCreateButton("Beenden", 190,136,100,25)
    Guictrlsetcolor($button3, 0x0000AA)
    GUICtrlSetOnEvent(-1, "close")

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

    GUISetState(@SW_SHOW)

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

    While 1
    Sleep(100)
    WEnd

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

    Func close()
    Exit
    EndFunc

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

    Func start()
    For $i = 0 To 100
    GUICtrlSetData($label1, " Die Installation läuft...")
    GUICtrlDelete($button3)
    GUICtrlDelete($button2)
    $Zeit = GUICtrlCreateLabel("Noch etwa 120 Sekunden", 109,136,100,25)
    For $i = 120 To 0 Step -1
    GUICtrlSetData($Zeit,"Noch etwa "&$i&" Sekunden")
    Sleep(1000)
    Next
    GUICtrlSetData($Progress1, $i)
    GUICtrlSetData($label2, GUICtrlRead($Progress1) & "%")
    sleep(500)
    GUICtrlSetData($label1, " Die Installation ist beendet!")
    $schliessen = GUICtrlCreateButton("Schliessen", 109,136,100,25)
    Guictrlsetcolor($schliessen, 0x0000AA)
    GUICtrlSetOnEvent(-1, "fertig")
    Next
    EndFunc

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

    Func fertig()
    Exit
    EndFunc

    [/autoit]

    Freue mich auf Antworten!
    Charlie

    Einmal editiert, zuletzt von Charlie (14. November 2009 um 15:18)

  • Hey!

    Kleiner denkfehler von dir!


    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    Opt("GUIOnEventMode", 1)
    $Form1 = GUICreate("Installation", 315, 200, -1, -1)
    GUISetBkColor(0x3366CC)
    GUISetOnEvent($guI_EVENT_CLOSE, "close")
    $Progress1 = GUICtrlCreateProgress(24, 88, 265, 25, 0x01)
    GUICtrlSetData(-1, 0)
    $label2 = GUICtrlCreateLabel("", 150, 63, 60, 14)
    GUICtrlSetColor($label2, 0xFFFFFF)
    $Label1 = GUICtrlCreateLabel("Möchten Sie die Installation starten?", 74, 24, 189, 17)
    GUICtrlSetColor($Label1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "close")
    $button2 = GUICtrlCreateButton("Start", 24, 136, 100, 25)
    GUICtrlSetColor($button2, 0x0000AA)
    GUICtrlSetOnEvent(-1, "start")
    $button3 = GUICtrlCreateButton("Beenden", 190, 136, 100, 25)
    GUICtrlSetColor($button3, 0x0000AA)
    GUICtrlSetOnEvent(-1, "close")

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

    GUISetState(@SW_SHOW)

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

    While 1
    Sleep(100)
    WEnd

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

    Func close()
    Exit
    EndFunc ;==>close

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

    Func start()
    For $i = 0 To 100
    GUICtrlSetData($Label1, " Die Installation läuft...")
    GUICtrlDelete($button3)
    GUICtrlDelete($button2)
    $Zeit = GUICtrlCreateLabel("Noch etwa 120 Sekunden", 109, 136, 100, 25)
    $II = 0
    For $i = 120 To 0 Step -1
    GUICtrlSetData($Zeit, "Noch etwa " & $i & " Sekunden")
    Sleep(1000)
    GUICtrlSetData($Progress1, $II)
    GUICtrlSetData($label2, GUICtrlRead($Progress1) & "%")
    $II += 1
    Next

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

    Sleep(500)
    GUICtrlSetData($Label1, " Die Installation ist beendet!")
    $schliessen = GUICtrlCreateButton("Schliessen", 109, 136, 100, 25)
    GUICtrlSetColor($schliessen, 0x0000AA)
    GUICtrlSetOnEvent(-1, "fertig")
    Next
    EndFunc ;==>start

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

    Func fertig()
    Exit
    EndFunc ;==>fertig

    [/autoit]


    LG Kleiner

    • Offizieller Beitrag
    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    Opt("GUIOnEventMode", 1)
    $Form1 = GUICreate("Installation", 315, 200, -1, -1)
    GUISetBkColor(0x3366CC)
    GUISetOnEvent($guI_EVENT_CLOSE, "close")
    $Progress1 = GUICtrlCreateProgress(24, 88, 265, 25, 0x01)
    GUICtrlSetData(-1, 0)
    $label2 = GUICtrlCreateLabel("", 150, 63, 60, 14)
    GUICtrlSetColor($label2, 0xFFFFFF)
    $Label1 = GUICtrlCreateLabel("Möchten Sie die Installation starten?", 74, 24, 189, 17)
    GUICtrlSetColor($Label1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "close")
    $button2 = GUICtrlCreateButton("Start", 24, 136, 100, 25)
    GUICtrlSetColor($button2, 0x0000AA)
    GUICtrlSetOnEvent(-1, "start")
    $button3 = GUICtrlCreateButton("Beenden", 190, 136, 100, 25)
    GUICtrlSetColor($button3, 0x0000AA)
    GUICtrlSetOnEvent(-1, "close")

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

    GUISetState(@SW_SHOW)

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

    While 1
    Sleep(100)
    WEnd

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

    Func close()
    Exit
    EndFunc ;==>close

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

    Func start()
    GUICtrlSetData($Label1, " Die Installation läuft...")
    GUICtrlDelete($button3)
    GUICtrlDelete($button2)
    $Zeit = GUICtrlCreateLabel("Noch etwa 120 Sekunden", 109, 136, 100, 25)
    For $i = 0 To 120
    GUICtrlSetData($Zeit, "Noch etwa " & 120 - $i & " Sekunden")
    Sleep(1000)
    GUICtrlSetData($Progress1, Int($i / 120 * 100))
    GUICtrlSetData($label2, GUICtrlRead($Progress1) & "%")
    Next
    GUICtrlSetData($Label1, " Die Installation ist beendet!")
    $schliessen = GUICtrlCreateButton("Schliessen", 109, 136, 100, 25)
    GUICtrlSetColor($schliessen, 0x0000AA)
    GUICtrlSetOnEvent(-1, "fertig")
    EndFunc ;==>start

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

    Func fertig()
    Exit
    EndFunc ;==>fertig

    [/autoit]
    • Offizieller Beitrag

    @kleiner27

    Du mußt noch die 1. For Next Schleife entfernen, sonst wird das Ganze 101 mal ausgeführt.
    Bei deiner Progressbarberechnung ist ein Fehler drin. Nach 100 Sekunden sind schon 100 Prozent erreicht. Sollte erst nach 120 Sekunden 100 % sein.

    Edit meine Zeile 38 ist auch falsch, sollte so aussehen:

    [autoit]

    GUICtrlSetData($Zeit, "Noch etwa " & 120 - $i & " Sekunden")

    [/autoit]

    Hab es in meinen letzten Post umgeändert.

  • Raupi

    Stimmt hast du recht! :whistling:


    So geht es auch!

    [autoit]

    Func start()
    GUICtrlSetData($Label1, " Die Installation läuft...")
    GUICtrlDelete($button3)
    GUICtrlDelete($button2)
    $Zeit = GUICtrlCreateLabel("Noch etwa 120 Sekunden", 109, 136, 100, 25)
    $II = 0
    For $i = 120 To 0 Step -1
    GUICtrlSetData($Zeit, "Noch etwa " & $i & " Sekunden")
    Sleep(1000)
    GUICtrlSetData($Progress1, $II)
    GUICtrlSetData($label2, GUICtrlRead($Progress1) & "%")
    $II += 0.84
    Next
    GUICtrlSetData($Label1, " Die Installation ist beendet!")
    $schliessen = GUICtrlCreateButton("Schliessen", 109, 136, 100, 25)
    GUICtrlSetColor($schliessen, 0x0000AA)
    GUICtrlSetOnEvent(-1, "fertig")

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

    EndFunc ;==>start

    [/autoit]


    wenn man noch ne 1 dran hängt dann sind die 100% ein paar mil-sec. schneller! :D


    LG Kleiner

  • Wo wird die Zeit ermittelt, denn es ist ja nicht immer 120 Sekunden.

    L I N A

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • macht nix, kann jeden passieren. :)

    aber mit FileGetSize und n Timer sollte man das doch schaffen, dass man die Zeit ermittelt, also eigentlich keine große Sache.