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

Вниз

Сделать компонент поверх всех.   Найти похожие ветки 

 
Юрий Зотов   (2001-12-21 20:50) [4]

Z-оrder здесь ни при чем.

Дело в том, что графические контролы - это расширение Delphi, а в Windows существуют только оконные контролы. Поэтому в терминах Windows графические контролы Delphi - это просто рисунки, о которых сама Windows, естественно, ничего не знает (действительно, мало ли что там нарисовала какая-то программа, откуда системе об этом знать?).

Когда Windows обновляет окно, то сначала она шлет сообщения о перерисовке родительскому окну, а потом его дочерним окнам (что и понятно, ведь в противном случае родительское окно затирало бы свои контролы). Получив сообщение, родительское окно перерисовывается и при этом перерисовываются его графические контролы (а когда же им еще перерисовываться? ведь это не окна, хэндлов они не имеют и сообщений не получают - а поэтому могут перерисовываться только вместе с родительским окном). Причем ВСЕ дочерние контролы (и оконные, и графические) ВСЕГДА рисуются на канве родительского окна (а где же еще им рисоваться?).

После родительского окна сообщения о перерисовке получают его оконные контролы и тоже начинают перерисовываться - естественно, НА ТОЙ ЖЕ САМОЙ КАНВЕ родительского окна, вот что важно! Понятно, что при этом они неизбежно будут затирать то, что ранее на этой же канве было нарисовано - то есть, те графические контролы, с которыми они перекрываются.

Вот и оказывается, что ОКОННЫЙ контрол ВСЕГДА будет поверх ГРАФИЧЕСКОГО. Если сравнить форму с крышкой стола, то графические контролы можно сравнить с рисунками на этой крышке, а оконные - с предметами, лежащими на этом столе. Ясно, что предмет всегда закроет рисунок.



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

Форум: "Основная";
Текущий архив: 2002.01.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.003 c
6-28526
Diamond Dog
2001-10-14 17:21
2002.01.10
Отключение компьютера по сети.


6-28521
Serguar
2001-10-10 12:42
2002.01.10
Вопрос по TUDPServer/TUDPClient из Indy


3-28437
Polevi
2001-12-06 18:11
2002.01.10
MIDAS


1-28478
tovSuhov
2001-12-22 13:47
2002.01.10
Как поюзать ListView ?


1-28481
$Hic0
2001-12-21 13:17
2002.01.10
Вопрос про TreeView и ImageList





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