Содержание материала

 

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;

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить