我正在寻找一种在inno设置中创建单页安装程序的方法,只需看看这个png: 任何人都可以给我这样做的代码吗? 默认情况下做起来并不容易.但它可以完成,代码如下 制作了一个像这样的页
任何人都可以给我这样做的代码吗?
默认情况下做起来并不容易.但它可以完成,代码如下制作了一个像这样的页面.
[Setup] AppName=Test AppVersion=1.5 DefaultDirName={code:AppDir} ;Disable all of the default wizard pages DisableDirPage=yes DisableProgramGroupPage=yes DisableReadyMemo=yes DisableReadyPage=yes DisableStartupPrompt=yes DisableWelcomePage=yes ;May want this, after install. DisableFinishedPage=no [Messages] ButtonNext=Install [Files] Source:"e:\test.txt"; DestDir: "{app}" Source:"e:\test.txt"; DestDir: "{app}"; DestName: "test1.txt"; Check: Option1; Source:"e:\test.txt"; DestDir: "{app}"; DestName: "test2.txt"; Check: Option2; [Code] var MainPage : TWizardPage; edtFolderToInstall : TEdit; InstallLocation : String; Opt1, Opt2 : Boolean; ChkOption1 : TCheckBox; ChkOption2 : TCheckBox; function AppDir(Param: String): String; begin // Set Default if not set. if InstallLocation = '' then InstallLocation := ExpandConstant('{pf}') + 'test'; result := InstallLocation; end; function Option1 : Boolean; begin result := Opt1; end; function Option2 : Boolean; begin result := Opt2; end; procedure BrowseClick(Sender : TObject); var Dir : String; begin Dir := edtFolderToInstall.Text; if BrowseForFolder('Select Folder',Dir,false) then edtFolderToInstall.Text := Dir; end; procedure InitializeWizard(); var lblFolderToInstall : TLabel; btnFolderToInstall : TButton; begin MainPage := CreateCustomPage(wpWelcome,'Setup - Test App Name','This will install "Test App Name" to your computer'); lblFolderToInstall := TLabel.Create(MainPage); lblFolderToInstall.Parent := MainPage.Surface; lblFolderToInstall.Top := 10; lblFolderToInstall.Left := 10; lblFolderToInstall.Caption := 'If you would like to select a different folder, Click Browse.' edtFolderToInstall := TEdit.Create(MainPage); edtFolderToInstall.Parent := MainPage.Surface; edtFolderToInstall.Top := 25; edtFolderToInstall.Left := 10; edtFolderToInstall.Width := 250; edtFolderToInstall.Text := WizardDirValue; btnFolderToInstall := TButton.Create(MainPage); btnFolderToInstall.Parent := MainPage.Surface; btnFolderToInstall.top := 25; btnFolderToInstall.Left := 275; btnfolderToInstall.Caption := 'Browse...'; btnFolderToInstall.OnClick := @BrowseClick; ChkOption1 := TCheckBox.Create(MainForm); ChkOption1.Parent := MainPage.Surface; ChkOption1.Top := 50; ChkOption1.Left := 10; ChkOption1.Caption := 'Option 1'; ChkOption2 := TCheckBox.Create(MainForm); ChkOption2.Parent := MainPage.Surface; ChkOption2.Top := 75; ChkOption2.Left := 10; ChkOption2.Caption := 'Option 2'; end; function NextButtonClick(CurPageID: Integer): Boolean; begin result := True; // Next pressed, better make sure selected items are correct. if CurPageId = MainPage.ID then begin InstallLocation := edtFolderToInstall.Text; Opt1 := ChkOption1.Checked; Opt2 := ChkOption2.Checked; end; end;
为此,我使用{code:AppDir}作为默认目录.这告诉InnoSetup使用AppDir函数来检索安装目录.然后我可以使用我的自定义对话框设置它.
而不是使用[组件]和/或[任务],我必须使用[文件]部分中的检查.