@Luckie: Ich habe Windows XP
@marabu: Danke für den Hinweis. Der Code ist jetzt etwas schlanker, aber leider funktioniert es immer noch nicht. Nach ca. 3 Sekunden schließt Windows den Prozess. Die ersten 10 Sekunden hält er also nicht mal durch. Wie soll denn das funktionieren, wenn ich vorher eine große Datenmenge abspeichern will? Ich bin am verzweifeln...
Delphi-Quellcode:
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
memo1.Lines.add('Close');
end;
procedure TForm2.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
memo1.Lines.add('QClose');
thr.Terminate;
thr.Free;
end;
procedure TForm2.Timer1Timer(Sender: TObject);
begin
timer1.Enabled := false;
SetPriorityClass(GetCurrentProcess, IDLE_PRIORITY_CLASS);
thr := TMyThread.create;
thr.Resume;
end;
procedure TMyThread.AfterTermination(Sender: TObject);
begin
form2.memo1.Lines.add('1');
sleep(10000);
form2.memo1.Lines.add('2');
sleep(10000);
form2.memo1.Lines.add('3');
sleep(10000);
end;
constructor TMyThread.create;
begin
inherited create(true);
OnTerminate := AfterTermination;
end;
procedure TMyThread.Execute;
begin
repeat
if Terminated then break;
form2.Label1.Caption := inttostr(strtoint(form2.Label1.Caption)+1);
until false;
form2.memo1.Lines.add('ExecuteFertig');
end;
Gruß
blackdrake