Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Новый участник


Сообщения: 26
Благодарности: 4

Профиль | Отправить PM | Цитировать


Хочу генерировать путь установки динамически, считывая путь игры из реестра. Если запись в реестре отсутствует, то выдавать предупреждение. Написал так:
Код: Выделить весь код
procedure CurPageChanged(CurPageID: Integer);
var sd: string;
begin   
 if CurPageId = wpSelectDir then
  sd := ExpandConstant('{reg:HKLM\SOFTWARE\WOW6432Node\Bethesda Softworks\Oblivion,Installed Path|{#NOT_FOUND}}');

  if sd = '{#NOT_FOUND}' then
    sd := ExpandConstant('{reg:HKLM\SOFTWARE\Bethesda Softworks\Oblivion,Installed Path|{#NOT_FOUND}}')

  if sd = '{#NOT_FOUND}' then begin
    sd := NoSD('') + '{#MyAppName}';
    MsgBox('Текст предупреждения', mbInformation, MB_OK);
  end

  WizardForm.DirEdit.Text := sd;
end;
Текст при этом в поле пути подставляется, все хорошо.
Скрытый текст

Но потом он куда-то теряется, и на последнем экране запись о пути пустая.
Скрытый текст

Более того, путь сбрасывается при переходе на следующую страницу, причем переменная {app} имеет корректный путь.
Скрытый текст


Если я пропишу путь напрямую
Код: Выделить весь код
WizardForm.DirEdit.Text := 'D:\Games\Oblivion';
и попробую его изменить в инсталяторе.
Скрытый текст

То на выходе путь не меняется.
Скрытый текст


Что я делаю не так?

Последний раз редактировалось EdMSL, 21-10-2022 в 17:31.


Отправлено: 17:16, 21-10-2022 | #843