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
        Administrator

          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
              Administrator

                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
                  Administrator

                    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
                      Administrator

                        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
                          Administrator

                            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
                              Administrator

                                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
                                  Administrator

                                    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
                                      Administrator

                                        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
                                        Administrator

                                          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.