Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Создать MDI-child сразу при запуске программы [D7, XP]


Terasbetoni ©   (2008-10-13 17:54:00) 

Здравствуйте. У меня есть MDI-окно, в нем пользователь создает MDI-формы. Программа сохраняет информацию о созданных формах в файл, и, когда программа вновь запускается, происходит восстановление форм и их содержания. Эту операцию восстановления я поставил на OnCreate главной MDI-формы (я выбрал OnCreate главной формы, потому что он вызывается при запуске программы и только один раз -- а это то, что нужно). Вылезает ошибка "Cannot create form. No MDI-forms are currently active". Как мне сделать создание MDI-child-форм при запуске моего приложения.

Можно сделать так:

на OnCreate поставить
 FirstActivate:=true
на OnActivatw поставить
 if FirstActivate then begin
   .....
   FirstActivate:=false;
 end;


но это больше смахивает на бег с препятствиями =)


Terasbetoni   (2008-10-13 18:02:00) [1]

Игорь Шевченко ©   (13.10.08 18:00) [1]
Спасибо. Работает =)


Игорь Шевченко   (2008-10-13 18:00:00) [2]


> Эту операцию восстановления я поставил на OnCreate главной
> MDI-формы (я выбрал OnCreate главной формы, потому что он
> вызывается при запуске программы и только один раз -- а
> это то, что нужно).


К этому моменту Application.MainForm еще не заполнено. Я бы сделал некий метод у главной формы и вставил бы его вызов в .dpr сразу после Application.CreateForm (ТГлавнаяФорма, ГлавнаяФорма)


Наверх

Титульная страница Поиск, карта сайта Написать письмо