Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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
Цитата(Alex @ 17.6.2003, 02:08)
Почему по ALT-TAB имеем две иконки для приложения?

Это механизмы работы QT - сходно работает например MS Access - по иконке на каждый открытый документ... ИМХО, под Linux просто по другому не сделать...

Автор: Alex Uskov 3.7.2003, 12:43
Цитата
Это механизмы работы QT - сходно работает например MS Access - по иконке на каждый открытый документ... ИМХО, под Linux просто по другому не сделать...


Интересно всё таки было-бы узнать что это за механизмы такие
и как с этими механизмами бороться

но это не настолько важный вопрос
намного больше очень интересует вопрос:
Почему form1 не становится активной?

немного покопал в этом направлении и установил
что под windows clx aplication при закрытии окна фокус отдаётся его ParentWidget,
а конструктор TCustomForm.Create(AOwner: TComponent) создаёт форму
с ParentWidget = nil и соответственно сообщение QEventType_WindowActivate
передаётся вникуда
Можно конечно создавать формы конструктором CreateParented но
тогда ParentWidget будет отображаться всегда под дочерним окном даже
если имеет фокус ввода
Допустим и с этим можно смириться, но сразу же возникает
новый вопрос почему после закрытия окна фокус передаётся его ParentWidget,
а не предидущему активному окну в списке?






Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)