| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Object Pascal: кроссплатформенные технологии > Активное окно в CLX приложениях |
| Автор: Alex Uskov 17.6.2003, 11:08 |
| Создаю простой проект в Kylix две формы на главной форме(form1) кнопка по кнопке происходит вызов Form2:=TForm2.Create(Self); Form2.Show; В Kylix программа работает без претензий Загружаю этот же проект в Delphi7(CLX) запускаем (смотрим список приложений по ALT-TAB - одна иконка) нажимаем кнопку активируется форма form2 (смотрим список приложений по ALT-TAB - две иконки для моего приложения , причём если добавить ещё одну форму в проект и показать три формы по ALT-TAB всё равно имеем две иконки) закрываем форму form2 форма form1 не становится активной Собственно вопрос: Почему form1 не становится активной? Почему по ALT-TAB имеем две иконки для приложения? |
| Автор: Vit 19.6.2003, 21:22 | ||
Это механизмы работы QT - сходно работает например MS Access - по иконке на каждый открытый документ... ИМХО, под Linux просто по другому не сделать... |
| Автор: Alex Uskov 3.7.2003, 12:43 | ||
Интересно всё таки было-бы узнать что это за механизмы такие и как с этими механизмами бороться но это не настолько важный вопрос намного больше очень интересует вопрос: Почему form1 не становится активной? немного покопал в этом направлении и установил что под windows clx aplication при закрытии окна фокус отдаётся его ParentWidget, а конструктор TCustomForm.Create(AOwner: TComponent) создаёт форму с ParentWidget = nil и соответственно сообщение QEventType_WindowActivate передаётся вникуда Можно конечно создавать формы конструктором CreateParented но тогда ParentWidget будет отображаться всегда под дочерним окном даже если имеет фокус ввода Допустим и с этим можно смириться, но сразу же возникает новый вопрос почему после закрытия окна фокус передаётся его ParentWidget, а не предидущему активному окну в списке? |