Startseite › Foren › Deutsches LiveCode-Forum › Variable in App nach Beendigung speichern
- Dieses Thema hat 10 Antworten und 4 Teilnehmer, und wurde zuletzt aktualisiert vor 4 Jahren, 8 Monaten von tehmann.
-
AutorBeiträge
-
-
Januar 18, 2020 um 23:14 Uhr #18264
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
-
Januar 18, 2020 um 23:36 Uhr #18268
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-applicationLG
Torsten -
Januar 19, 2020 um 01:05 Uhr #18271
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
-
Januar 19, 2020 um 10:41 Uhr #18276
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 -
Januar 19, 2020 um 14:52 Uhr #18278
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
-
Januar 19, 2020 um 15:14 Uhr #18280
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
-
Januar 19, 2020 um 17:29 Uhr #18282
Danke hat geklappt nach 1-2 Änderungen.
Mfg Sebastian
-
Januar 26, 2020 um 13:23 Uhr #18441
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 -
Januar 26, 2020 um 15:15 Uhr #18443
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.
-
Januar 26, 2020 um 15:41 Uhr #18445
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
🙂
-
Januar 26, 2020 um 17:47 Uhr #18456
DAnke euch, kann beide Lösungen gebrauchen., LG Thomas
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.