Сделай Сам Свою Работу на 5

Chr(0) – неотображаемый символ





Дмитровский профессиональный колледж

 


СПЕЦИАЛЬНОСТЬ 230105

«Программное обеспечение

вычислительной техники и

автоматизированных систем»

 

УЧЕБНОЕ ПОСОБИЕ

Разработка Windows-приложений

В среде Delphi 7.0

 
 


Практические работы

Задания для самостоятельного выполнения

Контрольные вопросы

Дмитров 2007


Автор:Живодерова Валентина Викторовна – преподаватель высшей категории Дмитровского профессионального колледжа.

 

 

Учебное пособие содержит указания к выполнению практических работ по программированию в среде Borland Delphi 7.

Данное пособие предназначено для студентов, которые обучаются по специальности 230105 «Программное обеспечение вычислительной техники и автоматизированных систем». Может быть рекомендовано к использованию учащимися старших классов средней школы и студентами начальных курсов высших учебных заведений при изучении основ программирования.

 

 


СОДЕРЖАНИЕ

 

ВВЕДЕНИЕ 4

ПОСЛЕДОВАТЕЛЬНОСТЬ ВЫПОЛНЕНИЯ ПРАКТИЧЕСКОЙ РАБОТЫ 5

СОДЕРЖАНИЕ ОТЧЁТА ПО ПРАКТИЧЕСКОЙ РАБОТЕ 6

ПРАКТИЧЕСКАЯ РАБОТА № 1 7



ПРАКТИЧЕСКАЯ РАБОТА № 2 15

ПРАКТИЧЕСКАЯ РАБОТА № 3 20

ПРАКТИЧЕСКАЯ РАБОТА № 4 27

ПРАКТИЧЕСКАЯ РАБОТА № 5 34

ПРАКТИЧЕСКАЯ РАБОТА № 6 43

ПРАКТИЧЕСКАЯ РАБОТА № 7 48

ПРАКТИЧЕСКАЯ РАБОТА № 8 52

ПРАКТИЧЕСКАЯ РАБОТА № 9 59

ПРАКТИЧЕСКАЯ РАБОТА № 10 67

ПРАКТИЧЕСКАЯ РАБОТА № 11 70

ПРАКТИЧЕСКАЯ РАБОТА № 12 74

ПРАКТИЧЕСКАЯ РАБОТА № 13 78

ПРАКТИЧЕСКАЯ РАБОТА № 14 81

ПРАКТИЧЕСКАЯ РАБОТА № 15 85

ПРАКТИЧЕСКАЯ РАБОТА № 16 93

ПРАКТИЧЕСКАЯ РАБОТА № 17 100

ИНДИВИДУАЛЬНЫЕ ПРОЕКТЫ 103

Общие рекомендации по разработке 103

Примерные темы индивидуальных проектов 104

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 107

ПРИЛОЖЕНИЕ 1 108

ПРИЛОЖЕНИЕ 2 109

ПРИЛОЖЕНИЕ 3 111

 


ВВЕДЕНИЕ

Целью учебного пособия является формирование практических навыков разработки и отладки Windows-приложений в среде Borland Delphi 7.

Учебное пособие состоит из 17-ти практических работ. Описание к каждой работе содержит:

1. Теоретические основы программирования в Delphi

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



2. Порядок выполнения практической работы

Каждая работа содержит постановку задачи, цель работы и подробное пошаговое описание действий по созданию приложения.

3. Задания для самостоятельного выполнения

Задание предполагает усовершенствование разработанного приложения и предназначено для закрепления навыков разработки приложений в среде Delphi..

4. Контрольные вопросы

Контрольные вопросы предназначены для самоконтроля степени усвоения теоретических основ.

 

Использованию данного учебного пособия должно предшествовать изучение основ языка программирования Turbo Pascal 7.0, кроме того, учащийся должен хорошо владеть основными приемами работы в среде Windows.

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

 


