Пытаюсь из своего приложения запустить другое консольное приложение и вывести на форме результаты.
Делаю так
- Код: Выделить всё
- procedure TPlayThread.Execute;
 var
 MyProcess: TProcess;
 Buffer: array[0..127] of char;
 Readsize: integer;
 ReadCount: integer;
 begin
 MyProcess := TProcess.Create(nil);
 // try
 MyProcess.executable := 'D:\kod\consoletest\ptest.exe';
 Myprocess.parameters.add('1');
 Myprocess.parameters.add('2');
 Myprocess.parameters.add('31');
 Myprocess.parameters.add('Hell1');
 MyProcess.Options := MyProcess.Options + [poUsePipes];
 MyProcess.Execute;
 while MyProcess.Running do
 begin
 if MyProcess.Output.NumBytesAvailable > 0 then
 begin
 ReadSize := MyProcess.Output.NumBytesAvailable;
 if ReadSize > SizeOf(Buffer) then
 ReadSize := SizeOf(Buffer);
 ReadCount := MyProcess.Output.Read(Buffer, ReadSize);
 setstring(fStatusText, Buffer, ReadCount);
 end;
 Synchronize(@ShowStatus);
 end;
 // finally
 MyProcess.Free;
 // end;
 end;
Но вывод в memo забивается одинаковыми строчками данных.
Подскажите как считывать данные по мере поступления.





 
 