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