countdown hilfe

  • Hey ich habe ein kleines prob,
    unten habe ich ein script für den bau eines Countdown zählers,
    ist auch nicht wirklich specktakulär, ist nur zum testen wie es am besten funktioniert,
    so ich habe da ein paar sachen ein gebaut.
    Es ist eine kleine GUI, mit einem Inputfeld, einem Button, einer Checkbox, und einem Listfeld.
    So in das Inputfeld (nennen wir für diesen Thread $1) kommt die Zeit rein [entweder 15 ohne Checkbox = 15 sec.]oder[15 mit Checkbox = 15 Min.].
    Die Funktion der Checkbox habe ich fertig, sie errechnet einfach wenn es auktiviert ist die Zahl aus dem Inputfeld mal 60 {$1 * 60} Das funzt, aber erst wenn man den Button drückt.
    So wenn man den Button drück geht das tool eig los, (Button = $2) man drückt die $2 und im Listfeld wird entweder die Zahl angezeigt [15 ohne Checkbox = 15 sec] oder das errchnete aus der $1 [15 *60]
    so aber zu gut alletzt, muss jetzt im sekundentakt immer eine sekunde runter, bis auf Null.
    und dass im Listfeld anzeigen lassen aber wie?

    Also hier jetzt erstmals das Script:

    [autoit]

    #include <GUIConstants.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 116, 82, 194, 125)
    $Input1 = GUICtrlCreateInput("Input1", 0, 0, 97, 21)
    $List1 = GUICtrlCreateList("", 0, 56, 97, 19)
    $Button1 = GUICtrlCreateButton("Button1", 8, 32, 73, 17, 0)
    $Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 96, 32, 17, 17)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

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

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


    Case $Button1
    $1 = GUICtrlRead ($Input1)
    $5 = GuictrlRead ($Checkbox1)
    if $5 = 1 then
    $10 = $1 * 60
    $2 = GUICtrlSetData ($List1, $10)
    elseif $5 Then
    $11 = $1 - 1
    sleep (1000)
    $13 = GUICTRLSetData ($List1, $11)
    endif
    EndSwitch
    WEnd

    [/autoit]

    Das tool, rechnet auch gleich das ergebniss aus von [15 - 1] obwohl es erst die 15 sec anzeigen sollte dann nach einer sec. eins runter, und so weiter bis Null, wie kann ich das am besten machen?

    Bitte um hilfe, und bin sehr dankbar für jede Hilfe die ich bekomme.
    Gruß Nismo

    Einmal editiert, zuletzt von Nismo (15. Mai 2008 um 22:10)

  • So, hab den Code a weng aufgeräumt. :)
    PS: Wie wäre es mit einer UpDown Schaltfläche statt einer Input Control? Und die GUI is a bissl zu klein

    Spoiler anzeigen
    [autoit]

    #include<EditConstants.au3>
    #include<GUIDefaultConstants.au3>
    #include<GUIConstantsEx.au3>
    #region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 116, 82, 194, 125)
    $Input1 = GUICtrlCreateInput("Input1", 0, 0, 97, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_Number))
    $List1 = GUICtrlCreateList("", 0, 56, 97, 19)
    $Button1 = GUICtrlCreateButton("Button1", 8, 32, 73, 17, 0)
    $Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 96, 32, 17, 17)
    GUISetState(@SW_SHOW)
    #endregion ### START Koda GUI section ### Form=
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $Zeit = GUICtrlRead($Input1)
    $Sek_oder_Min = GUICtrlRead($Checkbox1)
    If BitAND(GUICtrlRead($Sek_oder_Min), $GUI_CHECKED) = $GUI_CHECKED Then
    GUICtrlSetData($List1, $Zeit * 60)
    Else
    For $Akt_Zeit = $Zeit To 0 Step -1
    GUICtrlSetData($List1, $Akt_Zeit)
    Sleep(1000)
    Next
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    Projekte: Keine größeren (und fertigen)
    Gegen Internetzensur:
    https://epetitionen.bundestag.de/index.php?acti…s;petition=3860
    (Zeichnungsfrist abgelaufen)
    __________________________________________________________________________________________________________________________________
    Dieser Beitrag wurde bereits 264 mal editiert, zuletzt von »Fast2« (30. Februar 2009, 12:99)

    Einmal editiert, zuletzt von Fast2 (15. Mai 2008 um 17:04)

  • danke Fast2, aber der Code Funzt noch nicht ganz, hab jetzt erst mal das Fenster geändert von List auf Edit, und das er auch die $Akt_Zeit ließt, nur jetzt noch das mit der Checkbox machen dann funzt es dann vllt noch ein bissle farbe rein bringen danke dir war ein echt hilfreicher beitrag

  • So z.B.:

    Spoiler anzeigen
    [autoit]

    #include<EditConstants.au3>
    #include<GUIDefaultConstants.au3>
    #include<GUIConstantsEx.au3>
    #region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 116, 82, 194, 125,BitOR($WS_CAPTION, $WS_POPUP, $WS_SYSMENU))
    $Input1 = GUICtrlCreateInput("60", 0, 0, 97, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_Number))
    GUICtrlCreateUpdown($Input1)
    $List1 = GUICtrlCreateLabel("", 0, 56, 97, 19,$SS_CENTER+$SS_SUNKEN)
    GUICtrlSetBkColor($List1,0xFF0000)
    $Button1 = GUICtrlCreateButton("Button1", 8, 32, 73, 17, 0)
    $Checkbox1 = GUICtrlCreateCheckbox("", 96, 32, 17, 17)
    GUISetState(@SW_SHOW)
    #endregion ### START Koda GUI section ### Form=
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $Zeit = GUICtrlRead($Input1)
    If BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) = $GUI_CHECKED Then
    GUICtrlSetData($List1, $Zeit * 60)
    Else
    GUICtrlSetData($List1, $Zeit)
    EndIf
    AdlibEnable("COUNT",1000)
    EndSwitch
    WEnd

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

    Func COUNT()
    Local $Zeit = GUICtrlRead($List1)
    If $Zeit <= 0 Then
    AdlibDisable()
    GUICtrlSetBkColor($List1,0xFF0000)
    GUICtrlSetState($Button1,$GUI_ENABLE)
    Return
    EndIf
    GUICtrlSetBkColor($List1,0x00FF00)
    GUICtrlSetState($Button1,$GUI_DISABLE)
    GUICtrlSetData($List1, $Zeit-1)
    EndFunc

    [/autoit]
  • Genau so vielen dank, könntest du es noch machen, dass es wenn es die 10 sec erreicht hat rot gelb wechselt???
    Das wäre noch echt genial,
    Gruß Nismo

    Und vielen danke

  • Also danke nochmals an die obere Hilfe,
    aber ich habe ein anderes Prob,
    Ich habe ein Menü, wenn ihc da auf minimieren gehe kommt ein fenster von wegen tasten kombination, nur habe ich das prob, wenn ich die taste drücke passiert genau "0", ich weiß nämlich nicht wo ich diesen Hotkeyset befehl hinsetzen soll?
    der soll erst aktiv sein, wenn der Button von der Meldenachricht des Minimierens bestätigt ist.

    Also hier ein Teilscript, wo ich die Hozkeyset funktion hingesetzt habe.

    [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Case $MenuItem4
    Exit
    Case $Minimieren
    MSGBox (0, "PC-Kontrollstation", "Tastenkombination `xyz´")
    WinSetState ("PC", "", @SW_HIDE)
    if Hotkeyset ("a") = 1 then
    Winsetstate ("PC", "", @SW_SHOW)
    endif

    [/autoit]

    Bitte erklärt mir wo ich es richtig hinsetzen soll, sodass sich das fenster das gehidet wird wieder angezeigt wird.
    Gruß Nismo

  • Die Farbe Musst du in der Func Count anpasse :)

    [autoit]

    Func COUNT()
    ...
    If $Zeit > 11 Then ; Muss 1 Mehr sein ,da noch die alte zeit gelesen wid :)
    GUICtrlSetBkColor($List1,0x00FF00)
    Else
    GUICtrlSetBkColor($List1,0xFFFF00)
    EndIf
    ...
    EndFunc

    [/autoit]

    //Edit: Verstehe ich nicht, was der hotkey da soll :wacko:

  • ne das ist ein anderes prog, wollte halt nur nicht extra ein neuen thread machen

  • Func COUNT() ... If $Zeit > 11 Then ; Muss 1 Mehr sein ,da noch die alte zeit gelesen wid :) GUICtrlSetBkColor($List1,0x00FF00) Else GUICtrlSetBkColor($List1,0xFFFF00) EndIf ... EndFunc

    Also den Code was du mir geschickt hast, wo oder wie genau soll ich ihn einsetzten?
    ich habe ihn so eingesetzt.

    Spoiler anzeigen
    [autoit]

    Func COUNT()
    Local $Zeit = GUICtrlRead($List1)

    If $Zeit <= 0 Then
    AdlibDisable()
    GUICtrlSetBkColor($List1,0xFF0000)
    GUICtrlSetState($Button1,$GUI_ENABLE)
    If $Zeit < 11 Then ; Muss 1 Mehr sein ,da noch die alte zeit gelesen wid :)
    GUICtrlSetBkColor($List1,0x00FF00)
    Else
    GUICtrlSetBkColor($List1,0xFFFF00)
    EndIf
    Return
    EndIf
    GUICtrlSetBkColor($List1,0x00FF00)
    GUICtrlSetState($Button1,$GUI_DISABLE)
    GUICtrlSetData($List1, $Zeit-1)
    EndFunc

    [/autoit]
  • oder zu diesem Problem, kann ihc es iwie machen, dass wenn ich beim Symbol unten in der Taskleiste da wo die Uhr ist, die rechte maustaste drücke das nicht nur Script Pause und Exit steht? sondern zum Beispiel wiederherstellen?
    WEnn das so gehen würde dann hätte ich das prob mit dem HotKeySet nicht.

    Hoffe das es geht, bitte um hilfe.
    Gruß Nismo


  • Also den Code was du mir geschickt hast, wo oder wie genau soll ich ihn einsetzten?
    ich habe ihn so eingesetzt.

    gehäört so:

    Spoiler anzeigen
    [autoit]

    If $Zeit <= 0 Then
    ...
    EndIf
    If $Zeit < 11 Then ; Muss 1 Mehr sein ,da noch die alte zeit gelesen wid :)
    GUICtrlSetBkColor($List1,0x00FF00)
    Else
    GUICtrlSetBkColor($List1,0xFFFF00)
    EndIf

    [/autoit]