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
      Verwalter

      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
      Verwalter

      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.