Inno Setup Прошу протестировать инсталлятор.

  • Автор темы Автор темы Nemko
  • Дата начала Дата начала

Nemko

Дилетант
Модератор
Здравствуйте, кого не затруднит, прошу протестировать.

Ссылка на Яндекс Диск: Ссылка удалена автором
 
Последнее редактирование:
Всё работает. Windows 10 x64, но при отмене установки ничего не происходит. Время продолжает идти, а проценты стоят на месте и окно не закрывается
 
Хм, если при отмене через Alt+F4 да есть недоработка буду думать, что делать с ISDone. А если при нажатии на кнопку отмена такое происходит, то это загадка для меня, попробую исправить. Спасибо.
 
Лейблы не выделяются белым автоматически, хотя CheckBox'ы выделены. (на странице задач).
 
Лейблы не выделяются белым автоматически, хотя CheckBox'ы выделены. (на странице задач).
Да действительно не заметил, это легко поправимо. Просто параметр CheckBoxExSetChecked присваивался на поздней стадии и я не присвоил тексту цвет выделения.
 
Если можно протестируйте пожалуйста Setup, на реакцию отмены установки. И если не трудно проверьте, так на глазок, процедуру поведения при нажатии на кнопку отмены, чтобы работала стабильно. Я так накидал смысл, но если что буду рад любой помощи или разъяснению, что и где не так.

Код:
procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
  Confirm:=False;                                        //  Скрываем стандартный Msg об выходе
  ExitMessage;                                           //  Создаем кастомное окно выхода
  SuspendProc;                                           //  Приостанавливаем ISDone
  ShadowWindowImg(True);                                 //  Затемнение фона инсталлятора(Вкл)
case ExitForm.ShowModal of                               // Оператор выбора результата модуля ExitForm
  mrOK: begin                                            //  Кнопка ОК
    if not (CurPageID = wpInstalling) then Cancel:=True; //    Если CurPageID не страница установки то Отмена:=Истина
    if (CurPageID = wpInstalling) then begin             //    Если CurPageID страница установки то начало
      ISDoneCancel:=1;                                   //      Встроенная переменная типа Integer в ISDone об отмене
      Cancel:=False;                                     //      Отмена:=Ложь
end;                                                     // ...
end;                                                     // ...
  mrCancel: begin                                        //   Кнопка Отмена
    Cancel:=False;                                       //     Отмена:=Ложь
end;                                                     // ...
end;                                                     // ...
  ResumeProc;                                            //   ResumeProc; Не совсем понемаю смысл этой функции, но без нее не работает. Объясните пожалуйста...
  ShadowWindowImg(False);                                //   Затемнение фона инсталлятора(Выкл)
end;


Ссылка на файл: Ссылка удалена автором
 
Последнее редактирование:
SuspendProc - "пауза"
ResumeProc - "продолжить"

На время запроса пользователя (отменить или продолжить установку), мы временно приостанавливаем все процессы идущие в ISDone.dll (SuspendProc),
а затем, когда пользователь сделал выбор, мы вновь запускаем их. (ResumeProc)
Я это так понимаю)
 
Последнее редактирование:
А что такое
ShadowWindowImg(True);
и
ShadowWindowImg(False);
и где это дают?
 
А что такое
ShadowWindowImg(True);
Это процедура которой передается значение Visible: Boolean. Проще говоря, она делает картинку с ч\б эффектом видимой, когда открыто кастомное окно Выбора директории установки или Меню выхода. В общем ничего особенного, так для эффекта, думал еще сделать цикл с плавным затемнением через for i=1 to 255 и ImgSetTransparent(ShadowWindow, i), посмотрим как работать будет.
Код:
procedure ShadowWindowImg(Visible: Boolean);
begin
  ImgSetVisibility(ShadowWindow, Visible);
  ImgApplyChanges(WizardForm.Handle);
end;
 
Avengerz13, а можно пожалуйста поподробнее что именно работает не так, я компилировал через ANSI версию Inno, чтобы меньше весело. А если откомпилировать через Unicode, то это решит проблему? Отредактированная запись мной, может кому из новичков интересно будет для чтения.

FAQ: ANSI или Unicode? Что лучше?
 
Последнее редактирование:
Nemko,
13286821.png
 
Извините что надоедаю я переделал весь кастомный текст в Unicode Hex, проверьте пожалуйста у кого русский язык в системе отсутствует. И забегая вперед хочу поинтересоваться не будет ли в данных версиях систем проблем с DirEdit.Caption и в TFolderTreeView(и как с этим бороться), а также с названием игры если она на русском через #define "Русское название игры". Спасибо.

Ссылка на файл: Ссылка удалена автором

P.S.: Кто будет искать решение подобной проблемы вот это мне чуть помогло спасибо sergey3695. А так все оказалось просто, надо было только поменять кодировку самого .iss файла, чувствую чем дольше я сижу в коде тем больше тупею от самого себя. Но с кнопками по прежнему проблема.
 
Последнее редактирование:
Здравствуйте, есть небольшая просьба все тем у кого есть виртуальная машина с системой без русского языка(любая), протестируйте пожалуйста отображение кнопок (у меня работает). Мне пришла дурная идея в голову (никак не могу её отпустить), решил сделать "модуль" для создания "кнопок" с поддержкой Unicоde для ботвы. Заранее пасиба.

Скомпилированный файл: https://yadi.sk/d/1cDFyzTv3KLYmj

P.S.: В случае удачи, стоит ли разместить это "чудо" в раздел Модули.
 
vint56, спасибо утешили.
SotM, извините неправильно выразился, с отключенным русским языком или с отсутствием локализации.
 
Назад
Сверху