Обычно я всегда отключаю автоматическое создание всех форм, КРОМЕ для основной формы и, возможно, основного модуля данных.
Один трюк, который я узнал, что вы можете сделать, это добавить ваш модуль данных в ваш проект, позволить ему автоматически создавать и создавать ДО вашей основной формы. Затем, когда ваша основная форма будет создана, onCreate для модуля данных уже будет запущен.
Если в вашем приложении есть какой-то код, который нужно сказать, установите фокус элемента управления (что вы не можете сделать при создании, так как он «еще не виден»), затем создайте пользовательское сообщение и опубликуйте его в форме в своем приложении. , Сообщение ДОЛЖНО (без гарантии) обрабатываться, как только обрабатывается цикл обработки сообщений. Например:
const
wm_AppStarted = wm_User + 101;
type
Form1 = class(tForm)
:
procedure wmAppStarted(var Msg:tMessage); message wm_AppStarted;
end;
// in your oncreate event add the following, which should result in your wmAppStarted event firing.
PostMessage(handle,wm_AppStarted,0,0);
Я не могу вспомнить ни разу, чтобы это сообщение никогда не обрабатывалось, но характер вызова заключается в том, что оно добавляется в очередь сообщений, и если очередь заполнена, то она «отбрасывается». Просто знайте, что крайний случай существует.