Variable in App nach Beendigung speichern

Startseite Foren Deutsches LiveCode-Forum Variable in App nach Beendigung speichern

Ansicht von 10 Antwort-Themen
  • Autor
    Beiträge
    • #18264
      Zahni2004
      Teilnehmer

        Hallo,
        ich habe ein Option Menu gemacht und dort kann man vier Farben auswählen (Rot,Blau,Grün,Gelb), wenn man dann eine Farbe gedrückt hat ändert sich die ganze App zu dieser Farbe (backgroundColor). Und das Skript setzt auch die jeweilige Farbe in eine globale Variable. Und nach jedem Neustart soll dann aus der Variable ausgelesen werden, welche Farbe zuletzt gewählt wurde. Mein Problem ist allerdings, dass wenn man die App neustartet das die Variable nicht gespeichert wird. Wie kriege ich das hin das Variablen auch noch nach einem App Neustart zu sehen sind.

        Danke im Voraus

        Mfg Sebastian

      • #18268
        Torsten
        Teilnehmer

          Hi Sebastian,

          wenn Du Werte dauerhaft speichern willst, musst Du sie als Property setzen und dann den Stack abspeichern.

          Wenn Du Dein Program als Standalone benutzen willst, muss Du die Werte in einer externen Datei speichern.
          siehe hier: http://lessons.livecode.com/m/4071/l/17375-how-do-i-save-custom-properties-in-a-standalone-application

          LG
          Torsten

        • #18271
          Zahni2004
          Teilnehmer

            Danke für die schnelle Antwort hab jetzt mal ein bisschen getüftelt, es funktioniert auch mit dem Launcher, aber ohne gehts nicht. Wie bekomme ich es denn hin auf Android?

            Mfg Sebastian

          • #18276
            Torsten
            Teilnehmer

              Hi Sebastian,

              hier ist es für Mobile beschrieben: http://lessons.livecode.com/m/4069/l/152290-save-current-state-on-mobile-device

              Der Trick ist, dass Du die Daten, die Du speichern willst, in eine externe Datei schreibst und beim Starten der App wieder aus der Datei holst.

              In deinem Fall würde ich also die Farbe des Hintergrundes jedesmal, wenn Du sie setzt, auch in die Datei schreiben, z.B. so

              ## hier steht der Code mit dem Du die Hintergrundfarbe setzt, 
              ## z.B. set the backgroundcolor of this card to tBackgroundColor
              set the defaultFolder to specialFolderPath("Documents")
              put tBackgroundColor into URL ("file:settings.txt")

              Um die Farbe beim App-Start zu setzen, schreibst Du folgenden Handler in das Stack-Script:

              on openStack
                 set the defaultFolder to specialFolderPath("Documents")
                 put URL ("file:settings.txt") into tBackground
                 set the backgroundcolor of this stack to tBackground
              end openStack

              Happy Coding!
              Torsten

            • #18278
              Zahni2004
              Teilnehmer

                Hallo Torsten,
                Danke für die Antwort hab, ich hätte das sonst nie raus bekommen. Jetzt klappt das auch das die Farbe wieder geladen wird. Jetzt noch eine Frage, wenn ich in meinem Option Menu (wo die vier Farben drinnen sind) eine Farbe auswähle zum Beispiel Grün oder Gelb wie kriege ich das hin das dann nach einem Neustart nicht zum Beispiel Rot im Option Menu steht sondern das was ich vorher auch als Farbe ausgewählt habe. Also sozusagen die ausgewählte Option auch im Option Menu speichern.

                Mfg Sebastian

              • #18280
                Klaus Major
                Administrator

                  Hi Sebastian,

                  Du kannst THE LABEL Deines Optionbuttons setzen:

                  ...
                  ## Es gibt überhaupt keinen Grund, mit "the defaultfolder" rumzumachen! 8-)
                  put url("file:" & specialfolderpath("documents") & "/settings.txt") into tColor
                  
                  ## Sofern nötig
                  set the backgroundcolor of this stack to tColor
                  
                  ## Jetzt kommts:
                  set the label of btn "der Optionbutton mit der Farbauswahl" to tColor
                  ...

                  Und natürlich vorher überprüfen, ob diese Datei überhaupt schon vorhanden ist, nicht wahr?!

                  Gruß

                  Klaus

                • #18282
                  Zahni2004
                  Teilnehmer

                    Danke hat geklappt nach 1-2 Änderungen.

                    Mfg Sebastian

                  • #18441
                    tehmann
                    Teilnehmer

                      Hallo Klaus,
                      ich arbeite auch mit put url(“file:” & specialfolderpath(“documents”) & “/code.txt”).
                      Bei Windows finde ich code.txt im Documents-Ordner.
                      Bei dem Android Smartphone finde ich die Datei nirgendwo. Die App läuft aber fehlerfrei. Irgendwo muss die Datei doch sein?
                      Ich hätte gern die Möglichkeit die Datei von Hand zu löschen, um alles auf Anfang zu setzen.
                      VG
                      Thomas

                    • #18443
                      Torsten
                      Teilnehmer

                        Auf dem Mobilgerät sind normalerweise alle Dateien in einem eigenen Bereich, damit andere Anwendungen eben NICHT irgendwelche Änderungen machen können 🙂

                        Du kannst aber die Datei in den specialFolderPath(“external documents”) legen. Diese Dateien kannst Du dann mit dem TotalCommander finden und verändern.

                      • #18445
                        Klaus Major
                        Administrator

                          Du kannst Dir auch einfach einen Button erstellen:

                          on mouseup
                           put specialfolderpath("documents") & "/code.txt" into tFile
                           if there is a file tFile then 
                             delete file tFile
                            end if
                          end mouseup

                          🙂

                        • #18456
                          tehmann
                          Teilnehmer

                            DAnke euch, kann beide Lösungen gebrauchen., LG Thomas

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