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

Поиск
L



Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 2
Всего онлайн: 2
Зарегистрировано юзеров: 6358
Комментариев на сайте: 645
Новый юзер: Realtyvaday



Последние комментарии
c
Aqel прокомментировал "Урок 71 - Работа с сжатыми файлами":
GZip псевдоархив, на мой вопрос тоже не отвечают, как распаковать отдельные файлы/папки...
Pingitrus прокомментировал "Урок 71 - Работа с сжатыми файлами":
Есть еще кто нибудь живой на этом сайте, кто сможет помочь? Так то все работает, zip и rar распаковывает, но у меня есть файл dat который сжат GZip, почему то его не удается распаковать или так не получится так как этот файл не является архивом или является?)) пишет ошибку что неверная функция



Мы в соцсетях
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
Просмотров: 10244

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

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



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




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