Inno Setup | Pascal:读取SelectedValueIndex,它会更改变量值



经过两天的尝试,我终于决定在Stackoverflow上问我的第一个问题。

我有一些用C#编程的经验,但无法用Pascal处理简单的任务。就像标题所说的,我只想读出当前选择的单选按钮,它应该会更改另一个变量的名称。

该变量确定文件在我的电脑上的解压缩位置。

注意:我已经能够读出我的"VersionNumber"变量,但它不包含我选择的元素!

[Code]
var 
Page1: TInputOptionWizardPage;
SetupString21:string;
SetupString22:string;
SetupBool21:Boolean;
SetupBool22:Boolean;
VersionNumber:string;
procedure InitializeWizard;
begin
SetupString21 := '2021'
SetupString22 := '2022'
VersionNumber := SetupString21
Page1:= CreateInputOptionPage(1, 'Select a version', 'Help text', 'Second help text', True, False);
//add items
Page1.Add(SetupString21);
Page1.Add(SetupString22);
//set initial values (optional)
Page1.Values[0] := True;
//read values into variables
SetupBool21 := Page1.Values[0]
SetupBool22 := Page1.Values[1]
if WizardForm.TypesCombo.SelectedValueIndex = SetupString22 then VersionNumber := SetupString22;
end;
function GetParams(Value: string): string;
begin  
Result := VersionNumber;
end;

您没有给我们任何上下文。尽管从GetParams函数的签名和名称来看,我还是猜测它是[Run]部分的脚本常量的实现。

然后你可能想要这个:

var
SetupIndex21: Integer; // will be 0
SetupIndex22: Integer; // will be 1
procedure InitializeWizard;
begin
// ...
SetupIndex21 := Page1.Add(SetupString21);
SetupIndex22 := Page1.Add(SetupString22);
// set initial value
Page1.SelectedValueIndex := SetupIndex21;
// ...
end;
function GetParams(Value: string): string;
begin  
if Page1.SelectedValueIndex = SetupIndex21 then Result := SetupString21
else
if Page1.SelectedValueIndex = SetupIndex22 then Result := SetupString22;
end;

相关内容

  • 没有找到相关文章

最新更新