Einzelnen Beitrag anzeigen

Schokohase
(Gast)

n/a Beiträge
 
#2

AW: DosCommand - Stop erzeugt eine Execption

  Alt 30. Jun 2019, 09:24
Das Problem liegt in der Zeile

Delphi-Quellcode:
{ TDosThread }

constructor TDosThread.Create(AOwner: TDosCommand; ACl, ACurrDir: string; ALines: TStringList; AOl: TStrings; ATimer: TProcessTimer; AMtab, AMtalo: Integer; AOnl: TNewLineEvent; AOnc: TNewCharEvent; Ot: TNotifyEvent; AOtp: TTerminateProcessEvent; Ap: Integer; Aito: Boolean; AEnv: TStrings; AOnCharDecoding: TCharDecoding; AOnCharEncoding: TCharEncoding);
begin
  inherited Create(False);
  FOnCharEncoding := AOnCharEncoding;
  FOnCharDecoding := AOnCharDecoding;
  FEnvironment := TStringList.Create;
  FEnvironment.AddStrings(AEnv);

  FreeOnTerminate := True; // Das ist ein Problem!

  FOwner := AOwner;
  FOwner.FEndStatus := Ord(esStill_Active);
  FCommandLine := ACl;
  FCurrentDir := ACurrDir;
  FLines := ALines;
  FOutputLines := AOl;
  FInputLines := TInputLines.Create;
  FInputToOutput := Aito;
  FOnNewLine := AOnl;
  FOnNewChar := AOnc;
  FOnTerminateProcess := AOtp;
  Self.OnTerminate := Ot;
  FTimer := ATimer;
  FMaxTimeAfterBeginning := AMtab;
  FMaxTimeAfterLastOutput := AMtalo;
  FPriority := Ap;
  FTerminateEvent := TEvent.Create(nil, True, False, '');
end;
Quelle

Kommentiere diese Zeile einfach mal aus und teste ob dadurch noch alles wie gewünscht funktioniert.

Da es keinen einzigen Unit-Test gibt kann man sich nicht sicher sein ob diese Code-Änderung einem irgendwo wieder auf die Füße fällt.
  Mit Zitat antworten Zitat