Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2007.10.07;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.249 c
15-1189053276
ZeroDivide
2007-09-06 08:34
2007.10.07
Turbo вернулись.... и снова пропали, я правильно понял?


6-1171124986
22b
2007-02-10 19:29
2007.10.07
BackConnect на Delphi помогите плз.....


15-1188999922
Галинка
2007-09-05 17:45
2007.10.07
Прикол в Эклипсе


6-1170777738
M@kc
2007-02-06 19:02
2007.10.07
idMessage.Subject


15-1189175757
Dr. Andrew
2007-09-07 18:35
2007.10.07
Как вставить формулу в текстовом виде в функцию?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский