Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как получить текущую модальную форму? [D7, WinXP]


Islander ©   (2004-07-11 11:21:00) 

Здравствуйте!

На экране открыто несколько форм моего приложения. Надо определить, какая из них модальная. В принципе, достаточно будет даже хендла этой формы.

Заранее спасибо


Piter   (2004-07-11 14:58:00) [1]

Чего-то я не понимаю...

Вызов модальной формы прерывает выполнение основного кода, так? В каком же месте программы требуется определить модальна ли форма?!


Islander   (2004-07-11 13:40:00) [2]

Спасибо, это почти то, что надо.

Но я открыл еще один способ:

Если известна некая форма Form и надо проверить, модальна ли она в текущий момент или нет, можно просто посмотреть результат функции IsWindowEnabled (Form.handle);

Дело в том, что в приведенном Анатолии примере есть одно но: если есть моя форма, и в это же время открыт OpenDialog, то Screen.ActiveForm вернет мне мою форму, хотя она в данный момент не модальна (модален OpenDialog).


Anatoly Podgoretsky   (2004-07-11 13:06:00) [3]

Screen.ActiveForm


Arm79   (2004-07-11 12:59:00) [4]

Если это ваше приложение, то можно при открытии форм перед ShowModal устанавливать св-во Tag показываемой формы в 1. А затем пробежаться по Screen.Forms, анализировать это св-во.


Islander   (2004-07-11 12:44:00) [5]

Мое приложение может быть неактивно, т.к. эта форма может быть закрыта другими окнами


TUser   (2004-07-11 12:00:00) [6]

Раз она модальная - значит наверху. Тогда, наверное, GetForegroundWindow.


Наверх

Титульная страница Поиск, карта сайта Написать письмо