Du baust dir eine Klasse, die diese Tasks verwaltet.
Nur mal ganz grob skizziert:
Delphi-Quellcode:
type
IReportProgress =
interface
procedure Progress( PercentProgress : Integer );
overload;
procedure Progress( PercentProgress : Integer;
const Info :
string );
overload;
end;
TBackgroundRunner =
class
public
// Diese Methoden werden nacheinander in einem Task abgearbeitet
// Beim Beenden wird der Callback ausgeführt
// Im Callback-Argument liegt bei einer aufgetretenen Exception die Exception
procedure Execute( AProc : TProc; OnFinishCallback : TProc<TObject> );
overload;
// Diese Methode kann über den Fortschritt berichten
// Beim Aufruf müssen wir also eine ProgressInstanz mitgeben, die dann das
// ProgressDialog-Fenster benachrichtigt
procedure Execute( AProc : TProc<IReportProgress>; OnFinishCallback : TProc<TObject> );
overload;
property OnStart : TNotifyEvent;
// Ein Progress-Dialogfenster anzeigen
property OnFinish: TNotifyEvent;
// Das Progress-Dialogfenster wieder ausblenden
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)