Анимация сворачивания окна в Windows 7 и Delphi 7
Как известно, в Windows 7 при включённых эффектах окно сворачивается не мгновенно, а с анимацией длительностью в несколько сотых секунд.
У меня есть программа, написанная в Delphi 7, которая при нажатии на кнопку, сворачивает основное окно вызовом Hide и делает снимок экрана. Сейчас, чтобы избежать артефактов наподобие того, что на картинке ниже, перед снимком я добавил задержку в 2 секунды, чтобы окно успело спрятаться.
Есть ли более правильное решение данной проблемы? Например, принудительно спрятать окно мгновенно или добавить проверку, что оно на 100% невидимо? Желательно, чтобы было работоспособно и в других версия ОС Windows.
Ответы (1 шт):
Нашёл элегантное решение с использованием прозрачности (свойства AlphaBlend и AlphaBlendValue):
DefaultTransparency := AlphaBlendValue;
AlphaBlendValue := 0;
AlphaBlend := True;
try
try
MakeScreenshot;
finally
AlphaBlendValue := DefaultTransparency;
AlphaBlend := False;
end;
except
end;
