![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Уничтожение не модальной формы с Parent = nil
kichrot © (2007-08-07 13:26:00)Как правильно в динамике уничтожить вот такую динамически создаваемую не модальную форму:
NewForm2( Form2, nil );
Стандартное:
Form2.Form.Free;
Form2 := nil;
выдает ошибку.
Vladimir Kladov (2007-08-07 15:47:00) [1]Я в многопоточном приложении никогда не создаю окна в разных потоках. Раз вы такой смелый, то пройдите по коду по шагам, и посмотрите, что там где падает. Может, найдётся что добавить или поправить, чтобы не падало.
А задержка, конечно же, из-за того, что если окно из одного потока является родительским окну из другого, то все сообщения начинают гоняться через межпоточные барьеры. Не знаю даже, как оно вообще работает тогда.
kichrot (2007-08-07 14:48:00) [2]Дело в том, что форма используется в много поточном приложении (форма создается и уничтожается в основном потоке) в системе сигнализации. Если родителем ставить Applet, то наблюдается очень не приятная задержка между нажатием назначенных "горячих клавиш" и появлением формы. Если родителем ставить nil, то форма появляется мгновенно.
Не знаю коректно ли применение nil в данном случае, но все работает как надо за исключением уничтожения формы.
Как быть?
Vladimir Kladov (2007-08-07 14:15:00) [3]Почему родитель = nil, а не Applet? И что, если будет Applet, как предлагается в демах?