Существует два необязательных параметра, поддерживаемые всеми секциями, записи которых представляют собой набор параметров, за исключением секций [Languages], [Types], [Components] и [Tasks]. Этими параметрами являются:
Определяет имя функции, которая будет вызвана непосредственно перед установкой записи. Эта функция должна быть либо пользовательской и описана в секции [Code], либо одной из поддерживаемых функций.
Может содержать параметры, разделённые запятыми, которые программа установки должна передать в функцию. Допустимыми типами параметров являются String (строковый), Integer (целочисленный) и Boolean (логический). Строковые параметры могут содержать константы. Эти константы не будут автоматически расширены. Если требуется передать расширенную константу, существует одна специальная поддерживаемая функция, которая может быть вызвана из списка параметров: ExpandConstant.
[Files] Source: "MYPROG.EXE"; DestDir: "{app}"; BeforeInstall: MyBeforeInstall Source: "A\MYFILE.TXT"; DestDir: "{app}"; BeforeInstall: MyBeforeInstall2('{app}\A\MYFILE.TXT') Source: "B\MYFILE.TXT"; DestDir: "{app}"; BeforeInstall: MyBeforeInstall2('{app}\B\MYFILE.TXT') Source: "MYPROG.CHM"; DestDir: "{app}"; BeforeInstall: Log('Before MYPROG.CHM Install')
Определяет имя функции, которая будет вызвана сразу после установки записи. Эта функция должна быть либо пользовательской и описана в секции [Code], либо одной из поддерживаемых функций.
Может содержать параметры, разделённые запятыми, которые программа установки должна передать в функцию. Допустимыми типами параметров являются String (строковый), Integer (целочисленный) и Boolean (логический). Строковые параметры могут содержать константы. Эти константы не будут автоматически расширены. Если требуется передать расширенную константу, существует одна специальная поддерживаемая функция, которая может быть вызвана из списка параметров: ExpandConstant.
[Files] Source: "MYPROG.EXE"; DestDir: "{app}"; AfterInstall: MyAfterInstall Source: "A\MYFILE.TXT"; DestDir: "{app}"; AfterInstall: MyAfterInstall2('{app}\A\MYFILE.TXT') Source: "B\MYFILE.TXT"; DestDir: "{app}"; AfterInstall: MyAfterInstall2('{app}\B\MYFILE.TXT') Source: "MYPROG.CHM"; DestDir: "{app}"; AfterInstall: Log('After MYPROG.CHM Install')
Все функции BeforeInstall и AfterInstall не должны иметь возвращаемого значения.
Функция BeforeInstall или AfterInstall не будет вызвана, если программа установки уже определила, что запись не должна быть обработана.
Функция BeforeInstall или AfterInstall в записях секции [Files] с использованием маски файлов, но без флага external, вызывается один раз для каждого файла, который соответствует маске, а не один раз для каждой записи. Используйте CurrentFileName, чтобы проверить, для какого именно файла вызывается функция.
Ниже приведен пример секции [Code], в котором используются функции, указанные выше. Функции CurrentFileName и Log являются поддерживаемыми функциями, и поэтому не включены в эту секцию [Code].
[Code] procedure MyBeforeInstall(); begin MsgBox('Будет установлен MyProg.exe как ' + CurrentFileName + '.', mbInformation, MB_OK); end; procedure MyBeforeInstall2(FileName: String); begin MsgBox('Будет установлен ' + FileName + ' как ' + CurrentFileName + '.', mbInformation, MB_OK); end; procedure MyAfterInstall(); begin MsgBox('MyProg.exe уже установлен как ' + CurrentFileName + '.', mbInformation, MB_OK); end; procedure MyAfterInstall2(FileName: String); begin MsgBox(FileName + ' уже установлен как ' + CurrentFileName + '.', mbInformation, MB_OK); end;