Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 1133
Благодарности: 581

Профиль | Отправить PM | Цитировать


Цитата i.Sky:
как прикрутить зависимость от устанавливаемых компонентов »
В первом примере, как должно быть, т.е. значения будут перезаписываться.
Второй пример как вы хотели, т.е. просто в зависимости от выбора компонента будет добавлятся ещё одна строка.
1. Вариант
Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes

[Components]
Name: main; Description: Моя программа™; Types: full custom
Name: help; Description: Помощь; Types: full custom
Name: help\documentation; Description: Документация; Types: full custom
Name: help\manual; Description: Руководство пользователя; Types: full custom

[ Code ]
procedure CurStepChanged(CurStep: TSetupStep);
begin
   If CurStep=ssDone then
   begin
     if IsComponentSelected('main') then
     SetIniString('Section', 'NAME', '1', ExpandConstant('{app}')+'\main.ini');

     if IsComponentSelected('help') then
     SetIniString('Section', 'NAME', '2', ExpandConstant('{app}')+'\main.ini');

     if IsComponentSelected('help\documentation') then
     SetIniString('Section', 'NAME', '3', ExpandConstant('{app}')+'\main.ini');

     if IsComponentSelected('help\manual') then
     SetIniString('Section', 'NAME', '4', ExpandConstant('{app}')+'\main.ini');
   end;
end;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
  if CurUninstallStep = usUninstall then
  begin
     DeleteFile(ExpandConstant('{app}\main.ini'));
  end;
end;

2. Вариант
Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes

[Components]
Name: main; Description: Моя программа™; Types: full custom
Name: help; Description: Помощь; Types: full custom
Name: help\documentation; Description: Документация; Types: full custom
Name: help\manual; Description: Руководство пользователя; Types: full custom

[ Code ]
procedure CurStepChanged(CurStep: TSetupStep);
begin
   If CurStep=ssDone then
   begin
     SaveStringToFile(ExpandConstant('{app}')+'\main.ini', '[Section]' + #13, true);

     if IsComponentSelected('main') then
     SaveStringToFile(ExpandConstant('{app}')+'\main.ini', 'NAME=1' + #13, true);

     if IsComponentSelected('help') then
     SaveStringToFile(ExpandConstant('{app}')+'\main.ini', 'NAME=2' + #13, true);

     if IsComponentSelected('help\documentation') then
     SaveStringToFile(ExpandConstant('{app}')+'\main.ini', 'NAME=3' + #13, true);

     if IsComponentSelected('help\manual') then
     SaveStringToFile(ExpandConstant('{app}')+'\main.ini', 'NAME=4' + #13, true);
   end;
end;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
  if CurUninstallStep = usUninstall then
  begin
     DeleteFile(ExpandConstant('{app}\main.ini'));
  end;
end;

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:36, 22-01-2009 | #429