我想提供几种不同的安装类型,对我的安装程序执行不同的操作:如果选择“ApplicationServer”类型,则仅执行部分代码。如果选择了客户端类型,则仅执行这部分过程。
我尝试将 2 个“块”代码包含在一个名为 的函数中
[Types]
Name: "application"; Description: "{cm:ApplicationServer}"
Name: "client"; Description: "{cm:Client}"
[CustomMessages]
ApplicationServer=Application Server:
Client=Client:
如果选择第一个选择,我想执行由多个过程、常量、变量组成的特定代码来运行一系列 SQL 脚本,而如果选择第二个选择,我需要在代码区域中执行一些其他内容,如下所示:
[Code]
function ApplicationServer(blabla)
begin
// <!This part only to run for ApplicationServer type!>
// following constants and variables for the ADO Connection + SQL script run
const
myconstant1=blabla;
var
myvar1=blabla;
// here all the procedure to define and
// manage an ADO Connection to run a sql script
// procedure 1
// procedure 2
end
function Client(blabla)
begin
// <!This part only to run for Client type!>
// following constants and variables only for performing some stuffs
// on top of client
const
myconstant2=blabla;
var
myvar2=blabla;
// procedure 3
// procedure 4
end
有没有办法根据安装运行的类型来管理代码的特定部分来运行?
谢谢。
WizardSetupType
支持功能。
您可能想在
CurStepChanged
事件函数中检查它。
procedure ApplicationServer;
begin
// procedure 1
// procedure 2
end;
procedure Client;
begin
// procedure 1
// procedure 2
end;
procedure CurStepChanged(CurStep: TSetupStep);
var
SetupType: string;
begin
Log(Format('CurStepChanged %d', [CurStep]));
if CurStep = ssInstall then
begin
SetupType := WizardSetupType(False);
if SetupType = 'application' then
begin
Log('Installing application server');
ApplicationServer;
end
else
if SetupType = 'client' then
begin
Log('Installing client');
Client;
end
else
begin
Log('Unexpected setup type: ' + SetupType);
end;
end;
end;
Pascal 脚本不支持局部常量,仅支持全局常量。
无论如何,不清楚你想要什么,如果你想要一个局部常量还是有条件地初始化一个全局常量。无论如何你不能做后者,常数是常数,它不能有不同的值。
你的变量也一样。 这些是局部变量还是您想有条件地为全局变量设置值?