Einzelnen Beitrag anzeigen

DelphiManiac

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

einen laufende Ausführung stoppen

  Alt 7. Aug 2007, 15:07
Hallo,

ich habe eine Software für einen Prüfstand entwickelt.
was dort genau passiert habe ich schon hier beschrieben: Prüfsoftware...

Im großen und ganzen sieht das so aus,

ich habe eine abstrakte Klasse TTest, die die Methode Execute hat,
alle Nachfahren der Klasse TTest müssen diese Implementieren.

Beispiel:

Delphi-Quellcode:
  TTestRelais = class(TTest)
  private
  public
    constructor Create; override;
    function Execute:TTestResult; override;
  end;
Gut in der Execute Methode ist die Logik verborgen, die der Test implementiert,
z.B.: Relais 1 ansteuern, gucken ob es geschaltet hat usw...
Sie gibt ein Testresult zurück, (ob erfolgreich, wenn nein, warum nicht..)

Nun habe ich versuch möglichst objektorientiert ranzugehen und habe eine TTestControl Klasse erstellt,
die die Aufgabe hat Tests entgegenzunehmen und First In First Out auszuführen, d.h. die Execute Methode der
TTest-Klasse auszuführen.

Meine GUI erzeugt die Tests und fügt sie TTestControl zu.

Gesteuert werden sollen die Tests nur über TTestControl.

Ich möchte aber nun natürlich noch einen Testabbruch-Button haben, der mir die Testausführung abbricht.
Habe es bisher so gemacht, dass ich es TTestControl mitteile und TTestControl wenn es den nächsten Test ausführen will über
prüft, ob abgebrochen werden soll, und dann ggf. abbricht.

Nun kommt es aber vor, das z.B.: bei eine Kalibrierung in der TTest Execute Methode sehr lange brauch, bis sie fertig ist,
d.h. ich müsste den TTest direkt abbrechen können,

hoffe ihr versteht mein Problem, ich will es möglichst OOP-konform lösen


Danke euch
(Sorry für den langen Text, aber hoffe er hilft für das Verständnis)
  Mit Zitat antworten Zitat