(Iv) Создайте файл модуля, который фиксирует изображения Scrncpt
единица scrncpt;
интерфейс
использует окна, формы, элементы управления, классы, графика;
Функция захватывает ScreenRect (Arect: Trect): TBITMAP;
Функция захватывает экраны: tbitmap;
Функция captureClientImage (Control: TControl): TBITMAP;
Функция captureControlImage (Control: TControl): TBITMAP;
Function CaptureWindowImage (WND: HWND): TBITMAP;
Выполнение
Функция захватывает ScreenRect (Arect: Trect): TBITMAP;
VAR Screendc: HDC;
Начинать
Результат: = tbitmap.create;
С результатом, Arect Do
Начинать
Ширина: = правый левый;
Высота: = нижний верх;
Screendc: = getDC (0);
пытаться
// bool bitblt (hdcdest, nxdest, nydest, nwidth, nheight, hdcsrc, nxsrc, nysrc, dwrop)
// Скопируйте растровое изображение из таблицы описания исходного устройства HDCSRC в таблицу Описания целевого устройства HDCDest,
// растровый Opcode DWROP указывает метод комбинации исходной диаграммы
BitBlt (Canvas.Handle, 0,0, ширина, высота, экрана, левый, сверху, srccopy);
Окончательно
Выпущен (0, Screendc);
конец;
конец;
конец;
// Полный захват изображения
Функция захватывает экраны: tbitmap;
Начинать
с экраном DO
Результат: = захватывает ScreenRect (Rect (0,0, ширина, высота));
конец;
// ползти изображение области клиента формы или управления
Функция captureClientImage (Control: TControl): TBITMAP;
Начинать
//Control.clientorigin - это верхний левый угол области клиента управления. x, y - переменная клиентского языка
с контролем, Control.clientorigin do
РЕЗУЛЬТАТ: = CAPLERSCREECT (Bounds (x, y, ClientWidth, ClientHeight));
конец;
// ползти всей формы или контроля
Функция captureControlImage (Control: TControl): TBITMAP;
Начинать
с контролем
Если Parent = Nil Then // Там нет родительской формы, непосредственно возьмите ее в соответствии с его местоположением
Результат: = захват Creanrect (границы (слева, верхняя, ширина, высота))
else // Есть родительская форма, преобразовать ее в координаты экрана, а затем возьмите ее
с parent.clienttoscreen (точка (слева, вверху)) do
Результат: = захватывает ScreenRect (границы (x, y, ширина, высота));
конец;
// ползать в соответствии с ручкой формы
Function CaptureWindowImage (WND: HWND): TBITMAP;
var r: trect;
Начинать
GetWindowRect (Wnd, R);
Результат: = захват CreenRect (r);
конец;
конец.