Не напрямую
Помните, что директива #include - это просто директива прекомпилятора, которая заставляет включенный файл появляться там, где директива находится в компиляторе сценария inno setup.
но
Чтобы не включать отдельный код установщика в скрипт шаблона, вы можете создать соглашение для вызова процедуры в шаблоне.
Единственное правило, которое вы должны соблюдать, это то, что каждый установщик должен объявить процедуру, даже пустую. Таким образом, вы можете настроить индивидуально для каждого установщика, поддерживая нейтральный шаблон.
Ваш шаблон может выглядеть примерно так:
function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result := BeforeNextButtonClick(CurPageID);
//if the per-installer code decides not to allow the change,
//this code prevents further execution, but you may want it to run anyway.
if not Result then
Exit;
//your template logic here
Result := Anything and More or Other;
//same here!
if not Result then
Exit;
//calling the per-installer code
Result := AfternextButtonClck(CurPageID);
end;
Тогда отдельные установщики могут выглядеть так:
function BeforeNextButtonClick(CurPageID: Integer): Boolean;
begin
//specific logic here
Result := OtherThing;
end
function AfterNextButtonClick(CurPageID: Integer): Boolean;
begin
//and here, a blank implementation
Result := True;
end;
#include MyCodeTemplate.iss
Может быть, возможно реализовать комплексный подход, я просто не могу вспомнить, поддерживает ли PascalScript процедурные типы и нет времени проверять с inno.
отказ от ответственности весь код, написанный прямо здесь, чтобы показать вам идею, может не скомпилироваться.