Es gibt einige Lösungen dazu im Netz, die meist aber erst das Ergebnis zurückliefern, wenn die Anwendung beendet wurde.
Wenn dir das nicht reicht, kannst du meine Klasse aus der
Unit im Anhang benutzen. Sie stellt Events bereit, die aufgerufen werden, wenn neue Daten ankommen.
Beispiel:
Delphi-Quellcode:
type
TMyForm = class(TForm)
...
protected
FRedirector: TConsoleRedirector;
procedure MyEventHandler(Sender: TObject; const Data: string);
end;
procedure TMyForm.MyEventHandler(Sender: TObject; const Data: string);
begin
Memo1.Text := Memo1.Text+Data;
end;
procedure TMyForm.FormCreate(...);
begin
FRedirector:= TConsoleRedirector.Create;
FRedirector.OnReadOutput := MyEventHandler;
end;
procedure TMyForm.MyButtonClick(...);
begin
FRedirector.Start('cmd /K ping google.com');
end;