从Inno Setup create array from comma delimited strings stored in an array开始,我有一个二维(四列)数组RemoteDetailsLines
,其中最后一列存储1
或0
,表明它是否是是否活跃。我想使用下面的数组中的值创建CheckListBox
,这适用于创建和命名复选框,但我还希望在最后一列包含1
的位置显示复选框。即使我使用RemoteDetailsLines[intIndex][3]
循环并将StringChangeEx
和1
值转换为0
,使用下面代码中显示的True
也无效和False
,因为值是字符串。
因此,问题是如何将这些值转换为Boolean
函数所期望的AddCheckBox
?我甚至不确定数组是否可以是除字符串值以外的任何内容?
CheckListBox := TNewCheckListBox.Create(SelectRemotesPage);
with CheckListBox do
begin
Parent := SelectRemotesPage.Surface;
Left := ScaleX(0);
Top := ScaleY(50);
Width := ScaleX(250);
Height := ScaleY(153);
for intIndex := 0 to intNumberRemotes - 1 do
begin
AddCheckBox(RemoteDetailsLines[intIndex][1], RemoteDetailsLines[intIndex][2], 0, RemoteDetailsLines[intIndex][3], True, False, False, Nil);
end;
end;
答案 0 :(得分:1)
对于这个简单的情况,它足以使用:
AddCheckBox(..., (RemoteDetailsLines[intIndex][3] <> '0'), ...);
比较运算符<>
返回Boolean
。
更强大的解决方案是:
AddCheckBox(..., (StrToIntDef(RemoteDetailsLines[intIndex][3], 0) <> 0), ...);
将字符串转换为Integer
,后退为0
,然后将整数与0
进行比较。