Разработка Windows-приложений в среде Borland Delphi

Знакомство с интегрированной средой Delphi. Базовые компоненты Delphi. Элементы пользовательского интерфейса. Использование массива объектов в приложении. Алгоритмы сортировки списка. Использование звука в приложениях. Графические возможности Delphi.

Рубрика Программирование, компьютеры и кибернетика
Вид учебное пособие
Язык русский
Дата добавления 04.05.2018
Размер файла 1,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Государственное профессиональное образовательное

автономное учреждение Амурской области

«Благовещенский политехнический колледж»

Специальность 230701 «Прикладная информатика (в экономике)»

ПМ2 Разработка, внедрение и адаптация программного обеспечения отраслевой направленности

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

Разработка Windows-приложений в среде Borland Delphi

Благовещенск, 2014

Автор: Губина Наталья Александровна, преподаватель высшей категории

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

Данное пособие предназначено для студентов, обучающихся по специальности «Прикладная информатика (в экономике)» по теме профессионального модуля «Разработка, внедрение и адаптация программного обеспечения отраслевой направленности»

ВВЕДЕНИЕ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Borland Delphi -это объектно-ориентированная среда визуального программирования. Она предназначена для ускорения разработки высокопроизводительных 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 …

12

CheckBox

Name

CheckBox1

Caption

Полужирный

Font …

12

CheckBox

Name

CheckBox2

Caption

Курсив

Font …

12

GroupBox

Name

GroupBox2

Caption

Размер шрифта

Font …

12

RadioButton

Name

RadioButton1

Caption

12

Font

12

RadioButton

Name

RadioButton2

Caption

18

Font

12

RadioButton

Name

RadioButton3

Caption

24

Font

12

GroupBox

Name

GroupBox3

Caption

Цвет

Font …

12

RadioButton

Name

RadioButton4

Caption

Красный

Font

12

RadioButton

Name

RadioButton5

Caption

Синий

Font

12

RadioButton

Name

RadioButton6

Caption

Зеленый

Font

12

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.

Цель работы: Получить навыки использования в программе базовых компонентов 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;

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

7. Для формы выбрать событие 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;

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

9. Для объекта Timer2 введите код:

pula.Top:=pula.Top-5;

If pula.top<0 then

Begin

timer2.Interval :=0;

pula.Visible :=false;

End;

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

11. Добавить метку (имя Result) для вывода количества баллов.

12. В процедуру для 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;

13. Проверить работы программы. Определить, почему баллы начисляются неверно. Внести изменения в процедуру для того, чтобы за одно попадание добавлялся один балл.

14. Добавить на форму компонент Shape (имя Bomba, Visible False, измените размер и цвет Brush / Color ) и еще один таймер Timer3 (Intarval =10).

15. Для таймера ввести следующий код:

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 ;

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

17. Самостоятельно добавить проверку на окончание игры.

18. Проект сохранить. Результат показать преподавателю.

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

Задание №1

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

Задание №2

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

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

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

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

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

Задание №3

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

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

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

Задание №4

Размещено на http://www.allbest.ru/

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

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

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

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

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 позволяет выбрать один из доступных вариантов основного меню.

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

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

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

1. Создать и сохранить новый проект.

2. Разместить на форме компонент MainMenu (Standard), выполните по нему двойной щелчок. Ввести подпись Монитор и имя mnuMonitor первому пункту меню и, по аналогии, всем остальным пунктам (см. рисунок).

3. Расположить на форме четыре компонента Image, задать для них информативные имена (например, picMinitor, picKey и т.п.), для свойства Picture выбрать соответствующий графический файл, сделать компоненты невидимыми, назначить всплывающие подсказки.

4. Расположить на форме метку (Name - Info).

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

picMonitor.Visible :=true;

picKey.Visible :=false;

picMouse.Visible :=false;

picCd.Visible :=false;

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

7. Ввести программный код для остальных пунктов меню.

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

9. Создать панель инструментов:

· расположить на форме компонент ToolBar (Win32), присвоить имя MainPanel, для свойства EdgeBorders добавить значение ebBotton =True

