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