如何在 Delphi 7 中安装 Tnt 控件

How to install Tntcontrols in Delphi7

我是 Delphi 的新手,我的项目中需要 TntContols 包,在 https://github.com/pitfiend/TntControls 下载 TntContols,安装 TntUnicode-master\Delphi\d7TntUnicodeVcl_D70.dpk,然后我将一个 TntButton 拖到表单中,然后运行 我的应用程序,但抛出错误:

[Fatal Error] Unit1.pas(7): File not found: 'TntStdCtrls.dcu'

代码如下:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, TntStdCtrls;

type
  TForm1 = class(TForm)
    btn1: TTntButton;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

end.

默认情况下,D7 附带的 BPL 和 DCU 文件分别安装在主 Delphi 文件夹下的 .LIB 和 .BIN 文件夹中,我将其称为 \D7。

最好不要将其他组件安装到这些文件夹中。原因是最终,当您安装额外的第 3 方库时,您可能 运行 进入编译错误 "Unit Y was compiled with a different version of unit Y" 如果 BIN 中的文件可能需要您重新安装 Delphi和 LIB 文件夹有关。实际上,这个问题通常发生在你编译了一个项目之后,该项目被配置为不需要访问库的 .PAS 文件(因为 IDE 在项目编译期间不需要访问库的 .PAS它使用该库,只要它能找到该库的 .DCU 文件即可。

许多第 3 方库包含(至少)两个 .DPK 文件,其中一个是所谓的 运行time 包,另一个是设计时包。设计时包是您在 IDE 中安装的包,用于安装库的组件,而 运行-time 包包含设计时包中的例程所依赖的例程。除非使用库的项目被编译为使用 运行time 包,否则在编译项目的过程中不会使用 运行time 包(但对应的 .DCU 文件会被使用,这就是为什么IDE 需要配置才能找到它们)。

我一直为没有自己的安装程序的第 3 方 D7 库所做的如下:

  1. 仅限一次性:创建文件夹 \D7\LIB2。将它添加到您的 OS 路径。

  2. 对于您要安装的库中的每个 .DPK 文件:

    一个。打开 IDE 中的 .DPK 文件并将其 BPL 和 DCU 输出文件夹编辑到 \D7\LIB2。通过单击包编辑器中的 Options 按钮和项目选项弹出窗口中的 Directories/Conditionals 选项卡,将输出目录、单元输出目录和 DCP 输出目录全部设置为 [=12] =]

    b。单击 Compile 按钮编译软件包,然后单击 Install 按钮(如果已启用)将其安装在 IDE 中。

    c。关闭包 (.DPK) 编辑器。

  3. 打开要使用该库的项目并编辑其搜索路径以包含 \D7\LIB2 但不是库的 .PAS 文件的路径。

  4. 编译你的项目。

备注:

请注意,上述内容不包括将库的源(.PAS 文件)路径添加到您的项目中。如果您按照上述步骤进行操作,那么这样做是不必要的,并且只会(最终)导致我提到的 "Unit Y was compiled ..." 错误的发生。

上述方法也适用于最近的 Delphi 版本,但由于独立的 .DPK 编辑器已从 IDE.[=15= 中删除,因此需要更多的点击来完成必要的操作]