Какое событие отвечает за сворачивание формы с программой?

компьютеры программирование графика Delphi GDI

Пишу на дельфи 7. Необходимо отловить момент, когда форма теряет фокус / исчезает полностью с области отображения, загороженная другими объектами.
А так же когда появляется.

Суть в чём: нужно получать снимок экрана сразу же, как форма СОБИРАЕТСЯ отрисовываться - то есть за миг до отрисовки. Это нужно для того, чтобы получить изображение экрана ПОД окном программы (будет маленькое прозрачное окошко на форме).

Если есть другие идеи как получить в любой момент времени без "мигания" формы изображение "из-под неё" - буду только рад.

Примечание:
Максим Новиков, к сожалению OnHide и OnShow отвечают только за программное изменение видимости, типа методов Hide(), Show(), и изменения visible вручную.

Это всё я уже пробовал, при сокрытии формы через видимость и AlphaBlendValue - наблюдается её мигание, и потом сокрытие тоже нужно производить в правильный момент, - когда форма только появляется... А не по таймеру 10 раз в секунду... Как бы ещё-то...

Примечание:
Максим Новиков,
Общая задача данного куска программы - выводить на прямоугольник формы полупрозрачное изображение, которое я получаю путём попиксельного наложения битмапа по растровой 24битной маске на снимок экрана в позиции формы. Так вот, если сделать Win+D (скрыть все окна), а потом вызвать Alt+Tab'ом мою программу - в этот момент она появится на фоне рабочего стола (или что там у меня будет поверх) с "бахромой" от предыдущего окна, которое было на её фоне. А надо чтоб в этот момент и перед появлением она быстро переносила содержимое нужного куска экрана на канву временного изображения и опять производила наложение битмапа по маске...

CheL.AndRoiD, звучит интересно, попробую! :)

Tovit, скорее всего у преподавателя (именно его я хочу поразить небажными и некосячными красивостями) стоят форточки ХП, поэтому и писать придётся традиционным методом... В принципе Ваша идея про проверку перекрытия окна чем-либо вполне здраво выглядит, попробую так и сделать, в комбинации с принудительным "убиранием" формы координатным методом...

Примечание:
Максим Новиков,
Общая задача данного куска программы - выводить на прямоугольник формы полупрозрачное изображение, которое я получаю путём попиксельного наложения битмапа по растровой 24битной маске на снимок экрана в позиции формы. Так вот, если сделать Win+D (скрыть все окна), а потом вызвать Alt+Tab'ом мою программу - в этот момент она появится на фоне рабочего стола (или что там у меня будет поверх) с "бахромой" от предыдущего окна, которое было на её фоне. А надо чтоб в этот момент и перед появлением она быстро переносила содержимое нужного куска экрана на канву временного изображения и опять производила наложение битмапа по маске...

CheL.AndRoiD, звучит интересно, попробую! :)

Tovit, скорее всего у преподавателя (именно его я хочу поразить небажными и некосячными красивостями) стоят форточки ХП, поэтому и писать придётся традиционным методом... В принципе Ваша идея про проверку перекрытия окна чем-либо вполне здраво выглядит, попробую так и сделать, в комбинации с принудительным "убиранием" формы координатным методом...

Примечание:
Google - глючные хады :( Два раза отправилось...
Ответы:
OnHide и OnShow
можно изменить координаты расположения формы так чтоб её небыло на экране в нужный момент ;)
при этом по смыслу будет лишь одна отрисовка(стирание с прежнего места)
Вам нужно писать на WinAPI, тогда у Вас будет полный контроль за ситуацией.


15 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.