Delphi
.pdfМИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ, МОЛОДЕЖИ И СПОРТА УКРАИНЫ
ДОНЕЦКИЙ НАЦИОНАЛЬНЫЙ УНИВЕРСИТЕТ
ФИЗИЧЕСКИЙ ФАКУЛЬТЕТ
В.К. Толстых
Донецк 2010
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ, МОЛОДЕЖИ И СПОРТА УКРАИНЫ
ДОНЕЦКИЙ НАЦИОНАЛЬНЫЙ УНИВЕРСИТЕТ
ФИЗИЧЕСКИЙ ФАКУЛЬТЕТ
В.К. Толстых
Программирование в среде Delphi
УЧЕБНО-МЕТОДИЧЕСКОЕ ПОСОБИЕ для студентов инженерных, физических и математических специальностей
ИЗДАНИЕ ДЕСЯТОЕ, ПЕРЕРАБОТАННОЕ
Донецк 2010
ББК 32 97 Т58
УДК 681.325.5
Программирование в среде Delphi: учеб.-метод. Пособие для бакалавров инженерных и физических специальностей / сост. В. К. Толстых. – Донецк: ДонНУ, 2010. – 128 с.: ил.
Описываются базовые понятия объектно-ориентированного программирования, принципы работы в среде визуального программирования Delphi и её основные компоненты. Излагаются основы алгоритмического языка программирования Delphi (Object Pascal) с примерами программ и рисунками экранных форм. Приводятся задания для студентов, с тематическим содержанием характерным для инженерных, физических и математических специальностей, в виде лабораторных работ с 10 вариантами и контрольными вопросами. Прилагаются кредитно-модульная система контроля знаний и ряд справочных таблиц.
Учебно-методическое пособие составлено на основе курса, читаемого на физическом факультете Донецкого национального университета для специальностей 6.070101 – « Физика», 6.070201 – « Радиофизика и электроника». Пособие предназначено для студентов естественных специальностей, не имеющих профессиональных навыков программирования.
Составитель: В. К. Толстых, д-р физ.-мат. наук, проф.
Отв. за выпуск: А.А. Каргин, д-р техн. наук, проф.
© |
ДонНУ, 2010 |
© |
Толстых В. К., 2010 |
2
ВВЕДЕНИЕ
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ.......................................................................................................................... |
|
5 |
||
1 ОПЕРАЦИОННАЯ СИСТЕМА WINDOWS .................................................................. |
|
7 |
||
ЗАДАНИЕ 1. РАБОТА С ФАЙЛАМИ В WINDOWS ....................................................................... |
|
7 |
||
2 ПРОГРАММИРОВАНИЕ В СРЕДЕ DELPHI............................................................... |
|
8 |
||
2.1 |
КАК СОЗДАТЬ ПРОГРАММУ.................................................................................... |
|
8 |
|
2.2 |
СТРУКТУРА ПРОЕКТА ............................................................................................ |
|
10 |
|
2.3 |
СТРУКТУРА МОДУЛЯ.............................................................................................. |
|
12 |
|
2.4 |
БЛОКИ ЛОКАЛИЗАЦИИ ПАРАМЕТРОВ ............................................................. |
|
13 |
|
2.5 |
ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ....................... |
15 |
||
2.5.1 |
Классы и объекты ................................................................................................ |
|
15 |
|
2.5.2 |
Наследование ........................................................................................................ |
|
17 |
|
2.5.3 |
Инкапсуляция ........................................................................................................ |
|
17 |
|
2.5.4 |
Полиморфизм........................................................................................................ |
|
17 |
|
2.6 |
НАЧИНАЕМ ПРОГРАММИРОВАТЬ..................................................................... |
|
18 |
|
2.7 |
ОТЛАДКА ПРИЛОЖЕНИЙ...................................................................................... |
|
21 |
|
2.7.1 |
Точки останова..................................................................................................... |
|
22 |
|
2.7.2 |
Контроль значения переменных.......................................................................... |
|
23 |
|
2.7.3 |
Пошаговое выполнение программы.................................................................... |
|
24 |
|
ЗАДАНИЕ 2. ЗНАКОМСТВО С DELPHI.................................................................................... |
|
24 |
||
3 ЯЗЫК ПРОГРАММИРОВАНИЯ OBJECT PASCAL ................................................ |
|
27 |
||
3.1 |
ПРОСТЫЕ ТИПЫ ДАННЫХ................................................................................... |
|
27 |
|
3.1.1 |
Объявление меток (Label).................................................................................... |
|
27 |
|
3.1.2 |
Объявление констант (Const) ............................................................................. |
|
27 |
|
3.1.3 |
Объявление переменных (Var) ............................................................................. |
|
28 |
|
3.2 |
ВВОД-ВЫВОД ДАННЫХ ......................................................................................... |
|
29 |
|
3.2.1 |
Работа со строковыми данными ....................................................................... |
|
29 |
|
3.2.2 |
Стандартные строковые процедуры и функции.............................................. |
|
32 |
|
ЗАДАНИЕ 3. ОРГАНИЗАЦИЯ ВВОДА-ВЫВОДА....................................................................... |
|
34 |
||
3.3 |
ПРОГРАММИРОВАНИЕ ЛИНЕЙНЫХ ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ |
|||
.............................................................................................................................................. |
|
|
|
37 |
3.3.1 |
Выражения............................................................................................................ |
|
37 |
|
3.3.2 |
Арифметические операции.................................................................................. |
|
37 |
|
3.3.3 Булевские (логические) операции......................................................................... |
|
38 |
||
3.3.4 |
Операции отношений........................................................................................... |
|
38 |
|
3.3.5 |
Стандартные арифметические процедуры и функции ................................... |
|
39 |
|
3.3.6 |
Прочие полезные процедуры и функции ............................................................. |
|
40 |
|
3.4 |
ПРОГРАММИРОВАНИЕ РАЗВЕТВЛЯЮЩИХСЯ ВЫЧИСЛИТЕЛЬНЫХ |
|
||
ПРОЦЕСОВ........................................................................................................................ |
|
41 |
||
3.4.1 Оператор безусловного перехода (GoTo)........................................................... |
|
41 |
||
3.4.2 |
Составной оператор (Begin … End)..................................... |
.............................. 41 |
||
3.4.3 |
Операторы условного перехода (If, Case) .......................................................... |
|
42 |
|
ЗАДАНИЕ 4. РЕШЕНИЕ УРАВНЕНИЙ И НЕРАВЕНСТВ .......................................................... |
|
44 |
||
3.5 |
ПРОГРАММИРОВАНИЕ ЦИКЛИЧЕСКИХ ВЫЧИСЛИТЕЛЬНЫХ |
|
||
ПРОЦЕССОВ..................................................................................................................... |
|
45 |
||
3.5.1 |
Оператор цикла с параметром (For) ................................................................. |
|
45 |
|
3.5.2 |
Оператор цикла с предусловием (While) ............................................................ |
|
46 |
|
3.5.3 |
Оператор цикла с постусловием (Repeat).......................................................... |
|
47 |
3
3.5.4 |
Процедуры Break и Continue в операторах циклов........................................... |
47 |
3.5.5 |
Обработка событий в циклах (ProcessMessage) .............................................. |
48 |
3.6 ОПИСАНИЯ ТИПОВ ................................................................................................ |
48 |
|
3.6.1 |
Перечислимый и скалярный типы. Отрезок типа........................................... |
49 |
3.6.2 |
Множества (Set) .................................................................................................. |
50 |
3.6.3 |
Описание массивов (Array).................................................................................. |
52 |
ЗАДАНИЕ 5. ОРГАНИЗАЦИЯ ЦИКЛОВ С КОНТРОЛЬНЫМ ВЫВОДОМ ИТЕРАЦИЙ ................ |
54 |
|
3.6.4 |
Ссылочные типы данных, указатели (Pointer) ................................................. |
58 |
3.6.5 |
Динамический массив .......................................................................................... |
59 |
ЗАДАНИЕ 6. РАБОТА С ДИНАМИЧЕСКИМИ МАССИВАМИ .................................................... |
61 |
|
3.6.6 |
Описание записей (Record, With)......................................................................... |
65 |
ЗАДАНИЕ 7. РАБОТА С ЗАПИСЯМИ....................................................................................... |
67 |
|
3.6.7 |
Преобразование типов ........................................................................................ |
67 |
3.6.8 |
Размещение данных в файлах............................................................................. |
68 |
ЗАДАНИЕ 8. РАБОТА С ФАЙЛАМИ ........................................................................................ |
75 |
|
3.7 ПРОЦЕДУРЫ И ФУНКЦИИ................................................................................... |
77 |
|
3.7.1 |
Описание процедур, оператор процедуры (Procedure) .................................... |
77 |
3.7.2 |
Описание функций, операнд функции (Function) .............................................. |
78 |
3.7.3 |
Перегружаемые процедуры и функции.............................................................. |
78 |
3.7.4 |
Параметры процедур и функций........................................................................ |
81 |
ЗАДАНИЕ 9. ЧИСЛЕННОЕ РЕШЕНИЕ ЗАДАЧИ КОШИ МЕТОДОМ ЭЙЛЕРА .......................... |
84 |
|
ЗАДАНИЕ 10. ВЫЧИСЛЕНИЕ ОПРЕДЕЛЕННОГО ИНТЕГРАЛА МЕТОДОМ ТРАПЕЦИЙ.......... |
87 |
|
3.8 КЛАССЫ, ОБЪЕКТЫ................................................................................................ |
90 |
|
3.8.1 |
Описание классов ................................................................................................. |
90 |
3.8.2 |
Создание и удаление объектов........................................................................... |
92 |
3.9 ОБРАБОТКА ИСКЛЮЧИТЕЛЬНЫХ СИТУАЦИЙ............................................. |
92 |
|
3.9.1 |
Исключения (Exception, Raise)............................................................................. |
93 |
3.9.2 |
Обработка исключений (Try, ApplicationEvents, Is).......................................... |
93 |
3.10 ПРЕДСТАВЛЕНИЕ РИСУНКОВ В DELPHI....................................................... |
97 |
|
3.10.1 |
Компоненты для работы с графикой.............................................................. |
97 |
3.10.2 Компонент TCanvas......................................................................................... |
101 |
|
ЗАДАНИЕ 11. ПОСТРОЕНИЕ ГРАФИКА ФУНКЦИИ............................................................. |
106 |
|
4 МОДУЛЬНЫЙ КОНТРОЛЬ ....................................................................................... |
110 |
|
СЕМЕСТР 1 ......................................................................................................................... |
111 |
|
СЕМЕСТР 2 ......................................................................................................................... |
112 |
|
СЕМЕСТР 3 ......................................................................................................................... |
113 |
|
СПИСОК ЛИТЕРАТУРЫ................................................................................................ |
115 |
|
ПРИЛОЖЕНИЯ................................................................................................................. |
116 |
|
1 ПРИМЕР ОТЧЕТА............................................................................................................. |
116 |
|
2 ИЕРАРХИЯ КЛАССОВ БИБЛИОТЕКИ ВИЗУАЛЬНЫХ КОМПОНЕНТ (VCL)........................ |
117 |
|
3 ТЕКСТ ФАЙЛА ФОРМЫ UNIT1.DFM (ПРИМЕР 2.1) ........................................................ |
118 |
|
4 СООБЩЕНИЯ ОБ ОШИБКАХ (ERROR).................................................................. |
119 |
|
5 ТАБЛИЦА КОДОВ ANSI .................................................................................................. |
120 |
|
6 ОСНОВНЫЕ КЛАССЫ ИСКЛЮЧЕНИЙ ............................................................................. |
121 |
|
7 ТАБЛИЦЫ НЕКОТОРЫХ СВОЙСТВ ОБЪЕКТОВ................................................................. |
122 |
|
8 “ ГОРЯЧИЕ” КЛАВИШИ СРЕДЫ DELPHI ......................................................................... |
126 |
|
9 ИСПОЛЬЗОВАННЫЕ КОМПОНЕНТЫ ................................................................................ |
127 |
4
ВВЕДЕНИЕ
ВВЕДЕНИЕ
Современные технологии программирования выбрали стратегию поблочного конструирования программ с использованием наглядных графических инструментов. Профессионалами заранее написано множество стандартных блоков-компонент, например, различные кнопки, диалоговые окна и др. Они могут выбираться из палитры компонент и встраиваться в форму (интерфейс, внешний вид) программы при помощи мыши. При этом автоматически генерируются необходимые коды программы. Программирование превращается в красивую и увлекательную игру. Последнюю фразу следует дополнить – «… для тех, кому нечего программировать». Если перед Вами стоит конкретная математическая задача, то на одном интерфейсе «далеко не уедешь». В стандартные коды придется добавлять свои уникальные операторы программы, а для этого необходимо изучить основы соответствующего языка программирования.
Мы рассмотрим язык программирования Delphi и его же среду разработки Delphi [1-3,6]. Эта среда была создана компанией Borland с использованием языка Object Pascal. Сейчас развитие Delphi осуществляется компанией Embarcadero, а сама среда поддерживает несколько языков: Delphi, C, C++, С#. Среда Delphi позволяет компилировать одни и те же коды программы для Windows, Mac OS, iPhone, Android и др.
Данное пособие предназначено для студентов инженерных, физических и математических специальностей, не имеющих начальных навыков работы в визуальных объектно-ориентированных средах программирования и не знакомых с языком программирования Object Pascal, Delphi
[2-5,7-11].
Материал излагается следующим образом, – даётся краткое описание какого-либо раздела языка Object Pascal, рассматриваются примеры, формулируются задания в виде лабораторных работ в компьютерных классах. Лабораторные работы содержит по 10 вариантов заданий. Всего предлагается 10 лабораторных работ по программированию в среде Delphi. Кроме того, в качестве, первой лабораторной работы, дополнительно, предлагается задание, формирующее, или закрепляющее, если таковые имелись ранее, необходимые минимальные навыки работы с файлами в операционной системе Windows. В конце пособия приведен список экзаменационных вопросов и типовых практических заданий.
Результаты лабораторных работ должны быть оформлены студентами в виде стандартных отчетов с распечатками исходных кодов главного модуля программы. Пример отчета смотрите в Приложении 1. При сдаче лабораторной работы студент обязан не только хорошо разбираться в приведенной программе, но и знать ответы на все контрольные вопросы, список которых имеется в конце каждого задания к лабораторной работе.
5
6
1 ОПЕРАЦИОННАЯ СИСТЕМА WINDOWS
Задание 1.
Работа с файлами в Windows
Цель задания
1.Получение навыков работы с файлами в операционной системе
Windows.
2.Освоение технологий Drag&Drop, Recycle Bin
Постановка задачи
∙Определить количество свободной памяти на диске С:;
∙В головном каталоге диска С: создать через локальное меню мыши папку Test и раскрыть её;
∙Создать в текущей папке файл с именем text1 текстового типа txt, открыть файл и наполнить произвольным содержанием в одну строку, сохранить файл и минимизировать (свернуть) окно редактора;
∙Создать в папке Test копию файла с именем text2;
∙Создать папку Group... в текущей папке;
∙Выделить все файлы текущей папки и копировать их в папку Group...;
∙Определить объем памяти, занимаемый папкой Group...;
∙Разместить на «рабочем столе» два не перекрывающихся окна папок Group... и Test, изменить тип файла text2.txt в папке Test на тип *.doc. Объяснить возникающее предупреждение;
∙Копировать файл text2.doc из папки Test в папку Group... и упорядочить все файлы по расширениям (по именам). Представить все файлы в виде малых икон (больших икон) и в виде краткого списка (детального списка). Продемонстрировать умение выделять нужные файлы при любом их представлении;
∙При помощи панели задач определить, сколько задач (приложений) в данное время выполняется. Закрыть приложения и переместить все файлы одновременно из папки Test в корзину Recycle Bin.
∙Удалить папку Group...;
∙Восстановить файл text2.doc из корзины Recycle Bin;
∙Удалить все папки.
При сдаче лабораторной работы необходимо объяснить Ваши действия по каждому из пунктов задания. Расскажите, сколько способов удаления, копирования и создания файлов Вы знаете. Для чего нужны расширения (типы) файлов?
7
2 ПРОГРАММИРОВАНИЕ В СРЕДЕ Delphi
2 ПРОГРАММИРОВАНИЕ В СРЕДЕ
DELPHI
Delphi – это система визуального объектно-ориентированного программирования на языке Object Pascal для операционной системы Windows. Программы, написанные для Windows, называются приложениями. Технология визуального программирования предоставляет пользователю возможность строить приложения при помощи мыши и наблюдать на экране результаты работы в процессе построения приложения. Кстати, сама среда Delphi написана в Delphi.
Программа в Delphi состоит, как минимум, из четырех типов файлов:
1. *.dpr – файл-проект (например, Project1.dpr) связывает остальные файлы в единую программу. Опции проекта (настройки компилятора, имена служебных каталогов…) хранятся в файле *.dof;
2.*.pas – файлы модулей (например, Unit1.pas) содержат описания и операторы, подготовленные программистом для решения какихлибо частей программируемой задачи. Откомпилированный модуль – это файл *.dcu;
3.*.res – двоичный файл ресурсов (например, Project1.res) хранит используемые в программе ресурсы Delphi – пиктограммы, изображение курсора мыши и т.п. Создается автоматически при создании проекта.
4.*.dfm – аналогичен *.res, хранит свойства настройки интерфейса (формы) программы.
После компиляции мы получаем один исполнимый *.exe файл, например, Project1.exe, который содержит в себе файлы *.res и *.dfm.
2.1 КАК СОЗДАТЬ ПРОГРАММУ
После запуска Delphi автоматически создается текст проекта на языке Object Pascal (файл Project1.dpr) и заготовка для основного модуля (файл Unit1.pas) с макетом интерфейса, называемым формой (Form1). На рис.2.1 показан внешний вид экрана монитора среды Delphi.
Визуальное программирование заключается в следующем:
1.необходимо щелчком мыши выбрать желаемый компонент (тип объекта) из палитры компонент, например, кнопку, окошко ввода, область размещения рисунка и т.п.;
2.указать вторым щелчком мыши место на форме где сразу же будет создан визуальный объект в виде рабочей копии компонента;
8
2.1КАК СОЗДАТЬ ПРОГРАММУ
3.в инспекторе объектов (рис. 2.2) необходимо выбрать требуемые свойства (properties) выделенного объекта и настроить их значения, например, изменить заголовок объекта, тип шрифта, цвет фона и т.д;
4.там же можно выбрать события (events), например, нажатие кнопки мыши, операция Drag&Drop и т.д. на которые должен реагировать выбранный объект на Вашей форме.
При этом автоматически генерируется Pascal-текст программы и заносится в указанные ранее файлы. Текст программы доступен в окнах редактора кодов. Для переключения между редактором текстов и формой используйте функциональную клавишу F12, а для инспектора объектов – F11.
Рис. 2.1 Внешний вид экрана монитора со средой Delphi
Приведем наиболее часто используемые свойства разных компонент1.
Align – выбор выравнивания компонента относительно окна формы; Alignment – выбор выравнивания текста внутри объекта;
Border… – настройка границ объекта; Caption – заголовок объекта;
Color – цвет объекта и его элементов;
Enable – доступность объекта, т.е. он должен/нет (значения данного свойства – True/False) реагировать на мышь, клавиатуру, время;
1 Перечень всех свойств и событий для каждого отмеченного объекта можно найти через контекстную подсказку F1
9