Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.10.2016, 10:53   #1
Дmmm
Пользователь
 
Регистрация: 26.02.2013
Сообщений: 66
По умолчанию Как выполнить действия после создания главной формы?

как написано в справке
the following events occur in the order listed:
OnCreate
OnShow
OnActivate
OnPaint

у главной FormStyle = fsMDIForm
Необходимо в момент запуска создавать дочерние MDI окна из сохранённого состояния.
И вот тут-то при попытке TMDIChild.Create(Application) возникает ошибка Сannot create form. No MDI forms are currently active
Вопрос: когда же их уже можно создавать, если даже в момент OnPaint оно еще No active, да и как это делать, если других событий нет?
Дmmm вне форума Ответить с цитированием
Старый 06.10.2016, 11:03   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

OnActivate
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 06.10.2016, 11:40   #3
Дmmm
Пользователь
 
Регистрация: 26.02.2013
Сообщений: 66
По умолчанию

Неужели думаете, что не пробовал?
Во всех вариантах ошибка.
Дmmm вне форума Ответить с цитированием
Старый 06.10.2016, 12:45   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Во всех вариантах ошибка.
Неужели?
Вложения
Тип файла: zip Новая папка (35).zip (4.1 Кб, 11 просмотров)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 07.10.2016, 10:48   #5
Дmmm
Пользователь
 
Регистрация: 26.02.2013
Сообщений: 66
По умолчанию

Если перенести создание дочерней формы из onActivate в onShow, то тоже нормально. Вот если в onCreate, тогда конечно, ошибку выдаст.
Но дело не в этом, я подсунул вместо пустой дочерней свою рабочую, и тоже сработало. А тот же вызов из моей главной приводит к ошибке.
Вывод: проблема в главной форме? И что может мешать ей вовремя создаться? Меню? Кнопки?
Дmmm вне форума Ответить с цитированием
Старый 07.10.2016, 17:23   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

в OnCreate Handle формы еще не создан, поэтому и ошибка. В OnShow и OnActivate уже создан. OnPaint вообще не при делах, он вызывается неоднократно во время жизни формы и можно использовать только для прорисовки. Сравни свойства своей главной и той, что во вложении.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 10.10.2016, 10:15   #7
Дmmm
Пользователь
 
Регистрация: 26.02.2013
Сообщений: 66
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Сравни свойства
Поразительно! Проблема была в свойстве Visible = True. При изменении на False ошибка возникать перестала. Но я не могу понять, почему это так
Дmmm вне форума Ответить с цитированием
Старый 10.10.2016, 11:11   #8
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,859
По умолчанию

А файл проекта (dpr) посмотреть можно?
northener вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как выполнить действия с компонентом? artemavd Общие вопросы Delphi 14 10.08.2014 09:34
Обновление поля формы после создания новой записи создания romanln2012 Microsoft Office Access 2 09.08.2012 14:12
Как программно закрыть все открытые модальные формы перед сворачиванием главной формы в трей? SkAndrew Общие вопросы Delphi 8 27.01.2010 22:44
Форма с авторизацией пользователя после появления главной формы r00xus Общие вопросы Delphi 7 14.01.2010 06:21
Выполнить действия после отображения формы zhefran Общие вопросы Delphi 15 14.08.2008 16:50