Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Новые способы получения номера версии проекта в Delphi 10.2

Delphi , Синтаксис , API реализация

При работе с Delphi 2007, разработчики могли легко получить информацию о версии текущего проекта, используя определенные вызовы ToolsAPI. Однако, начиная с версии Delphi 10.2, старые способы могут не работать корректно, возвращая, например, версию 1.0.0.0, несмотря на установленные реальные значения.

В статье рассмотрим, как можно получить актуальную информацию о версии проекта в среде разработки Delphi 10.2, используя новый подход к работе с конфигурациями сборки и платформами.

Старый способ получения версии

В Delphi 2007 для получения информации о версии использовался следующий код:

procedure Test;
var
  ProjectOptions: IOTAProjectOptions;
  Project: IOTAProject;
  Major, Minor, Release, Build: Variant;
begin
  Project := GxOtaGetCurrentProject;
  if Assigned(Project) then
  begin
    ProjectOptions := Project.ProjectOptions;
    if Assigned(ProjectOptions) then
    begin
      Major := ProjectOptions.Values['MajorVersion'];
      Minor := ProjectOptions.Values['MinorVersion'];
      Release := ProjectOptions.Values['Release'];
      Build := ProjectOptions.Values['Build'];
    end;
  end;
end;

В более новых версиях Delphi, например, в Delphi 10.2.3, этот метод не дает корректных результатов.

Новый способ получения версии

Для получения доступа к конфигурациям, сначала необходимо получить интерфейс IOTAProjectOptionsConfigurations:

cfgOpt := project.ProjectOptions as IOTAProjectOptionsConfigurations;

Затем следует перебор всех IOTABuildConfiguration:

for I := 0 to cfgOpt.ConfigurationCount - 1 do
begin
  cfg := cfgOpt.Configurations[I];
  // Действия с конфигурацией
end;

Каждый IOTABuildConfiguration может содержать несколько платформ и дочерних конфигураций, поэтому стоит учитывать это при работе с версиями:

for S in cfg.Platforms do
begin
  // Действия с конфигурацией платформы
end;
for I := 0 to cfg.ChildCount - 1 do
begin
  // Действия с дочерней конфигурацией
end;

В зависимости от выбранной платформы и конфигурации сборки, могут использоваться разные значения информации о версии. Текущую платформу и конфигурацию можно получить из свойств IOTAProject CurrentPlatform и CurrentConfiguration.

Простой способ получения информации о версии

На основе ответа Уве Раабе, можно использовать следующий код для получения информации о версии для текущей активной конфигурации и платформы:

procedure Test;
var
  ProjectOptions: IOTAProjectOptionsConfigurations;
  Project: IOTAProject;
  Major, Minor, Release, Build: Variant;
  cfg: IOTABuildConfiguration;
begin
  Project := GxOtaGetCurrentProject;
  if Assigned(Project) then
  begin
    ProjectOptions := Project.ProjectOptions as IOTAProjectOptionsConfigurations;
    if Assigned(ProjectOptions) then
    begin
      cfg := ProjectOptions.ActiveConfiguration;
      if Assigned(cfg) then
      begin
        Major := cfg.GetValue('VerInfo_MajorVer', True);
        Minor := cfg.GetValue('VerInfo_MinorVer', True);
        Release := cfg.GetValue('VerInfo_Release', True);
        Build := cfg.GetValue('VerInfo_Build', True);
      end;
    end;
  end;
end;

Необходимо отметить, что названия свойств версии изменились, и при чтении значений следует использовать метод GetValue с параметром IncludeInheritedValues установленным в True.

Заключение

Разработчикам, работающим с Delphi 10.2 и выше, важно понимать новые способы получения информации о версии проекта, чтобы обеспечить корректную работу своих приложений. Использование новых методов ToolsAPI позволит получить актуальные данные о версии, учитывая конфигурации сборки и платформы.

Создано по материалам из источника по ссылке.

В статье описываются новые способы получения номера версии проекта в среде разработки Delphi 10.2, так как старые методы могут быть неактуальны и некорректны для этой версии.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: API реализация ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-02-05 11:54:30/0.00345778465271/0