7

我需要使用最新的 Indy 组件库版本。我可以通过一些源代码命令或任何其他技巧来获取库版本,以确保我使用的是正确的库。我知道我正在使用indy....160.bpl- 这是我的 Delphi XE2 在将鼠标移到组件栏上时所说的。我从Fulgan Indy获取的最新 INDY 库

4

2 回答 2

17

如何在运行时使用 Indy 组件获取 Indy 版本?

正如@Remy 在他的评论中指出的那样,您可以使用该Version属性从任何 Indy 组件中获取 Indy 版本。这是使用TIdHTTP组件的示例:

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage('Indy version: ' + IdHTTP1.Version);
end;

如何在运行时获取没有 Indy 组件的 Indy 版本?

您可以获取 Indy 版本控制格式的整个版本字符串:

<major>.<minor>.<release>.<build>

从包含在单元中gsIdVersion的文件中定义的常量,如下所示:IdVers.incIdGlobal.pas

uses
  IdGlobal;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage('Indy version: ' + gsIdVersion);
end;

或者如果您至少从 2012 年 10 月 25 日 (4850) 开始有 Indy 修订版,您可以使用单独的版本信息元素,这些信息元素在前面提到的同一个包含文件中定义,例如:

uses
  IdGlobal;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage('Indy version: ' +
    IntToStr(gsIdVersionMajor) + '.' +
    IntToStr(gsIdVersionMinor) + '.' +
    IntToStr(gsIdVersionRelease) + '.' +
    IntToStr(gsIdVersionBuild)
  );
end;

如何在设计时获取 Indy 版本?

要在设计时获得 Indy 版本,您只需右键单击放置在表单上的任何 Indy 组件,然后通过菜单项打开其About框。About Internet Direct (Indy)...

版本信息在哪里定义?

正如我之前提到的,它位于库文件夹中IdVers.inc存储的包含文件中..\Lib\System\,它可能是如何获取 Indy 版本信息的下一个选项。

免责声明

这里提到的一些内容目前适用于 Indy 的最新版本,但我不确定它是否也适用于所有旧版本(例如 Indy 9)。

于 2013-01-20T08:35:12.667 回答
2

如果你的应用程序已经有一个 Indy 组件的实例(它继承了 TIdBaseComponent),你可以简单地通过

Version := SomeIndyComponent.Version;

在当前版本中,此函数将返回10.5.9.0

于 2013-01-20T14:04:43.017 回答