bilder alle 1sec in gui

  • huhu^^
    kann mir jemand helfen? habe jetzt keine lust mehr... bekomme es nicht hin
    es soll in der gui ein bild jede sekunde geändert werden, ich hoffe ihr seht wie ich es meine in meinem beispiel

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <IE.au3>
    #include <Array.au3>
    #include <string.au3>
    #Include <File.au3>

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

    Opt('TrayMenuMode', 1)
    Opt('TrayOnEventMode', 1)

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

    GUICreate("muh!", 305, 414, 193, 115)

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

    Global $bildnr=1, $pic, $bilder ,$pfad="C:\Bilder\"
    $bilder = _FileListToArray($pfad) ;alle *.bmp-dateien im Verzeichnis c:\windows in ein array
    _arraydisplay($bilder) ;liste anzeigen

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

    $pic = GUICtrlCreatePic($pfad&"\"&$bilder[1], 10, 10, 100, 100) ;dem 1. bild eine ctrlID zuweisen
    GUISetState(@SW_SHOW) ;GUI anzeigen

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

    While 1

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

    adlibenable("_diashow", 5000) ;Funktion _diashow() aufrufen alle 1000ms

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

    Wend

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

    func _diashow()
    $bildnr += 1 ;alle bilder nacheinander
    If $bildnr = UBound($bilder) Or $bilder[$bildnr] = "" Then $bildnr = 1 ;wenn alle angezeigt, wieder von vorne anfangen
    ;ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $bildnr = ' & $bildnr & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    GUICtrlDelete($pic) ;bild löschen da sonst speicherüberlauf, weil immer wieder ein neues control angelegt wird
    $pic = GUICtrlCreatePic($pfad&"\"&$bilder[$bildnr], 10, 10, 100, 100) ;dem nächsten bild eine ctrlID zuweisen

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

    endfunc

    [/autoit] [autoit][/autoit] [autoit][/autoit]
    • Offizieller Beitrag

    Hier hast du dein Script mal ein bischen aufgeräumt und funktionsfähig:

    [autoit]

    #include <File.au3>
    #include <Array.au3>
    Opt('TrayMenuMode', 1)
    Opt('TrayOnEventMode', 1)
    Global $bildnr = 0, $pic, $bilder, $pfad = "C:\Bilder\"
    $bilder = _FileListToArray($pfad) ;alle *.bmp-dateien im Verzeichnis c:\windows in ein array
    _ArrayDisplay($bilder) ;liste anzeigen

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

    GUICreate("muh!", 305, 414, 193, 115)
    $pic = GUICtrlCreatePic($pfad & "\" & $bilder[1], 10, 10, 100, 100) ;dem 1. bild eine ctrlID zuweisen
    GUISetState(@SW_SHOW) ;GUI anzeigen

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

    AdlibRegister("_diashow", 1000) ;Funktion _diashow() aufrufen alle 1000ms

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

    While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd

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

    Func _diashow()
    $bildnr += 1 ;alle bilder nacheinander
    If $bildnr = $bilder[0] Or $bilder[$bildnr] = "" Then $bildnr = 1 ;wenn alle angezeigt, wieder von vorne anfangen
    GUICtrlSetImage($pic, $pfad & "\" & $bilder[$bildnr])
    EndFunc ;==>_diashow

    [/autoit]

    PS: Hol dir mal die Aktuelle AutoIt Version http://www.autoitscript.com/cgi-bin/getfil…it-v3-setup.exe AdlibEnable gibt es nicht mehr.

  • error :

    [autoit]

    C:\Dokumente und Einstellungen\Texos\Desktop\adsa.au3(17,32) : WARNING: $GUI_EVENT_CLOSE: possibly used before declaration.
    If $msg = $GUI_EVENT_CLOSE Then
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^

    [/autoit]
    • Offizieller Beitrag

    Ups, hab ein Include vergessen:

    [autoit]

    #include <File.au3>
    #include <Array.au3>
    #include <GUIConstantsEx.au3>
    Opt('TrayMenuMode', 1)
    Opt('TrayOnEventMode', 1)
    Global $bildnr = 0, $pic, $bilder, $pfad = "C:\Bilder\"
    $bilder = _FileListToArray($pfad) ;alle *.bmp-dateien im Verzeichnis c:\windows in ein array
    _ArrayDisplay($bilder) ;liste anzeigen

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

    GUICreate("muh!", 305, 414, 193, 115)
    $pic = GUICtrlCreatePic($pfad & "\" & $bilder[1], 10, 10, 100, 100) ;dem 1. bild eine ctrlID zuweisen
    GUISetState(@SW_SHOW) ;GUI anzeigen

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

    AdlibRegister("_diashow", 1000) ;Funktion _diashow() aufrufen alle 1000ms

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

    While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd

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

    Func _diashow()
    $bildnr += 1 ;alle bilder nacheinander
    If $bildnr = $bilder[0] Or $bilder[$bildnr] = "" Then $bildnr = 1 ;wenn alle angezeigt, wieder von vorne anfangen
    GUICtrlSetImage($pic, $pfad & "\" & $bilder[$bildnr])
    EndFunc ;==>_diashow

    [/autoit]