Как добавить динамический текст в параметр Description раздела настройки в Inno Setup? - PullRequest
1 голос
/ 02 мая 2019

У меня в сценарии установки Inno есть определение [Tasks], которое должно содержать некоторый динамический текст:

[CustomMessages]
msgTaskGroupWithFormat=Group Head (Detail: %1) for frobnication

[Tasks]
Name: frobnicateTask; Description: "Frobnicate <dynamic>"; \
  GroupDescription:{cm:msgTaskGroupWithFormat, 'dynamic text to be embedded into CustomMessage'};" \
  Flags: unchecked;

То есть текст Description и текст GroupDescription не должны быть жестко закодированы в сценарии установки или через CustomMessage, но должны содержать некоторый динамический текст, разрешенный во время выполнения.

В идеале, я все еще мог бы использовать CustomMessage через {cm:msgWithFmt, param} и иметь только динамическое разрешение только части параметра.

Возможно ли это в Inno Setup?

1 Ответ

1 голос
/ 02 мая 2019

Это можно сделать с помощью константы {code:...} .

. Можно использовать напрямую, а также можно комбинировать с константой {cm:...} для пользовательских сообщений:

[Code]
function DynamicText1(p: String): String;
begin
  Result := '...';
end;

function DynamicText2(p: String): String;
begin
  Result := '...';
end;
[CustomMessages]
msgTaskGroupWithFormat=Group Head (Detail: %1) for frobnication

[Tasks]
Name: frobnicateTask; Description: {code:DynamicText1}; \ 
  GroupDescription:{cm:msgTaskGroupWithFormat, {code:DynamicText2}};" \
  Flags: unchecked;

Единственное, на что нужно обратить внимание, это то, что динамический текст должен быть вычисляемым в тот момент, когда Inno Setup разрешает текст для описаний!То есть, как и для всего кода в Inno, необходимо проверить, когда происходит обратный вызов и доступна ли вся информация на данный момент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...