· щелкнуть на созданной панели правой кнопкой мыши и выбрать NewButton, установить кнопке следующие свойства:

Hint монитор

MenuItem mnuMonitor

Name btnMonitor

ShowHint True

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

· для добавления изображений командам и кнопкам добавить на форму компонент ImageList (Win32);

· дважды щелкнуть по компоненту, появится редактор, щелкните по кнопке Add и укажите размещение требуемых графических файлов \COMMON\GRAPHICS\ICONS\COMPUTER\... добавьте соответствующие файлы;

· связать набор пиктограмм с панелью инструментов и основным меню: для компонентов MainMenu1 и MainPanel для свойства Images из списка выбрать ImageList1;

· для каждого пункта меню и для каждой кнопки панели инструментов изменить значения свойства ImageIndex в соответствии с их назначением.

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

11. Добавить в заголовок формы бегущую строку, для этого:

· расположить на форме таймер (System) и ввести для него код:

procedure TForm1.Timer1Timer(Sender: TObject);

var

i: Integer;

begin

Application.Title := a;

Form1.Caption := a;

for i := 1 to (Length(a) - 1) do

a[i] := Application.Title[i + 1];

a[Length(a)] := Application.Title[1];

end;

· объявить глобальную переменную a: string;

· в процедуру FormCreate ввести код

a := 'Компьютер полезен равно настолько, насколько грамотен использующий его человек... ';

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

13. Сделать форму прозрачной, для этого в процедуру FormCreate добавить код:

Form1.Brush.Style := bsClear;

Form1.BorderStyle := bsNone

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

15. Отменить прозрачность формы.

16. Заполнить форму изображением, для этого:

· установить на форму еще один компонент Image, задать значение для свойства Picture (любой файл .bmp), сделать компонент невидимым;

· в процедуру FormCreate добавить код:

form1.brush.bitmap:=image1.picture.bitmap

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

17. Заблокировать введенный код.

18. Сделать форму полупрозрачной, для этого изменить значения следующих свойств:

AlphaBlend True, (включить полупрозрачность)

AlphaBlendValue 128 (степень прозрачности)

TransparentColorValue clBlack (какой цвет считать прозрачным)

TransparentColor True (включить прозрачность по цвету)

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

20. Самостоятельно ввести код для пункта Выход , для того чтобы перед закрытием приложения форма постепенно «растворялась», т.е. от сплошного цвета переходила к прозрачному.

21. Результат показать преподавателю, проект сохранить.

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

(номер вашего задания такой же, как в практической работе №3)

Задание №1

Модернизировать ранее созданное приложение:

1. Создать главное меню для реализации следующих функций:

· изменение скорости движения летательных объектов;

· изменение скорости перемещения «охотника»;

2. Создать всплывающее меню, которое выводится при щелчке по «охотнику» и содержит три пункта для изменения высоты объекта

Задание №2

Модернизировать ранее созданное приложение:

1. Создать главное меню для реализации следующих функций:

· изменение скорости падения буквы;

· изменение регистра символа (заглавные, прописные);

· изменение языка (латинские, русские)

Задание №3

Модернизировать ранее созданное приложение:

1. Создать главное меню для реализации следующих функций:

· изменение цвета лапты;

· изменение формы шарика (овал, шар, квадрат);

· изменение скорости движения шарика

2. Создать всплывающее меню, которое выводится при щелчке по лапте и содержит два пункта: уменьшить длину, увеличить длину

Задание №4

Модернизировать ранее созданное приложение:

1. Создать главное меню для реализации следующих функций:

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

· изменение внешнего вида «жующего» объекта (увеличение и уменьшение размера);

2. Создать всплывающее меню, которое выводится при щелчке по «колобку» и включающее в себя два пункта: пауза и пуск.

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

1. Какие типы меню существуют и как они создаются в приложении?

2. Какие возможности имеются для настройки меню?

3. Какие возможности имеются для настройки формы?

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

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

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

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

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

В данной работе используются новые компоненты:

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