ПОСЛЕДОВАТЕЛЬНОСТЬ ВЫПОЛНЕНИЯ ПРАКТИЧЕСКОЙ РАБОТЫ

1. Изучить теоретические основы по тематике практической работы;

2. Изучить постановку задачи и цель работы;

3. В соответствии с предложенным порядком выполнения, разработать приложение;

4. Результат показать преподавателю;

5. Выполнить самостоятельные задания, которые определил преподаватель;

6. Составить отчет;

7. Защитить отчет по выполненной работе:

· ответить на контрольные вопросы;

· ответить на вопросы преподавателя по разработанному приложению.


 

СОДЕРЖАНИЕ ОТЧЁТА ПО ПРАКТИЧЕСКОЙ РАБОТЕ



1. Титульный лист;

2. Задание для самостоятельного выполнения;

3. Результаты выполнения самостоятельного задания:

§ фрагмент программного кода, который выполнен самостоятельно (можно использовать полужирный шрифт);

§ копия интерфейсной части приложения после доработки;

§ ответы на контрольные вопросы.

 

Пример титульного листа отчета см. Приложение 1.

 


ПРАКТИЧЕСКАЯ РАБОТА № 1

 

Тема: Знакомство с интегрированной средой Delphi 7.

Цель работы:Получить навыки эффективного использования интегрированной среды Delphi.

Пояснения к работе

Borland Delphi 7 -это объектно-ориентированная среда визуального программирования. Она предназначена для ускорения разработки высокопроизводительных 32-битных приложений, которые могут работать в среде Windows и Linux. Delphi использует язык Object Pascal.

Интегрированная среда Delphi представляет собой многооконную систему. Ее вид может изменяться в зависимости от настройки. После загрузки она имеет вид, представленный на рисунке 1.

 

Рис.1 Вид экрана с окнами среды Delphi

 

В главном окне расположены: строка заголовка, строка главного меню, панель инструментов (слева) и панель палитры компонентов. С помощью палитры компонентов можно выбрать и включить в приложение интерфейсные элементы управления. Палитра компонентов состоит из нескольких страниц с различными группами компонентов. Перечень основных компонентов представлен в Приложении 1.

Окно Инспектора объектов – двухстраничное окно, оно отображает свойства (страница Properties) или события (страница Events) одного или нескольких выбранных объектов или форм. Перечень основных свойств представлен в Приложении 2. Перечень событий представлен в Приложении 3.

Конструктор формы – это визуальное изображение главного окна приложения, содержит заголовок и рабочую область для размещения компонентов.

За окном формы расположено окно редактора кода, его вид представлен на рисунке 2.

Рис. 2 Вид окна редактора кода

 

Окно редактора кода содержит код (текст) программы на языке Object Pascal и является многостраничным (каждый модуль на отдельной странице).

При запуске системы Delphi в нее автоматически загружается новый проект. Новый проект рекомендуется сразу сохранить с помощью команды File / Save All. Сохранять все файлы нового проекта рекомендуется в новом каталоге. При сохранении вначале запрашивается имя модуля с главной формой проекта ( pas – файла), а затем - имя файла проекта (drp – файла). Чтобы среда автоматически сохраняла последнюю версию создаваемого приложения, и при последующих запусках Delphi открытие среды производилось с момента последнего «выхода», необходимо выбрать в главном меню Tools/Environment Options,на закладке Preferences выставить переключатели Editor fieles и Project desktop.

Способы загрузки имеющегося проекта:

- использование команды File / Open Project;

- использование команды File / Reopen (позволяет быстро выбрать один из ранее использовавшихся проектов);

В Delphi может иметь только один открытый проект, он может содержать одну или более форм и соответствующих им модулей.

Процесс создания программы в Delphi состоит из двух шагов: сначала нужно создать форму программы (диалоговое окно), затем – написать процедуру обработки событий. Форма приложения создается путем добавления в форму компонентов и последующей их настройки.

Для добавления компонента необходимо выбрать вкладку на панели компонентов, содержащую нужный компонент, далее использовать один из следующих приемов:

