2013-03-01 26 views
1

當我試圖更改TasksListParent時,我得到一個空列表作爲結果。TasksList - 如何將TasksList移動​​到其他WizardForm頁面並保留其內容?

​​
+0

我知道我可以創建自定義複選框並更換TasksList。但我很好奇,如果我可以簡單地將TasksList移動​​到不同的WizardPage。 – RobeN 2013-03-01 12:52:39

+1

儘管您可能能夠在物理上更改其容器控件,但無法將該控件的任何處理移動到其他頁面。你最好的選擇是自定義存在頁面,或者從頭開始創建一個頁面,然後更新真實頁面。 – Deanna 2013-03-01 13:10:08

+0

它會和'Components'一樣嗎? – RobeN 2013-03-01 13:38:35

回答

2

替代的解決方案是爲任務創建自己的複選框:

[Icons] 
Name: "{group}\{#MyAppName1}"; Filename: "{app}\{#MyAppName1}\{#MyAppExeName}"; WorkingDir: "{app}\{#MyAppName1}"; Check: menuicons; Components: G3EE; 
Name: "{group}\{#MyAppName2}"; Filename: "{app}\{#MyAppName2}\{#MyAppExeName2}"; WorkingDir: "{app}\{#MyAppName2}"; Check: menuicons; Components: G3ZBEE; 
Name: "{commondesktop}\{#MyAppName2}"; Filename: "{app}\{#MyAppName2}\{#MyAppExeName2}"; WorkingDir: "{app}\{#MyAppName2}"; Check: desktopicon; Components: G3ZBEE; 
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName2}"; Filename: "{app}\{#MyAppName2}\{#MyAppExeName2}"; WorkingDir: "{app}\{#MyAppName2}"; Check: quicklaunchicon; Components: G3ZBEE; 

[Code] 
Var 
DesktopIconCheckBox: TCheckBox; 
StartMenuCheckBox: TCheckBox; 
QuickStartCheckBox: TCheckBox; 

function desktopicon(): Boolean; 
begin 
    Result := DesktopIconCheckBox.Checked; 
end; 

function menuicons(): Boolean; 
begin 
    Result := StartMenuCheckBox.Checked; 
end; 

function quicklaunchicon(): Boolean; 
begin 
    if GetWindowsVersion < $06000000 then begin 
     Result := QuickStartCheckBox.Checked; 
    end; 
end; 

procedure InitializeWizard(); 
var 
    ItemsGap: Integer; 
begin 
    ItemsGap := WizardForm.DirBrowseButton.Left - (WizardForm.DirEdit.Left + WizardForm.DirEdit.Width); 
    DesktopIconCheckBox := TCheckBox.Create(WizardForm.DirEdit.Owner); 
    DesktopIconCheckBox.Visible := true; 
    DesktopIconCheckBox.Checked := true; 
    StartMenuCheckBox := TCheckBox.Create(WizardForm.DirEdit.Owner); 
    StartMenuCheckBox.Visible := true; 
    StartMenuCheckBox.Checked := true; 
    if GetWindowsVersion < $06000000 then begin 
     QuickStartCheckBox := TCheckBox.Create(WizardForm.DirEdit.Owner); 
    QuickStartCheckBox.Visible := true; 
     QuickStartCheckBox.Checked := false; 
end; 
    if true then 
    begin 
    DesktopIconCheckBox.Top := WizardForm.DirEdit.Top + WizardForm.DirEdit.Height + ItemsGap/2; 
    DesktopIconCheckBox.Width := WizardForm.DirEdit.Width; 
     DesktopIconCheckBox.Caption := ExpandConstant('{cm:CreateDesktopIcon}'); 
     DesktopIconCheckBox.Parent := WizardForm.DirEdit.Parent; 
     StartMenuCheckBox.Top := DesktopIconCheckBox.Top + DesktopIconCheckBox.Height + ItemsGap/2; 
    StartMenuCheckBox.Width := WizardForm.DirEdit.Width; 
     StartMenuCheckBox.Caption := ExpandConstant('{cm:MenuStartIcons}'); 
     StartMenuCheckBox.Parent := WizardForm.DirEdit.Parent; 
     if GetWindowsVersion < $06000000 then begin 
      QuickStartCheckBox.Top := StartMenuCheckBox.Top + StartMenuCheckBox.Height + ItemsGap/2; 
     QuickStartCheckBox.Width := WizardForm.DirEdit.Width; 
      QuickStartCheckBox.Caption := ExpandConstant('{cm:CreateQuickLaunchIcon}');//SetupMessage(msgNoProgramGroupCheck2); 
      QuickStartCheckBox.Parent := WizardForm.DirEdit.Parent; 
     end; 
    end; 
end; 
相關問題