Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Скриншоты Delphi 
V
    Опции темы
Larrie
Дата 11.6.2009, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 11.6.2009

Репутация: нет
Всего: нет



Подскажите, пожалуйста, какой программой можно сделать скришоты из Delphi?
PM MAIL   Вверх
Keeper89
Дата 11.6.2009, 23:39 (ссылка) |  (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 9
Всего: 58



Если я правильно понял вопрос, надо сделать скриншот средствами Delphi:
Код

function GetScreenShot: TBitmap;
var
  Desktop: HDC;
begin
  Result  := TBitmap.Create;
  Desktop := GetDC(0);
  try
    try
      Result.PixelFormat := pf32bit;
      Result.Width := Screen.Width;
      Result.Height := Screen.Height;
      BitBlt(Result.Canvas.Handle, 0, 0, Result.Width, Result.Height, Desktop, 0, 0, SRCCOPY);
      Result.Modified := True;
    finally
      ReleaseDC(0, Desktop);
    end;
  except
    Result.Free;
    Result := nil;
  end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  Image1.Picture.Bitmap := GetScreenShot;
end;




--------------------
PM MAIL WWW   Вверх
Данкинг
Дата 11.6.2009, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Цитата(Larrie @  12.6.2009,  00:37 Найти цитируемый пост)
какой программой можно сделать скришоты из Delphi? 

DRKB. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
AntonN
Дата 12.6.2009, 00:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.8.2006

Репутация: 3
Всего: 18



http://desksoft.ru/index.php?forum=13&th=113
Цитата

Пример каркаса программы, позволяющей делать снимок экрана, выделять нужную часть картинки и сохранить ее в файл



--------------------
user posted image
PM MAIL WWW   Вверх
Larrie
Дата 12.6.2009, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 11.6.2009

Репутация: нет
Всего: нет



спасибо
PM MAIL   Вверх
darkmamba
Дата 29.10.2009, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 16.10.2008

Репутация: нет
Всего: 1



а как проще сделать скриншот не БМП, потому что очень тяжелый формат, а например ГИФ или ЖПГ ? 
PM MAIL   Вверх
Данкинг
Дата 29.10.2009, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Цитата(darkmamba @ 29.10.2009,  19:02)
а как проще сделать скриншот не БМП, потому что очень тяжелый формат, а например ГИФ или ЖПГ ?

Сделать в BMP, пересохранить в JPG, и (самое главное!!!) не забыть удалить исходный BMP. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Qu1nt
Дата 29.10.2009, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 13.1.2007

Репутация: 22
Всего: 50



Код

uses
  JPEG;

procedure SaveScreenShot(const Path: AnsiString);
var
  Desktop : HDC;
  Bitmap  : TBitmap;
  Convert : TJPEGImage;
begin
  Desktop := GetDC(0);
  Bitmap  := TBitmap.Create;
  Convert := TJPEGImage.Create;
  try
    Bitmap.PixelFormat := pf32bit;
    Bitmap.Width := Screen.Width;
    Bitmap.Height := Screen.Height;
    BitBlt(Bitmap.Canvas.Handle, 0, 0, Bitmap.Width, Bitmap.Height, Desktop, 0, 0, SRCCOPY);
    Convert.CompressionQuality := 100;
    Convert.Assign(Bitmap);
    Convert.SaveToFile(Path);
  finally
    FreeAndNil(Convert);
    FreeAndNil(Bitmap);
    ReleaseDC(0, Desktop);
  end;
end;


Это сообщение отредактировал(а) Qu1nt - 29.10.2009, 21:15
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0471 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.