Чтение онлайн

на главную - закладки

Жанры

Delphi. Учимся на примерах

Парижский Сергей Михайлович

Шрифт:

Рис. 4.2. Программа ScreenShot в действии

Полный исходный код модуля

Полный исходный код модуля программы ScreenShot представлен в листинге 4.1.

Листинг 4.1. Модуль программы ScreenShot

unit Unit1;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Registry, WinProcs, jpeg;

type TForm1 = class(TForm)

 Button1: TButton;

 Button2: TButton;

 Screen1: TImage;

 SaveDialog1: TSaveDialog;

 Button3: TButton;

 Button4: TButton;

 procedure Button1Click(Sender: TObject);

 procedure Button2Click(Sender: TObject);

 procedure Button3Click(Sender: TObject);

 procedure Button4Click(Sender: TObject);

private

 { Private declarations }

public

 { Public declarations }

end;

var

 Form1: TForm1; //главная
форма

 ВМР1: Graphics.TBitmap; //для работы с рисунками (* .bmp)

 DC1: HDC; //простое поле для графики

 Image1: TImage;

implementation

{$R *.dfm}

procedure TForm1.ButtonlClick(Sender: TObject);

begin

 Form1.Visible:= False; //прячем форму

 Sleep(15);//пауза 15 мс

 BMP1:= Graphics.TBitmap.Create;

 //задаем размеры рисунка такие же как размеры экрана

 ВМР1.Height:= Screen.Height;

 BMP1.Width:= Screen.Width;

 DC1:= GetDC(0);

 //Делаем снимок экрана

 BitBlt(BMP1.Canvas.Handle, 0, 0, Screen.Width, Screen.Height, DC1, 0, 0, SRCCOPY);

 Form1.Visible:= True; //восстанавливаем окно программы

 Image1:= TImage.Create(nil);

 BMP1.IgnorePalette:= True;

 Image1.Picture.Assign(BMP1);

 BMP1.SaveToFile('с:\1.bmp'); //сохраняем снимок в файл

//1.bmp на диске С:\

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

 if SaveDialog1.Execute then

BMP1.SaveToFile(SaveDialog1.FileName) //сохраняем
рисунок

 else ShowMessage('Файл не был сохранен!');

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

 //удаляем рисунок с диска

 if FileExists('с:\1.bmp') then DeleteFile('C:\1.bmp');

 Screen1.Hide; //скрываем рисунок

end;

procedure TForm1.Button4Click(Sender: TObject);

begin

 Screen1.Show; // делаем рисунок видимым

 if FileExists('с:\1.bmp') then //если рисунок существует,

Screen1.Picture.LoadFromFile('с:\1.bmp');//загружаем его

end;

end.

⊚ Все файлы проекта и исполняемый файл рассмотренной программы находятся на прилагаемом к книге компакт-диске в папке Chapter04.

Глава 5

Хранитель экрана

Постановка задачи

Разработать хранитель экрана для Windows (файл с расширением *.scr). Форма масштабируется на весь экран, заголовок скрывается, а любые действия пользователя должны прекращать работу программы. Случайным образом выбирается цвет формы, затем происходит ее плавное насыщение случайно выбранным цветом. Первоначально форма полностью прозрачная. Когда она станет полностью непрозрачной, следует медленно убирать насыщенность цвета, пока она опять не станет прозрачной. После этого вновь выбирается случайный цвет для насыщения, и описанный процесс повторяется сначала.

Разработка формы

Создадим новый проект Delphi. Как известно, экранные заставки хранятся в файлах с расширением .scr, а по умолчанию проект Delphi компилируется как выполняемый файл .exe. Для того чтобы наша программа имела расширение .scr, выполним команду меню Project→Options, на вкладке Application диалогового окна Project Options введем в поле Target file extension значение scr (рис. 5.1) и нажмем кнопку OK.

Все что нам понадобится на форме, — это два компонента Timer категории System. Первый будет служить для реализации постепенного насыщения формы цветом — для этого таймера следует изменить значение свойства Interval на 100. Второй таймер потребуется при постепенном уменьшении насыщенности цвета вплоть до того момента, когда форма вновь станет полностью прозрачной. Для этого таймера свойству interval следует также присвоить значение 100, а значение свойства Enabled изменить на False, поскольку изначально "затухания" происходить не будет.

Поделиться:
Популярные книги

Зубных дел мастер

Дроздов Анатолий Федорович
1. Зубных дел мастер
Фантастика:
научная фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Зубных дел мастер

Бывшие. Война в академии магии

Берг Александра
2. Измены
Любовные романы:
любовно-фантастические романы
7.00
рейтинг книги
Бывшие. Война в академии магии

Идеальный мир для Лекаря 7

Сапфир Олег
7. Лекарь
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 7

Возвышение Меркурия. Книга 3

Кронос Александр
3. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 3

Кодекс Охотника. Книга X

Винокуров Юрий
10. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
6.25
рейтинг книги
Кодекс Охотника. Книга X

Хозяин Теней

Петров Максим Николаевич
1. Безбожник
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Хозяин Теней

Опасная любовь командора

Муратова Ульяна
1. Проклятые луной
Фантастика:
фэнтези
5.00
рейтинг книги
Опасная любовь командора

Друд, или Человек в черном

Симмонс Дэн
Фантастика:
социально-философская фантастика
6.80
рейтинг книги
Друд, или Человек в черном

Волхв

Земляной Андрей Борисович
3. Волшебник
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Волхв

Мастер Разума VII

Кронос Александр
7. Мастер Разума
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Мастер Разума VII

Всемирная энциклопедия афоризмов. Собрание мудрости всех народов и времен

Агеева Елена А.
Документальная литература:
публицистика
5.40
рейтинг книги
Всемирная энциклопедия афоризмов. Собрание мудрости всех народов и времен

Сумеречный Стрелок 5

Карелин Сергей Витальевич
5. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный Стрелок 5

Морской волк. 1-я Трилогия

Савин Владислав
1. Морской волк
Фантастика:
альтернативная история
8.71
рейтинг книги
Морской волк. 1-я Трилогия

Прогрессор поневоле

Распопов Дмитрий Викторович
2. Фараон
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прогрессор поневоле