【问题标题】:Import a dpr into Delphi将 dpr 导入 Delphi
【发布时间】:2014-07-22 17:45:22
【问题描述】:

我在网上下载了一个Delphi项目,我想使用它,但是有一个问题:下载的包包含一个带有dpr扩展名的文件,但是如果我双击它,在打开的Delphi中我可以查看源代码,但缺少设计,因此,我无法修改例如 windows 属性。在 Delphi 项目中至少有两个选项卡:让我们将它们命名为 Unit1 和 Project1,但这里仅在选项卡上,并带有源代码。此外,在经典创建的项目中,源代码会出现在 pas 文件中,但这里是 dpr 文件。我试图找到一种方法来导入其内容,但一无所获。所以,如果有人能告诉我如何将此 dpr 文件转换为具有 calssical 结构的 Delphi 项目,请告诉我。 非常感谢。

【问题讨论】:

  • .dpr 文件链接使用的 .pas 单位。如果您提交 dpr 文件会有所帮助。
  • 好的,如何提交?
  • .dfm 文件是否丢失?你能给我们一个下载项目的链接吗?
  • 好的,这是我下载的 zip 文件。它不包含 dfm 文件。我不知道该怎么办。

标签: delphi import


【解决方案1】:

我已经下载了这个项目。它不是 VCL 项目,它是使用 OpenGL 的基于 WinAPI 的程序。

一些帮助非 VCL Delphi 编码的链接:

Creating forms without using vcl

A guide to developing Delphi programs in Windows API

Delphi Without the VCL or the IDE

这里 - example of VCL application with OpenGL

【讨论】:

  • 好的,谢谢,我会努力阅读和理解这些文章,然后也许我会回来。再次感谢。
  • 这正是我第一次阅读这个问题时所怀疑的,是 OP 不熟悉不涉及 VCL 表单的 Delphi 项目。我认为每个初学者都会经历这个阶段,但这仍然是每个程序员都应该学习和理解的东西。
  • 好的,但我仍然不清楚:可以将基于 WinAPI 的程序转换为 VCL 程序吗?
  • 最后一个链接是关于在 VCL 程序中使用 OpenGL。我假设您可以在 VCL 程序中使用链接项目中基于 OpenGL 的绘图原理
  • 好吧,其实我之前和它没有任何关系。我在互联网上找到了这段代码,并试图弄清楚它是如何实现的,但不能,所以我问了我的第一个问题。
【解决方案2】:

.dpr 文件是 Delphi 项目文件。对于普通的 VCL 或 FMX 应用程序,IDE 使用它来列出项目中的表单,并包含初始化 Application 类、创建主表单并通过调用 @987654322 启动程序执行的代码@。例如,这是使用 IDE 主菜单中的 File->New->VCL Forms Application 创建的应用程序的外壳:

program Project1;

uses
  Vcl.Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

以上内容告诉 IDE 它需要包含 VCL.Forms 单元以及单元 Unit1(其中包含 Form1)。它初始化应用程序,在变量 Form1 中创建一个 TForm1 实例,该实例成为 Application.MainForm,然后启动程序运行。当 Application.Run 退出时(通常在 Form1 关闭时发生),应用程序退出。

但是,应用程序不一定必须包含表单,.dpr 可以包含应用程序的所有源代码。下面是一个 Delphi 控制台应用程序示例,它是一个完全包含在单个 .dpr 文件中的程序 - 您可以使用 IDE 主菜单中的 File->New->Other 创建 shell,并在 Delphi Projects 类别下选择 Console Application .我添加了三行代码(两次调用 WriteLn 和一次调用 ReadLn)以便它执行某些操作。您可以将文件保存为Project1.dpr,在任何 Delphi IDE 中打开它,然后按 F9 运行它以查看它是如何工作的。

program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils;

begin
  WriteLn('This is a Delphi console application.');
  WriteLn('Press Enter to quit.');
  ReadLn;
end.

另一种没有关联表单的 Delphi 项目是 Windows 服务(文件->新建->其他->Delphi 项目->服务应用程序)。

因此,您不能假设 .dpr 文件与表单有任何关系。你可以通过检查内容来判断它是否存在,但不仅仅是通过扩展名。

【讨论】:

    猜你喜欢
    • 2015-02-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-18
    • 2010-09-23
    • 1970-01-01
    • 2011-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多