![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 09.04.2008
Сообщений: 151
|
![]()
Есть 2 окна(Form2 и Form6), одно из них главное окно программы(Form2). У обоих выставлен параметр StayOnTop. В событии OnShow главного окна выполняется SetWindowPos с параметром HWND_TOPMOST для обоих окон.
Идея заставить эти два окна быть поверх всех остальных до определенного действия с моей стороны. При такой реализации есть два момента которые проявляются после того как мышкой активируем Form6. 1. Если переключится сначала на 1но стороннее окно, а затем на другое стороннее окно - Form6 перестает быть OnTop и перекрывается другими активными окнами. 2. Если переключится на стороннее окно и перетянуть его, то тот же самый эффект. Form2 в этих двух случаях остается OnTop как и задумано. А вот Form6 не слушается... в чем загвоздка? |
![]() |
![]() |
![]() |
#2 | |
Подтвердите свой е-майл
Регистрация: 19.10.2011
Сообщений: 28
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 09.04.2008
Сообщений: 151
|
![]()
Как можно решить эту проблему? Просто если в обработчике деактивации неглавного окна поставить fsStayOnTop это не поможет... тем более что он выполняется перед деактивацией.
Последний раз редактировалось Airou; 23.10.2011 в 21:12. |
![]() |
![]() |
![]() |
#4 | |
Форумчанин
Регистрация: 09.04.2008
Сообщений: 151
|
![]() Цитата:
Почему так происходит? И где это реализовано? (Сам пока ищу ответы, но результатов маловато...) |
|
![]() |
![]() |
![]() |
#5 | |
Форумчанин
Регистрация: 09.04.2008
Сообщений: 151
|
![]()
Перелопатив кучу страниц нашел вот что.
Цитата:
|
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 09.04.2008
Сообщений: 151
|
![]()
Пока есть идея - после деактивации НЕглавного окна вызвать функцию RestoreTopMosts. Но тут другая проблема... не могу отловить деактивацию. Если использовать обработчик onDeactivate, то он срабатывает если из НЕглавного окна переключились на главное окно, но не работает при переключении на стороннее окно.
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 09.04.2008
Сообщений: 151
|
![]()
Ага, выясняется, что при переключении на стороннее приложение, мое НЕглавное окно остается активным в рамках моего приложения. Значит нужно отследить потерю фокуса приложением в целом... может через WM_ACTIVATE главной формы?
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 09.04.2008
Сообщений: 151
|
![]()
И о чудо. Не прошло и полгода но я все-таки добился необходимого. В конструкторе НЕглавной формы прописал
Код:
Код:
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как привязать таблицу нового modal окна к Dataset динамически созданного родительского окна? | delphicoding | Общие вопросы Delphi | 6 | 02.10.2011 22:41 |
StayOnTop | Nester | Общие вопросы Delphi | 14 | 21.09.2009 09:25 |
Можно ли как-то задать параметр появления окна на экране?? | baltushka | Помощь студентам | 0 | 13.06.2009 17:37 |
StayOnTop | RIO | Общие вопросы Delphi | 6 | 17.01.2008 15:19 |
Как сделать чтобы дочерние окна в MDI-приложениях были вне главного окна??? | dimonchuk | Общие вопросы Delphi | 1 | 11.08.2007 12:13 |