1. Уважаемые гости и пользователи форума.
    Администрация настоятельно рекомендует не регистрировать несколько аккаунтов для одного пользователя. При выявлении наличия мультиаккаунтов будут заблокированы все учетные записи данного пользователя.
    Аккаунты, зарегистрированные на временную почту будут также заблокированы.

Вопрос Как сделать ShouldSkipPage переменной?

Тема в разделе "Inno Setup", создана пользователем Incorrect, 23 мар 2020.

  1. Старожил

    Регистрация:
    11 июл 2014
    Сообщения:
    293
    Симпатии:
    129
    Пол:
    Мужской
    Здравствуйте.
    Требуется функцию:
    Код (Inno):
    1.  
    2. Function ShouldSkipPage(PageID: Integer): Boolean;
    3. begin
    4.   if (PageID = wpSelectTasks) or (PageID = wpSelectComponents) or (PageID = wpSelectProgramGroup) then Result:= True;
    5. end;
    6.  
    Сделать как-то так:

    Код (Inno):
    1.  
    2. Procedure PagesSkip_1(PageID: Integer);
    3. var
    4. PagesSkip: AnsiString;
    5. begin
    6.   PagesSkip:= (PageID = wpSelectTasks) or (PageID = wpSelectComponents) or (PageID = wpSelectProgramGroup);
    7. end;
    8.  
    9. Function ShouldSkipPage(PageID: Integer): Boolean;
    10. begin
    11.   if PagesSkip; then Result:= True;
    12. end;
    13.  
    Как такое можно реализовать?
     
  2. Старожил

    Регистрация:
    11 июл 2014
    Сообщения:
    293
    Симпатии:
    129
    Пол:
    Мужской
    Или может есть вариант как-то обернуть ShouldSkipPage и CurPageChanged в процедуру?

    Что бы вышло как-то так:
    Код (Inno):
    1. Procedure Module_1();
    2. begin
    3.   Function ShouldSkipPage(PageID: Integer): Boolean;
    4.   begin
    5.     if (PageID = wpSelectTasks) or (PageID = wpSelectComponents) or (PageID = wpSelectProgramGroup) then Result:= True;
    6.   end;
    7.  
    8.   Procedure CurPageChanged(CurPageID: Integer);
    9.   begin
    10.  
    11.   end;
    12. end;
     
  3. Старожил Супер модератор

    Регистрация:
    5 мар 2016
    Сообщения:
    435
    Симпатии:
    459
    Пол:
    Мужской
    Incorrect, не совсем понимаю для чего, вот что-то:

    Код (Inno):
    1. [Setup]
    2. AppName=My Application
    3. AppVersion=1.5
    4. CreateAppDir=no
    5.  
    6. [Code]
    7. var
    8.   PagesSkip: Boolean;
    9.  
    10. procedure CheckSkipPage;
    11. begin
    12. case WizardForm.CurPageID of
    13.   wpSelectTasks,wpSelectComponents,wpSelectProgramGroup: PagesSkip:=True;
    14.   else PagesSkip:=False;
    15.  end;
    16. end;
    17.  
    18. function ShouldSkipPage(PageID: Integer): Boolean;
    19. begin
    20.   CheckSkipPage;
    21.   Result:=PagesSkip;
    22. end;

    Код (Inno):
    1. [Setup]
    2. AppName=My Application
    3. AppVersion=1.5
    4. CreateAppDir=no
    5.  
    6. [Code]
    7. var
    8.   PagesSkip: Boolean;
    9.  
    10. function CheckSkipPage: Boolean;
    11. begin
    12. case WizardForm.CurPageID of
    13.   WpwpSelectTasks,wpSelectComponents,wpSelectProgramGroup: Result:=True;
    14.   else Result:=False;
    15.  end;
    16.   PagesSkip:=Result;
    17. end;
    18.  
    19. function ShouldSkipPage(PageID: Integer): Boolean;
    20. begin
    21.   Result:=CheckSkipPage;
    22. end;

    P.S.: насчет обертки, не думаю что это как-то работает, ибо это встроенное событие в интерпретаторе кода Inno Setup.
     
    Последнее редактирование: 23 мар 2020
  4. Старожил

    Регистрация:
    11 июл 2014
    Сообщения:
    293
    Симпатии:
    129
    Пол:
    Мужской
    Nemko, вы - Гений! Спасибо большое!
     
  5. Ветеран Модератор

    Регистрация:
    26 июн 2011
    Сообщения:
    1.336
    Симпатии:
    874
    Код (Inno):
    1. function PagesSkip(PageID: Integer): Boolean;
    2. begin
    3.   Result:=False;
    4. if (PageID = wpSelectTasks) or (PageID = wpSelectComponents) or (PageID = wpSelectProgramGroup) then
    5.   Result:=True;
    6. end;
    7.  
    8. function ShouldSkipPage(PageID: Integer): Boolean;
    9. begin
    10.   if PagesSkip(PageID) then Result:= True;
    11. end;
    :scratchhead:
     
    Последнее редактирование: 24 мар 2020

Поделиться этой страницей