Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2015.09.10;
Скачать: CL | DM;

Вниз

Скриншот произвольной области   Найти похожие ветки 

 
qpash ©   (2014-10-29 14:23) [0]

Добрый день всем, подскажите пожалуйста, почему функция снятия скриншота произвольной области экрана не работает на Delphi XE4 в приложенном исходнике (на 7-й Delphi работает отлично)

Исходник взят из
http://delphiexpert.ru/sozdanie-skrinshotera-na-delphi.html


 
brother ©   (2014-10-29 14:38) [1]

> не работает на Delphi XE4

что "говорит"?

из исходников:
Sleep(750);  // ждем немного, чтобы приложение успело скрыться
ересь...


 
qpash ©   (2014-10-29 14:46) [2]

В 7-й Delphi нажимая на кнопку "Произвольная область" можно выбрать мышью диапазон в прямоугольнике и он благополучно попадает в первой форме в Timage, но в Delphi XE3 или 4 в Timage скриншот не попадает и ошибки при этом нет


 
qpash ©   (2014-10-29 14:50) [3]

Sleep(750);
ставил в разные места, все-равно не работает


 
qpash ©   (2014-10-29 14:52) [4]

Наоборот убрал Sleep(750);
Но все-равно не пашет


 
Rouse_ ©   (2014-10-29 19:42) [5]

ибо with зло первостатейное!

перепиши вот так:

function CaptureScreenRect(aRect: TRect): TBitMap;
var
 ScreenDC: HDC;
begin
 Result := TBitMap.Create;
 Result.Width := aRect.Right - aRect.Left;
 Result.Height := aRect.Bottom - aRect.Top;
 ScreenDC := GetDC(0);
 try
   BitBlt(Result.Canvas.Handle, 0, 0, Result.Width, Result.Height, ScreenDC, aRect.Left, aRect.Top, SRCCOPY);
 finally
   ReleaseDC(0, ScreenDC);
 end;
end;


 
Rouse_ ©   (2014-10-29 19:45) [6]

Да и работает не правильно, у меня два монитора, основной справа, второстепенный слева, полный экран берется только с основного - а почему?

Ну и соответственно на второстепенное окно не рассчитан вывод второй формы, посредством которой снимается произвольная область.

Так себе поделка, в итоге.


 
Eraser ©   (2014-10-30 03:29) [7]


> GetDC(0);

лютое зло )

CreateDC(PChar("DISPLAY"), nil, nil, nil);


 
qpash ©   (2014-10-30 06:39) [8]

Спасибо, все получилось!


 
Rouse_ ©   (2014-10-30 19:29) [9]


> Eraser ©   (30.10.14 03:29) [7]

А в чем цимус?



Страницы: 1 вся ветка

Текущий архив: 2015.09.10;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.156 c
2-1393854752
JohnKorsh
2014-03-03 17:52
2015.09.10
Использование DLL в Delphi XE


2-1392624704
alexdn
2014-02-17 12:11
2015.09.10
Раскрасить Edit


15-1412618295
Дмитрий Белькевич
2014-10-06 21:58
2015.09.10
Обновление 1 для Delphi XE6


15-1421425875
SergP
2015-01-16 19:31
2015.09.10
Перепаковать архивы 7z в zip


15-1420010989
brother
2014-12-31 10:29
2015.09.10
С наступающим!