如何在没有IDE的Delphi中实现winform对话框?

问题描述:

我没有安装Delphi IDE。我还可以设计表单吗?如何在没有IDE的Delphi中实现winform对话框?

+0

提及WinForms是否使用.NET?如果所以这应该被标记为Delphi-Prism – 2009-12-31 15:32:23

+0

不,我没有安装.NET。 – user198729 2009-12-31 15:45:58

+0

了解您使用的Delphi版本会有帮助。例如,Delphi 2007,2009和2010使用MSBuild,并有一个批处理文件来设置所有的环境变量。此外,德尔福自D8/D2005以来不做WinForms。 – 2009-12-31 15:46:10

使用Win32: 文件|新单位,那么你完全控制了代码。

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; 

在.NET /德尔福棱镜: 右键单击该项目|新建项目|类

namespace WindowsApplication2.Properties; 

interface 

uses 
    System.Windows.Forms, 
    System.Collections.Generic, 
    System.Linq, 
    System.Text; 

type 
    Class1 = public class(System.Windows.Forms.Form) 
    private 
    protected 
    lablel1 : Label; 
    public 
    constructor; 
    end; 

implementation 

constructor Class1; 
begin 
    self.label1 := new System.Windows.Forms.Label(); 
    self.SuspendLayout(); 

    self.label1.AutoSize := true; 
    self.label1.Location := new System.Drawing.Point(37, 80); 
    self.label1.Name := 'label1'; 
    self.label1.Size := new System.Drawing.Size(35, 13); 
    self.label1.TabIndex := 0; 
    self.label1.Text := 'This is an Example'; 

    self.ResumeLayout(false); 
    self.PerformLayout(); 
end; 

end. 

首先,你不需要德尔福IDE运行德尔福程序。德尔福产生(通常)独立.EXE应用程序,所以

foo.exe的

按预期工作。

其次,你可以用命令行编译器编译你的Delphi项目。确切的语法取决于你安装的Delphi版本。看看this post 或搜索Delphi命令行编译器

+0

你不需要IDE来生成res文件吗? – 2009-12-31 16:37:24

+1

不,Marco。您可以使用brcc32.exe编译资源文件。 – 2009-12-31 19:06:52

从你的答案中假设你没有安装任何编译器。为了编译Delphi代码,你需要一个编译器。 Delphi没有免费的版本,除非你能找到一个旧的版本,否则你不得不购买Delphi。 Delphi带有一个像gcc这样的命令行编译器,并且可以在没有IDE的情况下编译程序。

德尔福2006年和Win32前:

dcc32 YourProject.dpr 

德尔福2006年和.Net前:

dccil YourProject.dpr 

德尔福2007年后:

msbuild YourProject.dproj 

这将导致一个编译的二进制如果是EXE,你可以像你习惯的那样运行它。

Robert Love完美地解释了如何编写代码来显示GUI,而无需在IDE中使用设计器。这样可以节省你的钱,因为无论如何你必须购买IDE才能获得命令行编译器。

德尔福有免费的替代品,如FreePascal和他们的免费IDE Lazarus。我没有检查过自己,但我很确定它也带有一个命令行编译器。

+0

D2007 + afaik do dcc32也可以。我会将msbuild更多地与旧版本中的make相比,而不是dcc32。免费的Pascal在每个体系结构中都有一个命令行编译器“ppc ”,并且在它们之间进行切换的前端二进制文件“fpc” – 2009-12-31 16:34:24

+0

确实如此,但D2007和更高版本不再使用.cfg文件,因此您将错过任何已设置的项目选项,必须提供它们作为参数。 – 2009-12-31 16:42:18

请注意,已经提到的Lazarus也带有一个类似Delphi的设计器。