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

Вниз

Невидимая MDIChild форма   Найти похожие ветки 

 
jiurajhgjhgty   (2004-01-05 21:48) [0]

Есть Mdi приложение.Есть дочерняя форма, которая в проекте записанна как AutoCreate forms.Как только загружается главная форма, то в ней сразу же видно и дочернюю.А я не хочу чтобы пользователь видел ее раньше времени.Хотелось бы воспользоваться методами Show и Hide чтобы показывать и убирать ее когда мне нужно.Заносить ее в Aviable forms я не хочу, так как потом прийдется самому ее создавать, да и работать так с ней неудобно.Visible=false сделать дельфя не дает, пишет нельзя так делать с mdi формами.Как быть?


 
sniknik ©   (2004-01-05 23:21) [1]

занести в Aviable и создавать/уничтожать по надобности, даже если не хочется. думаеш другим легко? ;)
она (дельфя) правду говорит, нельзя...


 
Aleksey ©   (2004-01-06 07:24) [2]

допустим Form2 -дочерняя форма
из файла проекта убираешь строчку
Application.CreateForm(TForm2, Form2);


 
Тимохов ©   (2004-01-06 10:47) [3]

jiurajhgjhgty (05.01.04 21:48)
С этими, блин, MDI формами в реализации дельфи я воюю давно. Мой метод решения подобной задачи заключается в том, чтобы форму описывать как fsNormal c Visible := false. Потом при необходимости FormStyle := fsMDIChild. В этом случае форма автоматически покажется. Попробуй, если не получится я посмотрю в своих исходниках внимательнее - может я что-то упустил.

Другой вопрос, что Aleksey © (06.01.04 07:24) [2], тоже верно.

Отличие моего метода и метода [2] состоит в том, что в моем случае форма все-таки существует, но не видна, а в [2], не существует.

Какое поведение формы для тебя приемлемо - решай сам.

Я использую свой метод, для того, чтобы форму перед показом приготовить - выставить размеры некоторых компонентов и формы, что-то заполнить строками из ресурса и т.д. Если это делать не в скрытом режиме, то будет на экране все немного мелькать.


 
sniknik ©   (2004-01-06 14:21) [4]

> из файла проекта убираешь строчку
> Application.CreateForm(TForm2, Form2);
то же самое что "занести в Aviable", но вручную.

> Я использую свой метод, для того, чтобы форму перед показом приготовить ...
делай в onCreate мелькать не будет. извращения не понадобятся.


 
Тимохов ©   (2004-01-06 15:03) [5]

sniknik © (06.01.04 14:21) [4]
Соглаен. Может быть и так можно.
Дело в том, что данный метод пришел ко мне еще их д3. Там вроде как по-другому не получалось...


 
Тимохов ©   (2004-01-06 15:22) [6]

sniknik © (06.01.04 14:21) [4]
Вы меня прамо смутили: и правда, почему я не делаю все в OnCreate. Ведь, действительно, ничего не мигает.

Порылся и понял, что данный метод мне не подходит, т.к. при инициализации идет навороченная работа с месагами по PostMessage и форму нужно показать, только когда последнее отработает. Одним словом есть потребность MDI child выполнить OnCreate до конца и оставить форму невидимой.

СУХОЙ ОСТАТОК
Все, что я говорил выше - полная фигня. Все это преминимо для специфических задач и неприменимо в общем случае.
Все.



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

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

Наверх




Память: 0.48 MB
Время: 0.025 c
3-49436
Michail Dalakov
2003-12-18 15:42
2004.01.16
BDE и MSSQL


1-49515
Zilog_
2004-01-03 10:42
2004.01.16
Как создать окно во весь экран?


1-49514
raidan
2004-01-03 00:15
2004.01.16
Как можно извлечь из своей программы ее версию?


14-49679
Nikolay M.
2003-12-26 19:56
2004.01.16
В.В. Путин учит принимать парика :?))))))))))


1-49622
miracle_fox
2004-01-04 22:32
2004.01.16
как переписать итемы из листвью в файл при закрытии программы