Inno setup Inno设置函数检查项语法和用法

Inno setup Inno设置函数检查项语法和用法,inno-setup,Inno Setup,根据我的问题,我认为可能有一种方法可以让它工作,而不存在代码中设置的检查状态是永久性的问题(尽管使用checked属性),方法是使用: function CheckItem(const Index: Integer; const AOperation: TCheckItemOperation): Boolean; 然而,在TNewCheckListBox中,我在语法正确方面遇到了困难。我正在努力: CheckItem(CompIndexSync, coUncheck) := Checked[C

根据我的问题,我认为可能有一种方法可以让它工作,而不存在代码中设置的检查状态是永久性的问题(尽管使用
checked
属性),方法是使用:

function CheckItem(const Index: Integer; const AOperation: TCheckItemOperation): Boolean;
然而,在
TNewCheckListBox
中,我在语法正确方面遇到了困难。我正在努力:

CheckItem(CompIndexSync, coUncheck) := Checked[CompIndexClient];

其中,
compindex
是分配给组件值索引的常数。我在编译时得到一个标识符预期错误。有人能告诉我如何正确使用此函数以及我做错了什么吗?
TNewCheckListBox
类的
CheckItem
成员是一种函数类型的方法,它通过
aooperation
操作更新选中状态,如果此时对项的状态进行了任何更改,则返回True
索引
,或其任何子项。这是它的原型():

问题是您试图为函数结果赋值。一般来说,在Pascal语言中,这不是你能做到的。 要对项目执行的操作由
aooperation
参数传递。在伪代码中,例如:

var
  CheckList: TNewCheckListBox;
  Operation: TCheckItemOperation;
begin
  ...
  if ShouldCheck then
    Operation := coCheck
  else
    Operation := coUncheck;

  if CheckList.CheckItem(ItemIndex, Operation) then
    MsgBox('An item has changed its state.', mbInformation, MB_OK);
end;

非常感谢。现在这个函数可以正常工作了,使用它可以解决我使用
Checked[CompIndexSybSync]:=False时发现的问题,因为无法检查组件。我还使用了类型组合框来更新组件。仍然在看我是否能解决刷新/重画问题,我会在那里。
var
  CheckList: TNewCheckListBox;
  Operation: TCheckItemOperation;
begin
  ...
  if ShouldCheck then
    Operation := coCheck
  else
    Operation := coUncheck;

  if CheckList.CheckItem(ItemIndex, Operation) then
    MsgBox('An item has changed its state.', mbInformation, MB_OK);
end;