Восемь лет спустя
kv75
дневник заведен 05-10-2003
постоянные читатели [82]
закладки:
цитатник:
дневник:
местожительство:
Москва, Россия
интересы [13]
шахматы, грибы, Пратчетт, Иваси, Morrowind, Guild Wars
[1] 08-05-2008 07:37
Альпы

[Print]
Элизабет
06-04-2005 21:39 Опять о своём
Сегодня на второй работе дописал основу изменённой программы для сайта - теперь она будет через MySQL работать. Опять мой любимый ZeosDBO...

Запускаю - выдаёт Access violation. Сколько раз надо наступать на одни и те же грабли?! Правда, когда я пишу с нуля, я уже эти грабли обхожу, а тут переделывал и не заметил. Грабли совершенно тривиальные, и все пишущие программы на Дельфи их наверняка знают. В общем виде это выглядит так: создаются главная форма и модуль данных с компонентами работы с БД. Разумеется, в модуле данных ссылаться на главную форму некрасиво. Поэтому некоторая инициализация элементов формы должна быть проведена именно в ней - обычно это делается в OnCreate. Но если эта инициализация использует данные из БД, то ничего не выйдет, так как в это время компоненты модуля данных ещё не созданы (и не инициализированы, кстати). Менять порядок создания форм в файле проекта как-то неэстетично. Поэтому естественное решение, которое я нашёл для себя - использовать для инициализации обработчик формы OnShow. При этом в OnCreate ставится флаг того, что форма только что создана, а после первого прохода OnShow этот флаг снимается, и больше инициализация выполняться не будет.

В общем, когда я сделал эту стандартную операцию, всё нормально запустилось. Завтра буду тестировать.

Ваш комментарий:
Камрад:
Гость []
Комментарий:
[смайлики сайта]
Дополнительно:
Автоматическое распознавание URL
Не преобразовывать смайлики
Cкрыть комментарий
Закрыть