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