2013-12-09 115 views
0

我試圖在Inno Setup上創建一個新窗口。在此窗口中:獲取單選按鈕值[INNO SETUP]

  • 應該有5單選按鈕
  • 用戶只能選擇這個選擇
  • 之一,當用戶點擊下一步按鈕我得和保存的單選按鈕的值(在某處?),讓這個價值的批處理文件(將運行)與參數
  • 我覺得我應該做NextButtonClick的功能有一定作用,但我想不出我如何能達到單選按鈕的值並保存。

任何幫助表示讚賞。

該窗口的截圖:

enter image description here

所以,現在,我的代碼如下所示:

#define MyAppName "CDV Client" 
    #define MyAppVersion "3.6.1 build 2" 
    #define MyAppPublisher " CDV" 
    #define MyAppURL "https://example-cm-1" 
    #define MyAppExeName "example.exe" 


    [Setup] 
    AlwaysUsePersonalGroup=true 
    ; NOTE: The value of AppId uniquely identifies this application. 
    ; Do not use the same AppId value in installers for other applications. 
    ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) 
    AppID={{7C9325AD-6818-42CA-839E} 
    AppName={#MyAppName} 
    AppVersion={#MyAppVersion} 
    ;AppVerName={#MyAppName} {#MyAppVersion} 
    AppPublisher={#MyAppPublisher} 
    AppPublisherURL={#MyAppURL} 
    AppSupportURL={#MyAppURL} 
    AppUpdatesURL={#MyAppURL} 
    DefaultDirName={code:DriveLetter}:\Tool\CDVClient 
    DefaultGroupName=Ser 
    AllowNoIcons=true 
    OutputBaseFilename=CDVClient_setup 
    Compression=lzma/Max 
    SolidCompression=true 
    SetupLogging=true 
    PrivilegesRequired=none 
    DirExistsWarning=yes 
    AlwaysShowDirOnReadyPage=true 
    AlwaysShowGroupOnReadyPage=true 

    [Code] 
    function DriveLetter(Param: String): String; 
    begin 
     if DirExists('d:\') then 
     Result := 'D' 
     else if DirExists('e:\') then 
     Result := 'E' 
     else 
     Result := 'C' 
    end; 

    var 
     CDVRadioButton: TNewRadioButton; 
     ISCRadioButton: TNewRadioButton; 
     TestRadioButton: TNewRadioButton; 
     Test2RadioButton: TNewRadioButton; 
     Test3RadioButton: TNewRadioButton; 
     lblBlobFileFolder: TLabel; 

    procedure InitializeWizard; 
    var 
     LabelFolder: TLabel; 
     MainPage: TWizardPage; 
     FolderToInstall: TNewEdit; 

    begin 
     MainPage := CreateCustomPage(wpWelcome, 'Deneme', 'Deneme2'); 
     LabelFolder := TLabel.Create(MainPage); 
     LabelFolder.Parent := WizardForm; 
     LabelFolder.Top := 168; 
     LabelFolder.Left := 6; 
     LabelFolder.Caption := 'Directory:' 

     lblBlobFileFolder := TLabel.Create(MainPage); 
     lblBlobFileFolder.Parent := MainPage.Surface; 
     lblBlobFileFolder.Top := LabelFolder.Top - 160; 
     lblBlobFileFolder.Left := LabelFolder.Left; 
     lblBlobFileFolder.Width := LabelFolder.Width * 5; 
     lblBlobFileFolder.Caption := 'Please select the convenient extension '; 

     CDVRadioButton := TNewRadioButton.Create(MainPage); 
     CDVRadioButton.Parent := MainPage.Surface; 
     CDVRadioButton.Top := LabelFolder.Top - 120; 
     CDVRadioButton.Left := LabelFolder.Left; 
     CDVRadioButton.Width := LabelFolder.Width * 5; 
     CDVRadioButton.Caption := 'CDV'; 
     CDVRadioButton.Checked := true; 

     ISCRadioButton := TNewRadioButton.Create(MainPage); 
     ISCRadioButton.Parent := MainPage.Surface; 
     ISCRadioButton.Top := LabelFolder.Top - 80; 
     ISCRadioButton.Left := LabelFolder.Left; 
     ISCRadioButton.Width := LabelFolder.Width * 5; 
     ISCRadioButton.Caption := 'ISC'; 

     TestRadioButton := TNewRadioButton.Create(MainPage); 
     TestRadioButton.Parent := MainPage.Surface; 
     TestRadioButton.Top := LabelFolder.Top - 40; 
     TestRadioButton.Left := LabelFolder.Left; 
     TestRadioButton.Width := LabelFolder.Width * 5; 
     TestRadioButton.Caption := 'Test1'; 

     Test2RadioButton := TNewRadioButton.Create(MainPage); 
     Test2RadioButton.Parent := MainPage.Surface; 
     Test2RadioButton.Top := LabelFolder.Top ; 
     Test2RadioButton.Left := LabelFolder.Left; 
     Test2RadioButton.Width := LabelFolder.Width * 5; 
     Test2RadioButton.Caption := 'Test2'; 

     Test3RadioButton := TNewRadioButton.Create(MainPage); 
     Test3RadioButton.Parent := MainPage.Surface; 
     Test3RadioButton.Top := LabelFolder.Top + 40; 
     Test3RadioButton.Left := LabelFolder.Left; 
     Test3RadioButton.Width := LabelFolder.Width * 5; 
     Test3RadioButton.Caption := 'Test3'; 
    end; 
function NextButtonClick(CurPageID: Integer): Boolean; 
begin 
// I should do something in here but what ? :/ 
end; 

    [Languages] 
    Name: "english"; MessagesFile: "compiler:Default.isl" 

    [Tasks] 
    Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}" 
    Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; OnlyBelowVersion: 0,6.1 

    [Files] 
    ; add recursesubdirs 
    Source: "C:\Program Files\Inno Setup 5\Examples\batu.bat"; DestDir: "{app}"; Flags: overwritereadonly recursesubdirs 
    ; NOTE: Don't use "Flags: ignoreversion" on any shared system files 

    [Icons] 
    Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" 
    Name: "{group}\{cm:ProgramOnTheWeb,{#MyAppName}}"; Filename: "{#MyAppURL}" 
    Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}" 
    Name: "{userdesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon 
    Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon 

    [Run] 
    Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, "&", "&&")}}"; Flags: nowait postinstall skipifsilent 

回答

2

您可以檢查單選按鈕的「經過」屬性,查看哪一個選擇:

if (CDVRadioButton.Checked) then 
begin 
    Do stuff... 
end 
else if (ISCRadioButton.Checked) then 
begin 
    Do some other stuff... 
end; 

HTH

+0

當我使用'功能NextButtonClick'它會影響設置過程中的每一頁。但我只想影響我的額外頁面。我應該爲此做些什麼? –

+0

您可以檢查你是哪個頁面在NextButtonClick功能: '如果CurPageID = PAGE.ID然後 開始 ... 結束;' 正在瀏覽的頁面您的的MainPage下一個頁面。 – alex

+0

感謝您的回覆,但我還是無法解決問題,您是否知道這些文檔或示例鏈接?我認爲官方網頁不是很有用。 –