Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   iOS FMX & Application Events? (https://www.delphipraxis.net/184444-fmx-application-events.html)

Mavarik 27. Mär 2015 09:55

FMX & Application Events?
 
Hallo Zusammen!

Ich habe bisher die Application Events sagen wir mal Ignoriert.

Aber es gibt ja die möglich auf Background usw. zu reagieren.
Genauso den Status der App zu speichern, damit der User wieder an der gleichen stelle ist, wenn er sie wieder startet...

Welche "Dinge" macht Ihr in diesen Events?

Mavarik

Daniel 27. Mär 2015 10:01

AW: FMX & Application Events?
 
Zitat:

Zitat von Mavarik (Beitrag 1295033)
Genauso den Status der App zu speichern, damit der User wieder an der gleichen stelle ist, wenn er sie wieder startet.

Dafür würde ich mittlerweile Form.SaveState nutzen. Beim Schliessen des Formulars wird das Event "OnSaveState" ausgelöst. Die benötigten Objekte (ins. SaveState.Stream) stellt das Form selbst zu Verfügung. Anbei ein Trivial-Beispiel, im Ernstfall würde man vermutlich JSON schreiben.

Delphi-Quellcode:
procedure Tfrm_Main.FormSaveState(Sender: TObject);
var
  W: TBinaryWriter;
begin
  SaveState.Stream.Clear;

  W := TBinaryWriter.Create(SaveState.Stream);
  try
    W.Write(Edit1.Text);
    W.Write(Edit2.Text);
  finally
    W.Free;
  end;
end;
und etwa im OnCreate oder dgl. kann man das Zeugs wieder lesen:

Delphi-Quellcode:
procedure Tfrm_Main.FormCreate(Sender: TObject);
var
  R: TBinaryReader;
begin
  SaveState.StoragePath := 'C:\Temp\'; //optional!

  if SaveState.Stream.Size > 0 then
  begin
    R := TBinaryReader.Create(SaveState.Stream);
    try
      Edit1.Text := R.ReadString;
      Edit2.Text := R.ReadString;
    finally
      R.Free;
    end;
  end;
end;

Mavarik 27. Mär 2015 10:10

AW: FMX & Application Events?
 
Zitat:

Zitat von Daniel (Beitrag 1295036)
Dafür würde ich mittlerweile Form.SaveState nutzen. Beim Schliessen des Formulars wird das Event "OnSaveState" ausgelöst. Die benötigten Objekte (ins. SaveState.Stream) stellt das Form selbst zu Verfügung. Anbei ein Trivial-Beispiel, im Ernstfall würde man vermutlich JSON schreiben.

Plus einen Status ob das Form normal beendet wurde?
Oder wird der SaveState nur aufgerufen wenn die App das beendet...

Was ist mit den Background Geschichten?

Hast Du Dir da eine System.Message geschrieben wo alle relevanten "jungs" drauf hören?
- Thread beenden Timer stoppen usw.?
- Und wenn wie wieder an der richtige Stelle starten?

Kommt natürlich alles auf die App an...

Mavarik

arnof 27. Mär 2015 10:23

AW: FMX & Application Events?
 
ich meine bei den emba blog mal was genau zu diesen Thema gelesen zu haben, auch der code , suche einfach mal dort zu diesem Ereignis, das Daniel hier geschrieben hat....


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:27 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