Delphi. Учимся на примерах
Шрифт:
Рис. 5.1. Выбор расширения для откомпилированной программы
Изменим свойства формы согласно табл. 5.1.
Таблица 5.1. Свойства формы хранителя экрана
| Свойство | Значение | Пояснение |
|---|---|---|
| BorderStyle | bsNone | Окно программы будет отображаться без границы и заголовка |
| Align | alClient | Окно программы будет заполнять весь экран |
| FormStyle | fsStayOnTop | Окно программы будет располагаться поверх всех остальных окон |
| AlphaBlend | True | Разрешаем изменение степени прозрачности формы |
| AlphaBlendValue | 1 | Изначально окно программы полностью непрозрачное |
Разработка программного кода
Объявите в разделе var переменную mouse типа TPoint. В этой переменой будут храниться координаты указателя мыши, при изменении которых программа должна закрываться:
Программа экранной заставки должна закрываться не только по движению мыши, но при любой активности пользователя. Для этого создадим обработчики некоторых событий главной формы. Создание формы (событие OnCreate):
Форма должна закрываться по нажатию любой клавиши (событие OnKeyPress) и при движении мышью (событие OnMouseMove). Код обработчика события OnKeyPress:
Для события OnMouseMove программный код будет несколько иным:
Здесь сначала выполняется проверка: были ли изменены координаты курсора. Если координаты курсора изменились, то, соответственно, мышь была сдвинута и следует закрыть программу.
Напишем собственную процедуру для выбора случайного цвета: color_check. Объявите ее как закрытый член класса формы:
В разделе implementation создадим реализацию процедуры color check:
Здесь случайным образом выбирается число от 1 до 6, в зависимости от того которого определяем цвет формы. Процедура color_check будет вызываться при каждом новом насыщении формы.
Обработчик события OnTimer первого таймера должен иметь следующий вид:
Насыщенность постепенно увеличивается на 1, и выполняется проверка: не стала ли форма уже полностью закрашенной выбранным цветом. Если нет, то продолжаем увеличивать насыщенность цвета через каждые 100 мс. Когда форма будет полностью насыщенной, начинаем обратный процесс, который будет происходить под управлением второго таймера (событие Timer2.OnTimer):
Я не бог. Книга XXXIV
34. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
рейтинг книги
Пушкарь. Пенталогия
Фантастика:
альтернативная история
рейтинг книги
Гусариум (сборник)
Фантастика:
альтернативная история
рейтинг книги
Первый среди равных. Книга IX
9. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
рейтинг книги
1941, Великая Отечественная катастрофа: Итоги дискуссии
Документальная литература:
военная документалистика
рейтинг книги
Моров. Том 5
4. Моров
Фантастика:
фэнтези
попаданцы
аниме
рейтинг книги
Зауряд-врач
1. Зауряд-врач
Фантастика:
альтернативная история
рейтинг книги
Собрание сочинений (Том 1)
Детские:
прочая детская литература
рейтинг книги
Локки 9. Потомок бога
9. Локки
Фантастика:
фэнтези
попаданцы
героическая фантастика
боевая фантастика
рейтинг книги
Последний реанорец. Том I и Том II
1. Высшая Речь
Фантастика:
фэнтези
рейтинг книги
Мельницы богов
Детективы:
прочие детективы
рейтинг книги
Кодекс Охотника. Книга XXVI
26. Кодекс Охотника
Фантастика:
попаданцы
рейтинг книги
Свет горизонта
1. Свет горизонта
Фантастика:
фэнтези
рейтинг книги