{ 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;