2

AllowGrayedをFalseに設定しようとしていますが、Inno Setupサイトによると、これはどのように行うべきかと思われますが、コンパイル時に「不明な識別子''ALLOWGRAYED'」エラーが発生し続けます。私が見落としているのは単純なことだと確信しています。

CompCheckListBox := TNewCheckListBox.Create(CompPage);
CompCheckListBox.Top := StaticText.Top + StaticText.Height + ScaleY(8);
CompCheckListBox.Width := CompPage.SurfaceWidth;
CompCheckListBox.Height := ScaleY(180);
CompCheckListBox.Flat := True;
CompCheckListBox.AllowGrayed := False;
CompCheckListBox.Parent := CompPage.Surface;
CompCheckListBox.AddCheckBox('Option1', '', 0, False, True, False, True, nil);
CompCheckListBox.AddCheckBox('Option2', '', 0, False, True, True, True, nil);
CompCheckListBox.AddCheckBox('Option3', '', 1, False, True, False, False, nil);

助けてくれてありがとう。

4

2 に答える 2

1

にはプロパティTNewCheckListBoxがないAllowGrayedため、見つかったのはドキュメントのバグです。ACheckWhenParentCheckedただし、メソッドのパラメーターを誤用したと思いますAddCheckBox。そのパラメーターは、親ではなく、子アイテムに対してのみ True に設定されます。したがって、スクリプトを次のように変更してみてください。

...
CompCheckListBox.AddCheckBox('Option 1', '', 0, False, False, False, True, nil);
CompCheckListBox.AddCheckBox('Option 2', '', 0, False, True, True, False, nil);
CompCheckListBox.AddCheckBox('Option 3', '', 1, False, True, False, True, nil);
CompCheckListBox.AddCheckBox('Option 4', '', 1, False, True, False, True, nil);
...

参照からのメソッド プロトタイプは次のとおりです。

function AddCheckBox(const ACaption, ASubItem: String; ALevel: Byte; AChecked,
  AEnabled, AHasInternalChildren, ACheckWhenParentChecked: Boolean; 
  AObject: TObject): Integer;
于 2012-09-27T22:53:44.400 に答える
0

これはどうですか(標準コンポーネントの構文。必要に応じて、コードベースのページに簡単に適応できます):

[Components]
Name: parent; Description: ...
Name: parent\main; Description: ...; Flags: fixed
Name: parent\optional; Description ...

ファイルおよびその他のエントリは、2 つのサブコンポーネントのみに関連付けます。親には関連付けません。理論的には、メイン コンポーネントなしでオプション コンポーネントを選択することは不可能であり、2 つが独立しているように見えますが、実際にはより大きなシステムの一部である (オプション コンポーネントがインストールされていない場合、部分的にのみインストールされる) セットアップが必要です。インストールされていますが、メイン コンポーネント自体には影響しません)。

于 2012-09-28T10:20:17.600 に答える