@Reinhard Kern
Zitat:
Deine
GUI kann doch den TTests eine neuen Auftrag übergeben, dann wird sie TTests ja wohl auch anweisen können, eine Variable ContinueTest auf false zu setzen - und dann stoppt die Ausführung eben bei der nächsten Abfrage dieser Variable. Egal ob extra Thread oder nicht.
Ja da hast du Recht, meine
GUI übergibt (je nachdem welches Häckchen gesetzt ist) die TTests an die TestControll Klasse,
aber es soll sie ja gar nicht interessieren, ob und welcher Test aktiv ist, das soll und weiß nur TTestControll,
meine Controller Klasse abstrahiert dieses Wissen.
Ich sage ja nicht, dass es mit deinem Vorschlag nicht geht, aber ich habe in letzer Zeit gemerkt, wenn man nur halbherzig
OOP
einsetzt, dann fällt einem das irgendwann auf die Füße, deswegen, wollte ich den
OOP-Weg an der Stelle gehen,
"richtig" oder "falsch" gibt es ja sowieso nicht.
Ich habe es aber jetzt so wie Klaus01 es vorgeschlagen hat gemacht,
d.h.
Die
GUI, die ja den Controller (vom Typ TControlTest) kennt weißt diesen an, den aktuellen Test,
den ja die Controller Klass kennt zu beenden,(es wird dann eine Setter Methode des Tests aufgerufen,
und intern dann eine Variable
FshouldStopp:=true;
gesetzt, diese überprüfe ich dann auf true (vorallendingen in meinen Schleifen...) und breche dann ab
@Luckie:
Das mit einem Thread hatte ich mir auch schon überlegt, aber dann wieder verworfen, da ich über Prozedurzeigern sehr oft Methoden der
GUI aufrufe, und ich dann wieder hätte synchronisieren müssen...
Danke allen, die sich hier beteiligt haben
Gruß
DelphiManiac
// Formatierung geändert