- щелчком мыши выбрать компонент, щелкнуть на форме в том месте, где предполагается разместить данный компонент;

- двойным щелчком выбрать компонент и переместить его в нужное место;

- при нажатой клавише Shift выбрать компонент на палитре, выполнить щелчок несколько раз на форме для добавления нескольких однотипных компонентов.

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

 

Свойства бывают простые (состоит из одного значения), перечисляемые (в виде выпадающего списка допустимых фиксированных значений), множественные (состоит из совокупности значений других свойств, помечено знаком +) и сложные (объектного типа, помечено …).

Способы выделения группы компонентов:

- щелчок на компоненте при нажатой Shift;

- охват компонентов пунктирной рамкой (появляется при нажатой кнопке мыши);

- использование окна Object TreeView.

Значение свойству можно присвоить и непосредственно в коде процедуры, используя оператор присвоения. Общий вид

Объект.Свойство:=Новое_значение;

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

- выбрать форму или компонент, для которого предназначен код;

- перейти на страницу событий Events Инспектора объекта;

- выбрать событие, для которого должен быть код;

- в правом столбце строки выполнить двойной щелчок мышкой.

В результате выполненных действий в раздел interface класса формы добавляется строка объявления создаваемой процедуры и в разделе реализации implementation размещается заголовок процедуры и пустой блок Begin End; для кода.

Например, если на форме Form1 установлена метка Label1 и для нее выбрано событие OnClick, процедура обработки события выглядит так:

var

Form1: TForm1;

implementation

procedure TForm1.Label1Click(Sender: TObject);

Begin

end;

Постановка задачи:

Разработать приложение, которое «приветствует» пользователя и форматирует введенный текст.

Порядок выполнения:

1. Создать в своей папке целевую папку «Delphi работа 1»;

2. Загрузить Delphi, сохранить новый проект в целевую папку;

3. Разработать форму в соответствии с образцом (рис.3), для этого установить на форму компоненты (вкладка Standard) и изменить им свойства в соответствии с таблицей.

 

Объект Свойство Значение
Метка Name Label1
Caption Введите свое имя
Font … полужирный, 14
Метка Name Label2
Caption  
Font … полужирный, 14,желтый
Color голубой
AutoSize False
Тестовое окно Name Edit1
Text  
Font полужирный, 14
Командная кнопка Name Button1
Caption Ok
Font полужирный, 12
Форма Caption Вежливая программа

 

4. Создать процедуру обработки события OnClick для объекта Button1, для этого:

- выделить объект;

- на вкладке Events инспектора объектов выбрать событие OnClick, выполнить двойной щелчок в правом столбце строки;

5. В появившемся окне редактора кода ввести следующий код:

if trim(edit1.text)='' then label2.Caption :=' Забыл?'

else label2.Caption :='Привет,'+edit1.Text;

6. Проверить работу приложения, для этого:

- загрузить приложение (F9 или в главном меню Run/Run );

- в поле текстового окна ввести произвольный текст;

- щелкнуть по кнопке Ok;

- изменить введенный текст,Ок, просмотреть результат;

- закрыть окно приложения.

7. Добавить на форму новые компоненты c вкладки Standard (см.рис.4) и изменить для них свойства (см. таблицу).

Рис. 4 Вид формы

 

Объект Свойство Значение
GroupBox Name GroupBox1
Caption Начертание
Font …
CheckBox Name CheckBox1
Caption Полужирный
Font …
CheckBox Name CheckBox2
Caption Курсив
Font …
GroupBox Name GroupBox2
Caption Размер шрифта
Font …
RadioButton Name RadioButton1
Caption
Font
RadioButton Name RadioButton2
Caption
Font
RadioButton Name RadioButton3
Caption
Font
     
GroupBox Name GroupBox3
Caption Цвет
Font …
RadioButton Name RadioButton4
Caption Красный
Font
RadioButton Name RadioButton5
Caption Синий
Font
RadioButton Name RadioButton6
Caption Зеленый
Font

 

