Binäruhr

  • Hallo an alle und rückwirkend ein gesundes neues Jahr
    hier mal meine Version einer Binäruhr

    Spoiler anzeigen
    [autoit]


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

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

    HotKeySet("{ESC}", "ende")
    opt("TrayIconHide",1)
    Opt("GUIOnEventMode", 1)
    Global $test[5][7]
    global $bintime[7]
    dim $ort[7]=[0,"22,16,10,4","23,17,11,5","24,18,12,6","25,19,13,7","26,20,14,8","27,21,15,9"]
    $farbe=0xFFaa00

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 130, 120,@DesktopWidth-139,1,$WS_POPUP + $WS_SIZEBOX ,$WS_EX_TOOLWINDOW)
    GUISetBkColor(0xFFaa00, $Form1)
    GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, "Move")
    global $debug=GUICtrlCreateLabel("",10,80,200,40)
    GUICtrlSetFont($debug,18,400,"","Comic Sans Ms")
    for $a=1 to 4
    for $b=1 to 6
    $test[$a][$b]=$b*16&"|"&$a*15
    next
    Next
    for $a=1 to 4
    for $b=1 to 6
    GUICtrlCreateradio("",stringtrimright($test[$a][$b],3),stringtrimleft($test[$a][$b],3),15,15)
    GUICtrlSetState(-1,$GUI_HIDE)
    next
    Next
    GUICtrlCreateGroup("",14,5,32,75)
    GUICtrlCreateGroup("",46,5,32,75)
    GUICtrlCreateGroup("",79,5,32,75)
    GUISetState(@SW_SHOW)
    #endregion

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

    $SEC = @SEC

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

    While $SEC = @SEC
    Sleep(10)
    WEnd

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

    Func Move()
    ToolTip ( "ESC=Uhr weg" )
    DllCall("User32.dll", "Bool", "PostMessage", "HWND", $Form1, "UINT", $WM_NCLBUTTONDOWN, "WPARAM", $HTCAPTION, "LPARAM", 0)
    ToolTip ( "" )
    EndFunc

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

    While True
    uhrzeit()
    Sleep(100)
    GUICtrlSetData($debug,_NowTime(5))
    ;farbe() ;;;---->>>>> hier
    ;GUISetBkColor($farbe,$Form1) ;;;---->>>>> flackerts
    WEnd

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

    Func uhrzeit()
    If $SEC = @SEC Then Return
    $SEC = @SEC
    $zeit = _NowTime(5)
    $zeit1 = StringSplit($zeit, ":")
    zehner($zeit1[1],1)
    zehner($zeit1[2],3)
    zehner($zeit1[3],5)
    $einer1=stringright($zeit1[1],1)
    einer($einer1,2)
    $einer2=stringright($zeit1[2],1)
    einer($einer2,4)
    $einer3=stringright($zeit1[3],1)
    einer($einer3,6)
    zeitanzeigen()
    EndFunc

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

    func zeitanzeigen()
    for $b=1 to 6
    $pnt=stringsplit($bintime[$b],"+",1)
    $q=stringsplit($ort[$b],",",1)
    for $a=1 to 4
    if $pnt[$a]=1 then
    GUICtrlSetState($q[$a],$GUI_SHOW)
    else
    GUICtrlSetState($q[$a],$GUI_HIDE)
    endif
    Next
    Next
    EndFunc

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

    func einer(byref $einer,$p)
    switch $einer
    case $einer=0
    $bintime[$p]="0+0+0+0"
    case $einer=1
    $bintime[$p]="1+0+0+0"
    case $einer=2
    $bintime[$p]="0+1+0+0"
    case $einer=3
    $bintime[$p]="1+1+0+0"
    case $einer=4
    $bintime[$p]="0+0+1+0"
    case $einer=5
    $bintime[$p]="1+0+1+0"
    case $einer=6
    $bintime[$p]="0+1+1+0"
    case $einer=7
    $bintime[$p]="1+1+1+0"
    case $einer=8
    $bintime[$p]="0+0+0+1"
    case $einer=9
    $bintime[$p]="1+0+0+1"
    EndSwitch
    EndFunc

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

    func zehner(ByRef $zehner,$p)
    Switch $zehner
    case $zehner<10
    $bintime[$p]="0+0+0+0"
    case $zehner>9 and $zehner<20
    $bintime[$p]="1+0+0+0"
    case $zehner>19 and $zehner<30
    $bintime[$p]="0+1+0+0"
    case $zehner>29 and $zehner<40
    $bintime[$p]="1+1+0+0"
    case $zehner>39 and $zehner<50
    $bintime[$p]="0+0+1+0"
    case $zehner>49 and $zehner<60
    $bintime[$p]="1+0+1+0"
    EndSwitch
    EndFunc

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

    Func Ende()
    Exit
    EndFunc

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

    func farbe()
    $zeit = _NowTime(5)
    $zeit1 = StringSplit($zeit, ":")
    $farbe="0x"&Hex($zeit1[1],2)&Hex($zeit1[2],2)&Hex($zeit1[3],2)
    EndFunc

    [/autoit]

    vllt ein paar Tipps für das Flackerproblem aus Zeile 55 ???

  • Jep Nice Proggi.
    Aber wozu ist

    [autoit]

    Opt("TrayIconHide",1)

    [/autoit]


    da drin ?
    Na egal 8)

  • [autoit]

    #NoTrayIcon

    [/autoit]

    wäre hier besser,
    da dies ein Präprozessorbefehl ist, somit wird er beim Start des Scripts sofort ausgeführt und das Icon taucht auch nicht für Bruchteile einer Sekunde auf.

    Sonst gefälllt mir die Uhr aber sehr!