2009-12-31 75 views
3

它說產生一個winform:如何在不安裝IDE的情況下編譯並運行此Delphi代碼?

var 
    F : TForm; 
    L : TLabel; 
begin 
    F := TForm.Create(Application); 
    L := TLabel.Create(F); 
    L.Parent := F; // Needed to have it show up on the form. 
    L.Left := 50; 
    L.Top := 50; 
    L.Caption := 'This is an example'; 
    F.Show; 
end; 

事實上,從my previous question的。

如果是C程序,我可以運行這樣說:

> gcc foo.c -o foo.exe 
> foo.exe 

我怎麼能做到這一點同樣在Delphi?

+0

只是檢查你的前一個問題的答案拉爾斯! – 2009-12-31 16:38:08

+0

我也爲這個問題添加了我的答案。感謝提示Hugues。 – 2009-12-31 16:47:51

+0

聽起來很像這個問題:http:// stackoverflow。com/questions/1813477/gui-only-by-using-fpc – 2009-12-31 19:14:32

回答

1

容易得多,只是

dcc32 "name of the project" 

即使存在了10個單位的項目,編譯器將autoresolve它,如果當前單元搜索路徑中(見DCC32.CFG文件,或者用-U添加迪爾斯和-一世)。請注意,Delphi的某些「免費」資源管理器版本不帶有cmdline編譯器。

對於.NET,它是dccil。

當然,如果與gcc比較,Free Pascal/Lazarus是更合理的選擇(但不適用於.NET)。

+0

「項目名稱」是什麼意思?我只有一個包含我粘貼的代碼的文件。 – user198729 2009-12-31 16:33:54

+1

這不會編譯。上面的代碼假定你已經創建了一個項目,並在其中添加了一個單元,並在其中執行該代碼。我認爲你是Delphi的新手?我可以建議先使用IDE嗎?看看http://www.delphibasics.co.uk/Article.asp?Name=FirstPgm – 2009-12-31 16:47:15

+0

是的,我是新來的delphi.But我不想參考IDE.I想知道一般編寫,編譯和運行delphi程序的步驟。 – user198729 2009-12-31 17:14:12

9

爲了編譯Delphi代碼,你需要一個編譯器。 Delphi沒有免費的版本,除非你能找到一箇舊的版本,否則你不得不購買Delphi。 Delphi帶有一個像gcc這樣的命令行編譯器,並且可以在沒有IDE的情況下編譯程序。

德爾福2006年和Win32前:

dcc32 YourProject.dpr 

德爾福2006年和.Net前:

dccil YourProject.dpr 

德爾福2007年後:

msbuild YourProject.dproj 

這將導致一個編譯的二進制如果是EXE,你可以像你習慣的那樣運行它。

德爾福有免費的替代品,如FreePascal和他們的免費IDE Lazarus。我沒有檢查過自己,但我很確定它也帶有一個命令行編譯器。

+0

如果你有dcc32.exe沒有庫(系統,VCL,3rd應用程序中使用的第三方組件等),它甚至不會編譯使用TForm的簡單項目。要在沒有Delphi安裝的情況下從命令行進行編譯,您需要至少指定這些庫的路徑。 – ThinkJet 2009-12-31 17:13:21

2

您應該將此代碼寫入DPR文件。一個DPR文件的一般結構是這樣的:

program {ProgramName}; 

uses {List of used units}; 

begin 
    {Your code} 
end. 

因此,對於上面的代碼你的DPR文件將是這樣的:

program Project1; 

uses 
    Forms, StdCtrls; 

var 
    F : TForm; 
    L : TLabel; 
begin 
    F := TForm.Create(nil); 
    try 
    L := TLabel.Create(F); 
    L.Parent := F; // Needed to have it show up on the form. 
    L.Left := 50; 
    L.Top := 50; 
    L.Caption := 'This is an example'; 
    F.ShowModal; 
    finally 
    F.Free; 
    end; 
end. 

您可以用文本編輯器輸入這個代碼,將其保存爲Project1.dpr。

現在你可以用Delphi的命令行編譯器來編譯:

dcc32.exe Project1.dpr

+0

恐怕這也行不通,但這是一個好的開始。需要創建應用程序,並且需要調用Application.Run,​​否則應用程序將不會泵送消息並立即退出。請參閱常規VCL應用程序的.dpr文件中的代碼。 – 2010-01-02 11:04:42

+0

是的,但爲了防止這種情況,我使用ShowModal而不是Show。如果我們應該使用Show方法,那麼我們必須在DPR文件中添加Application.Initialize和Application.Run,​​就像正常的VCL Form Application一樣。 – vcldeveloper 2010-01-02 17:23:29

+0

Application.Initialize可以被無害地跳過。 – ZzZombo 2015-06-26 08:32:23

相關問題