8. Для объектов CheckBox1 и CheckBox2 введите код обработки события OnClick

procedure TForm1.CheckBox1Click(Sender: TObject);

begin

if CheckBox1.Checked =true then

Edit1.Font.Style := Edit1.Font.Style +[fsBold]

Else Edit1.Font.Style := Edit1.Font.Style -[fsBold]

end;

 

procedure TForm1.CheckBox2Click(Sender: TObject);

begin

if CheckBox2.Checked =true then

Edit1.Font.Style := Edit1.Font.Style +[fsItalic]

Else Edit1.Font.Style := Edit1.Font.Style -[fsItalic]

end;

 

9. Для объекта RadioButton1 введите код обработки события OnClick:

procedure TForm1.RadioButton1Click(Sender: TObject);

begin

Edit1.Font.Size:=12;

end;

 

10. Для объекта RadioButton4 введите код обработки события OnClick:


 

procedure TForm1.RadioButton4Click(Sender: TObject);

begin

Edit1.Font.Color :=clRed;

end;

 

11. Самостоятельно создать процедуры для остальных объектов RadioButton.

12. Проверить работу приложения.

13. Сделать всплывающую подсказку для текстового окна, для этого:

- выделите объект Edit1;

- для свойства Hint введите значение ПОЛЕ ВВОДА

- для свойства ShowHint выберите значение True

14. Измените вид курсора при наведении на командную кнопку, для этого:

1. выделите объект Button1;

2. для свойства Cursor выберите из списка любое значение.

15. Проверить работу приложения, сохранить проект и результат показать преподавателю.

 

Задания для самостоятельного выполнения:

Доработать приложение для выполнения следующих функций:

1. изменение цвета формы (не менее 5-ти цветов);

2. удаление текста в поле ввода и в поле вывода;

3. возможность изменять видимость командной кнопки;

4. изменение размера шрифта в поле вывода с помощью объекта ScrollBar (полоса прокрутки).

 

Контрольные вопросы

 

  1. Как можно открыть существующий проект в Delphi?
  2. Сколько файлов создается при сохранении проекта?
  3. Как выделить несколько объектов на форме?
  4. Как можно изменить значение свойства объекта?
  5. Как загрузить проект на выполнение?
  6. Как формируется имя процедуры обработки события?

ПРАКТИЧЕСКАЯ РАБОТА № 2

 

Тема:Базовые компоненты Delphi 7.

Цель работы:Получить навыки использования в программе базовых компонентов Delphi.

Пояснения к работе

В форме практически любого приложения есть компоненты, которые обеспечивают интерфейс (взаимодействие) между программой и пользователем. Такие компоненты называют базовыми. К базовым компонентам относятся:

Label метка для вывода текста;

Edit текстовое окно для ввода/редактирования текста;

Button командная кнопка;

CheckBox независимая кнопка выбора;

RadioButton - зависимая кнопка выбора;

ListBox список выбора;

ComboBox комбинированный список выбора.

 

Исходную информацию программа может получить из полей ввода/редактирования (Edit, Memo), списка выбора (ListBox) или комбинированного списка (ComboBox). Для ввода значений логического типа можно использовать CheckBox и RadioButton.

Результат программа может вывести в поле вывода текста (Label) или окно сообщений (функция ShowMessage).

Если разрабатываемая программа должна обрабатывать числовые данные, то необходимо использовать функции преобразования типов, т.к. компоненты Edit, Label, ListBox, ComboBox возвращают значения строкового типа.

IntToStr значение типа Integer в значение типа String

FloatToStrзначение типа Floatв значение типа String

StrToIntзначение типа String в значение типа Integer

StrToFloatзначение типа Stringв значение типа Float

 

Постановка задачи:

Разработать приложение, которое позволяет выполнить пересчет скорости ветра из «метров в секунду» в «километры в час».

 

Порядок выполнения:

1. Загрузить Delphi;

2. Установить на форму 3 компонента Label, компонент Edit и Button.

