Delphi. Учимся на примерах - [8]
Теперь программу можно откомпилировать, скопировать файл .scr в папку с хранителями экрана (для Windows ХР это папка Windows\System32), открыть окно параметров Рабочего стола и выбрать хранитель экрана, соответствующий нашей программе.
Разработанный нами хранитель экрана в действии показан на рис. 5.2. В данном случае был случайным образом выбран желтый цвет заполнения и происходит медленное насыщение этим цветом. Можно разглядеть папки, которые видны сквозь полупрозрачную форму.
Рис. 5.2. Хранитель экрана в действии
Полный исходный код модуля
Полный исходный код модуля программы Хранитель экрана представлен в листинге 5.1.
>unit Unit1;
>interface
>uses
> Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls;
>type TForm1 = class(TForm)
> Timer1: TTimer;
> Timer2: TTimer;
> procedure FormCreate(Sender: TObject);
> procedure FormKeyPress(Sender: TObject; var Key: Char);
> procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
> procedure Timer1Timer(Sender: TObject);
> procedure Timer2Timer(Sender: TObject);
>private
> { Private declarations }
> procedure color_check();
>public
> { Public declarations }
>end;
>var
> Form1: TForm1;
> mouse: TPoint;
>implementation
>{$R *.dfm}
>procedure TForm1.color_check();
>var
> ran: integer; //случайное число, соответствующее
> //определенному цвету
>begin
> Randomize; //включаем генератор случайных чисел
> ran: = Random(6) + 1; //выбираем случайное число от 1 до 6
> //Назначаем форме цвет, соответствующий выбранному числу
> case ran of
> 1: Form1.Color:= clBlack;
> 2: Form1.Color:= clWhite;
> 3: Form1.Color:= clBlue;
> 4: Form1.Color:= clGray;
> 5: Form1.Color:= clYellow;
> 6: Form1.Color:= clGreen;
> end;
>end;
>procedure TForm1.FormCreate(Sender: TObject);
>begin
> GetCursorPos(mouse); //получаем координаты курсора мыши
> ShowCursor(False); //прячем курсор
>end;
>procedure TForm1.FormKeyPress(Sender: TObject; var Key:Char)
>begin
> Halt; //завершение работы программы
>end;
>procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
>begin
> if (X <> mouse.X) or (Y <> mouse.Y) then Halt;
>end;
>procedure TForm1.Timer1Timer(Sender: TObject);
>begin
> if Form1.AlphaBlendValue > 250
> then //проверяем: не полностью ли мы закрасили форму
> begin
> Timer1.Enabled:= False; //выключаем насыщение формы
> Timer2.Enabled:= True; //включаем обратный процесс
> end;
> //постепенное насыщение формы
> Form1.AlphaBlendValue:= Form1.AlphaBlendValue + 1;
>end;
>procedure TForm1.Timer2Timer(Sender: TObject);
>begin
> if Form1.AlphaBlendValue < 5
> then //если форма уже полностью прозрачная
> begin
> color_check(); //выбираем случайный цвет для формы
> Timer2.Enabled:= False; //выключаем второй таймер
> Timer1.Enabled := True; //включаем первый таймер
> end;
> //Уменьшаем прозрачность на 1
> Form1.AlphaBlendValue:= Form1.AlphaBlendValue – 1;
>end;
>end.
⊚ Все файлы проекта и исполняемый файл рассмотренной программы находятся на прилагаемом к книге компакт-диске в папке Chapter05.
Глава 6
Программа просмотра рисунков
Постановка задачи
Разработать программу для просмотра рисунков. Программа должна отображать рисунок, загруженный с помощью стандартного диалогового окна обзора. Кроме того, любой рисунок должен быть связан с данной программой и открываться ею по двойному щелчку мышью или нажатию клавиши
Разработка формы
Создайте новый проект Delphi. Разместите на форме компонент Image категории Additional, который будет служить для отображения рисунка. Для того чтобы при любых размерах окна рисунок всегда заполнял всю форму, следует изменить значение свойства Align на alClient.
Для вызова диалоговых окон открытия и сохранения рисунка воспользуемся компонентами OpenDialog и SaveDialog категории Dialogs. Присвоим свойству Name этих компонентов значения Open1 и Save1 соответственно. Для обоих компонентов присвойте свойству Filter значение Все файлы|*.*.
Для доступа к функциям программы будем использовать команды меню. Разместите на форме компонент MainMenu категории Standard. Для того чтобы создать пункты меню, следует дважды щелкнуть мышью на компоненте MainMenu1, в результате чего откроется редактор меню, изображенный на рис. 6.1.
Для того чтобы добавить новый пункт, следует щелкнуть мышью в этом окне на пустом элементе меню и изменить в инспекторе объектов значение свойства Caption. Вначале создаются пункты меню, а затем аналогичным образом — подпункты (команды). Для создания разделителей свойству Caption следует присвоить значение - (дефис).
Рис. 6.1. Редактор меню
Создайте меню, соответствующее рис. 6.2.
Рис. 6.2. Меню для программы просмотра рисунков
Вид готовой формы представлен на рис. 6.3.
Рис. 6.3. Форма программы просмотра рисунков
Разработка программного кода
Теперь создадим обработчики события OnClick для пунктов меню. Для команды Файл→Открыть:
>procedure TForm1.N2Click(Sender: TObject);
>begin
> //начинаем обзор с текущей папки
> Open1.InitialDir:= GetCurrentDir;
> //открываем диалоговое окно выбора файла
> if Open1.Execute then begin
> //загружаем выбранный рисунок
>
![Pro Git](/storage/book-covers/ff/ff65f929c8afbcca6ea8a9f79f058bb6eb190f59.jpg)
Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.
![Java 7](/storage/book-covers/0c/0c854895249b5022dc4112a36f32ee3e02d18559.jpg)
Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.
![Язык программирования C++. Пятое издание](/storage/book-covers/9a/9aecb71088635b6af676bd971579b88c9feb933e.jpg)
Лучшее руководство по программированию и справочник по языку, полностью пересмотренное и обновленное под стандарт С++11!Вы держите в руках новое издание популярного и исчерпывающего бестселлера по языку программирования С++, которое было полностью пересмотрено и обновлено под стандарт С++11. Оно поможет вам быстро изучить язык и использовать его весьма эффективными и передовыми способами. В соответствии с самыми передовыми и современными методиками изложения материала авторы демонстрируют использование базового языка и его стандартной библиотеки для разработки эффективного, читабельного и мощного кода.С самого начала этой книги читатель знакомится со стандартной библиотекой С++, ее самыми популярными функциями и средствами, что позволяет сразу же приступить к написанию полезных программ, еще не овладев всеми нюансами языка.
![19 смертных грехов, угрожающих безопасности программ](/storage/book-covers/d5/d5eb03e921fc4dbcb32b47f9061ba48660452baa.jpg)
Эта книга необходима всем разработчикам программного обеспечения, независимо от платформы, языка или вида приложений. В ней рассмотрены 19 грехов, угрожающих безопасности программ, и показано, как от них избавиться. Рассмотрены уязвимости на языках C/C++, C#, Java, Visual Basic, Visual Basic.NET, Perl, Python в операционных системах Windows, Unix, Linux, Mac OS, Novell Netware. Авторы издания, Майкл Ховард и Дэвид Лебланк, обучают программистов, как писать безопасный код в компании Microsoft. На различных примерах продемонстрированы как сами ошибки, так и способы их исправления и защиты от них.
![Фундаментальные алгоритмы и структуры данных в Delphi](/storage/book-covers/d1/d181e715821e8aad1ba4cc62d3404151b48f37de.jpg)
Книга "Фундаментальные алгоритмы и структуры данных в Delphi" представляет собой уникальное учебное и справочное пособие по наиболее распространенным алгоритмам манипулирования данными, которые зарекомендовали себя как надежные и проверенные многими поколениями программистов. По данным журнала "Delphi Informant" за 2002 год, эта книга была признана сообществом разработчиков прикладных приложений на Delphi как «самая лучшая книга по практическому применению всех версий Delphi».В книге подробно рассматриваются базовые понятия алгоритмов и основополагающие структуры данных, алгоритмы сортировки, поиска, хеширования, синтаксического разбора, сжатия данных, а также многие другие темы, тесно связанные с прикладным программированием.
![Вторая жизнь старых компьютеров](/storage/book-covers/67/67e193afe8a191461c11153dce78b99fbce3dd48.jpg)
Сейчас во многих школах, институтах и других учебных заведениях можно встретить компьютеры старого парка, уже отслужившие свое как морально, так и физически. На таких компьютерах можно изучать разве что Dos, что далеко от реалий сегодняшнего дня. К тому же у большинства, как правило, жесткий диск уже в нерабочем состоянии. Но и выбросить жалко, а новых никто не дает. Различные спонсоры, меценаты, бывает, подарят компьютер (один) и радуются, как дети. Спасибо, конечно, большое, но проблемы, как вы понимаете, этот компьютер в общем не решает, даже наоборот, усугубляет, работать на старых уже как-то не хочется, теперь просто есть с чем сравнивать.