GUICtrlSetImage funktioniert nicht?

  • Hallo,

    ich habe dieses kleine Programm geschrieben:

    [autoit]

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

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

    $Path = @ScriptDir & "\wdimg.jpg"

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

    $Form1 = GUICreate("Form1", 691, 331, 177, 230)
    $Button1 = GUICtrlCreateButton("Temperatur", 8, 8, 75, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Luftfeuchte", 8, 40, 75, 25, $WS_GROUP)
    $Button3 = GUICtrlCreateButton("Niederschlag", 8, 72, 75, 25, $WS_GROUP)
    $Button4 = GUICtrlCreateButton("Windgeschw.", 8, 104, 75, 25, $WS_GROUP)
    $Button5 = GUICtrlCreateButton("Windboen", 8, 136, 75, 25, $WS_GROUP)
    $Button6 = GUICtrlCreateButton("Sonnenschein", 8, 168, 75, 25, $WS_GROUP)
    $Button7 = GUICtrlCreateButton("Luftdruck", 8, 200, 75, 25, $WS_GROUP)
    $Pic1 = GUICtrlCreatePic($Path, 88, 8, 592, 312, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
    $Button8 = GUICtrlCreateButton("Aktualisieren", 8, 232, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $Button1
    If FileExists($Path) Then FileDelete($Path)
    InetGet("http://www.wetter-haltern.de/wetter/charts/mini_currentt.gif", $Path, 1)
    GUICtrlSetImage($Pic1, $Path)

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

    EndSwitch
    WEnd

    [/autoit]

    Aus irgendeinem Grund funktioniert die Zeile mit "Case $Button1" nicht.
    Weiß jemand warum?

  • Du willst ein Image setzen, dass wahrscheinlich in dem Moment noch nicht vollständig geladen ist...
    Verwende:

    [autoit]

    InetGet("http://www.wetter-haltern.de/wetter/charts/mini_currentt.gif", $Path, 0)

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    über mich...

    ich habe meine Erfahrungen hauptsächlich gesammelt in (grobe Übersicht):

    - RibbonBar Automation
    - MySQL Nutzung
    - GUIs in vielerlei Ausprägung
    - Nutzung von Powershell / Batch in AutoIt
    - Windows Automatisierung

    außerhalb von AutoIt:

    - Sprachen: PS, Batch, php, html(5), javascript, (perl eingeschränkt), vbs
    - Powershell (AD, WPF inkl. Multi-Threading, ...)
    - Deployment-Automatisierung ohne SCCM
    - Office-Nutzung mit COM-Object (AutoIt, PowerShell)
    - ActiveDirectory und alles was damit zusammenhängt
    - Hyper-V Clustering (Converged / Hyper Converged)
    - Serverhardware (Konfiguration, Aufbau, Architektur, Betrieb)

    Lieblingsthema:

    günstige Automatisierung von Vorgängen, für die andere Firmen viel Geld nehmen

    more to come ...

  • ist GUICtrlSetImage auch der richtige Befehl für sowas?

    Zitat

    Sets the bitmap or icon image to use for a control.

    Machs doch so:

    Spoiler anzeigen
    [autoit]

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

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

    $Path = @ScriptDir & "\wdimg.jpg"

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

    $Form1 = GUICreate("Form1", 691, 331, 177, 230)
    $Button1 = GUICtrlCreateButton("Temperatur", 8, 8, 75, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Luftfeuchte", 8, 40, 75, 25, $WS_GROUP)
    $Button3 = GUICtrlCreateButton("Niederschlag", 8, 72, 75, 25, $WS_GROUP)
    $Button4 = GUICtrlCreateButton("Windgeschw.", 8, 104, 75, 25, $WS_GROUP)
    $Button5 = GUICtrlCreateButton("Windboen", 8, 136, 75, 25, $WS_GROUP)
    $Button6 = GUICtrlCreateButton("Sonnenschein", 8, 168, 75, 25, $WS_GROUP)
    $Button7 = GUICtrlCreateButton("Luftdruck", 8, 200, 75, 25, $WS_GROUP)
    $Pic1 = GUICtrlCreatePic($Path, 88, 8, 592, 312, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
    $Button8 = GUICtrlCreateButton("Aktualisieren", 8, 232, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $Button1
    If FileExists($Path) Then FileDelete($Path)
    InetGet("http://www.wetter-haltern.de/wetter/charts/mini_currentt.gif", $Path, 1)
    GUICtrlDelete($Pic1)
    Sleep ( 2000 ) ; Zur Veranschaulichung das es Funktioniert
    $Pic1 = GUICtrlCreatePic($Path, 88, 8, 592, 312, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))

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

    EndSwitch
    WEnd

    [/autoit]
  • Anscheinend hat

    [autoit]

    $Pic1 = GUICtrlCreatePic($Path, 88, 8, 592, 312, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))

    [/autoit]

    ein Problem, wenn die angegebenen Datei nicht existiert.
    So geht es ...

    Spoiler anzeigen
    [autoit]

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

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

    $Path = @ScriptDir & "\wdimg.gif"

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

    $Form1 = GUICreate("Form1", 691, 331, 177, 230)
    $Button1 = GUICtrlCreateButton("Temperatur", 8, 8, 75, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Luftfeuchte", 8, 40, 75, 25, $WS_GROUP)
    $Button3 = GUICtrlCreateButton("Niederschlag", 8, 72, 75, 25, $WS_GROUP)
    $Button4 = GUICtrlCreateButton("Windgeschw.", 8, 104, 75, 25, $WS_GROUP)
    $Button5 = GUICtrlCreateButton("Windboen", 8, 136, 75, 25, $WS_GROUP)
    $Button6 = GUICtrlCreateButton("Sonnenschein", 8, 168, 75, 25, $WS_GROUP)
    $Button7 = GUICtrlCreateButton("Luftdruck", 8, 200, 75, 25, $WS_GROUP)
    $Pic1 = GUICtrlCreatePic("", 88, 8, 592, 312, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
    $Button8 = GUICtrlCreateButton("Aktualisieren", 8, 232, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $Button1
    FileDelete($Path)
    InetGet("http://www.wetter-haltern.de/wetter/charts/mini_currentt.gif", $Path, 0)
    GUICtrlSetImage($Pic1, $Path)
    FileDelete($Path)
    EndSwitch
    WEnd

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    über mich...

    ich habe meine Erfahrungen hauptsächlich gesammelt in (grobe Übersicht):

    - RibbonBar Automation
    - MySQL Nutzung
    - GUIs in vielerlei Ausprägung
    - Nutzung von Powershell / Batch in AutoIt
    - Windows Automatisierung

    außerhalb von AutoIt:

    - Sprachen: PS, Batch, php, html(5), javascript, (perl eingeschränkt), vbs
    - Powershell (AD, WPF inkl. Multi-Threading, ...)
    - Deployment-Automatisierung ohne SCCM
    - Office-Nutzung mit COM-Object (AutoIt, PowerShell)
    - ActiveDirectory und alles was damit zusammenhängt
    - Hyper-V Clustering (Converged / Hyper Converged)
    - Serverhardware (Konfiguration, Aufbau, Architektur, Betrieb)

    Lieblingsthema:

    günstige Automatisierung von Vorgängen, für die andere Firmen viel Geld nehmen

    more to come ...