AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Delphi Einstellungen speichern unter FMX (Android)
Thema durchsuchen
Ansicht
Themen-Optionen

Einstellungen speichern unter FMX (Android)

Ein Thema von zeras · begonnen am 4. Jan 2014 · letzter Beitrag vom 7. Jan 2014
Antwort Antwort
Seite 1 von 2  1 2      
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.618 Beiträge
 
Delphi 12 Athens
 
#1

Einstellungen speichern unter FMX (Android)

  Alt 4. Jan 2014, 17:41
Ich möchte einige Einstellungen speichern für mein Programm. Vorerst unter Android.
Dabei möchte ich eigentlich eine INI Datei speichern. Da das nicht geht, habe ich mal folgenden Code aus Beispielen probiert. Aber auch da erscheint keine entsprechende Datei.
Bei den Projektoptionen habe ich unter "Verwendete Berechtigungen"
"Externen Speicher lesen und schreiben" gesetzt.


Delphi-Quellcode:
 fName := TPath.GetHomePath + TPath.DirectorySeparatorChar + 'sample1.txt';

  TFile.WriteAllText(fName, 'This is my sample text.');

  fName := GetHomePath + PathDelim + 'Documents' + PathDelim + 'sample2.txt';

  ForceDirectories(ExtractFilePath(fName));

  TFile.WriteAllText(fName, 'This is my sample text.');

  ShowMessage(Format('Datei 2 für Inifile "%s"', [fName]));
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.618 Beiträge
 
Delphi 12 Athens
 
#2

AW: Einstellungen speichern unter FMX (Android)

  Alt 4. Jan 2014, 19:38
Es muss irgendwie mit dem "primary user" zusammenhängen, denn offensichtlich schaue ich mit meinem Explorer auf den falschen Pfad des Tablets. Da das App dann dauerhaft laufen soll, wollte ich nicht noch einen User erstellen.
Vielleicht habe ich durch den primären user keine Rechte.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.479 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Einstellungen speichern unter FMX (Android)

  Alt 5. Jan 2014, 01:00
Doch, Du kannst ohne Probleme mit Ini-Dateien arbeiten. Warum geht das Deiner Meinung nach nicht?

Als Pfad kannst Du z.B. Tpath.GetDocumentspath oder auch TPath. GetsharedDocumentsPath verwenden. Erster ist nur für Dein Programm erreichbar, in den zweiten Pfad kannst Du z.B. auch mit dem Dateimanager rein.

Die Verwendung der beiden Pfade kann ganz praktisch sein. In einer Demo-Version meines PC-Adreßzz für Android liefere ich eine Beispiel-Adressendatei mit, die unter Verwendung des ersten Pfads benutzt wird. So können User das Programm testen, aber keine eigenen Adressdateien der Desktop-Version zur Nutzung in die Programmumgebung kopieren. Die Vollversion arbeitet hingegen mit dem Shared-Path, so dass die User dann dort eigene Adressdateien ablegen und auch wieder herauskopieren können.

