Какое событие вы решите использовать, зависит от того, когда вы хотите выполнить действие.
OnCreate
Выполняется один раз только при жизни формы.
OnShow
Выполняется каждый раз, когда форма переходит от скрытого до показа. Потенциально он может выполняться много раз за время жизни формы.
OnActivate
Выполняется каждый раз, когда форма формы получает фокус. Потенциально он может выполняться много раз за время жизни формы.
Элементы управления, определенные в файле .dfm, создаются при каждом срабатывании каждого из этих событий.
Таким образом, из-за этого выбора OnCreate
, вероятно, является наиболее логичным выбором для кода инициализации. Но только вы можете точно знать, когда вы хотите, чтобы этот код работал.
Что касается исключений, с которыми вы сталкиваетесь, это потому, что ваш код содержит ошибки. Поскольку мы не можем видеть ваш код, вам нужно будет отлаживать код без нашей помощи.
Да. Удалите ошибки в коде (используя отладчик). – TLama
событие oncreate может иметь это, но событие onshow can not создает такую проблему, вы используете пользовательский чертеж? если нет, то попытайтесь создать демонстрационный проект, снимите пару флажков и установите их в true в событии Form OnShow, если проблема повторится, то что-то не так с вашей IDE, если нет, то проблема в коде, без которой мы не можем много говорить также в следующий раз попробуйте вставить трассировку стека :) – AirWolf
И ваш код? SSCEE? и что именно говорят исключения? по крайней мере, их тип? http://www.catb.org/~esr/faqs/smart-questions.html –