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

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • 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

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)