Заставка программы и элемент таймер на Delphi

Содержание

Слайд 2

Объектно – ориентированное программирование на DELPHI - 6 @ Краснополянская школа

Объектно – ориентированное программирование на
DELPHI - 6

@ Краснополянская школа №

1 Домнин Константин Михайлович 2006 год
Слайд 3

На этом уроке: Мы научимся создавать программы, имеющие несколько форм, заставку,

На этом уроке:
Мы научимся создавать программы, имеющие несколько форм,

заставку, появляющуюся перед созданием основной формы программы, а также познакомимся с применением компонента таймер

DELPHI - 6

Вопросы:
1. Приложения, содержащие несколько форм
2. Приложения, использующие компонент таймер
3. Создание заставки программы

Слайд 4

Объектно – ориентированное программирование на DELPHI - 6 1. Приложения, содержащие несколько форм

Объектно – ориентированное программирование на DELPHI - 6

1. Приложения, содержащие

несколько форм
Слайд 5

Приложения, содержащие несколько форм В подавляющем большинстве приложения содержат не одну,

Приложения, содержащие несколько форм

В подавляющем большинстве приложения содержат не одну,

а несколько форм, которые могут появляться при возникновении определенных событий. Например, приложения с базами данных часто содержат десятки различных форм.
Наша задача – научиться создавать приложения из нескольких взаимосвязанных форм

Для начала давайте создадим приложение из 3 связанных форм. Рассмотрим процесс создания приложения по шагам:

ШАГ 1

Запускаем Delphi и у нас автоматически создается форма1 (Form1). В свойстве Caption формы назовем ее - «ГЛАВНАЯ». Delphi автоматически делает эту форму главной или стартовой – она первой открывается при запуске приложения (хотя мы можем это изменить)

Слайд 6

Приложения, содержащие несколько форм ШАГ 2 Добавим к нашему приложению еще

Приложения, содержащие несколько форм

ШАГ 2

Добавим к нашему приложению еще 2

формы, которые назовем «Математика» и «Физика»

Для этого зайдем в меню Файл –> Создать -> Форма

Создадим форму2 (Form2), которую назовем «Математика». Аналогично создадим и форму «Физика»

Слайд 7

Приложения, содержащие несколько форм ШАГ 3 Сейчас надо «познакомить» все эти

Приложения, содержащие несколько форм

ШАГ 3

Сейчас надо «познакомить» все эти формы.

Т.е. главная форма должна «знать» о существовании форм «Математика» и «Физика», а те, в свою очередь, должны знать о существовании ГЛАВНОЙ и друг о друге. Это нужно для того, чтобы мы могли из одной формы вызвать другую

Сделаем активной форму «ГЛАВНАЯ» (просто щелкнем по ней мышкой), зайдем в меню Файл -> Использовать модуль, где укажем на использование формы «Математика» (Unit2). Затем снова зайдем и укажем модуль Unit3 (форма «Физика»)

Сейчас форма «ГЛАВНАЯ» знает о существовании форм «Математика» и «Физика» и может к ним обращаться

Аналогично сделайте активной форму «Математика» и свяжите ее с модулями Unit1 и Unit3. (С формами «ГЛАВНАЯ» и «Физика»)
То же самое сделайте для формы «Физика»

Слайд 8

Приложения, содержащие несколько форм ШАГ 4 Итак, мы «познакомили» формы, а

Приложения, содержащие несколько форм

ШАГ 4

Итак, мы «познакомили» формы, а сейчас

их свяжем, т.е. по событию в одной форме появляется другая

Разместим на форме «ГЛАВНАЯ» 3 кнопки:
Математика – для открытия формы «Математика»
Физика – для открытия формы «Физика»
ВЫХОД – для выхода из приложения

Слайд 9

Приложения, содержащие несколько форм ШАГ 4 Итак, мы «познакомили» формы, а

Приложения, содержащие несколько форм

ШАГ 4

Итак, мы «познакомили» формы, а сейчас

их свяжем, т.е. по событию в одной форме появляется другая

Аналогично на формах «Математика» и «Физика» разместим кнопки «Закрыть» для закрытия этих форм

Слайд 10

Приложения, содержащие несколько форм ШАГ 4 Итак, мы «познакомили» формы, а

Приложения, содержащие несколько форм

ШАГ 4

Итак, мы «познакомили» формы, а сейчас

их свяжем, т.е. по событию в одной форме появляется другая

Сделаем двойной щелчок кнопке «МАТЕМАТИКА» на форме «Главная» для перехода в редактор

В процедуре нажатия на кнопку «Математика» запишем:
Form2.showModal

Слайд 11

Приложения, содержащие несколько форм ШАГ 4 Итак, мы «познакомили» формы, а

Приложения, содержащие несколько форм

ШАГ 4

Итак, мы «познакомили» формы, а сейчас

их свяжем, т.е. по событию в одной форме появляется другая

Сделаем двойной щелчок кнопке «Физика» на форме «ГЛАВНАЯ» для перехода в редактор

В процедуре нажатия на кнопку «Физика» запишем:
Form3.show

Слайд 12

