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

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

НЕмодальное->Модальное


Yojik ©   (2006-03-27 12:02:00) 

Подскажите как сделать немодальное окно (вызваное .Show) модальным (без его закрытия или хайда), в исходниках TCustomForm.ShowModal вообще не понятно, как обычное окно становится модальным, каков принцип?!?!?


Yojik   (2006-03-27 13:18:00) [1]

Эх жаль тут модераторы, а то я тебе такой офтопег тебе бы накатал)))


Рамиль   (2006-03-27 13:05:00) [2]


> Ну харашо, а как изменить CustomForm.ShowModal, так чтоб
> он работал с любой формой, главное, чтоб она уже была создана
> и показана?

Как в
> begin...end ©   (27.03.06 12:16) [1]

:)


Yojik   (2006-03-27 12:57:00) [3]

Ну пасибо ShowModal :).
Ну харашо, а как изменить CustomForm.ShowModal, так чтоб он работал с любой формой, главное, чтоб она уже была создана и показана?


balepa   (2006-03-27 12:51:00) [4]


> Yojik   (27.03.06 12:44) [2]

ShowModal


Yojik   (2006-03-27 12:44:00) [5]

Мой бог! Спасибо конечно :) вот блин круто, а готовой процедуры нет, чтоб форму сделать модальной на лету. Чёт я это сам буду 3 дня реализовывать помоему.
Пасибо


begin...end   (2006-03-27 12:16:00) [6]

Принцип (вкратце) таков.

Вначале все окна текущего потока "задизабливаются" (EnableWindow(..., False)). Потом показывается нужная форма (Show). На время её показа организовывается цикл выборки сообщений из очереди текущего потока — вместо того цикла, который работал в объекте Application (см. код TApplication.Run). Цикл этот продолжается до тех пор, пока у формы не будет установлен ModalResult (например, за счёт нажатия какой-нибудь кнопки со свойством ModalResult <> mrNone). После этого для окон, которые перед циклом были "задизаблены", вызывается EnableWindow(..., True), и метод ShowModal возвращает управление — а значит, продолжает работать цикл выборки сообщений в методе TApplication.Run.


Наверх

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