Geändert von Harry Stahl ( 5. Jan 2014 um 01:11 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.126 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Einstellungen speichern unter FMX (Android)

  Alt 5. Jan 2014, 01:25
Warum schreibst Du Deine Einstellungen nicht einfach in eine SQLite Datenbank?
Das sind doch nur wenige Zeilen Delphi.

Mavarik
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.479 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Einstellungen speichern unter FMX (Android)

  Alt 5. Jan 2014, 10:29
Wäre das nicht der Overkill, wegen ein paar Ini-Werte eine Datenbank einzubauen? Muss allerdings gestehen, daß ich Sqlite nicht kenne und daher nicht weiß, welcher Overhead dadurch entsteht.
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.618 Beiträge
 
Delphi 12 Athens
 
#6

AW: Einstellungen speichern unter FMX (Android)

  Alt 5. Jan 2014, 10:33
....

Als Pfad kannst Du z.B. Tpath.GetDocumentspath oder auch TPath. GetsharedDocumentsPath verwenden.
Ich nehme
Delphi-Quellcode:
 fDir := TPath.GetSharedDocumentsPath + TPath.DirectorySeparatorChar;
  fName := fDir + NameSetup;

  Ini := TiniFile.Create(fName);

  try
    begin

      SprachAusgabeOn := CheckBox1.IsChecked;

      Ini.WriteBool('Setup', 'Sprachausgabe', SprachAusgabeOn);

    end;

  finally
    Ini.Free;
  end;
zum schreiben in die INI Datei.
Auslesen dann analog.
Ich habe jetzt im Dateimanager den Pfad gefunden, wo die Datei angelegt wird.
Wenn ich aber das Programm neu starte und noch auf dem Explorer bin, sehe ich die Datei und dann ist diese weg. Es sieht so aus, als wenn mir jemand die Datei löscht. Wer sollte das aber sein?
Pfad der Datei ist:
'/storage/emulated/0/Android/data/com.embarcadero.Analoguhr/files/Settings.cfg'
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#7

AW: Einstellungen speichern unter FMX (Android)

  Alt 5. Jan 2014, 10:38
Es gibt wohl Shared Preferences die hinter den Kulissen auf die Datenbank zugreifen.

Eine SQLite Datenbank ist wohl im Betriebssystem auch immer vorhanden, so dass man da eigentlich nichts mitliefern müsste.
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.479 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Einstellungen speichern unter FMX (Android)

  Alt 5. Jan 2014, 12:16
Zitat:
Wenn ich aber das Programm neu starte und noch auf dem Explorer bin, sehe ich die Datei und dann ist diese weg. Es sieht so aus, als wenn mir jemand die Datei löscht. Wer sollte das aber sein?
Da ich nicht mit dem Emulator arbeite, kann ich Dir da leider keinen Tipp geben. Beim Device ist es so, dass jedesmal, wenn man das Programm erneut bereitstellt, alles bereinigt wird und auch selber erzeugte Dateien (in den Dokumentenverzeichnissen) gelöscht werden. Wenn man das Programm allerdings beendet und dann nochmal vom Gerät aus startet, sind die Daten da und man kann damit arbeiten.

Vielleicht sollte ich noch erwähnen, dass selbst erzeugte Daten erhalten bleiben, wenn der Anwender das Programm erneut installiert (z.B. ein Update aus dem Store oder von Deiner Homepage). Das funktioniert also etwas anders, als die Delphi-Bereitstellung.

Ich würde Dir generell empfehlen, auf dem Gerät zu arbeiten. Das ist deutlich schneller und Du siehst direkt am Original-Device, wie sich das Programm verhält. Für einfache Sachen zwischendurch kann man sehr gut die Win32-Plattform zum Testen verwenden (ich bin sehr dankbar für diese Möglichkeit, das beschleunigt die Sache erheblich).

Geändert von Harry Stahl ( 5. Jan 2014 um 12:22 Uhr)
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.618 Beiträge
 
Delphi 12 Athens
 
#9

AW: Einstellungen speichern unter FMX (Android)

  Alt 5. Jan 2014, 12:31
...
Beim Device ist es so, dass jedesmal, wenn man das Programm erneut bereitstellt, alles bereinigt wird und auch selber erzeugte Dateien (in den Dokumentenverzeichnissen) gelöscht werden. Wenn man das Programm allerdings beendet und dann nochmal vom Gerät aus startet, sind die Daten da und man kann damit arbeiten.
Das wird das Problem sein.
Ich arbeite immer mit dem Gerät selber, nicht mit dem Emulator.
Da ich aber viel neues ausprobiere und damit wieder das Programm bereitstelle, sind mir jedesmal die INI Dateien weg. Das will ich irgendwie verhindern.
Ob es mit SQLite besser wäre, weiß ich nicht, aber ich wollte nicht gleich mit einer DB anfangen für mein Projekt.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#10

AW: Einstellungen speichern unter FMX (Android)

  Alt 5. Jan 2014, 16:16
Hier noch ein Link zu INI-Files für Android und Windows (Crossplatform).
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz