Главная страница
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.136 c
15-1413997019
Jeer
2014-10-22 20:56
2015.09.10
А мне, что-то вспомнилось..


11-1259936563
Егорка
2009-12-04 17:22
2015.09.10
Сервисы + Win7


15-1418199716
Юрий Зотов
2014-12-10 11:21
2015.09.10
Концерт


2-1396405670
Drowsy
2014-04-02 06:27
2015.09.10
TDUPM


2-1393854752
JohnKorsh
2014-03-03 17:52
2015.09.10
Использование DLL в Delphi XE