我可以检查安装的Indy版本吗?

时间:2013-01-20 08:28:14

标签: delphi delphi-xe2 indy

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

获取的最新INDY库

2 个答案:

答案 0 :(得分:14)

如何在运行时使用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.inc文件中定义的IdGlobal.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)。

答案 1 :(得分:2)

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

获取该版本
Version := SomeIndyComponent.Version;

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