Einzelnen Beitrag anzeigen

Metschu

Registriert seit: 31. Dez 2006
151 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Prüfen, ob Thread noch Aktiv

  Alt 18. Okt 2014, 21:30
Delphi-Version: XE
Hallo zusammen,

ich habe da ein kleines Problem mit den Threads. Dieser wird über einen Button gestartet und über den selber auch wieder beendet.
Dies klappt beim ersten mal. Wenn ich den Thread ein zweites mal starten möchte, lande ich wieder beim Beenden, also in der Else-Abteilung...

Hier der Code dazu:

Delphi-Quellcode:
procedure TTrapo_II_Form.ReplayProc(Sender: TObject);
begin;
 if not assigned (replay)// replay = NIL <- als Test mit dem gleichen Ergebnis
  then begin;
   opendialog.Filter := 'PSM Logdaten|*.clg';
   opendialog.InitialDir := extractfilepath(application.ExeName)+'Daten\Aufzeichnungen\';
   if opendialog.Execute
    then begin;
     replay := TReplay_Thread.Create(true);
     replay.pfad := opendialog.FileName;
     Replay.Priority := tpIdle;
     Replay.FreeOnTerminate := true;
     Replay.start;
    end;
    replayBtn.ImageIndex := 7;
    replayBtn.Caption :=' Anhalten';
  end
  else begin;
    replay.Terminate;
    replayBtn.ImageIndex:=5;
  end;
end;
Der Versuch "replay.isRunning" schlägt fehl, da Replay erst danach erstellt wird.
Wie kann ich "Replay" im Else Zweig so aus dem Speicher bekommen, das ich beim nächsten klick wieder Starten kann ?

Danke schonmal.

Gruß

Torsten
Torsten
Ich kam, sah und alles Funktionierte.
Dann klingelte mein Wecker...
  Mit Zitat antworten Zitat