· ColorBox - раскрывающийся список с образцами цвета;

· SpinEditor - окно редактирования со счетчиком для задания и показа данного значения;

· ImageList представляет собой набор пиктограмм, хранящихся на диске в файлах форматов .bmp и .ico. Размеры пиктограмм соответствуют кнопкам панели инструментов и командам меню. Доступ к каждой пиктограмме можно получить при помощи свойства ImageIndex - порядкового номера пиктограммы в наборе (нумерация с нуля).

· Компоненты стандартных диалогов:

На странице Dialogs палитры компонентов размещены пиктограммы 11 компонентов. Они реализуют стандартные диалоги общего назначения, используемые в приложениях Windows:

OpenDialog (открытие файла), SaveDialog (сохранение файла), FontDialog (форматирование шрифта), ColorDialog (палитра цветов), FindDialog (поиск), ReplaceDialog (замена) и др. Для вызова любого стандартного диалога используется метод Execute- функция возвращает логическое значение: при закрытии окна диалога кнопкой ОК - True, при отмене - False.

После закрытия стандартного диалога он возвращает через свои свойства значения, выбранные или установленные в процессе диалога. Например, при открытии файла возвращаемым значением является имя открываемого файла (OpenDialog1.FileName), а при выборе цвета - новый цвет (значение свойства ColorDialig1.Color).

Чтение и запись текстовых файлов

Для работы с файлом необходимо назначить ему файловую переменную, т.е. ассоциировать ее с именем файла на диске. Через эту переменную будет выполняться вся работа с файлом. Для назначение файловой переменной F1 используется процедура AssignFile(F1,FileName).

Для создания (записи) текстового файла используется процедура Rewrite(F1).

Если необходимо добавить текст в существующий файл, используется процедура Append(F1).

Для открытия (чтения) текстового файла используется процедура Reset(F1).

Чтение строки файла Readln(F1,Stroka);

Запись строки в файл Writeln(F1,Stroka);

После использования файла его следует закрыть процедурой CloseFile(F1).

Можно за один раз прочитать текстовый файл в многострочный редактор, например:

RichEdit1.Lines.LoadFromFile(`c:\dogovor.txt')

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

RichEdit1.Lines.SaveToFile(`c:\dogovor.txt')

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

Разработать приложение, реализующее основные функции текстового редактора:

· форматирование шрифта для выделенного контекста;

· копирование и перемещение выделенного контекста;

· выравнивание абзацев;

· поиск и замена в тексте;

· открытие и сохранение текстового файла;

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

1 часть

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

1. Создать новый проект и сохранить его под именем MainEditor.

2. Создать на форме меню:

· установить на форме компонент MainMenu (Standard);

· присвоить ему имя mmMain. Каждому пункту меню задать информативное имя:

Файл (miFile)

Новый(miNewFile)

Открыть(miOpenFile)

Сохранить(miSaveFile)

Правка(miEdit)

Копировать (miCopy)

Вырезать(miCut)

Вставить(miPaste)

Найти(miFind)

Заменить(miReplace)

Формат (miFormat)

Шрифт (miFont)

Абзац (miPar)

Вставка (miIns)

Дата (miData)

Время (miTime)

Выход(miExit)

3. Создать панель инструментов:

· расположить на форме компонент ToolBar (Win32), присвоить имя tlbMain, для свойства EdgeBorders добавить значение ebBotton True;

· щелкнуть на созданной панели правой кнопкой мыши и выполнить NewButton, установить кнопке следующие свойства:

Hint создать файл

MenuItem miNewFile

Name btnNewFile

ShowHint True

· аналогичным образом создать еще кнопки и изменить им свойства: Открыть, Сохранить, Копировать, Вырезать, Вставить, Найти, Заменить;

· для добавления изображений командам и кнопкам добавить на форму компонент ImageList (Win32);

· дважды щелкнуть по компоненту, появится редактор, щелкните по кнопке Add и указать размещение требуемых графических файлов Program Files\Common Files\Borland Shared\Images\Buttons, добавить соответствующий файл, в момент добавления на экране появится запрос о разбиении одной пиктограммы на две, ответьте утвердительно.

5. Связать набор пиктограмм с панелью инструментов и основным меню: для компонентов mmMain и tlbMain для свойства Images из списка выбрать ImageList1.

6. Изменить значения свойства ImageIndex для соответствующих пунктов меню и кнопок панели инструментов.

7. Добавить на панель инструментов компонент ColorBox (Additional) для выбора цвета шрифта, изменить значения свойств:

Name cobFontColor, Selected clBlack,

Style cbExtendedColors False

cbSystemColors False

8. Добавить на панель инструментов компонент SpinEditor (Samples) для ввода размеров шрифта, изменить значения свойств:

Name - sdFontSize, MaxValue 70, MinValue 8)

