Schachuhr

  • Hallo,


    hat jemand von Euch mal eine digitale Software Schachuhr programmiert oder ein Beispiel dafür gefunden?

    (PS: kurze Frage zu den Forumsregeln - darf man per Link Bilder einer anderen Seite einfügen?)

    [Blockierte Grafik: https://www.chesspoint.ch/318/schachuhr-dgt-2010.jpg]

    Wie auf dem Bild zu sehen ist, wird eine Gesamtzeit von zum Beispiel 30 Minuten eingestellt.


    Die Maximalzeit (also die 30 Minuten im Beispiel) werden auf beide Seiten aufgeteilt, sodass auf jeder Seite 15 Minuten stehen.


    Klickt man auf die linke Seite, dann wird die Zeit herunter gezählt.


    Klickt man auf die rechte Seite, dann wird die Zeit auf der rechten Seite herunter gezählt.


    Wenn auf einer Seite die null erreicht wurde, dann wird auf der anderen Seite weiter herunter gezählt.


    So eine vereinfachte Schachuhr suche ich.


    Vielleicht gibt es sowas bereits.


    Vielen Dank und eine erfolgreiche Woche :)

  • (PS: kurze Frage zu den Forumsregeln - darf man per Link Bilder einer anderen Seite einfügen?)

    Ja. Externe Links sind nur in den Signaturen beschränkt und müssen von Mods/Admins abgesegnet werden.

    Selbst wenn es sowas bereits gibt wäre das doch eine gute Übung, dass selber zu programmieren oder?
    Es gibt sicherlich schon Schachuhren als Programme (aber eher in anderen Sprachen).

  • Wenn es sowas gibt, würde ich das gerne weitergeben :-), da es was allgemeines ist.

    Die Idee hinter der Schachuhr: 2 Gesprächspartner reden häufig am Thema vorbei. Viel Zeit vergeht. Daher bat mich einer, ob ich ihm eine Schachuhr als Motivationshilfe in AutoIt geben kann, die mit zusätzlichen Grafiken versehen wird. Ich wollte helfen - konnte leider nichts vergleichbares finden.

    Spezielle Sachen wie aktuell AutoIt in Verbindung mit Word binden mich völlig.

    CountDown

    Leider ist die _CountDown.au3 von BugFixdown.

    Eventuell wäre das ein Ansatz.

    Da es für die Streithähne eine Motivation sein sollte, war die Idee, dass grafisch ansprechend zu gestalten. Ein motivierendes Layout, das ganze zu benutzen - ja - da ist es bestimmt gut, sich Beispiele anzusehen.

  • Er hat doch das Script gepostet in seinem Beitrag. Kopiers doch einfach raus?


    schmunzel - darauf soll einer kommen, dass die angehängte Funktion auch im Spoiler ist

    danke :)

    (1)

    Ich habe mehrere Scripte ausprobiert und die Schwierigkeit scheint vor allem darin zu bestehen, dass die Anzeige beim Runterzählen der Sekunden flackert. Das erzeugt Augenkrebs :)

    Wie kann man bei der Anzeige der Sekunden das Flackern verhindern?

    (2)

    eukalyptus hat sich dem Thema Countdown in folgendem Thread angenommen:
    (Post 26)

    GDI+ Countdown

    Beim Versuch, das zu testen, gibt es folgende Fehlermeldung:


    Variable used without being declared.:
    DllCall($ghGDIPDll, "uint", "GdipSetPenLineJoin", "hwnd", $hPen, "int", 2)
    DllCall(^ ERROR


    Woran kann das liegen? Erkennt Ihr auf einen Blick, was die Fehlermeldung erzeugt? Die Datumsvariable habe ich bereits auf 2017 verändert.

  • Ich habe mehrere Scripte ausprobiert und die Schwierigkeit scheint vor allem darin zu bestehen, dass die Anzeige beim Runterzählen der Sekunden flackert. Das erzeugt Augenkrebs

    Wenn man das richtig macht dann flackert das nicht. Wenn du auf Gdi+ setzt solltest du einen Buffer verwenden.

    Beim Versuch, das zu testen, gibt es folgende Fehlermeldung:


    Variable used without being declared.:
    DllCall($ghGDIPDll, "uint", "GdipSetPenLineJoin", "hwnd", $hPen, "int", 2)
    DllCall(^ ERROR

    Das liegt daran das einige Variablen in UDFs mit steigender AutoIt-Version umbenannt wurden um Konflikte mit selbstgeschriebenen Scripten zu vermeiden.
    Die $ghGDIPDll wurde umbenannt in $__g_hGDIPDll.

    So funktioniert das ganze schon wieder:

    Er macht das ganze mit einem Buffer (BitmapCreateFromGraphics, ImageGetGraphicsContext) und schreibt da alles rein. Wenn er fertig mit dem zeichnen ist schreibt er alles im Buffer auf das GraphicsElement und cleart anschließend den Buffer. So wird nicht nacheinander alles auf die Graphics gezeichnet sondern alles in einem Rutsch welches das flackern unterbindet.

  • Vielen Dank alpines, der Zoom-Countdown in der GDI Variante sieht wirklich beeindruckend aus.

    Ich schaue mal, ob jemand eine Schachuhr (eventuell sogar als GDI / Grafik Variante) als Beispiel hat, ansonsten vertröste ich meine Bekannte, da ich das neben der AutoIt-Word-Implementierung derzeit leider nicht schaffe.

    Auf jeden Fall sind die Möglichkeiten mit GDI sehr interessant - in einigen Wochen sind aktuelle Themen hoffentlich vom Eis, dann kann ich mich dem widmen. Ein spannendes Thema.

  • Warum nicht einfach was schlichtes was funktioniert? Sollte keine 2 Stunden dauern.
    Du kannst es ja später noch schicker machen wenn du die Zeit hast.


    Da überschätzt Du meine Fähigkeiten.


    Seit 3,5 Stunden probiere ich diverse Timer (Countdown) aus und versuche eine Lösung zu programmieren. Zeitlich muss ich die Reißleine ziehen.


    PS: zu dem Stichwort etwas einfaches – das ist wie mit einem Spielzeug für eine Katze. Wenn es nicht attraktiv genug ist, wird es nicht genutzt. Und Sinn der „Schachuhr“ ist es, dass die beiden Streithähne zeitlich einen passenden Rahmen finden. Sie werden das nicht nutzen, wenn es nur eine simple Funktionalität bietet.


    Ich wollte helfen - kann es aber im Moment nicht im erforderlichen Umfang.
    Und das ist o. k.


    Danke für Deine Hilfe – ich bin dadurch auf ein sehr interessantes Thema GDI gestoßen, mit dem ich mich in einigen Wochen beschäftigen möchte. Und wenn sie sich bis dahin nicht zerpflückt haben, werden sie sich um so mehr um eine gelungene Umsetzung freuen.

  • PS:

    Auf meiner vorherigen Suche bin ich auf folgenden Link gestoßen

    LCD Countdown Timer

    https://www.autoitscript.com/forum/topic/15…comment-1126062

    Dort stehen in Post 1 solche Zeilen:

    [__PRE_PROTECTED]PHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1hdXRvaXQgaXBzQ29kZSIgZGF0YS1wYmNrbGFuZz0iYXV0b2l0IiBkYXRhLXBiY2t0YWJzaXplPSI0Ij4KO2NvZGVkIGJ5IFVFWiAyMDEzLTEwLTI2IChDb3VudGRvd24gZnVuY3Rpb24gdXBkYXRlZCAyMDEzLTEwLTMwKQo7Z3JhcGhpY3MgYW5kIG1pbm9yIGNvZGUgYWRkaXRpb25zIGJ5IHRpbW15MiAyMDEzLTEwLTI4CiNpbmNsdWRlICZsdDtHVUlDb25zdGFudHNFeC5hdTMmZ3Q7CiNpbmNsdWRlICZsdDtX


    Wie bekommt man daraus den Quellcode für AutoIt - und was ist das für eine Darstellung?

    • Offizieller Beitrag

    Ich habe mal schnell so ein Script (Redezeit-Begrenzer) geschrieben:

  • Vielen Dank alpines & Oscar. :)

    Der von mir in Post 10 gefundene Code ist grafisch top. Diesen Code mit den Zeilen aus Post 12 verbinden als Countdown, Umschalter auf einen Button, und ein wenig drumherum ... das sieht nach einer Lösung aus. In einigen Wochen probiere ich, ob ich das schaffe. Der Ansatz ist da. Danke!


    Grünen Haken gesetzt :)

  • Ich habe mal schnell so ein Script (Redezeit-Begrenzer) geschrieben:

    Hallo Oscar,

    ich habe die Zeile

    $aidCounter[0] = GUICtrlCreateLabel('00:00:00', 10, 70, 380, 90, $SS_CENTER, $WS_EX_CLIENTEDGE)

    geändert in

    $aidCounter[0] = GUICtrlCreateLabel('01:20:00', 10, 70, 380, 90, $SS_CENTER, $WS_EX_CLIENTEDGE)

    Wenn ich das Script laufen lasse, dann wird nach wie vor von "00:00:00" an gezählt.

    Wie und wo ergänze ich Dein Script am einfachsten, dass die Redezeit aus dem Label ausgelesen und berücksichtigt wird?

    ... also dass ab "01:20:00" gezählt wird?

    Ich vermute bei

    Case $aidButton[0]

    So dass ich mit

    GUICtrlRead ( $aidCounter[0] )

    die Zeit "01:20:00" auslese.

    Wo und wie muss ich im Script was ändern, damit dieser neue Zeitwert berücksichtigt wird?