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

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

Ветеран


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

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


Цитата R.i.m.s.k.y.:
при параметре /auto инсталлер не отсвечивал лишними окнами »
Пример
Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes

[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl

[Code]
function IsParamStr: Boolean;
var
  i: Integer;
  str: string;
begin
  Result:= False;
  for i:= 0 to ParamCount do
    str:= str + ParamStr(i);
  if Pos(Lowercase('/auto'), Lowercase(str)) > 0 then
  Result:= True;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  if (CurPageID > 0) and IsParamStr then
    WizardForm.NextButton.OnClick(WizardForm.NextButton);
end;

Цитата R.i.m.s.k.y.:
но при параметре /auto в скрипте должны отрабатываться свои "ветки") »
Если где-то в коде, то if IsParamStr then - какое-то дествие...
Если выполнять или нет какие-то секции в скрипте, задавайте с помощью Check:
Код: Выделить весь код
[Files]
Source: compiler:Examples\MyProg.exe; DestDir: {app}; Check: IsParamStr; Flags: ignoreversion
Цитата R.i.m.s.k.y.:
как можно в коде обработать выбор пользователя в Components? »
Пример
Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes

[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl

[Components]
Name: a; Description: Моя программа™; Types: full custom
Name: a\a; Description: Руководство пользователя; Types: full
Name: a\a\a; Description: Русский; Flags: exclusive
Name: a\a\b; Description: English; Flags: exclusive
Name: a\b; Description: Справка; Types: full

[Code]
procedure ClickCheck(Sender: TObject);
var
  msg: string;
begin
  msg:= 'Был клик по компоненту:' + #13#10;
  msg:= msg + 'Номер: ' + IntToStr(WizardForm.ComponentsList.ItemIndex) + #13#10;
  msg:= msg + 'Описание: ' + WizardForm.ComponentsList.ItemCaption[WizardForm.ComponentsList.ItemIndex];
  MsgBox(msg, mbInformation, MB_OK);
end;

procedure InitializeWizard();
begin
  WizardForm.ComponentsList.OnClickCheck:= @ClickCheck;
end;

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

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

Отправлено: 00:14, 17-12-2009 | #686