Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Delphi Einstellungen speichern unter FMX (Android) (https://www.delphipraxis.net/178375-einstellungen-speichern-unter-fmx-android.html)

zeras 4. Jan 2014 17:41

Einstellungen speichern unter FMX (Android)
 
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]));

zeras 4. Jan 2014 19:38

AW: Einstellungen speichern unter FMX (Android)
 
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.

Harry Stahl 5. Jan 2014 01:00

AW: Einstellungen speichern unter FMX (Android)
 
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.

Mavarik 5. Jan 2014 01:25

AW: Einstellungen speichern unter FMX (Android)
 
Warum schreibst Du Deine Einstellungen nicht einfach in eine SQLite Datenbank?
Das sind doch nur wenige Zeilen Delphi.

Mavarik

Harry Stahl 5. Jan 2014 10:29

AW: Einstellungen speichern unter FMX (Android)
 
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.

zeras 5. Jan 2014 10:33

AW: Einstellungen speichern unter FMX (Android)
 
Zitat:

Zitat von Harry Stahl (Beitrag 1242173)
....

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'

jfheins 5. Jan 2014 10:38

AW: Einstellungen speichern unter FMX (Android)
 
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.

Harry Stahl 5. Jan 2014 12:16

AW: Einstellungen speichern unter FMX (Android)
 
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).

zeras 5. Jan 2014 12:31

AW: Einstellungen speichern unter FMX (Android)
 
Zitat:

Zitat von Harry Stahl (Beitrag 1242220)
...
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.

RWarnecke 5. Jan 2014 16:16

AW: Einstellungen speichern unter FMX (Android)
 
Hier noch ein Link zu INI-Files für Android und Windows (Crossplatform).


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:03 Uhr.
Seite 1 von 2  1 2      

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