1
當我試圖更改TasksList
的Parent
時,我得到一個空列表作爲結果。TasksList - 如何將TasksList移動到其他WizardForm頁面並保留其內容?
當我試圖更改TasksList
的Parent
時,我得到一個空列表作爲結果。TasksList - 如何將TasksList移動到其他WizardForm頁面並保留其內容?
替代的解決方案是爲任務創建自己的複選框:
[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;
我知道我可以創建自定義複選框並更換TasksList。但我很好奇,如果我可以簡單地將TasksList移動到不同的WizardPage。 – RobeN 2013-03-01 12:52:39
儘管您可能能夠在物理上更改其容器控件,但無法將該控件的任何處理移動到其他頁面。你最好的選擇是自定義存在頁面,或者從頭開始創建一個頁面,然後更新真實頁面。 – Deanna 2013-03-01 13:10:08
它會和'Components'一樣嗎? – RobeN 2013-03-01 13:38:35