据说生成一个winform:
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 :(得分:9)
为了编译Delphi代码,您需要一个编译器。 Delphi没有免费版本,所以除非你能找到旧版本,否则你必须购买Delphi。 Delphi附带了一个命令行编译器,如gcc,可以在没有IDE的情况下编译程序。
Delphi 2006和win32之前:
dcc32 YourProject.dpr
Delphi 2006和之前的.Net:
dccil YourProject.dpr
Delphi 2007及之后:
msbuild YourProject.dproj
这将导致编译二进制文件,如果是EXE,您可以像以前一样运行它。
Delphi的免费替代品如FreePascal及其免费的IDE Lazarus。我没有自己检查,但我很确定它也带有命令行编译器。
答案 1 :(得分: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
答案 2 :(得分:1)
更容易,只是
dcc32 "name of the project"
即使程序存在于10个单元中,编译器也会自动解析它,如果在当前单元搜索路径中(请参阅dcc32.cfg,或使用-U和-I添加目录)。请注意,某些“免费”Explorer版本的Delphi没有附带cmdline编译器。
对于.NET,它是dccil。
当然,如果你与gcc进行比较,Free Pascal / Lazarus是一个更合乎逻辑的选择(但不适用于.NET)。