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

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

Открыто ли модальное окно?


DevilDevil ©   (2007-09-17 15:03:00) 

Существует ли универсальный способ через Application, MainForm или др. определить, было ли открыто и не закрыто окно, вызванное с помощью ShowModal() ?


DrPass   (2007-09-17 21:03:00) [1]


> Существует ли универсальный способ через Application, MainForm
> или др. определить, было ли открыто и не закрыто окно, вызванное
> с помощью ShowModal() ?

У тебя приложение многопоточное, или нет? Если нет - то что ты с этим делать-то собрался?


DevilDevil   (2007-09-17 19:11:00) [2]

> У Application есть события OnModalBegin и OnModalEnd, можно
> использовать их


хм... спасибо

> Кто мешает при открытии/закрытии менять флаг и на маненько
> поменять код?


необходим универсальный метод. просто очень много окон вызываются через ShowModal


oldman   (2007-09-17 17:33:00) [3]

Кто мешает при открытии/закрытии менять флаг и на маненько поменять код?


Однокамушкин   (2007-09-17 16:25:00) [4]

У Application есть события OnModalBegin и OnModalEnd, можно использовать их


DevilDevil   (2007-09-17 15:34:00) [5]

> Плохиш ©   (17.09.07 15:07) [1]
> И хто будет определять, если оно модально? :-)

OnShortCut приходит

> Lacmus ©   (17.09.07 15:07) [2]
> Application.ModalLevel ?

Не нашёл ничего похожего

Порылся в исходниках, ничего лучшего не произвёл:

bool __fastcall ModalOpened()
{
 int Count = Screen->FormCount;

 for (int i = 0; i < Count; i++)
 if (Screen->Forms[i]->FormState.Contains(fsModal)) return true;

 return false;
}


Плохиш   (2007-09-17 15:07:00) [6]

И хто будет определять, если оно модально? :-)


Lacmus   (2007-09-17 15:07:00) [7]

Application.ModalLevel ?


Наверх

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