Разработка открытого урока по теме.«Компонент Timer. Компоненты даты и времени» Цель урока: познакомить с компонентами timer, а также дополнительными компонентами даты и времени.
В архив входит следующий пакет данных:
Күні / Дата:
Топ / Группа:
Пән / Предмет: Основы объектно-ориентированного программирования
Сабақтың тақырыбы / Тема занятия: «Компонент Timer. Компоненты даты и времени»
Сабақтың типі / Тип занятия: Комбинированный
Сабақтың түрі / Вид занятия: Урок-соревнование
Сабақтың мақсаттары / Цели урока:
Білімдік / образовательная: Познакомить с компонентами timer, а также дополнительными компонентами даты и времени.
Дамытушылық / Развивающая: Развивать навыки работы с программным обеспечением, развивать мышление и логику при использовании компонентов в процессе разработки ПО в среде Delphi
Тәрбиелік / Воспитательная: Формировать умение адаптироваться к новым условиям, а также умение организовать свою деятельность и анализировать её. Воспитывать любовь к программированию и профессии.
Пәнаралық байланыс / Межпредметная связь: Операционные системы и программное обеспечение, Технология разработки программного обеспечения.
Көрнекі құралдар / Оборудование: Персональные компьютеры, проектор (с полотном для отображения)
Сабақтың барысы / План занятия
I.Ұйымдастыру кезеңі / Организационная часть:
Оргмомент(2 минуты)
II. Өткен материалды қайталау және тексеру / Опрос и проверка пройденного материала:
Опрос проводится в виде «игры» двух команд (15 минут)
1. Отвечает на вопросы по теме (1 участник)
2. Конкурс викторина: по пройденным темам.
III. Жаңа тақырыпты өту / Изучение нового материала: (35 минут)
Жоспар / план
1. Что такое компонент Timer. Для чего он служит. Основные свойства.
Компонент Timer позволяет задавать в приложении интервалы времени. Таймер находит многочисленные применения: синхронизация мультипликации, закрытие каких-то окон, с которыми пользователь долгое время не работает, включение хранителя экрана или закрытие связей с удаленным сервером при отсутствии действий пользователя, регулярный опрос каких-то источников информации, задание времени на ответ в обучающих программах — все это множество задач, в которых требуется задавать интервалы времени, решается с помощью таймера.
Таймер — не визуальный компонент, который может размещаться в любом месте формы. Он имеет два свойства, позволяющие им управлять: Interval — интервал времени в миллисекундах и Enabled — доступность. Свойство Interval задает период срабатывания таймера. Через заданный интервал времени после предыдущего срабатывания, или после программной установки свойства Interval, или после запуска приложения, если значение Interval установлено во время проектирования, таймер срабатывает, вызывая событие OnTimer. В обработчике этого события записываются необходимые операции.
Если задать Interval = 0 или Enabled = false, то таймер перестает работать. Чтобы запустить отсчет времени надо или задать Enabled = true, если установлено положительное значение Interval, или задать положительное значение Interval, если Enabled = true.
Например, если требуется, чтобы через 5 секунд после запуска приложения закрылась форма — заставка, отображающая логотип приложения, на ней надо разместить таймер, задать в нем интервал Interval = 5000, а в обработчик события OnTimer вставить оператор Close, закрывающий окно формы.
Если необходимо в некоторой процедуре запустить таймер, который отсчитал бы заданный интервал, например, 5 секунд, после чего надо выполнить некоторые операции и отключить таймер, это можно сделать следующим образом. При проектировании таймер делается доступным (Enabled = true), но свойство Interval задается равным 0. Таймер не будет работать, пока в момент, когда нужно запустить таймер, не выполнится оператор
Timer1.Interval := 5000;
Через 5 секунд после этого наступит событие OnTimer. В его обработчике надо задать оператор
Timer1.Interval := 0;
который отключит таймер, после чего можно выполнять требуемые операции.
Другой эквивалентный способ решения задачи — использование свойства Enabled. В время проектирования задается значение Interval = 5000 и значение Enabled = false. В момент, когда надо запустить таймер выполняется оператор
Timer1.Enabled := true;
В обработчик события OnTimer, которое наступит через 5 секунд после запуска таймера, можно вставить оператор
Timer1.Enabled:=false;
который отключит таймер.
Таймер точно выдерживает заданные интервалы Interval, если они достаточно велики — сотни и тысячи миллисекунд. Если же задавать интервалы длительностью десятки или единицы миллисекунд, то реальные интервалы времени оказываются заметно больше вследствие различных накладных расходов, связанных с вызовами функций и иными вычислительными аспектами.
2. Что такое компоненты Timer, Calendar, DateTime Pickcer, MonthCalendar. Основные свойства и события.
Примеры компонентов ввода и отображение дат и времени приведены на рисунке
Из этих компонентов наиболее удобным является DateTimePicker (на рис. 3.13, слева вверху показан этот компонент в режиме ввода времени, а ниже — в двух вариантах режима ввода даты). Компонент очень эффектен за счет появления выпадающего календаря (иногда даже слишком эффектен для строго оформленного приложения) и обеспечивает безошибочный с точки зрения синтаксиса ввод дат и времени. Его свойство Kind определяет режим работы компонента: dtkDate — ввод даты, dtkTime — ввод времени.
При вводе дат можно задать свойство DateMode равным dmComboBox — наличие выпадающего календаря, или равным dmUpDown — наличие кнопок увеличения и уменьшения (см. средний компонент DateTimePicker на рис. 3.13), напоминающих те, которые используются в описанных ранее компонентах UpDown и SpinEdit. Только в данном случае пользователь может независимо устанавливать с помощью кнопок число, месяц и год. Формат представления дат определяется свойством DateFormat, которое может принимать значения dfShort — краткий формат (например, 01.12.99), или dfLong — полный формат (например, 1 декабря 1999 г.).
Значение даты по умолчанию можно задать в Инспекторе Объектов через свойство Date. Это же свойство читается для определения заданной пользователем даты. При чтении Date надо учитывать тип этого свойства — TDateTime, представляющий собой число с плавающей запятой, целая часть которого содержит число дней, отсчитанное от некоторого начала календаря, а дробная часть равна части 24-часового дня, т.е. характеризует время и не относится к дате. Для 32-разрядных версий Delphi за начало календаря принята дата 12/30/1899 00 часов. В Delphi 1 за начало отсчета принят год 1, т.е. для перевода даты Delphi 1 в дату последующих версий Delphi надо вычесть из даты число 693594.
Для преобразования значения свойства Date в строку можно воспользоваться функцией DateToStr. Например, оператор
Memol.Lines.Add(‘Дата: ‘ +
DateToStr (DateTimePicker1.Date));
добавит в окно Memo1 строку вида «Дата: 01.12.98».
При вводе дат можно задать значения свойств MaxDate и MinDate, определяющих соответственно максимальную и минимальную дату, которую может задать пользователь.
В режиме ввода времени dtkTime введенное пользователем значение можно найти в свойстве Time, тип которого — тот же рассмотренный выше TDateTime. Преобразовать время в строку можно функцией TimeToStr.
Компонент MonthCalendar похож на компонент DateTimePicker, работающий в режиме ввода дат. Правда, в компоненте MonthCalendar предусмотрены некоторые дополнительные возможности: можно допустить множественный выбор дат в некотором диапазоне (свойство MultiSelect), можно указывать в календаре номера недель с начала года (свойство WeekNumbers), перестраивать календарь, задавая первый день каждой недели (свойство FirstDayOfWeek) и т.п. Для некоторых офисных приложений все это достаточно удобно.
Компонент Calendar представляет собой менее красочный и более обыденно оформленный календарь на один месяц. Вместо свойства Date в нем предусмотрены отдельные свойства Year -год, Month — месяц, Day — день. Все это целые числа, с которыми иногда удобнее иметь дело, чем с типом TDateTime. Перед отображением на экране или в процессе проектирования надо задать значения Month и Year, чтобы компонент отобразил календарь на указанный месяц указанного года. Впрочем, если вам надо иметь календарь на текущий месяц, надо установить в true значение свойства UseCurrentDate (установлено по умолчанию). В этом случае по умолчанию будет показан календарь на текущий месяц с выделенным в нем текущим днем. Свойство StartOfWeek задает день, с которого начинается неделя. По умолчанию задано 0 — воскресенье, как это принято в западных календарях. Но для нас все-таки как-то привычнее начинать неделю с рабочего дня — понедельника. Так что желательно задать StartOfWeek = 1.
IV. Бекіту / Закрепление: (20 минут)
Выполнение практической работы: «Разработка программ с использованием компонентов времени»
V. Қорытынды жасау / Подвести итоги: (7 минут)
Просмотр программ. Мини опрос пройденной лекции. Выставление оценок.
VI. Үй тапсырмасы / Домашнее задание: (1 минута)
Выполнить реферат на тему: Разработать программу с использованием этих компонентов.
VII. Әдебиет / Литература:
1. Программирование в Delphi 7, А.Я.Архангельский, БИНОМ
2. Программирование на языке высокого уровня, В.В. Фаронов, Питер