Właściwie pisze program w Turbo C++, ale temat tyczy się VCL więc pytam w tym dziale (kod możecie podawać w dowolnym języku).
Na czas obliczeń (obliczenia są prowadzone w głównym wątku, zamrażają GUI) chcę przyciemnić zawartość formy i na wierzchu pokazać ikonę klepsydry. Wymyśliłem to w ten sposób:

  1. Mogę zrobić zrzut zawartości formy, ukryć wszystkie kontrolki (aby nie przysłaniały TImage) i pokazać na formie trzy TImage. Pierwszy (od spodu) ze zrzutem, drugi z częściowo przezroczystą czernią i trzeci z klepsydrą. Problem jest z drugim TImage.
    Chciałbym w możliwie prosty sposób zapełnić kafelkowo lub rozciągnąć na całą powierzchnię formy ikonę z 8-bitowym kanałem alfa (wtedy własność 'Stretch' TImage'a z ikoną nie działa !). Chciałbym uniknąć rysowania ikony w odpowiednim rozmiarze. Jeśli jednak nie obejdzie się bez rysowania, to jak to zrobić ? Bo jeśli VCL nie da sobie z rady z kafelkowaniem lub rozciąganiem lub rysowaniem od nowa ikony z kanałem alfa, to raczej porzucę to rozwiązanie.

  2. Mogę również zamiast panelu rozciągnąć na formie drugą formę - czarne tło + brak ramki + 70% alpha blending. Image z klepsydrą nie może leżeć na tej formie, bo też byłby przezroczysty, więc potrzebuję dodatkowe okno nad obiema formami.

  3. Mogę po prostu algorytmem przyciemnić zrzut formy i pokazać go w TImage.

Co robić ?

//na marginesie
wg. mnie można by rozszerzyć przeznaczenie działu Delphi o VCL, podobnie jak w dziale dla C# w którym jest .NET