Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.04.09;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.014 c
15-1142537744
Ломброзо
2006-03-16 22:35
2006.04.09
Где подкрутить Oracle


2-1143004367
Rubey
2006-03-22 08:12
2006.04.09
Вывод текста на экран


15-1142156410
TStas
2006-03-12 12:40
2006.04.09
Размер экзешника


2-1143026086
MixAnOL
2006-03-22 14:14
2006.04.09
Работа с реестром


9-1127625932
Kobik
2005-09-25 09:25
2006.04.09
как лучше выводить точку?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский