На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
[!] Как относитесь к модерированию на этом форуме? Выскажите свое мнение здесь
  
> Как сделать чтобы дети жили дольше чем родители
    Извините что повторяюсь - может пошлый раз тему не коректно обозвал (Про формы)
    Есть приложение в виде одной формы. Из него я создаю другую форму (на билдере):
    TForm1* Form1 = new TForm1(this);
    Form1->Show();
    После закрытия главной формы - закрывается и созданная. А не подскажите ли как сделать чтобы порождённая форма не закрывалась? Т. е. после создания она становилась самостоятельным приложением.
    В принцепе не обязательна реализация на билдере, да и способ создания формы...
    Заранее благодарен
      А ты главное окно не закрывай а просто пряч
      ShowWindow(hWnd,SW_HIDE);
        Так не надо прятать то!
          на скоко я помню в делфях(билдере) есть главное окно которое не показывается но создается. а все формы являются его детьми (его можноувидеть спаем). получи на него указатель и зделай SetParent().
            Создайте её с владельцем (не родителем!) nil Только не забудьте уничтожить на выходе. Будет отдельное окно.
              Сделал так:
              TForm1* Form1 = new TForm1(NULL);
              После закрытия главной формы вываливается в исключение. И созданое окно тоже пропадает. Наверно я вас не правильно понял?
                а это не связано с тредами? если ТАК происходит, то, похоже ОБА окна работают в ОДНОМ потоке и потому, когда рушится родитель, то рушится и потомок....
                нужно создать отдельный тред, а в нём создавать объект окна.
                В VB я для энтих целей использовал AX - серверное приложение создаёт COM объекты КАЖДЫЙ в СВОЁМ треде для КАЖДОГО клиентского соединения...
                  По всей видимости так и надо сделать. Тогда вопрос как как создать другой поток (на VС или BCB)?
                    [quote author=Aleks link=board=cppbuilder;num=1027943733;start=0#5 date=07/29/02] 
                    После закрытия главной формы вываливается в исключение. И созданое окно тоже пропадает?[/quote]

                    Правильно что вываливается, я же сказал: "Только не забудьте уничтожить на выходе". Т.е. поставьте вызов метода Free (не уверен, так ли он называется в С) на TForm.onDestroy
                    Сообщение отредактировано: Song -
                      Допёр, что Вам надо...
                      Вы хотите просто поменять главную форму на вновь созданную. Здесь нет решения кроме того как скрыть старую форму.
                        Значит аналогом Unix-ового fork() в виндах и не пахнет?
                          Тогда нельзя ли сделать хотя бы чтобы при минимизации родительской формы порождённая из неё не минимизировалась?
                            Цитата Aleks, 30.07.02, 19:13:24
                            Тогда нельзя ли сделать хотя бы чтобы при минимизации родительской формы порождённая из неё не минимизировалась?


                            Вопрос не сколько трудный, сколько экспериментальный.
                            Нужно перепробовать много всего.
                            Созданная форма с владельцем Form1 например сворачивается, если она же является родителем. Просьба не путать владельца AOwner в конструкторе Create(), в Си - New() и родителя TForm.Parent. Вообщем попробуйте воспользоваться TForm -> ParentWindow и поставить его на desktop, сворачиваться не должен.
                              Спасибо, поупражняюсь на досуге.
                              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                              0 пользователей:


                              Рейтинг@Mail.ru
                              [ Script execution time: 0,1717 ]   [ 17 queries used ]   [ Generated: 25.04.24, 07:14 GMT ]