Приложения, содержащие несколько форм ШАГ 4 Итак, мы «познакомили» формы, а

Приложения, содержащие несколько форм

ШАГ 4

Итак, мы «познакомили» формы, а сейчас

их свяжем, т.е. по событию в одной форме появляется другая

Сделаем двойной щелчок кнопке «ВЫХОД» на форме «ГЛАВНАЯ» для перехода в редактор

В процедуре нажатия на кнопку «ВЫХОД» запишем:
close

Слайд 13

Приложения, содержащие несколько форм ШАГ 4 Итак, мы «познакомили» формы, а

Приложения, содержащие несколько форм

ШАГ 4

Итак, мы «познакомили» формы, а сейчас

их свяжем, т.е. по событию в одной форме появляется другая

Разберемся с кодом:

Для вызова формы на экран (показа ее) в Delphi существуют метод Show (Show Modal)
Метод Show Modal вызывает модальное окно (окно, которое полностью берет на себя управление программой и пока мы его не закроем, мы не сможем выполнять какие – либо действия в другом окне)
(Окно формы «Математика» у нас является модальным)
Примером модальных окон являются системные сообщения Windows
Метод Show выводит обычное окно, при этом мы можем что-то делать в другом окне, не закрывая первого
(Окно формы «Физика» у нас не является модальным – оно обычное)

Слайд 14

Приложения, содержащие несколько форм ШАГ 4 Думаю, не требуется объяснений для

Приложения, содержащие несколько форм

ШАГ 4

Думаю, не требуется объяснений для написания

кода кнопок «Закрыть» на формах «Математика» и «Физика»

ШАГ 5

