Ich hab folgendes Problem: Ich will einen Prozess erstellen und seine StdOut in eine selbstgemachte Konsole umleiten (einfaches Memo)
Jedoch gibt es da das Problem, dass erst zur Beendigung des Prozesses der Output gefüllt wird, sich sozusagen auf dem Schlauch stehe.
Hier der Code:
Code: Alles auswählen
c:=engine.Output.NumBytesAvailable;
if c<>0 then begin
setlength(buffer, c);
c:=engine.Output.Read(buffer[1], c);
if c<>0 then begin // neue Ausgabedaten
setlength(buffer, c);
showmessage('daten: '+buffer);
outlog+=buffer;
tty.Lines.text:=outlog;
tty.SelStart:=length(outlog);
end;
end;
Jedoch bekomme ich die Daten erst zum Ende der Laufzeit. Gibt es für TProcess irgendeinen Flush-Befehl?