Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.10.07;
Скачать: CL | DM;

Вниз

Многодокументальное прило жение . Создание новой нестан. формы   Найти похожие ветки 

 
NKT   (2007-07-25 10:18) [0]

Всем добрый день ! Пробую создать многодокументальное прило жение . Решила создать новую форму - Form1 , указала в св-ве
Formstyle = MDIChild , при вызове формы :

  Form1 := TForm1.Create(Application);
  Form1.Show;
  MainMenu1.Merge(Form1.MainMenu1);

на операторе Form1 := TForm1.Create(Application); ругается :

Cannot create form . No MDI forms are currently active .

Нужна нестандартная форма и не одна . Как правильно создать нестандартные формы .

Всем спасибо .


 
Loginov Dmitry ©   (2007-07-25 10:39) [1]

Главная форма должна иметь Formstyle = MDIForm и создаваться она должна раньше, чем создается дочерняя форма.

> Form1.Show;
Show тут лишнее. Дочерние формы появляются автоматически после выполнения Create.


 
MsGuns ©   (2007-07-25 10:52) [2]

Динамичски создаваемую "дочку" надр убрать из списка автосоздаваемых (Project->Options->Forms)


 
NKT   (2007-07-25 11:32) [3]

>  Динамичски создаваемую "дочку" надр убрать из списка автосоздаваемых (Project->Options->Forms)  -  сделано .
Убрала Show - эффект тот же .


 
Плохиш ©   (2007-07-25 11:38) [4]


> NKT   (25.07.07 11:32) [3]

А первое предложение в [1] по какой причине было не замечено?
Пора уже и почитать чего...


 
NKT   (2007-07-25 11:44) [5]

И первое предложение сделано .
Может быть в MDI нельзя создавать нестандартные формы , а можно работать только как описано в литературе ?
Пробовала шаблон проекта SDI , менялa стиль форм на Formstyle = MDIForm и
Formstyle = MDICHildForm , эффект тот же .
Или так нельзя или где-то не учтена какая-то мелочь , вопрос - какая .


 
Плохиш ©   (2007-07-25 11:59) [6]


> Пробовала шаблон проекта SDI , менялa стиль форм на Formstyle
> = MDIForm и Formstyle = MDICHildForm

Да, вижу, вам читать ещё рано...


 
sniknik ©   (2007-07-25 12:03) [7]

> А первое предложение в [1] по какой причине было не замечено?
имхо, причина(оно же правило) у них всех одна - все что не понимается то игнорируется.

> Или так нельзя или где-то не учтена какая-то мелочь , вопрос - какая .
образование.


 
Плохиш ©   (2007-07-25 12:04) [8]


> Может быть в MDI нельзя создавать нестандартные формы

Что-такое в вашем понимании "нестандартная форма"

> а можно работать только как описано в литературе ?

MDI - это интерфейс пользователя, работа которого подчиняется определённому алгоритму, который за много лет очень подробно описан во всякой документации...


 
MsGuns ©   (2007-07-25 12:32) [9]

Метод Show для MDI интерфейса работает "несколько" иначе, чем у обычного (SDI)
В основе лежит "скрытный" объект TClientArea, который собственно и управляет прорисовкой "дочек" - именно через него "мама" керует "дочками". Непонимание этого часто приводит к недоразумениям у неопытных программистов.
У "мамы" есть два св-ва: ActiveMDIChild и MDIChildCount и коллекция MDIChildren, с помощью который собственно и нужно "управлять" дочками.


 
Игорь Шевченко ©   (2007-07-25 14:13) [10]


> Метод Show для MDI интерфейса работает "несколько" иначе,
>  чем у обычного (SDI)


Вроде точно также...


 
clickmaker ©   (2007-07-25 14:50) [11]


> "скрытный" объект TClientArea

это где такой?

и в методе SetWindowToMonitor нет никакой проверки на fsMDIForm
Только в WM_ACTIVATE если есть активная "дочка", фокус ей передается


 
NKT   (2007-07-25 15:47) [12]

Проблема была в том , что первой формой я вызывала заставку (ABoutBox) .
Удалила заставку . первой стала вызываться главная форма и все получилось , дочерняя форма создается и вызывается как положено , и метод  Show не нужен .
Всем спасибо за советы .


 
Юрий Зотов ©   (2007-07-25 17:16) [13]

> NKT   (25.07.07 15:47) [12]

Проблема была не в этом, а в том, что форма заставки создавалась неверно (через Application.CreateForm) и поэтому становилась главной. А чтобы она главной не становилась, создавайте ее так:

FormAboutBox = TFormAboutBox.Create(Application);



Страницы: 1 вся ветка

Текущий архив: 2007.10.07;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.019 c
8-1167315725
KOSS
2006-12-28 17:22
2007.10.07
JPEG to BMP


15-1189494932
TUser
2007-09-11 11:15
2007.10.07
Ищу дрова


15-1189038479
Turbouser
2007-09-06 04:27
2007.10.07
Мультфильмы возвращаются :)


15-1189417959
em240
2007-09-10 13:52
2007.10.07
VS2005+C# - не подключается using System.Messagin.


2-1189177170
Irish
2007-09-07 18:59
2007.10.07
Архиваторы.Увеличение скорости