2017-06-21 12 views
1

私は私がCurPageChangedをすることができ、私はInitializeWizard中にタスクのチェックボックスを操作できない理由を考え出すの問題を持つが、午前:Inno Setup:InitializeWizardでWizardForm.TasksList.Itemsを使用する方法?

[Tasks] 
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}" 
Name: "Option1"; Description: "Option1" 

[Code] 
procedure CurPageChanged(CurPageID: Integer); 
var Index: Integer; 
begin 
    if CurPageID = wpSelectTasks then 
    begin   
    Index := WizardForm.TasksList.Items.IndexOf('Option1'); 
    if Index <> -1 then  
    MsgBox('Touch device checkbox found.', mbInformation, MB_OK); { THIS WORKS!! } 

    end; 
end; 

procedure InitializeWizard(); 
var Index: Integer; 
begin 
    Index := WizardForm.TasksList.Items.IndexOf('Option1'); 
    if Index <> -1 then  
    MsgBox('Touch device checkbox found.', mbInformation, MB_OK); { THIS DOES NOT WORK } 
end; 

私はInitializeWizardWizardForm.TasksList.Itemsを使用することができませんか?私はWizardForm.TasksList.Checked[Index] := False;に電話をかけることができる、あるいはそれを無効にしたいと思っていますが、ユーザが戻るボタンを押してwpSelectTasksに戻ると、コードの呼び出しを避ける代わりに、初期化時にやります。

答えて

0

タスクリストは、選択したコンポーネントに基づいて設定されるためです。

したがってタスクリストはまだInitializeWizardにはありません。 wpSelectTasksページが入力されるたびに、選択されたコンポーネントに基づいてタスクリストが(再)生成されます。

あなたが知っているように、一番早い瞬間は、TasksListCurPageChanged(wpSelectTasks)です。


タスクをオフにすると、ユーザーはバックタスクページに起こっているときに、それをオフにしないことを確認してください。実際には、ページの最初の訪問時にチェックを外す必要があります。

関連する問題