3. Привести форму в соответствие с образцом;

4. Для командной кнопки ввести следующий программный код:

 

Procedure TForm1.Button1Click(Sender: TObject);

Var

ms: integer; //скорость м/с

kmh: real; //скорость км/час

begin

ms := StrToInt(Edit1.Text); //ввести исходные данные

kmh := ms * 3.6; //пересчитать

Label3.Caption := IntToStr(ms) + ' м/с - это ' + FloatToStr(kmh) + ' км/час' //вывести результат

end;

5. Проверить работу приложения на различных значениях скорости. Проверить реакцию программы, если поле ввода осталось пустым.

6. Модернизировать приложение таким образом, чтобы пользователь мог ввести в поле Скорость только целое положительное число. Для этого:

§ в процедуру Button1Click добавить следующий код (выделен полужирным шрифтом):

 

Procedure TForm1.Button1Click(Sender: TObject);

begin

if Length(Edit1.Text) = 0 then

Begin

ShowMessage('Надо ввести скорость');

exit;

end;

ms := StrToInt(Edit1.Text);

...//(далее без изменений)

end;

 

§ Для объекта Edit1 выбрать событие KeyPress и ввести следующий код:

 

Procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

// Key - символ, соответствующий нажатой клавише

..// '9',#8 - цифры и <Backspace>

Chr(0) – неотображаемый символ

