Guten Morgen,
erstmal vielen Dank für die vielen Vorschläge. Im Einzelnen:
1. es gibt kein onclose, kein onclosequery, nur ein destroy:
Delphi-Quellcode:
If HotKeySet then
UnRegisterHotKey(Self.Handle, HotKeyID);
2. Es gibt 2x processMessages, einmal in einer Dateisuche, und dann in einem Test,
ob ein Programm läuft. Aber auch diese Formulare werden erst zu einem Zeitpunkt erzeugt,
an dem das Programm schon längst über das Kreuz beendet ist (eben nach erstem Schirm)
3. Ich erzeuge kaum Objekte (siehe 2), denn jedes Formular bis auf die ersten 3 werden erst
zur Laufzeit jeweils erzeugt und dann immer mit
Screen.ActiveForm.Release;
freigegeben.
4. Wenn ich nach ein paar Sekunden der "Unsichtbarkeit" den Pause-Button drücke, dann lande ich
tatsächlich in (siehe 3) dem
Screen.ActiveForm.Release;
Das sieht so aus, dass bei jedem Formularwechsel folgendes passiert in onHide:
speicherfreigeben();
und in einem Formular sind alle Methoden gesammelt. Dort ist auch speicherfreigeben(); :
Delphi-Quellcode:
procedure speicherfreigeben();
begin
try
Screen.ActiveForm.Release;
except
ShowMessage('Ein schwerwiegender Fehler ist aufgetreten. #13#10Das Programm wird geschlossen. #13#10 Bitte starten Sie es neu.');
Application.Terminate;
end;
end;
Und Formulare werden so gewechselt:
Delphi-Quellcode:
hide;
F_Hier_Starten := TF_Hier_Starten.create(Application);
F_Hier_Starten.show;
Vielleicht hilft euch das weiter...
Vielen Dank,
litotes