Форум: "Основная";
Текущий архив: 2004.01.16;
Скачать: [xml.tar.bz2];
ВнизНевидимая 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.011 c