![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему? [D7]
serko © (2006-12-08 21:46:00)Здрасте всем!
Такой вот баг выскакивает. Есть код:
IniFile := TIniFile.Create(ExtractFileDir(Dir)+'\Options.ini');
Spinedit2.Value:=IniFile.ReadInteger('Zvuki', 'Utro_2', 0);
Inifile.Free;
Так вот при OnButtonClick все пашет нормально, а при OnActivate выскакивает ошибка! ПОЧЕМУ? Что исправить?
Loginov Dmitry (2006-12-09 14:01:00) [1]> Да ну?
Ну да! Откуда нули - искать значительно проще.
Anatoly Podgoretsky (2006-12-09 13:16:00) [2]> Loginov Dmitry (09.12.2006 8:57:26) [26]
> в таком случае быстро бы все выяснилось
Да ну?
Потом будет долго искать где обнулено.
Не надо глобальности для подобной вещи.
Loginov Dmitry (2006-12-09 08:57:00) [3]> вызывает событие OnChangeSpinedit в котором у меня сохраняются
> данные INIFILE.WRITEINTEGER
И чаго, ошибка только в этом? Интересный подход - объявляешь переменную как глобальную, и дальше то и дело создаешь и дестроишь объект. Тогда уж дестрой хотябы с помощью FreeAndNil() (в таком случае быстро бы все выяснилось).
Германн (2006-12-09 01:48:00) [4]
> MsGuns © (09.12.06 01:38) [24]
>
> Тихо сам с собою я веду беседу...
>
Ну да, тихо. Уже 4 часа спать не даёт почтенным людям! :-)
MsGuns (2006-12-09 01:38:00) [5]Тихо сам с собою я веду беседу...
Германн (2006-12-09 01:03:00) [6]
> вызывает событие OnChangeSpinedit в котором у меня сохраняются
> данные INIFILE.WRITEINTEGER....
Имхо, неудачное решение. Я предпочитаю для сохранения пользоваться событем OnExit.
serko (2006-12-09 00:57:00) [7]Кароче разобрался я пацыки уже...
Оказывается прогон мой был в том что строка
Spinedit2.Value:=IniFile.ReadInteger('Zvuki', 'Utro_2', 0);
вызывает событие OnChangeSpinedit в котором у меня сохраняются данные INIFILE.WRITEINTEGER....
Вот и усе... ХУХ
Германн (2006-12-09 00:52:00) [8]
> serko © (09.12.06 00:34) [20]
Может покажешь весь код в OnActivate?
И кстати, чей этот OnActivate?
serko (2006-12-09 00:34:00) [9]я на форму кинул PageControl на нем уже на разных страницах накидаж checkbox и spinedit. Все....
потом при изменении значения они сразу же сохраняются в INI, ну и вот хочу чтобы при активизации формы считывались данные с INI.
Я уже взял удалил этот Spinedit и кинул новый... Пару раз работало... А теперь снова таже беда....
Что от этого может меняться?
ProgRAMmer Dimonych (2006-12-08 23:40:00) [10]> Anatoly Podgoretsky © (08.12.06 23:37) [18]
ОК, рассуждаем логически в таком случае...
Т.к. нет цифр FFFFFFFF и 00000000, то делаем вывод, что создание//удаление объектов выполнено нормально. При любом глюке ReadInteger выдаёт третий параметр, т.е. 0. Значит AV возникает из-за SpinEdit1.Value. Почему? Случайно не в секретной ли части проблема?
Anatoly Podgoretsky (2006-12-08 23:37:00) [11]> ProgRAMmer Dimonych (08.12.2006 23:25:17) [17]
А толку, скажем объявление в одном месте, инициализация в другом.
Кидать надо значимую информацию, объявление, создание и значимую часть кода. Значимая часть кода приведена, а остальное большой, большой секрет, конечно от нас.
ProgRAMmer Dimonych (2006-12-08 23:25:00) [12]> serko © (08.12.06 23:11) [14]
Швырни сюда всю процедуру, на всякий случай...
Anatoly Podgoretsky (2006-12-08 23:25:00) [13]> serko (08.12.2006 23:11:14) [14]
Что и где этот Spinedit остается загадкой
Palladin (2006-12-08 23:17:00) [14]ну как же портфеля нет у меня в руках? если мне нужно положить в него учебники? вчера ведь был... правда меня мама в школу собирала... Может есть другой ВАРИАНТ?
serko (2006-12-08 23:11:00) [15]
> > serko (08.12.2006 23:04:12) [12]
Ну как же удалена или мусор если мне в этот Spinedit из INI нужно загрузить сохраненное ранее значение? Все там есть... Но вот при загрузке такая ошибка...
Может есть другой ВАРИАНТ?
Anatoly Podgoretsky (2006-12-08 23:06:00) [16]> serko (08.12.2006 23:04:12) [12]
Вот теперь более понятно, видимо Spinedit2 имеет неверное значение, может быть удалена или вообще просто мусор.
serko (2006-12-08 23:04:00) [17]
> Как объявлена переменная Spinedit2?
SpinEdit1: TSpinEdit;
> Это не полный текст сообщения об ошибке
Raised exception class EAccessViolation with message 'Access violation at address 00AB34FB. Write of address 0052364C'
Anatoly Podgoretsky (2006-12-08 22:40:00) [18]> Loginov Dmitry (08.12.2006 22:37:10) [10]
Допрос продолжается.
Loginov Dmitry (2006-12-08 22:37:00) [19]Как объявлена переменная Spinedit2?
Anatoly Podgoretsky (2006-12-08 22:31:00) [20]> serko (08.12.2006 22:09:03) [3]
Это не полный текст сообщения об ошибке