Mit Button Zeitzone von der Uhr ändern

Startseite Foren Deutsches LiveCode-Forum Mit Button Zeitzone von der Uhr ändern

Schlagwörter: 

Ansicht von 17 Antwort-Themen
  • Autor
    Beiträge
    • #4793
      Zahni2004
      Teilnehmer

      Hallo unszwar habe ich die Frage wie man mit einem Skript den man z.B. auf einem Button legt dann die Zeitzone von einer bestimmten Uhr ändern kann. Hier mein Vorschlag der leider nicht geht.

      set the timeZone of clock „clock“ to hawaii

      LG Sebastian

    • #4795
      Klaus Major
      Verwalter

      Beinahe! 🙂

      set the timezone of WIDGET „clock“ to XXXX

      XXXX = Offset zu „Universal time (UTC)“ in SEKUNDEN.
      https://de.wikipedia.org/wiki/Koordinierte_Weltzeit
      Ein blick in das Dicntionary ist IMMER eine gute Sache! 😎

    • #4797
      Zahni2004
      Teilnehmer

      Danke

    • #4799
      Zahni2004
      Teilnehmer

      Ist es auch möglich das wenn man eine bestimmt Zeitzone in ein Textfeld schreibt das die Uhr dann automatisch aus dem Textfeld die Zeitzone entnimmt?

    • #4803
      Klaus Major
      Verwalter

      Sollte klappen, wenn du im Feld den entsprechenden Befehl in einen „on closefield“ Handler dieses Feldes verpackst.

    • #4805
      Zahni2004
      Teilnehmer

      kannst du mal bitte ein beispiel Skrịpt schreiben für Uhr und für Textfeld?

      LG Sebastian

    • #4807
      Klaus Major
      Verwalter

      Skript für das Feld:

      ## Wird aufgerufen, wenn das Feld verlassen (= sich der FOCUS ändert) wird und sich der Feldinhalt geändert hat:
      on closefield
      
        # Natürlich darf nur eine ZAHL in dem Feld stehen!
        put the text of me into tZeitDifferenz
        set the timezone of WIDGET "clock" to tZeitDifferenz
      end closefield
      
      ## Zur Sicherheit die Eingabe ins Feld auf ZAHLEN beschränken
      on keydown tKey
       if tKey is in "0123456789" then
         pass keydown
       else
        beep
        answer "Bitte nur Zahlen eingeben!"
       end if
      end keydown

      Das Uhren-Widget benötigt kein Skript!

    • #4809
      Zahni2004
      Teilnehmer

      Und wie stell ich den die Uhrzeit ein?

    • #4811
      Klaus Major
      Verwalter

      Gern geschehen! 😎

      Aber es heisst DENN, „Und wie stell ich DENN die Urzeit ein“! Weitersagen!

      Vielleicht ist Dir schon aufgefallen, daß die Uhr automatisch richtig geht, wenn man auf das Browse Tool umschaltet? Das Widget holt sich immer die Uhrzeit vom darunterliegenden Betriebsystem, die Uhrzeit kannst Du nicht einstellen.

      Wenn Du „the timezone“ des Widgets setzt, stellt sie sich auch automatisch um.

    • #4813
      Zahni2004
      Teilnehmer

      Erstmal danke für deine ganzen schnellen Antworten und ja genau ich kann ja die Zeitzone auswählen und wenn ich das richtig verstanden habe ist das Script was du vorhin geschrieben hast das ich die Zeitzone über das Textfeld eingeben kann aber wie mache ich das jetzt

    • #4817
      Klaus Major
      Verwalter

      Bitte setze doch hier und da mal ein paar Kommata und einen Punkt, das kann man sehr schlecht lesen, danke. Oder tippst Du auf einem Handy?

      Wie „aber wie mache ich das jetzt“?
      Ist doch Deine Idee, oder nicht? 😎

      Na gut:
      1. Erstelle auf einer Karte ein Uhren Widget und ein Feld.
      2. Für das Feld stellst Du im Inspektor „autotab“ (Tab on return) ein, also die entsprechende Checkbox anklicken. Diese Propertey sorgt dafür, daß ein TAB, RETURN oder ENTER im Feld selbiges schliesst und somit das Skript aufruft. Das wird aber nur funktionieren, wenn mindestens ZWEI bearbeitbare Felder auf der Karte liegen. Ist das nicht der Fall, reicht es auch, NEBEN das Feld zu klicken, um es zu „schliessen“ und sonmit das Skript aufzurufen.
      3. Dann dem Feld mein Skript von oben zuweisen.
      4. Fertig!

      Nun mal eine Zahl*** ins Feld eingeben und auf die RETURN oder ENTER Taste drücken.
      Und denk dran, die benötigten Zahlen sind Sekunden.

      *** Es können auch negative Zahlen sein, also z.B. -7200
      Dazu musst du aber diese Skriptzeile ändern und das Minuszeichen – als erlaubtes Zeichen im IF Fall hinzufügen:

      if tKey is in „-0123456789“ then

    • #4834
      Zahni2004
      Teilnehmer

      Danke. So das mit dem Textfeld geht, aber das mit dem Button funktioniert irgendwie nicht. Da ändert sich kein einziger Zeiger in der Uhr.

      LG Sebastian

    • #4836
      Klaus Major
      Verwalter

      Welcher Button? Mit welchem Skript?

      Nun lass Dir doch bitte nicht alles aus der Nase ziehen! 🙂

    • #4838
      Zahni2004
      Teilnehmer

      Na ein Standardbutton mit dem Skript was du geschrieben hattest:set the timezone of WIDGET „clock“ to XXXX

      XXXX = Offset zu „Universal time (UTC)“ in SEKUNDEN.

    • #4840
      Klaus Major
      Verwalter

      Wenn das selbe Skript vom Feld erfolgreich ausgeführt wird,
      müsste der Button genau so funktionieren!?
      Gibt es eine Fehlermeldung? Welchen Wert hast Du denn angegeben?
      Hoffentlich nicht wirklich XXXX! 😎

    • #4842
      Zahni2004
      Teilnehmer

      nein ich habe nicht xxxx angegeben sondern 3600.

    • #4844
      Klaus Major
      Verwalter

      War nur ein kleiner Test Deiner Aufmerksamkeit! 😀

      Nun, 3600 Sekunden sind genau eine Stunde und das IST bereits der Offset für unsere Zeitzone hier in D!
      Schau Dir die „timezone“ im Inspektor für das Widget an.

      Gib mal 7200 ein, dann siehst Du auch was in der Uhr, gib 0 ein und Du siehst die originale UTC,
      nämlich eine Stunde früher als in Deutschland.

      Auf der oben erwähnten Wikipedia-Seite gibt es ein schönes und großes Bild aller Zeitzonen, guck Dir das mal genauer an.

    • #4846
      Klaus Major
      Verwalter

      Gut gemeinter Rat:
      Gewöhn Dir an, solchen Sachen (Zeitzone von Deutschland etc.!) selber zu recherchieren.
      Als angehender Programmierer musst Du Dich leider um sehr viele Sachen kümmern und Hintergrundrecherche über alle möglichen Zusammenhänge und Fakten wie hier gehört nun mal dazu.

Ansicht von 17 Antwort-Themen
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.