Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.09;
Скачать: CL | DM;

Вниз

НЕмодальное->Модальное   Найти похожие ветки 

 
Yojik   (2006-03-27 12:02) [0]

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


 
begin...end ©   (2006-03-27 12:16) [1]

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

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


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

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


 
balepa ©   (2006-03-27 12:51) [3]


> Yojik   (27.03.06 12:44) [2]

ShowModal


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

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


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


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

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

:)


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

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



Страницы: 1 вся ветка

Текущий архив: 2006.04.09;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.057 c
15-1142607428
oldman
2006-03-17 17:57
2006.04.09
бывает же такое (кто их усил таблицы на форму кидать???) :)))


4-1137935802
Ma[X]iM
2006-01-22 16:16
2006.04.09
Как нарисовать изображение,имея его id и используя только WinAPI


3-1139574941
John_Doe
2006-02-10 15:35
2006.04.09
Как взять св-ва из грида,а не из TTable?


1-1141670794
Начинающий__
2006-03-06 21:46
2006.04.09
Form.BorderStyle = bsSizeable, не показывать иконку


2-1142972969
Adios
2006-03-21 23:29
2006.04.09
Помогите исправить процедуру