Имя AppId на основе компонента

Можно ли создать уникальное имя AppId на основе компонента, выбранного для установки. У меня есть добавление, которое устанавливает компоненты, специфичные для каждого штата, для каждого состояния можно выбрать только одно состояние для установки за раз. Если бы я мог префикс или суффикс GUID с компонентом (инициалы состояния), тогда можно было бы удалить каждое состояние независимо. Я пробовал следующее, но, похоже, не сработал.

function GetAppId(Value: string): string;
    begin  
        Result := {WizardSelectedComponents} + '{{244A887F-F3DC-4B8D-B0F8-548A90464CEF}';
    end;

person Snownut    schedule 01.02.2015    source источник


Ответы (1)


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

function GetAppId(Value: string): string;
var
  strResult: String;
begin
  if IsComponentSelected('ComponentName1') then
    begin
      strResult := '{244A887F-F3DC-4B8D-B0F8-548A90464CEF}';
    end
  else if IsComponentSelected('ComponentName2') then
    begin
      strResult := '{A0A115ED-45E5-4DC7-A73A-3E8046CA4478}';
    end;
end;
person Robert Wigley    schedule 01.02.2015
comment
Нет необходимости экранировать константы, когда вы присваиваете значение директивы во время выполнения (экранирование необходимо для компилятора). Этот код на самом деле будет создавать GUID с двойными фигурными скобками (но кто знает, может быть, это было задумано). Также не забудьте инициализировать переменную Result. - person TLama; 01.02.2015