9. Добавить на панель инструментов три компонента CheckBox (Standard) для изменения начертания шрифта, изменить значения свойств для каждого:

Name chBold, chItalic, chUnderLine

Caption Ж К Ч

4. На форме установить компонент RichEdit (Win32), изменить значения свойств для этого объекта:

Name Document, ScrollBars ssBoth

5. Для объекта sdFontSize выбрать событие OnChange и ввести следующий код:

document.Font.Size:=sdFontSize.Value ;

6. Для объекта chBold выберите событие OnClick и ввести следующий код:

if chBold.Checked Then

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

Else

document.Font.Style := document.Font.Style -[fsBold];

7. Сохранить проект и проверить его работу:

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

· изменить размер шрифта и начертание Полужирный.

8. Самостоятельно ввести код для объектов chItalic и chUnderline (использовать константы fsItalic, fsUnderline), проверить работу приложения.

9. Для объекта cobFontColor выбрать событие OnChange и ввести следующий код:

document.font.Color := cobFontColor.Selected

10. Сохранить и проверить работу программы.

2 часть

1. Для пункта меню и кнопки панели инструментов Вырезать ввести код:

document.CutToClipboard ;

2. Для пункта меню и кнопки панели инструментов Копировать ввести код:

document.CopyToClipboard ;

3. Для пункта меню и кнопки панели инструментов Вставить ввести код:

document.PasteFromClipboard ;

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

document.SelectAll ;

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

6. Для того чтобы форматировать только выделенный фрагмент текста, внести изменения в код для объекта chBold

If chBold.Checked Then

document.SelAttributes.Style := document.SelAttributes.Style +[fsBold]

Else

document.SelAttributes.Style := document.SelAttributes.Style -[fsBold];

7. Проверить работу приложения и внести соответствующие изменения для других элементов форматирования.

8. Добавить на панель инструментов комбинированный список, задать ему имя cbFontName, для свойства Items ввести несколько значений, например: Times New Roman

Courier New

Garamond

Arial

Comic Sans MS

9. Самостоятельно написать код, позволяющий изменять тип шрифта выделенного фрагмента.

10. Для выравнивания абзацев добавить на панель инструментов еще три кнопки, задать им имена btnLeft, btnCenter, btnRight и соответствующее изображение и ввести код в соответствии с назначением:

document.Paragraph.Alignment := TaLeftJustify;

document.Paragraph.Alignment := TaRightJustify;

document.Paragraph.Alignment := TaCenter;

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

12. Для форматирования абзацев маркированным списком добавить на панель инструментов еще одну кнопку, задать имя btnSpisok, изменить изображение и ввести для нее код:

document.Paragraph.Numbering :=nsBullet;

13. Проверьте работу приложения. Самостоятельно изменить работу приложения, чтобы была возможность отменять маркированный список при повторном щелчке.

3 часть

1. Добавить на форму компонент FontDialog (Dialogs)., присвоить имя fontD_1 Для пункта меню Формат/Шрифт ввести следующий код:

If fontd_1.Execute Then

Begin

Document.SelAttributes.Name :=FONTd_1.Font.Name ;

Document.SelAttributes.Size :=FONTd_1.Font.Size ;

End;