И последний шаг: сохраняем проект и компилируем его (посмотрите внимательно, что у Вас сохранилось: кроме файла проекта сохранились файлы каждого модуля (каждой формы)

Итак, мы научились создавать приложения из многих взаимосвязанных форм (конечно же в самом простом варианте их использования)

Запустить ->

Все.
Можно запустить приложение и попробовать его работу (и сравните поведение окон форм «Математика» и «Физика» - одно из них модальное, а другое – нет)

Слайд 15

Объектно – ориентированное программирование на DELPHI - 6 2. Приложения, содержащие компонент таймер

Объектно – ориентированное программирование на DELPHI - 6

2. Приложения, содержащие

компонент таймер
Слайд 16

Приложения, содержащие компонент таймер Сначала познакомимся с компонентом Таймер (Timer) и

Приложения, содержащие компонент таймер

Сначала познакомимся с компонентом Таймер (Timer) и

его свойствами.

Компонент Таймер является невидимым, т.е при работе приложения его не видно на форме, но мы также можем управлять им – запускать или останавливать эти «часики». И по этим часам через определенные, заданные нами промежутки времени, могут происходить различные события

Основные свойства таймера:

Enabled (доступность).
Если Enabled имеет значение True, то таймер запущен (часы идут)
Если Enabled имеет значение False, таймер остановлен

2. Interval (промежуток времени «тиканий» часов – через каждый такой промежуток может происходить какое – то заданное нами событие).
Интервал измеряется в миллисекундах (Например, если значение Interval=1000, значит период срабатываний таймера 1000 миллисекунд,т.е. 1 секунда)

Слайд 17

Приложения, содержащие компонент таймер А сейчас давайте рассмотрим его использование на

Приложения, содержащие компонент таймер

А сейчас давайте рассмотрим его использование на

примере создания программы – секундомера (по шагам)

Определим требования к программе:
Одноформенное приложение с прямым отсчетом времени (без обратного отсчета), кнопками ПУСК и СТОП, индикацией прошедшего промежутка времени с точностью до десятых долей секунды

☝ По мере продвижения в изучении Delphi и создания прикладных программ наши объяснения работы с компонентами и кодом будут все меньше, чтобы не повторяться и не загромождать курс.
Если встречается что – то непонятное – смотрите внимательно предыдущие уроки, а также справочник А.Я.Архангельского «100 компонентов общего назначения Delphi»

Слайд 18

Приложения, содержащие компонент таймер ШАГ 1 Запускаем Delphi и на форме

Приложения, содержащие компонент таймер

ШАГ 1

Запускаем Delphi и на форме размещаем

необходимые компоненты. Делаем соответствующие надписи

Label, в котором будет динамически отображаться ход времени

Timer, который будет управлять ходом времени (Свойству Interval в инспекторе объектов установим значение 100 (0,1 сек))

Кнопка СТОП, которая будет останавливать таймер

Кнопка ПУСК, которая будет запускать таймер и обнулять показания Label -a

Манифест ХР для украшения приложения в стиле Windows XP

Слайд 19

Приложения, содержащие компонент таймер ШАГ 2 Создаем обработчики событий Первое событие

Приложения, содержащие компонент таймер

ШАГ 2

Создаем обработчики событий

Первое событие –

это создание формы (On Create), которое происходит каждый раз при запуске приложения
При запуске приложения в Label –e должен быть ноль, переменная k, значение которой будет отображаться в ходе подсчета в Label-e – тоже ноль, а таймер должен «стоять»

Пишем ноль в Label-e

Присваиваем ноль k

Таймер останавливаем

Событие создания формы

Слайд 20

Приложения, содержащие компонент таймер ШАГ 3 Создаем обработчики событий При нажатии

Приложения, содержащие компонент таймер

ШАГ 3

Создаем обработчики событий

При нажатии на

кнопку ПУСК таймер должен запускаться, а показания Label-a и k обнуляться, чтобы счет шел сначала, а не нарастающим итогом

Обнуляем значение k

В Label-e выводим ноль

Запускаем таймер

Событие нажатия на кнопку ПУСК

Слайд 21

Приложения, содержащие компонент таймер ШАГ 4 Создаем обработчики событий При нажатии

Приложения, содержащие компонент таймер

ШАГ 4

Создаем обработчики событий

При нажатии на

кнопку СТОП таймер должен остановиться

Останавливаем таймер

Событие нажатия на кнопку СТОП

ШАГ 5

Заставим таймер считать (сделаем двойной щелчок по таймеру и запишем код)

При каждом срабатывании таймера к значению k должно прибавляться 0,1 (100 мс)

При каждом срабатывании таймера в Label-e будет отображаться значение k

Слайд 22

Приложения, содержащие компонент таймер ШАГ 6 Создаем обработчики событий Не забудьте

Приложения, содержащие компонент таймер

ШАГ 6

Создаем обработчики событий

Не забудьте объявить

переменную k – ее тип будет конечно real

ШАГ 7

Сохраняем, компилируем и запускаем программу

Запустить ->

Мы познакомились с таймером и научились его использовать. В следующих примерах мы также будем его применять, в частности при создании заставки программы

Слайд 23

Объектно – ориентированное программирование на DELPHI - 6 3. Создание заставки программы

Объектно – ориентированное программирование на DELPHI - 6

3. Создание заставки

программы
Слайд 24

Создание заставки программы Во многих приложениях перед открытием главного (стартового окна

Создание заставки программы

Во многих приложениях перед открытием главного (стартового окна

программы) возникает заставка – окно с информацией о программе, логотипом и пр., которое обычно само исчезает через несколько секунд. Причем заставка может сопровождаться и музыкальным фрагментом

Посмотреть пример ->

Вы уже поняли, что в качестве примера мы создадим заставку для нашего секундомера, который мы только что создали

ШАГ 1

Запускаем Delphi и открываем проект с нашим секундомером, затем создаем новую форму (Файл -> Создать -> Форма) – эта форма и будет нашей заставкой

На этой форме размещаем информацию, картинки и т.д. – поработаем над дизайном
Свойству BorderStyle этой формы даем значение BsNone, чтобы у формы, как обычно бывает у заставки, не было границ
И помещаем на форму компонент таймер – он будет «показывать» нам заставку определенное нами время (Поставим интервал таймера – 3000, а Enabled =True)

Слайд 25

Создание заставки программы Как поместить на форму картинку? Для этого служит

Создание заставки программы

Как поместить на форму картинку?

Для этого служит

компонент Image, который находится на вкладке Дополнительно

Помещаем компонент на форму и раскрываем в инспекторе объектов его свойство Picture
В редакторе изображения щелкаем кнопку «Загрузить» и появившемся окне загрузки изображения находим нужную картинку на диске компьютера
Осталось нажать ОК и картинка вставлена

Посмотрите в инспекторе объектов свойства компонента Image, попробуйте изменять их значения и посмотрите, к чему это приведет

Слайд 26

Создание заставки программы ШАГ 2 Сейчас заходим в меню Delphi: Проект->

Создание заставки программы

ШАГ 2

Сейчас заходим в меню Delphi: Проект-> Опции

и переносим форму2 (заставку) из раздела Автосоздание в раздел Доступные формы

Делаем двойной щелчок на Таймере и в обработчике события пишем:

Т.е. через 3 секунды таймер сработает и сам себя выключит, а заставка исчезнет с экрана ( при открытии формы Enabled мы ставили True и отсчет времени сразу пошел)

Слайд 27

Создание заставки программы ШАГ 3 А сейчас откроем файл проекта, нажав

Создание заставки программы

ШАГ 3

А сейчас откроем файл проекта, нажав Ctrl+F12

( и выберем Проект1), в котором вставим немного кода (выделено красным)

Что было

Что станет

Разбор кода проекта оставим на будущее

Слайд 28

Создание заставки программы ШАГ 4 Последний шаг: сохраняем, компилируем и запускаем

Создание заставки программы

ШАГ 4

Последний шаг: сохраняем, компилируем и запускаем

Запустить ->

На этом урок закончен
Слайд 29

На этом уроке мы научились создавать приложения, содержащие несколько форм, познакомились

На этом уроке мы научились создавать приложения, содержащие несколько форм,

познакомились со свойствами и применением таймера, а также создали заставку для программы

ИТОГИ УРОКА:

ООП на Delphi – 7:
Мы попробуем создать свою игру, используя компоненты, применять которые мы уже умеем

НА СЛЕДУЮЩЕМ УРОКЕ: