Lesen und schreiben von ini-Datei in ein Delphi-Firemonkey Mobile Anwendung?
Wenn dieser bereits besucht worden, die hier auf ja, bitte zeigen Sie mir, denn ich kann nicht scheinen, um es zu finden. Having said that:
Unter Verwendung der standard-delphi-Anwendung Ereignisse, sowie die Mobile app lifecycle-events handling , ich bin versuchen zu finden der beste Ort, um Lesen und schreiben einer INI-Datei?
als ich den test erstellt habe ich eine demo-app mit einer Taste, die Schritten eine count-variable und zeigt Sie in einer Nachricht anzeigen
procedure TfrmMain.Button1Click(Sender: TObject);
begin
inc(Count);
ShowMessage(IntToStr(Count));
end;
In das Hauptformular OnCreate sogar, ich lese die inidatei
procedure TfrmMain.FormCreate(Sender: TObject);
var
Ini: TIniFile;
begin
Ini := TIniFile.Create( TPath.GetDocumentsPath + PathDelim + 'fortysixtozero.ini' );
try
Count := Ini.ReadInteger( 'Main', 'Count', 0 );
finally
Ini.Free;
end;
end;
Nun, zu wissen, dass eine mobile app können verschiedene Zustände haben, Frage ich mich, wo der beste Platz ist, zum schreiben der ini-Datei?
TPath.Combine
?Was empfehlen Sie zum speichern von Anwendungseinstellungen, wenn keine ini-Datei? Ich bin nicht sicher, warum Sie sind das Fragen mich die Frage, TPath.kombinieren? Wenn Sie sind der Experte, sollten nicht Sie werden mir sagen, wenn ich sollte oder sollte nicht sein, benutzte es? Und warum.
OK dann. Nicht manuell hinzufügen
PathDelim
zu konstruieren Pfad. Verwenden TPath.Combine
. Zum Beispiel " TPath.Combine(TPath.GetDocumentsPath, 'fortysixtozero.ini'). Dies stellt sicher, dass es keine chance gibt wiederholt Pfad-Trennzeichen und macht auch die Absicht viel klarer für den Leser des Codes.Ich habe gerade gegoogelt es und fand es - System.IOUtils.TPath.Combine(System.IOUtils.tpath.getdocumentspath,'test.txt'); - DANK, aber ich habe noch keine Antwort auf meine ursprüngliche Frage, Wann es zu tun zu schreiben. Auch, warum keine ini-Datei. Was empfehlen Sie?
InformationsquelleAutor JakeSays | 2014-04-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Besten Staaten zu retten, die den Zustand der Anwendung oder speichern von Einstellungen ist "aeEnteredBackground". Ich benutzte die delphi-FMX-event hier. Sie sollten auch prüfen, die "aeWillBecomeInactive" und "aeWillTerminate" - events, aber die erste ist die am meisten maßgeblich. Die Anwendung geht in den hintergrund, wenn eine andere Anwendung geöffnet ist oder von Ihnen geschlossen wird (Sie sind nicht terminiert sofort).
Überprüfen Sie diese Artikel.
Der code Listener für Ereignisse wie folgt aussieht:
Befestigen Sie die listener verwenden Sie die Plattform-Dienste:
Einfach "FMX.Plattform" zu Ihrer uses-Klausel.
InformationsquelleAutor Runner
In Delphi XE7, es ist ein "OnSaveState" - Ereignis für Formen. Dies ist der bevorzugte Ort zum speichern von Anwendungsdaten, da es ausgeführt wird, wenn eine iOS-app geht in die "hintergrund" - Zustand. Die Dokumentation ist sehr hilfreich... Suche für "save state".
Hier ist mein code in der main-form die OnCreate-handler:
Und hier ist der code des Formulars OnSaveState handler:
Getestet hab ich dies auf das iPad und Windows und es funktioniert auf beiden Plattformen. Doing es auf diese Weise vollständig vermeidet die Verwendung der .ini-Datei, aber es hat einen etwas seltsam benannt .tmp-Datei in der Windows-version. Ich gehe davon aus, dass eine entsprechende Datei wird auch dann erstellt, auf dem iPad.
InformationsquelleAutor Mark Mears