|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
17.06.2008, 02:48 | #1 |
***
Участник клуба
Регистрация: 30.07.2007
Сообщений: 1,162
|
Ини файл ошибка(глюк или что?)
Ситуация такая:
Программка которую пишу большая, так что я иногда некоторые процедуры отлаживаю, в новой программе, т.е создаю программу, делаю такие же условия там, доделываю процедуры, потом переношу в основную. Так вот сделал пару процедур, переношу в основную программу, всё так же, перепроверил, всё тоже самое, индентично. В одной работает это, а в другой вот такая ошибка Это бяка вылазиет в событие close формы Код:
Может кто знает что это может быть? Суть ошибки я понял, но не могу понять её причину |
17.06.2008, 10:23 | #2 |
Форумчанин
Регистрация: 29.03.2008
Сообщений: 300
|
Возможно файл занят другой программой, если нет значит убери Ini.Destroy и добавь его в Form.OnDestroy.
Карп преодолевший водопад становится драконом.
|
17.06.2008, 12:49 | #3 | |
***
Участник клуба
Регистрация: 30.07.2007
Сообщений: 1,162
|
Цитата:
Процедура create: Код:
Код:
1 способ - в событие close вылазила вот та ошибка которую я описывал выше; 2 способ - т.е. задавал просто имя файла, значит файл записываеться в папку Windows. Так теперь не работает это Код:
За то в первой программе всё работает без ошибок как надо. Кто нибудь знает что это? P.S.: Сори если много написал, но я уже не понимаю что это |
|
17.06.2008, 13:41 | #4 |
Форумчанин
Регистрация: 06.09.2007
Сообщений: 239
|
в первом способе вместо
Код:
Код:
Последний раз редактировалось Ring0Sn; 17.06.2008 в 13:47. |
17.06.2008, 13:57 | #5 |
Пользователь
Регистрация: 22.08.2007
Сообщений: 59
|
Я бы советовал делать так:
try ini_file := TIniFile.Create(extractfilepath(par amstr(0)) + 'history.ini' ); finally ini_file.free; |
17.06.2008, 14:10 | #6 | |
Форумчанин
Регистрация: 06.09.2007
Сообщений: 239
|
Цитата:
В твоем случае если ini_file неинициализируеться (ну например у тебя нету прав для записи на диск), произойдет выход из блока try, и выполниться finally, а там дадут по рукам, за то что хочешь уничтожить обьект, ктр не создан |
|
17.06.2008, 14:30 | #7 |
Пользователь
Регистрация: 22.08.2007
Сообщений: 59
|
Согласен, это тут не учтено, но для большинства случаев подходит и на мой взгляд очень удобно.
|
17.06.2008, 15:12 | #8 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
А это зачем? Ini.Destroy;
Дельфи справку хоть раз читал? Не вызывайте Destroy напрямую, вызывайте вместо этого Free, это всех объектов касается. Путь к программе: ExtractFilePath(Application.EXEName ) Вообще сделай лучше так: Код:
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог Последний раз редактировалось mutabor; 17.06.2008 в 15:30. |
17.06.2008, 18:48 | #9 |
***
Участник клуба
Регистрация: 30.07.2007
Сообщений: 1,162
|
mutabor Вот спасиба, воспользовался твоим способом. А по поводу
Ini.Destroy; я же это не из головы взял, так написано в учебнике В.В. Фараонов "Delphi Программирование на языке выского уровня". Ну теперь буду знать. P.S.: Спс всем кто откликнулся. |
18.06.2008, 06:36 | #10 |
Форумчанин
Регистрация: 27.01.2007
Сообщений: 293
|
а если *.Destroy не вызывать, что это очень многа место в памяти занимает? Программа завершиться и все само дестроится
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Глюк )) | theos | О форуме и сайтах клуба | 9 | 08.01.2008 17:44 |
Ошибка при записи в файл txt | Alex_Ku | Помощь студентам | 2 | 28.04.2007 12:15 |
Глюк? Или я туплю? | Nick93.93 | Общие вопросы Delphi | 6 | 04.03.2007 14:28 |