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

Вниз

Чем отличается 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.037 c
1-1101815685
Tack
2004-11-30 14:54
2004.12.12
TSpinEdit и Delphi 7


14-1100840649
Danilka
2004-11-19 08:04
2004.12.12
Вот, знакомый прислал


14-1101323625
NetAnton
2004-11-24 22:13
2004.12.12
Compact Rus


14-1101285539
msguns
2004-11-24 11:38
2004.12.12
Одиночесво ?


3-1100438650
Alenka_gal
2004-11-14 16:24
2004.12.12
Как реализовать поиск по тексту





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский