Уважаемые гости и пользователи форума.
Администрация настоятельно рекомендует не регистрировать несколько аккаунтов для одного пользователя. При выявлении наличия мультиаккаунтов будут заблокированы все учетные записи данного пользователя.
Аккаунты, зарегистрированные на временную почту, будут также заблокированы.
Так не работает тоже. К тому же исчезает сам чекбокс компонента из компонент листа.
Код:
function HelpInst: Boolean;
begin
if CheckParam('/IH') and CheckParam('/InstallHelp')
then
WizardForm.ComponentsList.Checked[1] := True;
Result := True;
end;
Компонент снова виден в листе, но с ключами работать не хочет.
Чего этой собаке не хватает???
AlexS, чек дает не галочку на компоненте, а вообще его создание. В обоих твоих вариантах, отсутствие этого чека, даст тот-же результат, что и его наличие. HelpInst у тебя опять безусловно возвращает True. При любых раскладах. Result := True; - находится вне условия. возможно, поможет такая конструкция:
Код:
function HelpInst: Boolean;
begin
Result := CheckParam('/IH') or CheckParam('/InstallHelp');
WizardForm.ComponentsList.Checked[1] := Result;
end;
опять-же, if CheckParam('/IH') and CheckParam('/InstallHelp') then - такая конструкция говорит, что условие сработает только в одном случае - если есть оба параметра.
Не едет и такая конструкция. Компилирую и при запуске инсталлятора получаю ошибку с текстом :"An attempt was made to access WizardForm before it has been created". Не приходит мне в голову никакое решение по этому вопросу. Два дня на месте кручусь, уже подумываю отказаться от сей идеи с компонентами и строить свой лист с чекбоксами, после чего вязять их на файлы напрямую. LexBell, спасибо за помощь и отзывчивость!
AlexS, WizardForm.ComponentsList.Checked[1] := Result; убери эту строчку, она не нужна, там по другому нужно. Check дает команду создавать или не создавать компонент. Внутри функции выделять компоненты немного неправильно.
Попробуй делать это внутри NextButtonClick на CurPageID = wpSelectComponents
либо внутри CurStepChanged на CurStep=ssPreInstall
LexBell, на счет выделения компонента внутри функции всё верно, т.к. перепробовал уже десятки вариантов и результат нулевой.
А вот проделать всё из какой-нить процедуры у меня была мысля раньше, но я отказался... И зря отказался, как выяснилось всё отлично работает и из процедур... Я сделал набросок решения через CurPageChanged, всё отработало с первого раза и без проблем(код ниже). Ещё раз спасибо за помощь, отзывчивость и наводку на решение задачи.
Код:
;InnoSetupVersion=5.5.1 ee2(a)
#define MyAppName "My Program"
#define MyAppVersion "1.1.1"
[Setup]
AppName={#MyAppName}
AppVersion={#MyAppVersion}
DefaultDirName=C:\Users\User\Desktop\Test\Output
OutputBaseFilename=MySetup
DisableWelcomePage=yes
DisableDirPage=yes
[Types]
Name: "custom"; Description: "Custom installation"; Flags: iscustom;
[Components]
Name: "CompA"; Description: "{cm:CompLabelA}"; Types: "custom";
Name: "CompB"; Description: "{cm:CompLabelB}";
[Files]
Source: "{app}\ExeFile1.exe"; DestDir: "{app}"; Components: "CompA"; Flags: ignoreversion
Source: "{app}\HelpFile.chm"; DestDir: "{app}"; Components: "CompB"; Flags: ignoreversion
[Languages]
Name: "en"; MessagesFile: "compiler:Languages\english.isl";
Name: "ru"; MessagesFile: "compiler:Languages\russian.isl";
[CustomMessages]
ru.CompLabelA=Конвертер
ru.CompLabelB=Справка
en.CompLabelA=Converter
en.CompLabelB=Help
[_Code]
function CheckParam(s: string): boolean;
var
i: integer;
begin
for i := 0 to ParamCount do begin
Result := ParamStr(i) = s;
if Result then Break;
end;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpSelectComponents then
if WizardSilent then
begin
if CheckParam('/NK') or CheckParam('/NoRegConverter') then
begin
WizardForm.ComponentsList.Checked[0] := False;
end
else
begin
WizardForm.ComponentsList.Checked[0] := True;
end;
end;
begin
if CheckParam('/IH') or CheckParam('/InstallHelp') then
begin
WizardForm.ComponentsList.Checked[1] := True;
end
else
begin
WizardForm.ComponentsList.Checked[1] := False;
end;
end;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
Case CurPageID of
wpSelectComponents: begin
if WizardSilent then begin
if CheckParam('/NK') or CheckParam('/NoRegConverter') then
WizardForm.ComponentsList.Checked[0]:= False else
WizardForm.ComponentsList.Checked[0]:= True;
end else begin
if CheckParam('/IH') or CheckParam('/InstallHelp') then
WizardForm.ComponentsList.Checked[1]:= True else
WizardForm.ComponentsList.Checked[1]:= False;
end;
end;
end;
end;
то условие скрытой и иной установки как бы выполняются...
Или так при скрытой установке...
Код:
procedure CurPageChanged(CurPageID: Integer);
begin
Case CurPageID of
wpSelectComponents: begin
if WizardSilent then begin
if CheckParam('/NK') or CheckParam('/NoRegConverter') then
WizardForm.ComponentsList.Checked[0]:= False else
WizardForm.ComponentsList.Checked[0]:= True;
if CheckParam('/IH') or CheckParam('/InstallHelp') then
WizardForm.ComponentsList.Checked[1]:= True else
WizardForm.ComponentsList.Checked[1]:= False;
end;
end;
end;
end;
На данном сайте используются файлы cookie, чтобы персонализировать контент и сохранить Ваш вход в систему, если Вы зарегистрируетесь.
Продолжая использовать этот сайт, Вы соглашаетесь на использование наших файлов cookie.