• Offizieller Beitrag

    Bei der UDF "GUICtrlClock" handelt es sich um eine Digitaluhr, die man in einer "fast" beliebigen Größe auf der eigenen GUI erstellen kann.
    Die Größe, die man übergibt bestimmt die Fontgröße. Außerdem kann man die X- und Y-Position auf der GUI angeben und die Farbe der Ziffern bestimmen.
    Man kann auch unterschiedliche Uhrzeiten anzeigen lassen und Größe, Position und Farbe auch noch nach dem erstellen verändern.

    Edit 27.09.17: Ich hatte die neuere Version noch gar nicht hochgeladen.

    Screenshot:
    GUICtrlClock_Screenshot.png

    Die UDF und ein Beispiel-Script findet ihr im ZIP-Archiv im Anhang.

  • Hallo,

    vielen Dank für das Script.

    Wenn ich in der UDF die Zeile

    $fBlink = Not $fBlink

    deaktiviere, dann blinkt nichts mehr (= mein Ziel :-)).

    Was muss man ändern, damit man das blinken beim Programmaufruf aktivieren bzw. deaktivieren kann?

  • Vielen Dank Oscar.

    Hat die Funktion nicht nur 2 Parameter?

    Func _GUICtrlClock_SetTime(ByRef $aidClock, $sTime = Default)

    Ich habe im Script folgendes versucht, aber das ging nicht:

    _GUICtrlClock_SetTime( $aClock1 , "" , True ) ; Clock-Array, Date/Time (Optional = Systemtime)

    _GUICtrlClock_SetTime( $aClock1 , , True ) ; Clock-Array, Date/Time (Optional = Systemtime)

    Einmal editiert, zuletzt von AutoMit (26. September 2017 um 19:52)

  • Hallo AutoMit,

    ich verstehe deinen Beitrag nicht. Worauf wolltest du hinaus?

    Hat die Funktion nicht nur 2 Parameter?


    Func _GUICtrlClock_SetTime(ByRef $aidClock, $sTime = Default)


    Ich habe im Script folgendes versucht, aber das ging nicht:


    _GUICtrlClock_SetTime( $aClock1 , "" , True ) ; Clock-Array, Date/Time (Optional = Systemtime)

    _GUICtrlClock_SetTime( $aClock1 , , True ) ; Clock-Array, Date/Time (Optional = Systemtime)

    Deine beiden Aufrufe sind doch offensichtlich nicht gültig. Nicht nur in dieser Funktion nicht, sondern in AutoIt allgemein..

    Grüße autoiter

  • Moin.

    Ich habe die UDF so modifiziert, damit die Punkte blinken oder nicht blinken können:

    Die Zeile Code im Example wäre dann so:

    AutoIt
    _GUICtrlClock_SetTime($aClock1, Default, False)

    Gruß, Conrad

    SciTE4AutoIt = 3.7.3.0 AutoIt = 3.3.14.2 AutoItX64 = 0 OS = Win7Pro SP1 OSArch = X64 Language = 0407/german

    H:\...\AutoIt3\SciTE H:\...\AutoIt3 H:\...\AutoIt3\Include (H:\ = Network Drive)

    86223-publicdomain-88x31-png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind.

    2 Mal editiert, zuletzt von Simpel (26. September 2017 um 21:25) aus folgendem Grund: Code in AutoIt geändert (mußte ich erstmal finden), Erläuterung im Code, Typo

  • Vielen Dank Oscar :) und Simpel :-)

    Wie kann ich nur Stunde und Minute(n) anzeigen? (ohne Sekunden ... das Hochzählen der Sekunden stört ähnlich wie das Blinken der Punkte)

    Ich glaube, dass ist (noch) nicht implementiert, da laut Funktion:

    $sTime ist ein String im Format: "HH:MM:SS", "HHMMSS" oder "YYYY/MM/DD HH:MM:SS"

    Nutze ich:

    _GUICtrlClock_SetTime( $aClock1 , @HOUR & ":" & @MIN , True ) ; Clock-Array, Date/Time (Optional = Systemtime) - ohne blinkende Punkte - nur Stunde und Minute

    ... dann wird nach den Minuten noch ein Doppelpunkt angezeigt, also z.B. " 16:22: "

    Das wird wahrscheinlich zu aufwendig sein, da dann auch die Fenstergröße neu berechnet werden muss ...

    2 Mal editiert, zuletzt von AutoMit (10. Oktober 2017 um 16:26)

    • Offizieller Beitrag

    Das wird wahrscheinlich zu aufwendig sein, da dann auch die Fenstergröße neu berechnet werden muss ...

    Ja, dazu müsste ich die meisten Funktionen umschreiben.

    Als Workaround kannst Du an den Anfang Deines Scripts Global Const $aHide[4] = [4, 5, 8, 9] setzen.

    Und dann nach dem aktualisieren der Uhrzeit (mit _SetClockTime) fügst Du eine Schleife ein:

    AutoIt
    For $iIndex In $aHide
       GUICtrlSetState($aClock3[$iIndex], $GUI_HIDE)
    Next

    So werden die Sekunden und die beiden Punkte versteckt.

  • GUICtrlSetState($aClock3[$iIndex], $GUI_HIDE)

    Die Zeile gab einen Fehler - ich glaube richtig ist (so funktioniert es hier):

    GUICtrlSetState($aClock1[$iIndex], $GUI_HIDE)

    Ein interessanter Ansatz :) ... Fensterbreite reduziere ich noch, dann geht das so.

    Problem gelöst :) Vielen Dank Oscar.