Владимир Коробицын
Назначение клавиш. Экранная заставка для Windows
На стартовой форме разместите два уже знакомых вам компонента: поле вывода текста Label1 и таймер Timer1. В окне свойств объектов Object Inspector для компонента Timer1 его свойству Interval установите значение 1000 миллисекунд. Функцию обработки Timer1Timer заполните инструкцией:
Label1->Caption = Now(); //вывод даты и времени
Функция Now() выдает значение системной даты и времени, в буквальном переводе английское Now соответствует русскому слову «теперь». Запустите приложение. На его форме в поле вывода текста через одну секунду отобразятся текущая дата и время. Благодаря таймеру каждую следующую секунду эта информация будет обновляться. Вы заметили, что при запуске приложения первую секунду в поле вывода текста отображается надпись «Label1».Чтобы избежать это, в окне свойств объектов для компонента Label1 его свойству Caption придайте значение пустого множества. Если хотите, чтобы дата и время появились после запуска приложения быстрее можно для компонента Timer1 уменьшить значение его свойства Interval, например, до 10 миллисекунд.
Для получения системной даты или времени отдельно можно воспользоваться функциями преобразования DateToStr(dt) и TimeToStr(dt). Функция DateToStr(dt) выдает строку символов, отображающую дату в формате dd.mm.yyyy (число, месяц, год). Функция TimeToStr(dt) выдает строку символов, отображающую дату в формате hh:mm:ss (часы, минуты, секунды). Для исследования этих функций откройте новый проект приложения с компонентами Label1, Label2 и Timer1. Инструкции программного кода в функции обработки Timer1Timer будут выглядеть так:
Label1->Caption = DateToStr(Now()); //вывод даты
Label2->Caption = TimeToStr(Now()); //вывод времени
Такого же результата можно добиться следующими инструкциями:
Label1->Caption = Date(); //показать дату
Label2->Caption = Time(); //показать время
Функция DayOfWeek() (День недели) способна выдать номер дня недели, соответствующий дате, которая указывается в скобках как параметр этой функции. Причем 1 – воскресенье, 2 – понедельник и так далее. Проверьте работу функции DayOfWeek(). Добавьте на форму компонент Label3 и напишите инструкцию:
Label3->Caption = DayOfWeek(Now()); //вывод на экран номера дня недели
Для пользователя информация о дне недели будет восприниматься проще, если на экране отобразится не «4», а «Среда». Тогда программный код может выглядеть, например, так:
// вывод на экран названия дня недели
if (DayOfWeek(Now()) == 1) Label3->Caption = ”Воскресенье”;
if (DayOfWeek(Now()) == 2) Label3->Caption = ”Понедельник”;
if (DayOfWeek(Now()) == 3) Label3->Caption = ”Вторник”;
if (DayOfWeek(Now()) == 4) Label3->Caption = ”Среда”;
if (DayOfWeek(Now()) == 5) Label3->Caption = ”Четверг”;
if (DayOfWeek(Now()) == 6) Label3->Caption = ”Пятница”;
if (DayOfWeek(Now()) == 7) Label3->Caption = ”Суббота”;
Самостоятельно поэкспериментируйте с другими функциями манипулирования датой и временем. Для этого обратитесь к соответствующей таблице расположенной в конце данного пособия.
А теперь посмотрим, как можно построить управление приложением с клавиатуры. Откройте новый проект. В функцию обработки FormKeyDown (Клавиша внизу) запишите программный код:
//если нажать на клавишу <A> то генерируется звук
//частотой 440 Гц (нота Ля) длительностью 0,2 сек
if (Key == 'A') Beep(440,200);
//если нажать на клавишу <Пробел> то изменится цвет формы на красный
if (Key == ' ') Form1->Color = clRed;
if (Key == 27) Close(); //если нажать на клавишу <Esc> то выход
Запустите приложение на исполнение. Проверьте реакцию вашего приложения на нажатие соответствующих клавиш. Строку программного кода:
if (Key == 'A') Beep(440,200);
можно записать и по-другому, указав на код «65» этой клавиши:
if (Key == 65) Beep(440,200);
Существует специальная таблица кодов клавиш. Для того чтобы эта таблица всегда была у вас под рукой, напишите простейшую программу «Коды клавиш». Откройте новый проект. В функцию обработки FormKeyDown впишите единственную инструкцию:
Label1->Caption = Key; //код нажатой клавиши
Запустите приложение. При нажатии на клавишу <A> на экране появится ее код – 65, <S> – 83, <Enter> – 13 и так далее. Остановите работу приложения. В заголовок формы поместите надпись «Коды клавиш». Для компонента Label1 его свойству Caption задайте значение «Нажимай на клавиши». Создайте исполняемый EXE-файл. Протестируйте вновь созданное приложение.
Рассмотрим технологию создания экранной заставки для Windows. Откройте новый проект. Для того чтобы экранная заставка закрывалась при клике мышью, в функцию обработки FormMouseDown (Кнопка мыши внизу) впишите инструкцию:
Close(); //закрытие экранной заставки при клике мышью
Нелишней будет реакция на закрытие этого приложения при нажатии любой клавиши, хотя бы для компьютера, не снабженного мышью. В функцию обработки FormKeyDown впишите инструкцию:
if (Key = '*') Close(); //при нажатии любой клавиши закрыть заставку
Знак «*» в данном случае интерпретируется как нажатие любой клавиши. Проверьте работоспособность обеих этих инструкций.
А теперь сделаем так, чтобы заставка занимала всю площадь экрана вашего дисплея. Свойству WindowState (Статус окна) стартовой формы Form1 установите значение wsMaximized (Максимальный размер окна), а свойству BorderStyle (Стиль границы окна) установите значение bsNone (Отсутствие границы). Посмотрите, как теперь выглядит экранная заставка.
После такой предварительной подготовки приступайте к формированию содержания заставки. Подберите небольшое изображение, например, автомобиля с видом сбоку. Установите цвет формы таким же, как и цвет фона выбранного изображения. Пусть в вашей заставке через каждые десять секунд появляется с левого края экрана автомобиль, движущийся по горизонтали и, проделав путь через весь экран, исчезает за его правым краем. Сделайте так, чтобы в процессе работы заставки звучала спокойная мелодия. Можно на форму приложения добавить второй автомобиль, одновременно движущийся навстречу первому. Чтобы автомобили не столкнулись, второй расположите на другой высоте формы. Будет хорошо, если в заставку включить показания текущего времени и название дня недели, причем разместите их в разных частях экрана. Пусть эта информация появляется тогда, когда автомобили невидны. Если у вас возникнут затруднения, вернитесь во второй и пятый уроки.
Когда приложение-заставка будет завершено, необходимо исполняемый файл вашего приложения переименовать, а именно его расширение EXE заменить на расширение SCR. Затем этот файл вместе с файлом мелодии нужно скопировать в каталог Windows\System32. Установить и настроить заставку для работы на вашем компьютере можно, нажав правой кнопкой мыши на рабочий стол, выбрать команду «Свойства», а затем вкладку «Заставка».
|