Имя пользователя:
Пароль:
 

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

Аватара для Raf-9600

Старожил


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

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


Цитата Johny777:
в Voice=false нет необходимости
Checked[Items.IndexOf('a')] принмает булев значение (True, False), но мы проверяем условие (сравниваем значения)
те GetIniString(...) = 'yes' значит True »
Это не от недопонимания написано, просто такой стиль, если можно так выразиться...

Цитата Johny777:
а если там нет 'yes' или стоит что-то другое или пусто то будет False, те айтем не будет отмечен, то бишь галки не будет »
Понял, поспешил с вопросом. Я думал что если не найдёт значение то возмёт его из самого инсталлятора, а не снимет галочку.

Возникла проблема. Почему-то часть параметров работают отлично, но остальные вызывают ошибку "List index out of bounds" при запуске инсталлятора. Собсно вот кусок кода, почему-то строчка c "cm:Game" проходит отлично, а "cm:backup" вызывает ошибку:

Код: Выделить весь код
procedure InitializeWizard();
var
    iFile: TIniFile;
    
begin
    iFile := ParseIniFile(ExpandConstant('{src}\PreSelector.ini'));
    with WizardForm.ComponentsList do
    begin
      Checked[Items.IndexOf(ExpandConstant('{cm:Game}'))] := GetIniValue('Game', 'Backup', '', iFile) = 'true';
      Checked[Items.IndexOf(ExpandConstant('{cm:backup}'))] := GetIniValue('Game', 'Type', '', iFile) = 'Full';
    end;
end;
Наличие "расшифровки" cm:backup проверил, правильность написания с тем что указано в секции инсталлятора [Components] - тоже, но абсолютно не понимаю, из-за чего может быть ошибка?

Последний раз редактировалось Raf-9600, 28-12-2012 в 20:24.


Отправлено: 20:16, 28-12-2012 | #1442