Hast Du eine Idee dazu?
Inzwischen habe ich den Event FormSaveState gefunden, der gefeuert wird wenn die App in den Hintergrund geht.
Hier habe ich dann
Delphi-Quellcode:
procedure TFormMain.FormSaveState(Sender: TObject);
begin
if kThread <> nil then
begin
kThread.Terminate;
kThread.WaitFor;
kThread.Destroy;
kThread := Nil;
end;
end;
und dann
Delphi-Quellcode:
procedure TFormMain.FormPaint(Sender: TObject; Canvas: TCanvas;
const ARect: TRectF);
begin
if kThread = nil then
kThread := TKalenderThread.create;
end;
in der Hoffnung, dass beim schieben der App in den Hintergrund der Thread beendet wird und beim Paint der Form wieder einer erzeugt wird falls er noch nicht existiert.
Das funktioniert soweit:
- App starten, Thread wird erzeugt
- App in den Hintergrund, FormSaveState wird gefeuert und der Thread zerstört
- App wieder vorholen, Thread Create läuft fehlerfrei durch aber dann "Segmentation fault (11) und illegal instruction (4)!
Im Thread habe ich alles per try/except abgesichert, da läuft er nirgends rein!
Ciao
Stefan