Можно ли получить растровое изображение формы с заголовком и рамкой?
Стандартные средства Delphi позволяют получать растровое изображение только внутренней части окна. Для получения изображения всего окна с заголовком и рамкой необходимо воспользоваться функциями API.
Во-первых, получаем контекст всего окна функцией:
function GetWindowDC(Wnd: HWnd): HDC;
Затем копируем растровое изображение окна в компонент TImage (для примера). И освобождаем полученный контекст окна:
function ReleaseDC(Wnd: HWnd; DC: HDC): Integer;
Пример:
procedure TForm1.Button1Click(Sender: TObject); VAR DC: hDC; begin DC := GetWindowDC(Handle); Image1.Picture.BitMap.Height := Height; Image1.Picture.BitMap.Width := Width; BitBlt(Image1.Picture.BitMap.Canvas.Handle, 0, 0, Width, Height, DC, 0, 0, SRCCOPY); ReleaseDC(Handle, DC); end;