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

Nemko

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

Ссылка на Яндекс Диск: Ссылка удалена автором
 
Последнее редактирование:

Carlos

Участник
Модератор
Всё работает. Windows 10 x64, но при отмене установки ничего не происходит. Время продолжает идти, а проценты стоят на месте и окно не закрывается
 

Nemko

Дилетант
Модератор
Хм, если при отмене через Alt+F4 да есть недоработка буду думать, что делать с ISDone. А если при нажатии на кнопку отмена такое происходит, то это загадка для меня, попробую исправить. Спасибо.
 

Timick

Старожил
Лейблы не выделяются белым автоматически, хотя CheckBox'ы выделены. (на странице задач).
 

Nemko

Дилетант
Модератор
Лейблы не выделяются белым автоматически, хотя CheckBox'ы выделены. (на странице задач).
Да действительно не заметил, это легко поправимо. Просто параметр CheckBoxExSetChecked присваивался на поздней стадии и я не присвоил тексту цвет выделения.
 

Nemko

Дилетант
Модератор
Если можно протестируйте пожалуйста 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;

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

Timick

Старожил
SuspendProc - "пауза"
ResumeProc - "продолжить"

На время запроса пользователя (отменить или продолжить установку), мы временно приостанавливаем все процессы идущие в ISDone.dll (SuspendProc),
а затем, когда пользователь сделал выбор, мы вновь запускаем их. (ResumeProc)
Я это так понимаю)
 
Последнее редактирование:

nik1967

Old Men
Проверенный
А что такое
ShadowWindowImg(True);
и
ShadowWindowImg(False);
и где это дают?
 

Nemko

Дилетант
Модератор
А что такое
ShadowWindowImg(True);
Это процедура которой передается значение Visible: Boolean. Проще говоря, она делает картинку с ч\б эффектом видимой, когда открыто кастомное окно Выбора директории установки или Меню выхода. В общем ничего особенного, так для эффекта, думал еще сделать цикл с плавным затемнением через for i=1 to 255 и ImgSetTransparent(ShadowWindow, i), посмотрим как работать будет.
Код:
procedure ShadowWindowImg(Visible: Boolean);
begin
  ImgSetVisibility(ShadowWindow, Visible);
  ImgApplyChanges(WizardForm.Handle);
end;
 

Nemko

Дилетант
Модератор
Avengerz13, а можно пожалуйста поподробнее что именно работает не так, я компилировал через ANSI версию Inno, чтобы меньше весело. А если откомпилировать через Unicode, то это решит проблему? Отредактированная запись мной, может кому из новичков интересно будет для чтения.

FAQ: ANSI или Unicode? Что лучше?
 
Последнее редактирование:

Nemko

Дилетант
Модератор
Извините что надоедаю я переделал весь кастомный текст в Unicode Hex, проверьте пожалуйста у кого русский язык в системе отсутствует. И забегая вперед хочу поинтересоваться не будет ли в данных версиях систем проблем с DirEdit.Caption и в TFolderTreeView(и как с этим бороться), а также с названием игры если она на русском через #define "Русское название игры". Спасибо.

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

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

Nemko

Дилетант
Модератор
Здравствуйте, есть небольшая просьба все тем у кого есть виртуальная машина с системой без русского языка(любая), протестируйте пожалуйста отображение кнопок (у меня работает). Мне пришла дурная идея в голову (никак не могу её отпустить), решил сделать "модуль" для создания "кнопок" с поддержкой Unicоde для ботвы. Заранее пасиба.

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

P.S.: В случае удачи, стоит ли разместить это "чудо" в раздел Модули.
 

Nemko

Дилетант
Модератор
vint56, спасибо утешили.
SotM, извините неправильно выразился, с отключенным русским языком или с отсутствием локализации.
 
Сверху