Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.147.205.154] |
|
Сообщ.
#1
,
|
|
|
Извините что повторяюсь - может пошлый раз тему не коректно обозвал (Про формы)
Есть приложение в виде одной формы. Из него я создаю другую форму (на билдере): TForm1* Form1 = new TForm1(this); Form1->Show(); После закрытия главной формы - закрывается и созданная. А не подскажите ли как сделать чтобы порождённая форма не закрывалась? Т. е. после создания она становилась самостоятельным приложением. В принцепе не обязательна реализация на билдере, да и способ создания формы... Заранее благодарен |
Сообщ.
#2
,
|
|
|
А ты главное окно не закрывай а просто пряч
ShowWindow(hWnd,SW_HIDE); |
Сообщ.
#3
,
|
|
|
Так не надо прятать то!
|
Сообщ.
#4
,
|
|
|
на скоко я помню в делфях(билдере) есть главное окно которое не показывается но создается. а все формы являются его детьми (его можноувидеть спаем). получи на него указатель и зделай SetParent().
|
Сообщ.
#5
,
|
|
|
Создайте её с владельцем (не родителем!) nil Только не забудьте уничтожить на выходе. Будет отдельное окно.
|
Сообщ.
#6
,
|
|
|
Сделал так:
TForm1* Form1 = new TForm1(NULL); После закрытия главной формы вываливается в исключение. И созданое окно тоже пропадает. Наверно я вас не правильно понял? |
Сообщ.
#7
,
|
|
|
а это не связано с тредами? если ТАК происходит, то, похоже ОБА окна работают в ОДНОМ потоке и потому, когда рушится родитель, то рушится и потомок....
нужно создать отдельный тред, а в нём создавать объект окна. В VB я для энтих целей использовал AX - серверное приложение создаёт COM объекты КАЖДЫЙ в СВОЁМ треде для КАЖДОГО клиентского соединения... |
Сообщ.
#8
,
|
|
|
По всей видимости так и надо сделать. Тогда вопрос как как создать другой поток (на VС или BCB)?
|
Сообщ.
#9
,
|
|
|
[quote author=Aleks link=board=cppbuilder;num=1027943733;start=0#5 date=07/29/02]
После закрытия главной формы вываливается в исключение. И созданое окно тоже пропадает?[/quote] Правильно что вываливается, я же сказал: "Только не забудьте уничтожить на выходе". Т.е. поставьте вызов метода Free (не уверен, так ли он называется в С) на TForm.onDestroy |
Сообщ.
#10
,
|
|
|
Допёр, что Вам надо...
Вы хотите просто поменять главную форму на вновь созданную. Здесь нет решения кроме того как скрыть старую форму. |
Сообщ.
#11
,
|
|
|
Значит аналогом Unix-ового fork() в виндах и не пахнет?
|
Сообщ.
#12
,
|
|
|
Тогда нельзя ли сделать хотя бы чтобы при минимизации родительской формы порождённая из неё не минимизировалась?
|
Сообщ.
#13
,
|
|
|
Цитата Aleks, 30.07.02, 19:13:24 Тогда нельзя ли сделать хотя бы чтобы при минимизации родительской формы порождённая из неё не минимизировалась? Вопрос не сколько трудный, сколько экспериментальный. Нужно перепробовать много всего. Созданная форма с владельцем Form1 например сворачивается, если она же является родителем. Просьба не путать владельца AOwner в конструкторе Create(), в Си - New() и родителя TForm.Parent. Вообщем попробуйте воспользоваться TForm -> ParentWindow и поставить его на desktop, сворачиваться не должен. |
Сообщ.
#14
,
|
|
|
Спасибо, поупражняюсь на досуге.
|