Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Параметры при создании скриншота [D7, XP]


worldmen ©   (2008-10-24 10:55:00) 

Надо создать скриншот определенного участка экрана, например начальные координаты x=100 y=100 конечные- x2=200 y2=200
Есть код: var bmp:TBitmap;
begin
   bmp := TBitmap.Create;
   bmp.Width := Screen.Width;
   bmp.Height := Screen.Height;
   StretchBlt(bmp.Canvas.Handle,100,100, 200,200, GetDC(0),100,100, 200,200, SRCCOPY);

   Image1.Width := 200; // Screen.Width;
   Image1.Height:= 200; // Screen.Height;
   Image1.Picture.Assign(bmp);
   bmp.Free;

Есть описания функции:
BOOL StretchBlt(
 HDC hdcDest,         // дескриптор приемного DC
 int nXOriginDest,    // x-коорд. верхнего левого угла приёмника
 int nYOriginDest,    // y-коорд. верхнего левого угла приёмника
 int nWidthDest,      // ширина приёмного прямоугольника
 int nHeightDest,     // высота приёмного прямоугольника.
 HDC hdcSrc,          // дескриптор исходного DC
 int nXOriginSrc,     // x-коорд.верхнего левого угла источника
 int nYOriginSrc,     // y-коорд.верхнего левого угла источника
 int nWidthSrc,       // ширина исходного прямоугольника
 int nHeightSrc,      // высота исходного прямоугольника
 DWORD dwRop          // код растровой операции
Не врублюсь какие параметры тут я не правильно поставил.


brother   (2008-10-24 12:44:00) [1]

>   Image1.Width := 200; // Screen.Width;
>   Image1.Height:= 200; // Screen.Height;

не понял? тебе 200 на 200 надо? тгда координаты (они абсолютные) должны быть
StretchBlt(bmp.Canvas.Handle,100,100, 300,300, GetDC(0),100,100, 300,300, SRCCOPY);


brother   (2008-10-24 12:43:00) [2]

на вскидку:
>   StretchBlt(bmp.Canvas.Handle,100,100, 200,200,GetDC(0)
> ,100,100, 200,200, SRCCOPY);

это ширина и высота равны 200
у тебя:


> координаты x=100 y=100 конечные- x2=200 y2=200

те ширина и высота 100 ;)


worldmen   (2008-10-24 12:40:00) [3]

Сылка не работает


AlekseyB   (2008-10-24 10:59:00) [4]

http://z-oleg.com/delphi/graph.htm#gr00008


Наверх

Титульная страница Поиск, карта сайта Написать письмо