Zitat von
Luckie:
Ich hatte das bisher so gelöst, dass ich eine übergeordnete Klasse benutzt habe und dann davon TSave bzw. TLoad abgeleitet habe.
Das ist doch elegant, in meinen Augen. Und die TSave bzw. TLoad setzt im constructor das Flag in der Mutterklasse und ruft Execute auf. Ist zwar dann genau das Gleiche, als ob du die Flags selbst von aussen setzt, hat aber eben den eleganten Vorteil, dass du eine Load und eine Save Klasse zur Verfügung hast, und du von aussen nicht drum kümmern musst, das Flag zu setzen.
Du könntest natürlich auch weiter mit einer Klasse arbeiten, und den Thread Konstruktor durch einen Parameter erweitern. Das stellt dann sicher, dass auch nicht vergessen wird, das Lese oder Schreibflag zu setzen.
Delphi-Quellcode:
type
TWorkflag = (wfLoad, wfSave) ;
TMyThread = class (TThread)
FWorkFlag : TWorkFlag ;
public
constructor Create (AWorkFlag : TWorkFlag) ; reintroduce ;
end ;