Zapisywanie formularza na dysk jako bitmapę

Aby po kliknięciu przycisku Button1 cały obszar formularza (pasek tytułu, menu, obszar użytkownika i suwaki) został zapisany do pliku jako bitmapa tworzymy w funkcji obsługującej zdarzenie OnClick przycisku Button1 nowy obiekt typu TBitmap (bitmapa), wywołujemy funkcję Windows API CreateCompatibleBitmap(), która tworzy bitmapę związaną z tzw. kontekstem urządzenia, podając jako argumenty uchwyt do kontekstu urządzenia (u nas do całego obszaru formularza), szerokość i wysokość bitmapy w pikselach, następnie funkcją Windows API BitBlt() kopiujemy zawartość kontekstu urządzenia do bitmapy FormBitmap i zapisujemy ją do pliku funkcją SaveToFile podając jako argument ścieżkę dostępu do pliku (należy zwrócić uwagę na podwójny backslash oddzielający katalogi):

Unit1.cpp

void __fastcall TForm1::Button1Click(TObject *Sender)
{
   Graphics::TBitmap *FormBitmap = new Graphics::TBitmap();

   FormBitmap->Handle = CreateCompatibleBitmap(GetWindowDC(Handle), Width, Height);    BitBlt(FormBitmap->Canvas->Handle, 0, 0, FormBitmap->Width, FormBitmap->Height,           GetWindowDC(Handle), 0, 0, SRCCOPY);
   FormBitmap->SaveToFile("c:\\canvas.bmp");

   delete FormBitmap;
}