2 GUI schließen während Sleep

  • Hallo, ich weiß wie ich ein GUI durch ein anderes aufrufen kann etc. bloß stellt sich mir grad Folgendes Problem:

    Vorerst der Code um den es geht:

    Spoiler anzeigen
    [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $Button1
    Exit
    Case $Button2
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 346, 152, 467, 309)
    $OK = GUICtrlCreateButton("OK", 128, 112, 89, 33, 0)
    $Zeit = GUICtrlCreateLabel("Zeit: @HOUR @MIN @SEC ", 140, 24, 100, 50)
    GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
    $Datum = GUICtrlCreateLabel("Datum: @MDAY @MON @YEAR ", 130, 72, 100, 50)
    GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    While 1
    GUICtrlSetData($Zeit,@HOUR & ":" & @MIN & ":" & @SEC )
    GUICtrlSetData($Datum,@MDAY & "." & @MON & "." & @YEAR )
    Sleep(1000)
    $nMsg2 = GUIGetMsg()
    Switch $nMsg2
    Case $OK
    ExitLoop
    EndSwitch
    WEnd
    EndSwitch
    WEnd

    [/autoit]

    Soweit so gut, wie man sieht ist eine ExitLoop vorhanden, also wenn ich OK drücke, sollte sich das GUI schließen, nur kommt mir die SleepZeit in die Quere, die ich für die Uhr brauche.Ich muss erstmal öfters auf OK drücken, damit er schließt. Wenn ich die SleepZeit ausbaue, schließt er sofort, nur warum? Für manche wird die Lsung wohl sehr einfach sein, nur ich bin halt noch nicht so gut in Programmieren^^

    Dies was ihr oben seht, ist nur ein Teil meines Scripts.

    Ich weiß es nervt euch mit den 2 GUIs, da es grade Threads wie SAnd am Meer davon gibt, nur ich habe kein Thread gefunden wo solch ein Problem gelöst wurde.

    Falls doch, entschuldige ich mich und falls das eine Verwarnung zufolge hat, nehm ich sie gerne auf mir. Ansonsten Kopf->Tisch->nochmal SuFu benutzen.

    MfG

    • Offizieller Beitrag

    Schau mal in diesen Thread [ offen ] Zeit anzeigen lassen. Dort findest du mehrere Lösungen wie du die Uhr updaten kannst mittels AdlibEnable oder _Timer_SetTimer .

  • Wie peinlich, der Thread war sogar von mir geöffnet worden...^^

    Naja ich hatte die Lösung und nicht weiter hineingeguckt^^


    EDIT:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    #include <StaticConstants.au3>
    ;-------------------------------------------------------------------
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 479, 374, 285, 193)
    $Image1 = GUICtrlCreatePic("", 56, 24, 161, 129, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    $Button1 = GUICtrlCreateButton("Exit", 352, 25, 113, 41)
    $Button2 = GUICtrlCreateButton("2", 184, 248, 113, 41)
    $Button3 = GUICtrlCreateButton("3", 184, 192, 113, 41)
    $Button4 = GUICtrlCreateButton("4", 56, 248, 113, 41)
    $Button5 = GUICtrlCreateButton("5", 56, 192, 113, 41)
    $Button6 = GUICtrlCreateButton("6", 312, 192, 113, 41)
    $Button7 = GUICtrlCreateButton("7", 56, 304, 113, 41)
    $Button8 = GUICtrlCreateButton("8", 184, 304, 113, 41)
    $Button9 = GUICtrlCreateButton("9", 312, 248, 113, 41)
    $Button10 = GUICtrlCreateButton("10", 312, 304, 113, 41)
    $Button11 = GUICtrlCreateButton("11", 237, 25, 113, 41)
    $Button12 = GUICtrlCreateButton("12", 237, 113, 113, 41)
    $Button13 = GUICtrlCreateButton("13", 352, 113, 113, 41)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    ;-------------------------------------------------------------------
    Func _Time()
    GuICtrlSetData($Zeit, "Zeit: " & @HOUR & ":" & @MIN & ":" & @SEC)
    EndFunc
    Func _Date()
    GUICtrlSetData($Datum, "Datum: " & @MDAY & "." & @MON & "." & @YEAR)
    EndFunc
    ;-------------------------------------------------------------------
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $Button1
    Exit
    Case $Button2
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 346, 152, 467, 309)
    $OK = GUICtrlCreateButton("OK", 128, 112, 89, 33, 0)
    $Zeit = GUICtrlCreateLabel("Zeit: @HOUR @MIN @SEC ", 140, 24, 100, 50)
    GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
    $Datum = GUICtrlCreateLabel("Datum: @MDAY @MON @YEAR ", 130, 72, 100, 50)
    GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    While 1
    AdlibEnable("_Time",1000)
    AdlibEnable("_Date",1000)
    $nMsg2 = GUIGetMsg()
    Switch $nMsg2
    Case $OK
    ExitLoop
    EndSwitch
    WEnd
    EndSwitch
    WEnd

    [/autoit]

    Wo ist der Fehler? :(

    • Offizieller Beitrag

    Deshalb hab ich es ja auch geschrieben . ;)

  • Hab deinen Code etwas angepasst. Müsste jetzt soweit Funktionieren wie du es wolltest. 2x AdlibEnable geht glaube ich nicht (habs getestet aber kann mich irren).

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    #include <StaticConstants.au3>

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

    ;-------------------------------------------------------------------

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

    Global $Zeit, $Datum

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 479, 374, 285, 193)
    $Image1 = GUICtrlCreatePic("", 56, 24, 161, 129, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
    $Button1 = GUICtrlCreateButton("Exit", 352, 25, 113, 41)
    $Button2 = GUICtrlCreateButton("2", 184, 248, 113, 41)
    $Button3 = GUICtrlCreateButton("3", 184, 192, 113, 41)
    $Button4 = GUICtrlCreateButton("4", 56, 248, 113, 41)
    $Button5 = GUICtrlCreateButton("5", 56, 192, 113, 41)
    $Button6 = GUICtrlCreateButton("6", 312, 192, 113, 41)
    $Button7 = GUICtrlCreateButton("7", 56, 304, 113, 41)
    $Button8 = GUICtrlCreateButton("8", 184, 304, 113, 41)
    $Button9 = GUICtrlCreateButton("9", 312, 248, 113, 41)
    $Button10 = GUICtrlCreateButton("10", 312, 304, 113, 41)
    $Button11 = GUICtrlCreateButton("11", 237, 25, 113, 41)
    $Button12 = GUICtrlCreateButton("12", 237, 113, 113, 41)
    $Button13 = GUICtrlCreateButton("13", 352, 113, 113, 41)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    ;-------------------------------------------------------------------

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    Exit
    Case $Button2
    AdlibEnable("_Time", 500)
    _gui()
    EndSwitch
    WEnd

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

    ;-------------------------------------------------------------------

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

    Func _Gui()
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 346, 152, 467, 309)
    $OK = GUICtrlCreateButton("OK", 128, 112, 89, 33, 0)
    $Zeit = GUICtrlCreateLabel("Zeit: " & @HOUR & ":" & @MIN & ":" & @SEC, 140, 24, 100, 50)
    GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
    $Datum = GUICtrlCreateLabel("Datum: " & @MDAY & "." & @MON & "." & @YEAR, 130, 72, 100, 50)
    GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    While 1
    $nMsg2 = GUIGetMsg()
    Switch $nMsg2
    Case $GUI_EVENT_CLOSE
    GUIDelete()
    ExitLoop
    Case $OK
    GUIDelete()
    ExitLoop
    EndSwitch
    WEnd
    EndFunc ;==>_Gui

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

    ;-------------------------------------------------------------------

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

    Func _Time()
    GUICtrlSetData($Zeit, "Zeit: " & @HOUR & ":" & @MIN & ":" & @SEC)
    GUICtrlSetData($Datum, "Datum: " & @MDAY & "." & @MON & "." & @YEAR)
    EndFunc ;==>_Time

    [/autoit]

    4 Mal editiert, zuletzt von SiLenCa (18. April 2009 um 02:10)

  • Es kann nur laufen, wenn Du das Datum auch deklarierst.
    Sonst Fehlermeldung bezüglich Zeile 72.

    ausreichen würde zuvor z. B.: $Datum = @HOUR & ":" & @MIN & ":" & @SEC

    Lieben Gruß,
    Alina

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

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Ah, danke... hatte es bei mir zum testen drin... habe aber die Funktion Datum gelöscht, jedoch das GuiCtrlSetData($Datum...) in die Funktion _Time() übernommen, und sogleich auch die Deklaration oben gelöscht *Denkfehler* ;) danke habs Editiert,