2. Самостоятельно дополнить код, чтобы все выбранные атрибуты шрифта были применены к выделенному тексту.

3. Добавить на форму компонент ColorDialog (Dialogs)., присвоить имя ColorD_1. Добавить в пункт меню Формат подпункт Цвет.

4. Самостоятельно ввести код для изменения цвета шрифта выделенного текста.

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

6. Добавить компоненты FindDialog и ReplaceDialog, изменить имена fd_1 и rd_1 соответственно.

7. Для пункта меню Правка/Найти ввести код:

If fd_1.Execute Then Begin End;

8. Для объекта Fd_1 выбрать событие OnFind и ввести код:

FinStr:=fd_1.FindText ;

k:=pos(FinStr,document.Text );

If k<>0 Then

Begin

document.SelStart :=k -1; ;//начало выделения текста

document.SelLength :=length(finstr); //выделение текста

document.SetFocus;

End

Else ShowMessage('Текст не найден);

9. Для пункта меню Правка/Заменить ввести код:

If rd_1.Execute Then Begin End;

10. Для объекта rd_1 выбрать событие OnReplace и ввести код:

FinStr:=rd_1.FindText ;

k:=pos(FinStr,document.Text );

If k<>0 Then

Begin

document.SelStart :=k -1

document.SelLength :=length(finstr);

document.SelText :=rd_1.replaceText;.// замена

End

Else ShowMessage('Текст не найден');

11. Добавить на форму компонент SaveDialog (Dialogs), присвоить имя sd_1, а свойству Filter значение - Документ|*.Txt. Самостоятельно ввести программу для сохранения содержимого текстового окна в файл.

12. Добавить на форму компонент OpenDialog (Dialogs), присвоить имя od_1, а свойству Filter значение - Документ|*.Txt. Самостоятельно ввести программу для открытия файла и вывода его содержимого в текстовое окно.

13. Проверить работу приложения. Результат показать преподавателю.

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

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

Задание №1

· При изменении размера окна должен меняться размер текстового окна;

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

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

Задание №2

· Если фрагмент текста не выделен, режимы Вырезать и Копировать должны быть не доступны (в меню и на панели инструментов);

· Если не был выбран режим Вырезать и Копировать нет доступа к режиму Вставить;

Задание №3

· Разработать программный код для пункта Файл/ Новый. При выборе этого пункта текстовое окно очищается, если его содержимое было сохранено. Если сохранение не выполнялось, вывести запрос о подтверждении действия.

Пример диалогового окна для выбора дальнейших действий

if messagedlg('Уверены? ',mtconfirmation, [mbyes,mbno], 0) = mryes then … else …;

Задание №4

· После сохранения отобразить имя файла в заголовке формы;

· Реализовать режим печати текста на принтере;

· Предусмотреть перехват ошибок при обращении к принтеру.

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

1. Как обратится к буферу обмена в программном коде?

2. Какие стандартные диалоговые окна можно использовать в проекте?

3. Как обратится к выделенному фрагменту текста и какие объекты позволяют это сделать?

4. Как обратиться к абзацу текста?

5. В какие объекты можно вывести содержимое текстового файла?

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

Тема: Массивы

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

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

В Delphi разрешается определять массивы объектов, что весьма удобно, если в программе имеются группы объектов, действующих примерно одинаково. Такие массивы позволяют «привязывать» разные элементы управления к одной процедуре обработки события.

Способ создания массива объектов:

· установить компонент (на его основе будет создаваться массив), изменить необходимые свойства;

· объявить массив объектов (имя массива не должно совпадать с именем ранее установленного компонента);

· написать программный код для создания объектов массива, «привязки» объектов к форме и определения их свойств (обычно код пишется в FormCreate);

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

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

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

Разработать приложение «Игра в пятнашки».

Алгоритм игры следующий: в прямоугольной коробке находится 15 фишек, на которых написаны числа от 1 до 15. Размер коробки - 4х4, таким образом, в коробке одна пустая ячейка. В начале игры фишки перемешаны. Задача игрока состоит в том, чтобы, не вынимая фишки из коробки, выстроить фишки в правильном порядке (по возрастанию).

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

1. Создать новый проект. Установить на форме командную кнопку, задать имя для нее Pole.

2. Объявить массив объектов и переменные:

game:array[0..15] of TButton;

d,i:integer;

3. Для формы изменить свойство AutoSize - True, выбрать событие Сreate и ввести код:

Var

row,col:integer;

Begin

d:=50;// размер кнопки

For i:=0 to 15 do

Begin

game[i] := TButton.Create(pole) ;

game[i].Parent := Form1;

game[i].Width :=d ; game[i].Height :=d ;

game[i].Font.Style :=pole.Font.Style ;

game[i].Font.Size :=pole.Font.Size ;

game[i].Caption :=inttostr(i);

col:=i mod 4; //номер столбца для кнопки

row:=i div 4; //номер строки для кнопки

game[i].Top :=d*row;

game[i].Left :=d*col;

game[i].OnClick:=GameClick;

End;

game[0].Caption :=''; End;

4. Объявить процедуру

procedure GameClick( Sender: TObject);

5. Ввести код для этой процедуры:

Procedure TForm1.GameClick(Sender: TObject);

Var

x0,y0,x,y,index:integer;

Begin

//определение номера нажатой кнопки

For i:=0 to 15 do

If game[i].Focused =true Then index:=i;;

// координаты пустышки

x0:=game[0].left;

y0:=game[0].Top;

//координаты нажатой кнопки

x:=game[index].left;

y:=game[index].Top;

//если соседи по столбцу, то обмен

If (x0=x) and (abs(y-y0)=d) Then

Begin

game[0].Left :=x; game[0].Top:=y;

game[index].Left :=x0; game[index].Top:=y0;

End;

//если соседи по строке, то обмен

If (y0=y) and (abs(x-x0)=d) Then

Begin

game[0].Left :=x; game[0].Top:=y;

game[index].Left :=x0; game[index].Top:=y0;

End;

End;

6. Проверить работу программы.

7. Создать главное меню на форме из двух пунктов: Перемешать и Выход. Для пункта Перемешать ввести следующий код:

randomize ;

For v:=1 to 20 Do

Begin

row:=random(15)+1;

game[row].SetFocus ;

gameclick(game[row]);

End;

8. Предложить способ, как можно определить что задача решена и вывести соответствующее сообщен...


Подобные документы

  • Разработка головоломки на основе гравюры Альбрехта Дюрера "Магический квадрат". Главные составные части среды программирования Delphi, особенности ее стандартных компонентов и процесса сохранения программы. Компоненты и алгоритмы создаваемой программы.

    курсовая работа [147,1 K], добавлен 05.02.2015

  • Ознакомление с историей создания и особенностями объектно-ориентированного языка программирования Delphi. Разработка приложения, фиксирующего количество повторений какого-либо слова в тексте, введённом в поле MEMO. Описание интерфейса программы.

    курсовая работа [880,1 K], добавлен 21.04.2015

  • Borland Delphi 7 как универсальный инструмент разработки, применяемый во многих областях программирования, функции: добавление информации об абитуриентах в базу данных, формирование отчетов. Рассмотрение и характеристика основных компонентов Delphi.

    контрольная работа [3,6 M], добавлен 18.10.2012

  • Особенности среды визуального проектирования Borland Delphi 7.0. Этапы разработки программы и составления блок-схемы алгоритмов. Способы вычисления кусочно-заданной функции одной переменной. Рассмотрение компонентов среды Delphi, ее предназначение.

    контрольная работа [703,8 K], добавлен 24.09.2012

  • Delphi как среда разработки программ, ориентированных на работу в Windows. Назначение и преимущество использования электронных учебников. Описание возможностей среды Delphi 5 для разработки электронного учебника. Варианты применения служб Internet.

    дипломная работа [3,6 M], добавлен 13.07.2011

  • Теоретические основы применения технологии ADO в среде Delphi. Основные понятия и определения теории баз данных. Компоненты Delphi для создания приложений, оперирующих с базами данных. Общий вид и основные особенности работы приложения "Аптека".

    курсовая работа [1,4 M], добавлен 09.08.2012

  • Разработка программы генератора звука в среде Borland Delphi с использованием стандартных классов TMemoryStream (для хранения звука в виде бинарных данных) и TStrings (для хранения характеристик конкретной частоты). Запись звука в файл (форматы).

    курсовая работа [160,5 K], добавлен 22.11.2014

  • Разработка программы для работы в операционных системах семейства Windows. Использование среды Delphi - современной технологии визуального проектирования. Создание пользовательского интерфейса, оконного приложения, меню; задание исходной матрицы.

    курсовая работа [1,5 M], добавлен 12.01.2011

  • Анализ исходных данных. Определение структуры модуля для работы файлом. Разработка объектно-ориентированного приложения, использующего массив объектов, в среде Delphi. Модульная структура программного комплекса. Процедура сортировки методом вставки.

    курсовая работа [2,2 M], добавлен 20.09.2014

  • Программа поиска в базе данных в среде Borland Delphi 7.0 Enterprise. Условия и блок-схемы задач. Ввод массива. Текст программ в Delphi, в Паскаль. Текст программы поиска в базе данных. Кодирование материала. Изготовление реляционной базы данных.

    практическая работа [27,6 K], добавлен 11.10.2008

  • Шифрование как метод защиты информации. История развития криптологии. Классификация алгоритмов шифрования, симметричные и асимметричные алгоритмы. Использование инструментов криптографии в Delphi-приложениях. Краткая характеристика среды Delphi 7.

    курсовая работа [48,5 K], добавлен 19.12.2009

  • Основы программирования, работа в консольном режиме Delphi. Правила оформления комментариев. Типы данных, используемые в консольном режиме. Текстовый редактор Delphi Memo. Пример загрузки текстового файла. Примеры решения и оформления простейших задач.

    отчет по практике [2,1 M], добавлен 11.03.2014

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

    курсовая работа [1,8 M], добавлен 26.05.2010

  • Рассмотрение теории и технологии работы со средой программирования Delphi. Описание Описание интерфейса программы, структуры данных, генерации точек. Разработка задания по выявлению всех квадратов, которые могут быть образованы точками на плоскости.

    реферат [21,0 K], добавлен 13.01.2015

  • Разработка программы автоматизации процесса проверки знаний учащихся. Использование языка программирования Borland Delphi 7.0, его свойства, компоненты для работы со строками. Создание обучающих тестов на знание лексики и грамматики английского языка.

    курсовая работа [521,0 K], добавлен 06.03.2016

  • Среда для разработки приложений Borland Delphi 2007 с помощью Microsoft Visual Basic. Создание современной системы "Паспортный стол" на языке программирования Delphi. Состав объектов, обеспечивающих функциональность всего клиентского приложения.

    курсовая работа [333,7 K], добавлен 03.03.2015

  • Проектирование программного модуля в среде программирования Borland Delphi 7.0. Схемы алгоритмов решения задач по темам "Символьные переменные и строки", "Массивы", "Работа с файлами", "Создание анимации". Реализация программного модуля, код программы.

    отчет по практике [961,6 K], добавлен 21.04.2012

  • Среда Borland Delphi и ее графические средства для построения фрактальных множеств. Разработка программы для построения изображения листа папоротника при помощи вероятностных распределений с использованием средств для отображения графической информации.

    курсовая работа [1,3 M], добавлен 29.07.2013

  • Разработка программы по оформлению заказов на билеты Оренбургского государственного областного драматического театра им. Горького. Использование объектно-ориентированного программирования и реализация проекта в среде визуального программирования Delphi 7.

    курсовая работа [6,3 M], добавлен 12.11.2014

  • Основные приемы работы в среде программирования Delphi. Особенности технологии создания простейших приложений. Работа с компонентами среды разработки приложений. Ввод, редактирование, выбор и вывод информации. Аспекты использования структуры ветвления.

    методичка [619,9 K], добавлен 17.11.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.