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

Вниз

Чем отличается ShowModal и Show?   Найти похожие ветки 

 
Piter ©   (2004-11-21 17:08) [0]

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

Было два предположения:

1) где-то с помощью функции WinApi указывается, что данное окно у приложения модальное. И сама windows не дает переключится на другое окно

2) где-то в недрах VCL обрабатывается такая ситуация, и если у приложения есть модальная форма - то обработка WM_ACTIVE и прочих сообщений для других форм не происходит.

Но вот никак не могу найти в VCL реализацию ни того, ни другого поведения.

Вероятно правильный первый вариант, потому что при EnableWindow другое (не модальное окно) может получать фокус...


 
Anatoly Podgoretsky ©   (2004-11-21 17:11) [1]

Вся VCL в исходных кодах, там же можно посмотреть реализацию этих двух методов.


 
Piter ©   (2004-11-21 17:47) [2]

Anatoly Podgoretsky ©   (21.11.04 17:11) [1]
Вся VCL в исходных кодах, там же можно посмотреть реализацию этих двух методов.


хм. А я думаете не знаю?


> Но вот никак не могу найти в VCL реализацию ни того,
> ни другого поведения


Очевидно, по-моему, что VCL я смотрел...


 
Игорь Шевченко ©   (2004-11-21 18:03) [3]

Верно первое предложение.

И при изучении VCL оно находит свое подтверждение.

Функция WinAPI называется EnableWindow


 
Piter ©   (2004-11-21 18:52) [4]

Нашел... как всегда был невнимателен:

function TCustomForm.ShowModal: Integer;
...
 WindowList := DisableTaskWindows(0);
...
end;

function DisableTaskWindows(ActiveWindow: HWnd): Pointer;
...
 EnumThreadWindows(GetCurrentThreadID, @DoDisableWindow, 0);
...
end;


Ну а DoDisableWindow уже делает все окна недоступными, которые ему система передает (все окна процесса)

Эх, я как всегда...


 
Piter ©   (2004-11-21 19:11) [5]

Piter ©   (21.11.04 18:52) [4]
(все окна процесса)


все окна потока


 
Anatoly Podgoretsky ©   (2004-11-21 19:18) [6]

Piter ©   (21.11.04 18:52) [4]
Цените VCL как бездонный источник знаний по АПИ :-)


 
Piter ©   (2004-11-21 20:04) [7]

Anatoly Podgoretsky ©   (21.11.04 19:18) [6]

так я ценю :)



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

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

Наверх




Память: 0.48 MB
Время: 0.03 c
3-1100253177
Дырчик
2004-11-12 12:52
2004.12.12
Отображение поля в DBGride


14-1100788448
Игорь Шевченко
2004-11-18 17:34
2004.12.12
Открыта регистрация на повторный семинар Borland ALM 2005


1-1101646116
Tazik
2004-11-28 15:48
2004.12.12
Динамические массивы.


6-1092257951
Piter
2004-08-12 00:59
2004.12.12
Посоветуйте с выбором компонента для работы с TCP


4-1098990394
peppperok
2004-10-28 23:06
2004.12.12
Кнопка Видовс !!!!!!!