Efekt rozjaśniania bitmapy (FadeIn)

Aby po kliknięciu przycisku Button1 uzyskać ciekawy efekt rozjaśniania bitmapy (ang. FadeIn) umieszczonej w komponencie Image1 (bitmapa musi zawierać 24 lub 32 bity kolorów) za pomocą funkcji ScanLine() uzyskujemy szybki dostęp do pikseli w całym wierszu, nastepnie zwiększamy natężenie koloru każdego piksela, aż osiągnie on barwę białą:

Unit1.cpp

#include <stdlib.h>

void __fastcall TForm1::Button1Click(TObject *Sender)
{
   int BytesPerScan = abs(int(Image1->Picture->Bitmap->ScanLine[1]) -
                          int(Image1->Picture->Bitmap->ScanLine[0]));
   for (int i = 1; i <= 256; i++)
   {
      for (int lineNr = 0; lineNr <= Image1->Picture->Bitmap->Height-1; lineNr++)
      {
         Byte* p = (Byte*)Image1->Picture->Bitmap->ScanLine[lineNr];
         for (int x = 0; x <= BytesPerScan - 1; x++)
            if (p[x] < 255) p[x] = ++p[x];
         Application->ProcessMessages();
      }
      Image1->Refresh();
   }
}