if not ((Key >= '0') and (Key <='9') or (Key = #8))

then Key := Chr(0);

end;

 

7. Проверить работу приложения на различных значениях (целых и вещественных).

8. Модернизировать приложение для того, чтобы вычисление выполнялось не только при щелчке по кнопке Пересчет, но и при нажатии Enter после ввода последней цифры в поле Скорость. Для этого:

§ создать новую процедуру:

- перед End. ввести Procedure WindSpeed;

- переместить в нее весь код процедуры Button1Click;

§ для процедуры Button1Click ввести новый код:

 

procedure TForm1.Button1Click(Sender: TObject);

begin

WindSpeed; // пересчитать скорость

end;

 

§ внести изменения в процедуру Edit1KeyPress:

 

begin

// #13 - клавиша <Enter>

Case Key of

'0'..'9',#8: ; // цифры и <Backspace>

#13: WindSpeed; // пересчитать скорость

else Key := Chr(0); // остальные символы не отображать

end;

 

9. Проверить работу приложения.

10. Сохранить проект. Результат показать преподавателю.

 

Задания для самостоятельного выполнения

 

Задание №1

Разработать приложение для пересчета массы из фунтов в килограммы (1 фунт = 409,5 грамм). Кнопка Пересчет должна быть доступна только в том случае, если пользователь ввел исходные данные. Разрешается вводить целые и вещественные значения (разделитель точка и только одна). Добавить на форму кнопку, при щелчке по которой удаляются значения из полей ввода и вывода.

 

Задание №2

Разработать приложение, которое вычисляет скорость (км/час), с которой спортсмен пробежал дистанцию. Рекомендуемый вид формы приведен на рисунке. Количество минут задается целым числом, секунд – вещественным.


Задание №3

Разработать приложение для вычисления сопротивления электрической цепи, состоящей из двух сопротивлений. Сопротивления могут быть соединены последовательно или параллельно. Рекомендуемый вид формы приведен на рисунке. Если величина сопротивления цепи превышает 1 000 Ом, то результат должен быть выведен в килоомах.

 

Задание №4

Разработать приложение для вычисления стоимости покупки с учетом скидки. Скидка 1% предоставляется, если сумма покупки больше 300 руб., 2% - если больше 500 руб., 3% - если больше 1000 руб. Информация о предоставленной скидке (процент и величина) должна быть выведена в диалоговое окно. Рекомендуемый вид формы приведен на рисунке.

 

Задание №5

Разработать приложение для вычисления стоимости проезда на автомобиле на дачу. Рекомендуемый вид формы приведен на рисунке.

Контрольные вопросы

1. Когда происходит событие KeyPress?

2. Значения какого типа возвращают объекты Edit, Label?

3. Какие объекты позволяют вводить (выводить) значения?

4. Можно ли для одного объекта создать две процедуры обработки события?

ПРАКТИЧЕСКАЯ РАБОТА № 3

 

Тема:Программированиесобытий KeyPress, KeyDown,KeyUp.

Цель работы:Получить навыки создания процедур обработки событий, связанных с клавиатурой. Получить навыки использования объектов Image, Shape и Timer.

Пояснения к работе:

Приложение Delphi реагирует на события – сигнал от мыши, клавиатуры и системные события. Различные объекты могут реагировать на различные совокупности событий. При организации реакции на события можно:

· проигнорировать событие, т.е. не писать процедуру для реакции на это событие;

· перехватить событие, для этого нужно написать текст процедуры – обработчика события.

Имя процедуры - обработчика события состоит из имени объекта, на котором произошло событие и имении события. Все события в Delphi принято именовать с префиксом ‘On’. События различны, но общим для них является параметр Sender – отправитель, он указывает на источник события. Традиционно может быть предусмотрена реакция на 3 вида событий от пользователя: нажатие или отпускание любой из кнопок мыши (MouseUp,MouseDown), перемещение курсора (MouseMove) и нажатие клавиш (KeyUp, KeyDown, KeyPress).

Обработчику события передаются:

Sender источник сообщения;

Shift состояние специальных клавиш и кнопок мыши во время нажатия (отпускания);

Key код нажатой клавиши (для событий KeyUp, KeyDown), символ, соответствующий нажатой буквенно-цифровой клавише (событие KeyPress);

X,Y координаты положения курсора.

Компонент Image обеспечивает вывод на поверхность формы иллюстраций, представленных в bmp, jpg, ico, wmf-форматах.

 

Свойства Image:

Picture иллюстрация, которая отображается в поле компонента;

Width, Height размер компонента. Если размер компонента меньше размера иллюстрации, и значение свойств AutoSize, Strech, Proportional, равно False, то отображается часть иллюстрации;

Proportional признак автоматического масштабировании картинки без искажения. Чтобы масштабирование было выполнено, значение свойства AutoSize должно быть False;

Strechпризнак автоматического масштабировании (сжатия или растяжения) иллюстрации в соответствии с реальным размером компонента. Если размер компонента непропорционален размеру иллюстрации, то она будет искажена.

AutoSizeпризнак автоматического изменения размера компонента в соответствии с реальным размером иллюстрации;

Centerпризнак определяет расположение картинки в поле компонента, если ширина картинки меньше ширины поля компонента. Если значение False, то картинка прижата к правой границе, если True то по центру.

Компонент Timer обеспечивает генерацию последовательности событий OnTimer.

Свойства Timer:

Intervalпериод генерации событияOnTimer, задается в миллисекундах;

Enabledразрешение работы.разрешает (значение true) или запрещает (значение false) генерацию событий OnTimer

 

Компонент Shape предназначен для рисования фигур.

Свойства Shape:

Shape определяет тип фигуры;

Brush определяет стиль и цвет заполнения фигуры;

Penопределяет стиль, цвет и толщину границ фигуры.

 


Постановка задачи:

В верхней части окна приложения непрерывно движется объект «Противник ». В нижней части окна – объект «Охотник», который может перемещаться влево и вправо, а также стрелять в «Противника» вверх пулей. При попадании пули в «Противника» объект «Охотник» увеличивает свои баллы. Цель может быть опасна, т.к. сбрасывает объект «Бомбочки», которые при попадании в охотника уменьшают его баллы.

В начале игры у «Охотника» 10 баллов. Игра заканчивается победой, если «Охотник» удваивает баллы, и поражением, если баллы равны нулю.

Порядок выполнения:

 

  1. Создать и сохранить новый проект.
  2. Разместить на форме два компонента Image (Additional), задайте для них имена, например: Men (охотник), Samolet (цель), и измените свойство Picture для каждого (выбрать графический файл .ico).
  3. Разместить компонент Shape,задать имяPula (пуля).
  4. Установить два таймера (System). Timer1 отвечает за непрерывное движение цели. Timer2за движение объекта пули. Рекомендуемый вид формы приведен на рисунке.
  5. Для объекта Timer1 ввести следующий код:

samolet.Left :=samolet.Left +1;

If samolet.Left >300 Then samolet.Left :=-30;

  1. Проверить работу программы. Самостоятельно отрегулировать скорость движения объекта, изменяя значения свойства Interval для таймера.

 

  1. Для формы выбрать событие OnKeyDown и введите код:

If key=37 then men.Left :=men.Left-10;//влево

If key=39 then men.Left :=men.Left+10;//вправо

 

If key=32 then //нажат пробел

Begin

pula.Visible :=true;

pula.Left:=men.Left ;

pula.Top:=men.Top-pula.Height ;

timer2.interval:=10;

End;

  1. Для объекта Pula изменить свойство Visible на False. Для объекта Timer2 изменить свойства Interval=0
  2. Для объекта Timer2 введите код:

pula.Top:=pula.Top-5;

If pula.top<0 then

Begin

timer2.Interval :=0;

pula.Visible :=false;

End;

  1. Проверить работу программы, отрегулировать скорость движения «пули».
  2. Добавить метку (имя Result) для вывода количества баллов.
  3. В процедуру для Timer2 добавить код (выделен полужирным шрифтом) для проверки на попадание «пули» в «самолет»:

Var

x,y,h,w:integer;//координаты и размеры пули

x0,y0,h0,w0 :integer; //координаты и размеры самолета

begin

pula.Top:=pula.Top-5;

If pula.top<0 then

Begin

timer2.Interval :=0;

pula.Visible :=false;

End;

x:=pula.left; y:=pula.Top;

w:=pula.Width ; h:=pula.Height ;

x0:=samolet.Left ; y0:=samolet.Top;

w0:=samolet.Width ;h0:=samolet.Height ;

if (x+w>x0) and (x<x0+w0) and (y+h>y0) and (y<y0+h0) then

result.Caption :=inttostr(strtoInt(result.Caption)+1) ;

end;

  1. Проверить работы программы. Определить, почему баллы начисляются неверно. Внести изменения в процедуру для того, чтобы за одно попадание добавлялся один балл.
  2. Добавить на форму компонент Shape (имя Bomba, Visible False, измените размер и цвет Brush / Color ) и еще один таймер Timer3(Intarval =10).
  3. Для таймера ввести следующий код:

If Bomba.Visible =False Then

Begin

Bomba.Visible :=True;

Bomba.Left :=Samolet.Left+5 ;

Bomba.Top:=Samolet.Top+5;

End

Else

Begin

Bomba.Top:=Bomba.Top+1;

If Bomba.top>men.Top+30 Then Bomba.Visible :=False;

End ;

  1. Проверить работу программы. Самостоятельно внести изменения в процедуру для того, чтобы баллы уменьшались при попадании в «охотника».
  2. Самостоятельно добавить проверку на окончание игры.
  3. Проект сохранить. Результат показать преподавателю.

Задания для самостоятельного выполнения

Задание №1

 

Модифицировать разработанное приложение: добавить еще один «летательный» объект, скорость и направление движения объектов должна быть различна. Программа должна добавлять баллы при попадании в любой из объектов. Оба объекта могут сбрасывать «бомбы».

Задание №2

Разработать игру «Клавиатурный тренажер», который работает следующим образом:

· сверху вниз «падает» буква( метка с одной буквой, код буквы -случайное число от 192 до 223). Если буква «упала», то сверху начинает падать другая буква;

· игрок должен нажать соответствующую клавишу на клавиатуре;

· программа должна регистрировать количество ошибок (клавиша нажата неверно или буква «упала» и кнопка не была нажата);

· если количество ошибок превысит 10, то игрок проиграл.

 

Задание №3

 

Расположить на форме таймер, фигуру «круг» и фигуру «прямоугольник». Разработать приложение, которое работает следующим образом:

· прямоугольник выполняет роль лапты, он перемещается влево и вправо при нажатии клавиш. ®

· круг - это мячик, который постоянно прямолинейно двигается, при столкновении с границами формы или лаптой меняет свое направление на противоположное.


Задание №4

Разработать приложение «Колобок», которое должно работать следующим образом:

· «колобок» постоянно жует (открывает /закрывает рот) и прямолинейно движется;

· при нажатии клавиш ® ↓ ↑ «колобок» меняет направление движения;

· «колобок» «смотрит» туда, куда движется.

Контрольные вопросы

1. В каких случаях используется таймер? Что определяет свойство Interval?

2. Как остановить работу таймера?

3. Как определить код нажатой клавиши?

4. На какие события реагирует компонент Shape?


ПРАКТИЧЕСКАЯ РАБОТА № 4

 

Тема:Элементы пользовательского интерфейса.

Цель работы:Получить навыки создания меню, панели инструментов и настройки формы.

Пояснения к работе

Создание меню

 

В приложениях, написанных на Delphi, могут быть реализованы меню двух основных типов:

  • главное меню (MainMenu),оно принадлежит форме и отображается под ее панелью заголовка;
  • всплывающее (контекстное) меню (PopupMenu), оно может быть у всех визуальных компонентов и возникает (всплывает) при нажатии правой кнопки мыши на компоненте.

Пункт меню может быть в виде подменю или команды. При выборе пункта меню инициируется событие OnClick.

Для создания меню надо:

· поместить на форму компонент MainMenu или PopupMenu;

· вызвать разработчик меню, дважды щелкнув по компоненту;

· написать название пункта (Caption) и нажать Enter;

· под первым пунктом появится заготовка для ввода пункта подменю, а справа – для ввода следующего пункта главного меню.

Для каждого пункта меню можно назначить горячие клавиши (свойство ShortCut), подсказку (Hint), картинку (Bitmap).

 

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

 

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

 

Способы создания панели инструментов:

· на основе компонента Panel (Standard):

на панели размещают кнопки быстрого доступа (SpeedButton) и комбинированные списки (ComboBox);

· с помощью компонента ToolBar (Win32):

компонент автоматически задает для всех кнопок, размещенных на ней, одинаковые размеры, упорядочивает их расположение;

· с помощью компонента CoolBar(Win32):

эту панель инструментов можно настраивать и менять ее местоположение при выполнении программы.

Настройка формы

 

При запуске Delphi автоматически создает основную форму с именем Form1. На форме можно разместить главное меню и строку состояния, размещать элементы управления работы приложения, выводить текст и графику. Если приложение состоит из нескольких форм, то первая из созданных форм является главной. Ей передается управление в начале работы приложения, ее закрытие вызывает завершение выполнения приложения.

Формы имеют ряд свойств, которые определяют вид и поведение окна программы:

BorderStyle – определяет вид рамки окна

bsDialod диалоговая; bsSizeable обычная;

bsSingle форма с неизменяемыми параметрами;

bsNone не имеет рамки и заголовка;

BorderIcons - определяет набор кнопок в заголовке;

Icons - определяет пиктограмму приложения;

AutoScroll – управляет появлением полос прокрутки;

Cursor - определяет форму курсора мыши;

Enabled - определяет реакцию на события от мыши, таймера и клавиатуры;

KeyPreview - определяет, кто будет получать события от клавиатуры: форма или управляющий элемент на форме.

Menu - позволяет выбрать один из доступных вариантов основного меню.

Постановка задачи

Разработать приложение «Состав компьютера». При выборе соответствующего пункта меню или пиктограммы на панели инструментов на экране отображается графическое изображение устройства и информация о назначении устройства. При наведении курсора отображается всплывающая подсказка о названии устройства.

Порядок выполнения

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.