Code: |
// Для копирования изображения, находящегося в клиентской части // формы есть метод GetFormImage. Для копирования любого // прямоугольника экрана можно воспользоваться функциями GDI.
// Копирование произвольной прямоугольной области экрана Function CaptureScreenRect( ARect: TRect ): TBitmap; var ScreenDC: HDC; begin Result := TBitmap.Create; with Result, ARect do begin Width := Right - Left; Height := Bottom - Top;
// получаем для экрана контекст устройства ScreenDC := GetDC( 0 ); try // копируем оттуда прямоугольную область на канву // растрового изображения BitBlt( Canvas.Handle, 0, 0, Width, Height, ScreenDC, Left, Top, SRCCOPY ); finally ReleaseDC( 0, ScreenDC ); end; end; end;
// Таким образом, задавая нужный прямоугольник, можно получить // изображение любой части экрана, получить изображение любого // элемента формы(кнопок , выпадающих списков и так далее).
// Пример для копирования нужного элемента формы или всей формы, // включая и заголовок и рамку: Function CaptureControlImage( Control: TControl ): TBitmap; begin with Control do IF Parent = nil Then Result := CaptureScreenRect( Bounds( Left, Top, Width,Height )) Else With Parent.ClientToScreen( Point( Left, Top )) DO Result := CaptureScreenRect( Bounds( X, Y, Width,Height )); end; |
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!