2009-12-28 40 views
0

我正在開發使用拉撒路的程序,即執行GCC:輸出過程

var 
AProcess: TProcess; 

begin 
if SaveDialog1.Execute then 
AProcess := TProcess.Create(nil); 
AProcess.CommandLine := 'gcc.exe ' + SaveDialog1.FileName + ' -o ' TextField23.Text; 
AProcess.Options := AProcess.Options + [poWaitOnExit, poUsePipes]; 
AProcess.Execute; 
AProcess.Free; 
end; 

但我想顯示GCC的日誌(輸出)的另一種形式(OutputForm),即只有一個TMemo(OutputMemo)。

我該怎麼辦?

回答

2

您可以使用TProcess對象的Output屬性。

試試這個代碼

var 
    AProcess: TProcess; 
begin 
    if SaveDialog1.Execute then begin 
    AProcess := TProcess.Create(nil); 
    try 
     AProcess.CommandLine := 'gcc.exe ' + SaveDialog1.FileName + ' -o ' 
     + TextField23.Text; 
     AProcess.Options := AProcess.Options + [poWaitOnExit, poUsePipes]; 
     AProcess.Execute; 

     OutputForm.OutputMemo.Lines.BeginUpdate; 
     //OutputForm.OutputMemo.Lines.Clear; 
     OutputForm.OutputMemo.Lines.LoadFromStream(AProcess.Output); 
     OutputForm.OutputMemo.Lines.EndUpdate; 
    finally 
     AProcess.Free; 
    end; 
    end; 
end; 
+0

當我試過。我得到這個:'找不到標識符'OutputForm'' – 2009-12-28 14:25:03

+1

-1甚至沒有*嘗試*來改善問題中的殘酷代碼。 – mghie 2009-12-28 14:31:13

+2

@mghie,也許你可以提出一個更好的解決方案?而不是批評提議的代碼。 – RRUZ 2009-12-28 14:41:21