![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
MDI формы [D6, WinXP]
kilya © (2007-03-21 15:55:00)У меня вот такая проблемка
Есть главная ворма F1 приложения, есть вторая форма F2(Style:MDIForm) и есть форма F3 (Style:MDIChild).
На форме F2 на кнопочку срабатывает :TF3.Create(TF2).
Выдается исключение: "не могу создать форму. нет активной MDI формы". Если создавать для F1, то все норм. Дочерние формы можно создавать только для главной формы? Уверен что проблема в какой-нибудь мелочи: переключить свойство или т.п.. Подскажите кто-нибудь :)
kilya (2007-03-21 17:02:00) [1]пасиба :)
Сергей М. (2007-03-21 16:58:00) [2]Цитата из "генофонда":
procedure TCustomForm.CreateWindowHandle(const Params: TCreateParams);
..
if (FormStyle = fsMDIChild) and not (csDesigning in ComponentState) then
begin
if (Application.MainForm = nil) or
(Application.MainForm.ClientHandle = 0) then
raise EInvalidOperation.Create(SNoMDIForm); //<-здесь ты получаешь отлуп, потому что у тебя Application.MainForm.ClientHandle = 0
Сергей М. (2007-03-21 16:56:00) [3]
> F2 не является MDIparent для F3 ?
Не является. Потому что она не главная.
kilya (2007-03-21 16:45:00) [4]Не понял :(
F1.FormStyle : fsNormal -- Main Form в Projects/Options/Forms
F2.FormStyle : fsMDIForm
F3.FormStyle : fsMDIChild
F2 не является MDIparent для F3 ?
Сергей М. (2007-03-21 16:34:00) [5]Главной формой MDI-приложения должна быть именно MDIParent-форма, а не какая-то иная.
Такова MDI-концепция и такова особенность VCL, придерживающейся этой концепции.