Исчезать в альфа-смешанной форме PNG в Delphi

Я задал вопрос по этому поводу несколько лет назад, когда Vista была впервые выпущена, но так и не решил проблему и отложил ее, чтобы рассмотреть ее позже.

У меня есть заставка, на которую я приложил огромные усилия, чтобы выглядеть великолепно. Это'Альфа-смешанный PNG 32 бит на пиксель. У меня есть некоторый код (который я могу выкопать, если требуется!), Который отлично работает под Windows XP или под Vista +, когда композиция на рабочем столе выключена. Тем не менее, под Vista + все прозрачные части черного цвета, уничтожая все, что выглядит великолепно!

Итак, мой вопрос заключается в следующем: как любой смог отобразить PNG с 32-битной альфа-связью в качестве заставки таким образом, что работаеткак с настольной композицией, так и без нее? Я'm не препятствует использованию сторонних компонентов, если требуется, бесплатно или иным образом.

В идеале это будет работать в Delphi 7.

Обновление: Помимо ответов ниже, которые работают очень хорошо, я обнаружил, что компонент TMS TAdvSmoothSplashScreen также хорошо справляется с этой задачей, хотя и несколько сложнее.

Ответы на вопрос(2)

Ваш ответ на вопрос