MyThread = class(Tthread)
protected
procedure Execute; override;
end;
TForm1 = class(TForm)
procedure MyProcedure(ASender : TObject);
procedure ButtonClick(ASender : TObject);
private
public
end;
var
MyProcess: TProcess;
L: TlistStrings;
Combo: TcomboBox;
implementation
uses
{$R *.frm}
{ TForm1 }
procedure ButtonClick(ASender : TObject);
var
Thread: MyThread;
begin
thread := MyThread.Create(True);
thread.OnTerminate:= @MyProcedure;
thread.FreeOnTerminate:= True ;
thread.Start;
end;
procedure MyThread.Execute;
begin
Try
MyProcess:= TProcess.Create(nil);
MyProcess.Executable := 'program.exe';
MyProcess.Parameters.Add('parameter1');
MyProcess.Options := MyThread.Options + [powaitonexit, ponoconsole, pousepipes];
MyProcess.Execute;
L := TStringList.Create;
L.LoadFromStream(MyProcess.Output);
finally
MyProcess.Free;
end;
end;
procedure MyProcedure(ASender : TObject);
begin
try
Combo.items.AddStrings(L);
finally
L.Free
end;
end;