2

Этот код фактически загружает мне файлы, и неважно, является ли выбранный компонент «тестом» или нет. Я хочу, чтобы эти два файла загрузились, если вы выберете компонент, можете это сделать? Я использую Inno Inno Setup 5 + Tools Downloader)Загрузка файлов через Интернет, если компонент был выбран (WITH Inno Tools Downloader)

[Components] 
Name: Dictionaries; Description: "test"; Types: Full; ExtraDiskSpaceRequired: 50; 

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

    #include ReadReg(HKEY_LOCAL_MACHINE,'Software\Sherlock Software\InnoTools\Downloader','ScriptPath',''); 

[Code] 
    procedure InitializeWizard(); 
    begin 
    itd_init; 


    itd_addfile('http://www.sherlocksoftware.org/petz/files/dogz5.zip',expandconstant('{tmp}\dogz5.zip')); 
    itd_addfile('http://www.sherlocksoftware.org/petz/files/petz4.zip',expandconstant('{tmp}\petz4.zip')); 


    itd_downloadafter(wpReady); 
    end; 

    procedure CurStepChanged(CurStep: TSetupStep); 
    begin 
    if CurStep=ssInstall then begin 
     filecopy(expandconstant('{tmp}\dogz5.zip'),expandconstant('{app}\dogz5.zip'),false); 
     filecopy(expandconstant('{tmp}\petz4.zip'),expandconstant('{app}\petz4.zip'),false); 
    end; 
    end; 

ответ

3

Да, это возможно. Вы ищете небольшую вспомогательную функцию, которая называется IsComponentSelected().

Это в основном булевский тестер, принимающий компонент name от [components] и возвращающий значение флажка (selected = true).

// for a single component 
if IsComponentSelected('NameOfTheComponent') then idpAddFile(URL, ...);` 

// multiple components with one selection 
if IsComponentSelected('dictionaries') then 
begin 
    idpAddFile(URL1, ...); 
    idpAddFile(URL2, ...); 
end; 

Комментарий TLama:

В случае чего и где епдиеие загрузку файлов?

Я хотел бы предложить использовать NextButtonClick событие с условием, что ток (CurPage) должен быть компонент экран выбора (wpSelectComponents). Другими словами: когда вы находитесь на экране выбора компонентов и нажимаете дальше, к загрузчику добавляются только выбранные компоненты.

Код может выглядеть следующим образом:

function NextButtonClick(CurPage: Integer): Boolean; 
(* 
    Called when the user clicks the Next button. 
    If you return True, the wizard will move to the next page. 
    If you return False, it will remain on the current page (specified by CurPageID). 
*) 
begin 
    if CurPage = wpSelectComponents then 
    begin 
    if IsComponentSelected('NameOfTheComponent') then idpAddFile(URL, ...); 

    end; // of wpSelectComponents 

    Result := True; 
end; 

Sidenote: вы можете переключить скачать LIB к https://code.google.com/p/inno-download-plugin/ Это имеет лучшие характеристики, в том числе достойной поддержки HTTPS и активно поддерживается. InnoTools Загрузка от SherlockSoftware устарела (2008).

+0

Хотя я согласен с вами во всем, что вы сказали, стоит упомянуть, в каком случае вы могли бы протестировать и поставить в очередь эти файлы. – TLama

+1

Хорошая идея. Я бы предложил событие «NextButtonClick» с «CurPage = wpSelectedComponents» для добавления файлов в загрузчик. Я обновил свой ответ. –

+0

Это работает! Спасибо вам! – michal3210

 Смежные вопросы

  • Нет связанных вопросов^_^