2
vada:
Вы б может сначала попробовали? Примерчик за 10с делается. А потОм ужЕ о фокусах рассказывали.
Попадание в обработчик OnMouseLeave
не зависит от того, какое приложение активно. Если в примере выше при активном калькуляторе выводить курсор не вниз, а влево, caption панели сменится на 'Мышь ушла'. Логичность такого поведения несколько спорна, согласен. С другой стороны, ОС отсылает мышиные сообщения окну, над которым фактически находится мышь, а не только активному окну активного приложения.
Ну, и главное.
vada писал(а):Исходя их чего, Вы считаете что водя мышкой над Form1 в вашем прилажении какие-то события пролетать должны??????
По <Alt>+<Tab> вы перебросили фокус в другое приложение.
Именно! И об этой потере моё окно должно быть уведомлено. А такого не происходит: мышь ушла, а сообщение об этом сожрали.
vada писал(а):Что Вы хотите-то? Чтоб Form1 продолжал состояние мыши отслеживать?
Ничего из ряда вон выходящего в этом не вижу. Для этого глабальные хуки существуют. Но в данном случае хочу я совсем другого: чтобы окно получило последнее сообщение в цепочке получение_фокуса - перемещения-клики-etc - потеря_фокуса. Логично, не находите?
Добавлено спустя 21 минуту 52 секунды:И ещё об активных окнах и событиях. Если мышь выводить резким рывком, в OnMouseLeave не попадаем вообще, даже при единственном запущенном приложении - нашем - с единственным окном. Лучше всего видно при Panel1.align:=alClient - иначе (если вокруг панели есть широкий бордюр из формы) дёргать придётся очень быстро :-)