Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi для начинающих

Войти
Регистрация
Восстановить пароль
 
Олег2000про
-4 / 0 / 0
Регистрация: 13.11.2015
Сообщений: 450
#1

Скриншот средствами делфи - Delphi

08.10.2016, 17:46. Просмотров 215. Ответов 7
Метки нет (Все метки)

Есть такой код:
Delphi
1
2
3
4
5
6
7
  b:=TBitmap.Create;
  f:=TJPEGImage.Create;
  b.Width := Screen.Width;
  b.Height := Screen.Height;
  BitBlt(b.Canvas.Handle, 0,0, Screen.Width, Screen.Height,
  GetDC(0), 0,0,SRCCOPY);
  Image1.Picture.Assign(b);
Делает скрины и показывает их. Добавляю:
Delphi
1
2
3
  f.Assign(b);
  f.CompressionQuality:=100;
  f.Compress;
Программа начинает подлагивать на момент снятия скрина. Как убрать лаги?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2016, 17:46
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Скриншот средствами делфи (Delphi):

Узнать имя файла средствами делфи - Delphi
Имеется папка В ней файлов 200 имена файлов типа 0adc7cbd-6d4a-f30a-239f-ae4578fcbbb5.jpg Нужно узнать имя каждого файла в этой папке...

Как средствами делфи раскодировать текст - Delphi
Как можно средствами делфи раскодировать такой текст: {"error":false,"page":"<div class=\"row\">\n <h4...

Ping средствами делфи - Delphi
Всем привет!!! Может кто подсказать как написать простой пинг в делфи, т.е при запуске программы она пингует заданный IP адрес, если...

как создать диалог стандартными средствами Делфи? - Delphi
Мне нужно организовать диалог с пользователем, Сейчас сделано как переход от одной формы к другой по нажатии кнопок. Но с помощью TForm...

Как в Делфи выполнить код, написанный на Делфи, например в поле ввода? - Delphi
Есть способ в Делфи выполнить код, написанный на Делфи, например в поле ввода?

Здр, пожалуйста попробуйте запутсить .exe написанное на делфи 10 у себя, те у кого делфи 7 - Delphi
и скиньте скрин пожалуйста срочно http://www.fayloobmennik.net/4874373 перед тес как запустить, создайте файлы: 1.txt, 2.txt и key.txt...

7
BOGG ART
576 / 444 / 130
Регистрация: 09.12.2013
Сообщений: 2,384
Записей в блоге: 2
08.10.2016, 19:38 #2
Нельзя так вот сувать GetDC в функцию. Она захватывает ресурсы, которые надо освобождать. У вас утечка памяти.
Сделайте один раз GetDC в OnCreate и один раз ReleaseDC в OnDestroy. Пользуйтесь только значением переменной, в которой будете хранить результат. Картинки тоже подумайте где логичнее создавать и уничтожать.
TJPEGImage довольно медленная хрень, и по загрузе, и по конвертации, и по сохранению. Не знаю что вы подразумеваете под "лаги", но с этим классом в любом случае ответ - никак.
0
Олег2000про
-4 / 0 / 0
Регистрация: 13.11.2015
Сообщений: 450
08.10.2016, 19:47  [ТС] #3
BOGG ART, программа зависает на 1 секунду. Хотелось бы исправить

Добавлено через 39 секунд
Цитата Сообщение от BOGG ART Посмотреть сообщение
Не знаю что вы подразумеваете под "лаги"
программа зависает на 1 сек

Добавлено через 6 минут
BOGG ART, Ладно.. Как тогда еще можно сжать картинку?
0
Hikari
Хитрая блондиночка $)
1451 / 960 / 284
Регистрация: 21.12.2015
Сообщений: 3,785
08.10.2016, 19:49 #4
Цитата Сообщение от Олег2000про Посмотреть сообщение
программа зависает на 1 сек
Как часто ты скриншотишь?
Обычно такие действия прячут в Thread, чтоб основной поток мог работать независимо.
0
Олег2000про
-4 / 0 / 0
Регистрация: 13.11.2015
Сообщений: 450
08.10.2016, 19:51  [ТС] #5
Hikari, каждые 3 секунды
0
Убежденный
Ушел с форума
Эксперт С++
15937 / 7247 / 1140
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
08.10.2016, 19:56 #6
Олег2000про, если твою программу планируется запускать на Windows 8 и выше,
то я советую отказаться от GetDC и от GDI в целом для этой задачи. На последних версиях
Windows оконную подсистему немного переделали и теперь GetDC(0), особенно на больших
разрешениях, иногда "педалит" не по-детски (см. в диспетчере задач загрузку CPU по
процессу dwm.exe - это просто ужас).
1
BOGG ART
576 / 444 / 130
Регистрация: 09.12.2013
Сообщений: 2,384
Записей в блоге: 2
08.10.2016, 20:45 #7
Олег2000про, GDI+
Версия Делфи?
0
Олег2000про
-4 / 0 / 0
Регистрация: 13.11.2015
Сообщений: 450
09.10.2016, 09:23  [ТС] #8
BOGG ART, xe3
0
09.10.2016, 09:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2016, 09:23
Привет! Вот еще темы с ответами:

У меня стоит Делфи 5, возможно еще поставить и Делфи 7, или будут проблемы?! - Delphi
Где можно скачать Делфи 7, дайте ссылку! У меня стоит Делфи 5, возможно еще поставить и Делфи 7, или будут проблемы?!

Как открыть doc в делфи? Или как можно написать огромный текст в делфи? - Delphi
Думаю поймете. Я решил сделать сборник книг. И в Delphi добавил список книг (в виде кнопок) и при выборе я бы хотел открыть форму где был...

Скриншот - Delphi
Нашёл код который делает скрин окна: bmp:=TBitmap.Create; hSrcWnd := FindWindow(nil, PChAR('Твайт.ру — Реклама в Twitter и Facebook....

Скриншот формы - Delphi
Как сделать скриншот только диалогового окна, а не всего монитора?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru