Zanik alfa-mieszanej formy PNG w Delphi

Kilka lat temu zadałem pytanie na ten temat, kiedy Vista została wydana, ale nigdy nie rozwiązałem problemu i odłożyłem go na później.

Mam ekran powitalny, który bardzo się starałem, aby wyglądał świetnie. Jest to PNG z połączeniem alfa o szybkości 32 bpp. Mam kod (który w razie potrzeby mogę wykopać!), Który działa świetnie w systemie Windows XP lub w systemie Vista +, gdy kompozycja pulpitu jest wyłączona. Jednak w systemie Vista + wszystkie przezroczyste części są czarne, niszcząc wszystko, co w nich wygląda świetnie!

Tak więc moje pytanie brzmi: ponieważ każdy był w stanie wyświetlić PNG z połączeniem alfa o rozmiarze 32 bpp jako ekran powitalny w sposób, który działazarówno z aktywną kompozycją pulpitu, jak i bez niej? Nie mam nic przeciwko używaniu komponentów innych firm, jeśli jest to wymagane, za darmo lub w inny sposób.

Najlepiej byłoby, gdyby działało to w Delphi 7.

Aktualizacja: Oprócz odpowiedzi poniżej, które działają bardzo dobrze, odkryłem, że komponent TMS TAdvSmoothSplashScreen obsługuje również to zadanie bardzo dobrze, jeśli jest nieco bardziej skomplikowany.

questionAnswers(2)

yourAnswerToTheQuestion