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

Проблема Ошибка Out of Range

Тема в разделе "Inno Setup", создана пользователем Darksoul, 13 янв 2018.

  1. Старожил

    Регистрация:
    29 окт 2014
    Сообщения:
    16
    Симпатии:
    1
    Здравствуйте, уважаемые жители этого форума! Создаю установщик на ботве (естественно не сам, руки пока только выпрямляю, изучая чужой код и добавляя в него небольшие правки из готовых решений), и вот столкнулся с проблемой, что при переходе на непосредственно страницу установки файлов появляется ошибка "Out of Range", ранее с подобной проблемой не сталкивался, как решить не знаю, помогите хоть советом. Заранее спасибо за любую помощь.
     
  2. Old Men Проверенный

    Регистрация:
    17 июн 2011
    Сообщения:
    422
    Симпатии:
    399
    Пол:
    Мужской
    Darksoul, "Ошибка out of range, означает выход за пределы, эта ошибка связана с выходом за пределы массива или множества."
    Без скрипта (со всеми файлами, что бы не искать их) тебе никто не сможет помочь.
     
  3. Старожил

    Регистрация:
    29 окт 2014
    Сообщения:
    16
    Симпатии:
    1
    По личным причинам, не могу распотраняться скриптами в открытом виде, какие в таком случае могут быть варианты? Просто ошибка орёт на строку 141 в скрипте, но дело в том, что у меня код не в одном скрипте, а в нескольких отдельных модулях. И я не знаю пока что, как определить где именно эта строка. в общем коде.
     
  4. Ветеран Модератор

    Регистрация:
    5 мар 2016
    Сообщения:
    316
    Симпатии:
    345
    Пол:
    Мужской
    Darksoul, как Вам объяснить коротко, а главное понятно и по русски:
    1. В модуле 07_Components.iss не правильно прописываете имя объектов. Например: 'MEIN_GOTT': Result:=clbIsItemCheckedByName(List[0], 'RadioButtonA3'), объекта с именем RadioButtonA3 не существует. Пропишите правильно имена.
    2. В модуле 09_Log.iss, такая же проблема Например:if clbIsItemCheckedByName(List[0], 'RadioButtonA3') then LogString:=LogString + #13#10 + ' Mary Grand', объекта с именем RadioButtonA3 не существует.
    А на вопрос, почему выходит ошибка Out of Range, отвечу что модуль CheckBoxList от South работает приблизительно так, с помощью функции простые объекты CheckBox записываются в заранее прописанный тип данных массивного типа, как то так. Проще говоря при неправильном обращении к массиву CheckBoxList'a мы выходим за рамки него (-1), как то так. Возможно поправить в теории функцию lbIsItemCheckedByName в модуле 02_CheckListBox.iss, добавив условие при не нахождении по имени, что то типа(не проверял, но в теории ошибки должны пропускаться и компонент не установится, но лучше прописывать имена объектов правильно):
    Код (Text):

    function clbIsItemCheckedByName(clbind:integer; Name:AnsiString):boolean;
    var
      ii:integer;
    begin
      ii:=clbFindItemByName(clbind,Name);
      if ii <> -1 then Result:=CheckBoxGetChecked(ACLB[clbind].ItemList[ii].Handle) else Result:=False;
    end;
    P.S.: "Лол кек чебурек", не знаю кто дал Вам код, но для кого я его писал просил не выкладывать, а Вы успешно выложили самую главную секцию Description.iss, "мои полномочия на это всё". Genius...
     
    Последнее редактирование: 15 янв 2018 в 23:41
  5. Старожил

    Регистрация:
    29 окт 2014
    Сообщения:
    16
    Симпатии:
    1
    P.S.: "Лол кек чебурек", не знаю кто дал Вам код, но для кого я его писал просил не выкладывать, а Вы успешно выложили самую главную секцию Description.iss, "мои полномочия на это всё". Genius...[/QUOTE]
    Сорян, тупанул, быстренько уже удалил.
     

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