Логин: Пароль:    Регистрация Всеми возможностями сайта можно пользоваться
только после авторизации.
   Забыли пароль?
Поиск
L


Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 9
Всего онлайн: 9
Зарегистрировано юзеров: 5679
Комментариев на сайте: 619
Новый юзер: iwfrcc



Последние комментарии
c
baxodir прокомментировал "Урок 23 - Функции для работы с мышью":
Но Это мало можно ещё больше
pronin106 прокомментировал "Урок 27 - Создаем игру Ping-pong - часть(2/3)":
Все получилось! Спасибо за урок. У кого не получилось читайте внимательнее! Не делайте тупо копипаст



Мы в соцсетях
c
Delphi
Урок 37 - Запись рабочего стола

   В этом уроке мы будем делать снимки экрана.

   Нам понадобится: 2 Edit, 3 Ladel, Image и Button кидаем все это на форму и располагаем так:

Расположние компонентов


   Размер снимка будет напрямую зависеть от размеров компонента Image, сделаем размер равный разрешению моего монитора (1280х1024), то есть свойство Width = 1280, а Heigth = 1024. Появились полосы прокрутки, их нам не надо, в раскрывающемся свойстве VertSrollBar и HorzSrollBar свойство Visible установим на false.

   В Delphi вся работа с графикой основывается на понятии класса TCanvas и понятии холста, сейчас мы с этим классом и будем работать, создаем обработчик события OnClick на Button1 и пишем код:
procedure TForm1.Button1Click(Sender: TObject);
var
  Canvas: TCanvas;
  ScreenV: HDC;
begin
  ScreenV:= GetDC(0);  
  Canvas:= TCanvas.Create;
  Canvas.Handle:= ScreenV;
  Image1.Canvas.CopyRect(Rect(0, 0, Image1.Width, Image1.Height),
  Canvas, Rect(0, 0, Screen.Width, Screen.Height));
  ReleaseDC(0, ScreenV);
end;
   Проверим как это работает:

Снимок


   Все отлично, теперь сохраним полученное, модифицировав код создания снимка, просто допишем код:
procedure TForm1.Button1Click(Sender: TObject);
var
  Canvas: TCanvas;
  ScreenV: HDC;
begin
  ...
  
  Image1.Picture.SaveToFile(Edit1.Text + Edit2.Text); //сохраняем
end;
   Вот зачем нам были нужны Edit'ы, в первый пишем например "foto", а во второй ".jpg", и в папке с программой появляется наш снимок экрана, не забудьте сохранить программу!

   Перейдем к самому интересному, мульти-сьемка. В этом нет ничего сложного, надо просто через равные промежутки времени нажимать на Button1, с этой задачей справится таймер. Вытащим его на форму и создадим глобальную переменную i: integer;, в обработчике события OnTimer пишем код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  i:=i+1;
  Button1.Click; //делаем снимок
end;
   Если мы сейчас запусти программу, то она будет делать снимки с интервалом в 1 сек. и сохранять все это в один файл, т.е. переписывать его, избавиться от этого нам поможет переменная "i", дополним процедуру создания снимка:
procedure TForm1.Button1Click(Sender: TObject);
var
  Canvas: TCanvas;
  ScreenV: HDC;
begin
  ...
  
  Image1.Picture.SaveToFile(Edit1.Text + IntToStr(i) +  Edit2.Text); //сохраняем
end;
   Таким образом при каждом снимке имя файла будет: foto1.jpg, foto2.jpg, foto3.jpg и т.д. Сразу изменим свойства Text первого Edit'а на "foto", а второго на ".jpg". После запуска времени чтоб это написать на не хватит и программа будет сохранять файлы с неправильными именами.

   Вот что получилось:

Файлы


   Ну вот и все, в следующем уроке мы приведём программу в божеский вид :)

Удачи!
Встретимся в следующем уроке!


Источник: www.thedelphi.ru
Автор: Савельев Александр
Опубликовано: 11 Мая 2013
Просмотров: 8451

Урок 36 - Взаимодействие с веб страницей Урок 38 - Запись рабочего стола, интерфейс

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



аватар Добавил(а): nurbeksoft [Новичок] Дата: 2013-05-14




аватар Добавила: shukrona.normatova [Новичок] Дата: 2016-08-06
Не получается . Вторая кнопка Вообще не работает