Einzelnen Beitrag anzeigen

DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#8

Re: einen laufende Ausführung stoppen

  Alt 8. Aug 2007, 16:25
@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
  Mit Zitat antworten Zitat