ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
Государственное образовательное учреждение
высшего профессионального образования
"ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ"
______________________________________________________________
"УТВЕРЖДАЮ"
Директор ИДО
____________
"____"_____________2009 г.
ёнов
ПРОГРАММИРОВАНИЕ И ОСНОВЫ АЛГОРИТМИЗАЦИИ
Учебное пособие для студентов специальности 220301 "Автоматизация технологических процессов и производств
(в нефтегазовой отрасли)"
Института дистанционного образования
Томск 2009
УДК 681.3
П 78
П 78 | М. (составитель) Программирование и основы алгоритмизации. Учебное пособие. – Томск: Изд-во ТПУ, 2009. – 90 с. |
Учебное пособие рассмотрено и рекомендовано к использованию методическим семинаром кафедры интегрированных компьютерных систем управления
"___" _____________ 2009 года, протокол № ____.
Зав. кафедрой, проф., д. т.н. _______________
Аннотация
Пособие по дисциплине «Программирование и основы алгоритмизации» предназначено для студентов специальности 220301 "Автоматизация технологических процессов и производств (в нефтегазовой отрасли)" Института дистанционного образования. Данная дисциплина изучается один семестр. Основное внимание уделяется программированию в интегрированной среде Delphi и современным технологиям программирования.
Оглавление
Введение……………………………………………………………………… 5
1. Система Delphi…………………………………………………………... 5
1.1. Элементы интегрированной среды разработчика…………………….. 5
1.1.1. Основное окно…………………………………………………………. 6
1.1.2. Дизайнер форм………………………………………………………… 8
1.1.3. Окно инспектора объекта…………………………………………... 9
1.1.4. Окно редактора кода………………………………………………….. 9
1.1.5. Диспетчер проекта…………………………………………………….. 10
1.2. Файлы проекта………………………………………………………...… 10
1.3. Запуск спроектированной программы………………………………… 12
1.4. Формы и компоненты…………………………………………………… 12
1.5. Программы и модули…………………………………………………… 15
1.6. Принципы визуального программирования………………………….. 19
1.6.1. Проектирование формы…………………………………………….. 19
1.6.2. Размещение компонентов на форме………………………………… 20
1.6.3. Размещение нескольких компонентов одного вида……………….. 21
1.6.4. Удаление компонентов………………………………………………. 21
1.6.5. Перемещение компонентов………………………………………….. 21
1.6.6. Изменение размеров компонентов………………………………….. 21
1.6.7. Выравнивание размера компонентов……………………………….. 22
1.6.8. Выравнивание расположения компонентов………………………… 22
1.6.9. Визуальные и объектные аспекты форм…………………………….. 22
1.6.10. Присоединение программы обработки события………………… 23
1.7. Свойства компонентов…………………………………………………. 23
1.8. События…………………………………………………………………. 25
1.9. Архитектура приложения……………………………………………… 26
1.9.1. Формы как модальные диалоговые окна…………………………… 26
1.9.2. Формы как немодальные диалоговые окна………………………… 29
1.10. Особенности Object Pascal……………………………………………. 31
1.10.1. Булевы типы…………………………………………………………. 31
1.10.2. Тип String…………………………………………………………….. 31
1.11. Классы и объекты……………………………………………………… 32
1.11.1. Определение объектно-ориентированного программирования….. 32
1.11.2. Объекты………………………………………………………………. 33
1.11.3. Классы………………………………………………………………… 33
1.11.4. Наследование ……………………………………………………….. 34
1.11.5. Объектные поля……………………………………………………… 35
1.11.6. Объявление переменных-экземпляров класса…………………….. 36
1.11.7. Обращение к элементам объекта…………………………………… 38
1.12. Методы…………………………………………………………………. 39
1.12.1. Методы-функции и методы-процедуры…………………………… 40
1.12.2. Конструкторы………………………………………………………… 41
1.12.3. Деструкторы…………………………………………………………. 42
1.12.4. Классовые процедуры и функции…………………………………. 43
1.12.5. Реализация методов………………………………………………… 44
1.12.6. Вызов методов………………………………………………………. 50
1.13. Наследование и полиморфизм……………………………………….. 54
1.13.1. Наследование………………………………………………………… 54
1.13.2. Полиморфизм………………………………………………………… 54
1.14. Графика в Delphi………………………………………………………. 56
1.14.1. Объект Canvas……………………………………………………….. 56
1.14.2. Свойства Canvas…………………………………………………….. 57
1.14.3. Методы объекта Canvas…………………………………………….. 57
1.15. Обработка исключений……………………………………………….. 59
1.15.1. Конструкция try-finally………………………………………………. 60
1.15.2. Конструкция try-except……………………………………………… 61
2. Современные технологии программирования………………………… 64
2.1. Характеристика современного этапа практики программирования… 64
2.2. Разработка программы…………………………………………………. 68
2.3. Оформление программ…………………………………………………. 72
2.4. Тестирование и отладка программы…………………………………… 73
Заключение…………………………………………………………………… 76
Приложение 1. Основные сведения о ЕСПД……………………………… 77
Приложение 2. ГОСТ 19.701.90 (выписки)……………………………….. 80
Список рекомендуемой литературы……………………………………………89
Введение
Курс «Программирование и основы алгоритмизации» предусматривает изучение двух основных разделов: «Интегрированная среда программирования Delphi» и «Современные технологии программирования».
1 Система Delphi
Delphi - это визуальная среда программирования в Windows на языке Object Pascal, разработанная фирмой Borland [1, 2]. Для запуска Delphi надо найти пиктограмму с изображением колоннад греческого храма. Пиктограмма - это кнопка для старта интегрированной среды разработчика (Integrated Development Environment - IDE).

Рис. 1. Иконка Delphi
Среда разработки включает ряд окон и инструментальных средств, при помощи которых можно создавать прототип, проектировать, кодировать, транслировать, выполнять и отлаживать программы для Windows. Причина, по которой среда называется “интегрированной”, заключается в том, что в течение всего цикла работы из неё не надо выходить. Все эти задачи могут выполняться прямо из IDE. (Хотя кодирование, например, можно произвести в редакторе Word).
Для непосредственного запуска Delphi надо дважды нажать пиктограмму Delphi. Для выхода из Delphi надо воспользоваться пунктом меню File или другими штатными возможностями Windows.
1.1 Элементы интегрированной среды разработчика
Среда содержит следующие элементы:
1) Основное окно (Main) ,
2) Окно Инспектора объекта (Object Inspector),
3) Окно Дизайнера форм (Form Designer),
4) Окно Редактора кода (Code Editor),
5) Диспетчер проекта (Project Manager),
6) Окно списка наблюдений (Watch List),
7) Окно стека вызовов (Call Stack),
8) Список контрольных точек (Breakpoint List),
9) Просмотрщик объектов (Object Browser).
Не все эти элементы видны сразу, когда запущена Delphi. Наиболее часто используются Основное окно, Инспектор объекта, Дизайнер форм, Редактор кода, Диспетчер проекта.
1.1.1 Основное окно
Основное окно располагается наверху экрана. Можно сказать, что главным окном является сама Delphi. В нём, как правило, содержатся линейка инструментов, палитра компонентов, окно Инспектора объекта, окно Дизайнера форм. Минимизация основного окна минимизирует все другие зависимые окна среды Delphi.
Слева под главным меню Основного окна находятся кнопки быстрого доступа (быстрые кнопки). Они образуют так называемую линейку инструментов. Меню существует для того, чтобы избавить пользователя от необходимости помнить и вводить вручную сложные команды. А кнопки линейки инструментов избавляют от необходимости читать меню и щёлкать на его пунктах. В Delphi кнопки линейки инструментов предоставляют быстрый доступ к нескольким особенно полезным пунктам меню.
Всего имеется 14 кнопок. Для получения подсказки для каждой из них можно просто поместить курсор мыши на кнопку и подержать пару секунд. Появится поле помощи, информирующее о назначении данной кнопки.
Шесть кнопок линейки инструментов в блоке слева упрощают доступ к самым распространённым действиям над файлами.
Здесь расположены стандартные для Windows пиктограммы открытия и сохранения файла на диске. Другая пара кнопок изображает папку, извлекаемую из жёсткого диска и возвращаемую на диск. Эти пиктограммы символизируют открытие и сохранение всего проекта. Кнопки с изображением папки со знаком “плюс” и “минус” позволяют добавлять или удалять файлы из проекта.
Следующий блок, состоящий из четырёх кнопок, помогает ориентироваться среди файлов форм и модулей (unit) в крупных проектах. На одной из кнопок изображено несколько листов бумаги. Её нажатие приведёт к появлению на экране списка проектов с возможностью выбора. На другой кнопке изображено несколько форм. Она служит для вызова списка форм. Нижняя левая кнопка позволяет перейти из активной формы в соответствующий модуль или наоборот. Нижняя правая кнопка создаёт и добавляет в проект новую пустую форму.
Последние четыре стандартные кнопки линейки инструментов управляют запуском и отладкой программ пользователя. Две из них запускают программу и
![]()
приостанавливают её выполнение. Под ними расположены кнопки с прыгающей блохой. Они используются именно для ловли программных “блох” - отладки!
Кнопки линейки инструментов призваны повысить эффективность работы. Но у каждого пользователя свой вкус, и он может не совпадать со вкусом авторов Delphi. Поэтому линейка инструментов полностью поддаётся конфигурации (перенастройке). Для этого достаточно щёлкнуть правой кнопкой мыши на линейке вне кнопок и выбрать Configure из всплывающего меню. Можно добавить кнопку для каждой команды меню или изменить расположение уже имеющихся кнопок. Если какая - либо кнопка никогда не используется программистом, то её следует удалить. Если на каком - либо этапе панель окажется чересчур загромождённой, надо нажать кнопку Reset Defaults - и исходное состояние линейки инструментов будет восстановлено.
Справа от линейки инструментов находится серое поле с пиктограммами, которое называется Палитрой компонентов. При визуальном формировании программы надо выбрать пиктограмму, которая представляет определённый компонент в палитре, и поместить её в форму. Форма отображается как отдельное окно ниже палитры компонентов. Палитра состоит из нескольких страниц компонентов, помеченных как Standard (стандартные), Additional (дополнительные), Graphics (графические), Dialogs (диалоги) и т. д. Можно “пролистывать” страницы, нажимая мышью на одну из меток внизу строки пиктограмм компонентов.
Краткая характеристика шести страниц с закладками Палитры компонентов:
1) Standard. Большинство компонентов на этой странице являются аналогами экранных элементов самой Windows. Меню, кнопки, полосы прокрутки становятся доступными с помощью этой страницы.
2) Страница Additional содержит более развитые компоненты. Например, компонент Outline удобен для отображения информации с иерархической структурой, а MediaPlayer позволяет программам воспроизводить звук, музыку и видео. Данная страница также содержит компоненты, главное назначение которых - отображение графической информации. Компонент Image загружает и отображает растровые изображения, а компонент Shape украсит разрабатываемые формы окружностями, квадратами и другими фигурами.
3) Страницы Data Access и Data Controls содержат компоненты, которые облегчают использование баз данных. С использованием этих компонентов создание программы просмотра и редактирования базы данных почти не требует программирования.
4) Страница Dialogs представляет программам Delphi простой доступ к стандартным диалоговым окнам Windows, например для операций над файлами, выбора шрифтов, цветов и т. д.
5) Страница System предоставляет возможность комбинировать отдельные элементы, такие как списки дисков, каталогов и файлов. Эта страница содержит также компоненты, обрабатывающие обмен высокого уровня между программами. Компонент Timer может генерировать события через определённое, заранее установленные промежутки времени.
6) Страница Samples содержит компоненты, которые не встроены в Delphi, но демонстрируют мощь системы компонентов. Для этих компонентов нет встроенной интерактивной справки.
1.1.2 Дизайнер форм
Когда Delphi запускается первый раз, ниже Палитры компонентов появляется Дизайнер форм. Заголовок его окна (Form1) является стандартным заголовком новой формы и формируется автоматически при открытии нового проекта.
На форме могут быть размещены различные компоненты интерфейса пользователя (кнопки, метки, поля редактирования...). Форма является как бы каркасом для размещения этих компонентов. Она обеспечивает их взаимодействие.
Дизайнер форм - это место, где осуществляется визуальное программирование. Программы создаются путём помещения на форму компонентов, выбранных из Палитры компонентов. Позднее к компонентам можно присоединить некоторый код (текст программы), чтобы позволить этим компонентам взаимодействовать друг с другом. Визуальное проектирование заметно ускоряет весь процесс разработки. Термин “визуальное программирование” используется как раз для того, чтобы описать такой способ разработки программ.
Если пользователь забыл, на какой странице расположен конкретный компонент, то надо выбрать Component List из меню View. В результате на экране появится список компонентов в алфавитном порядке.
Размеры окна Дизайнера форм можно изменять подобно любому другому стандартному окну Windows, перемещая рамку мышью. Эти размеры отразятся в конечной программе после её запуска. Это означает, что установленные во время разработки размеры формы определяют размер формы во время выполнения программы.
Даже простейшая пустая форма имеет ряд свойств, которые могут изменяться. Устанавливая значения этих свойств, можно настраивать вид формы и её поведение.
Свойство - атрибут данных компонента. Можно думать о свойстве как о ячейке, содержащей единственное значение. Например, свойство Width (ширина) каждой формы содержит горизонтальный размер формы в пикселах. Устанавливать новое значение свойства можно во время разработки формы или во время выполнения программы. Установка значений свойств во время разработки даёт им начальные значения.
1.1.3 Окно инспектора объекта
Инспектор объекта (Object Inspector) отображает своё окно по левому краю экрана. Внутри него на двух страницах находятся таблицы. Страницы Properties (свойства) и Events (события) можно выбирать с помощью щелчка мыши.
Инспектор объекта тесно связан с Дизайнером форм. Управляющие элементы выбираются из окна Дизайнера форм, а их свойства контролируются Инспектором объекта.
Управляющий элемент - это визуальный компонент, который может быть помещён в форму, и, как правило, видим во время выполнения. Стандартные управляющие элементы Windows включают метки (статический текст), окошки редактирования, кнопки, контрольные индикаторы, радиокнопки, окошки списка, комбинированные окошки и линейки прокрутки.
Страница свойств (Properties) Инспектора объекта содержит таблицу, состоящую из двух колонок с названием свойства в левой колонке и его значением в правой. Некоторые из этих значений первоначально могут оказаться пустыми. Каждый ряд этой таблицы представляет одно свойство компоненты, выбранной в данное время в Дизайнере форм.
При незаполненной форме в окне Инспектора объекта видны только свойства формы, т. к. сама форма является как бы своего рода компонентом.
По любому свойству, перечисленному в Инспекторе объекта, можно получить детальную информацию. Для этого надо выбрать свойство и затем нажать F1.
Всего в Инспекторе объекта имеется 36 свойств формы. К ним относятся, например, Color, которое задаёт цвет фона формы, или Name, определяющее логическое имя формы, используемое для обращения к ней внутри кода Object Pascal.
Наверху окна Инспектора объекта имеется выпадающий список компонентов. Чтобы раскрыть его, надо нажать на стрелку справа от списка.
1.1.4 Окно редактора кода
Наряду с визуальным проектированием интерфейса пользователя программы (формы) обычно разрабатывается код, лежащий в основе программы. Язык программирования, на котором основана Delphi, называется Object Pascal. Интегрированный редактор, который предоставляется Delphi, служит удобным инструментом для написания кода Object Pascal благодаря интеграции с другими элементами среды Delphi.
Интегрированный редактор кода - это ещё и отладчик, позволяющий шаг за шагом проверять исходный код программы, изучать значения переменных и свойств во время выполнения, устанавливать контрольные точки и т. д.
При создании нового проекта Delphi в окне Редактора кода создаёт новый исходный файл Object Pascal. Этот исходный файл является модулем с именем по умолчанию unit1. Модуль обычно содержится в файле с расширением. pas и может компилироваться отдельно от других модулей. Программы Object Pascal обычно построены из большого количества модулей.
Многие модули, необходимые для создания программ, уже существуют в Delphi. Они называются стандартными, или встроенными, модулями и включают в себя System, WinProcs, WinTypes, Messages, Classes и другие.
1.1.5 Диспетчер проекта
Чтобы открыть окно диспетчера проекта, надо выбрать Project Manager из окна View главного меню Delphi. После открытия предоставляется список элементов проекта, активного в настоящее время. Эти элементы - модули и формы, соответствующие некоторым из этих модулей.
Открытый диспетчер проекта имеет три колонки с названиями Unit, Form и Path. Двойное нажатие мышью в колонке Unit открывает в Редакторе кода выбранный модуль. Двойной щелчок в колонке Form открывает соответствующую форму для визуального проектирования.
Третья колонка по имени Path показывает директорию, в которой размещается соответствующий исходный файл Паскаля.
Форма Delphi всегда имеет соответствующий модуль Object Pascal, который её поддерживает. С другой стороны, исходный код паскалевского модуля не должен быть обязательно связан с какой - либо определённой формой. Он может обеспечивать услуги, которые являются потенциально доступными и используются всеми формами.
На этом закончим краткое знакомство с основными элементами интегрированной среды разработчика IDE.
1.2 Файлы проекта
При сохранении нового проекта Delphi создаёт ряд файлов. Рассмотрим наиболее важные из них:
1) Основной файл проекта. Он имеет расширение. DPR (от Delphi PRoject - проект Delphi). Это основной для проекта модуль исходного текста Object Pascal. Имеется только один DPR - файл с расширением. DPR для каждого проекта Delphi. Этот файл, кроме всего прочего, перечисляет имена других файлов, составляющих проект.
2) Файл формы. Файл формы имеет расширение. DFM (от Delphi ForM - форма Delphi). Это двоичные файлы ресурсов, содержащие определение визуальных форм, которые были созданы в Дизайнере форм. В проекте Delphi может быть много форм. Каждая форма имеет собственный. DFM - файл (и файл. PAS соответствующего модуля).
3) Файл модуля Паскаля. Этот файл имеет расширение. PAS и содержит код Object Pascal для соответствующей формы или для автономного модуля кода. По умолчанию в проекте имеется только один такой файл, соответствующий основной форме. По мере развития проекта могут добавляться другие файлы с расширением. PAS, соответствующие формам или самостоятельные.
4) Файл опций проекта. Расширение. OPT отмечает файл, который содержит различные установки Delphi, влияющие на способ генерации программы и на способ работы IDE. В одном проекте существует только один такой файл. Это текстовый файл, содержащий список опций и установок, по одной на строку.
Процесс создания Delphi-приложения включает три шага:
а) Создание элементов визуального интерфейса, в частности, основной формы программы.
б) Написание поддерживающего кода Object Pascal, чтобы выполнить необходимые для формы действия.
в) Компиляция исходного кода Object Pascal и ресурсов формы в исполнимый файл .EXE, который может запускаться в Windows как отдельная программа.
Третий шаг вводит некоторые новые файлы:
5) Откомпилированные файлы модуля. Эти файлы имеют расширение. DCU (Delphi Compiled Units - откомпилированные модули Delphi) и содержат объектный код соответствующего файла модуля с расширением. PAS. Компилятор Delphi создаёт их, когда, например, используется одна из команд Run или Compile. Delphi использует эти файлы с расширением. DCU, когда создаёт заключительную программу в фазе связывания (компоновки).
6) Откомпилированные программные файлы. эти файлы имеют расширение. EXE. Это автономные, откомпилированные программы Windows. Создание этих файлов - конечная цель цикла разработки. Это собственно и есть программы Windows, которые планировалось создавать.
7) Откомпилированные файлы динамических библиотек. Это - второй тип конечного исполняемого файла, который может создавать Delphi. Расширение по умолчанию для файла этого типа - .DLL (Dynamic Link Library). Это откомпилированные модули, которые могут использоваться одновременно многими программами Windows.
Изобразим различные файлы Delphi и их связь между собой:

Файлы .EXE и. DLL, которые создаёт Delphi, - это стандартные исполнимые программы Windows. Они не только сравнимы, но часто превосходят в смысле эффективности программы, созданные другими профессиональными компиляторами, например, C++ и C. Исполняемые файлы Delphi к тому же обычно меньше, чем их С и С++ аналоги.
1.3 Запуск спроектированной программы
Чтобы запустить спроектированную программу, надо выбрать пункт Run из меню Run и нажать Enter. Delphi формирует исполнимый EXE - файл и немедленно запускает программу.
После запуска окно Инспектора объекта исчезает перед тем, как появляется основная форма программы. Delphi входит в исполняющий режим, в то время как программа активна. При этом в заголовке главного окна Delphi появляется слово “running”. В течение прогона программы Delphi Инспектор объекта обычно недоступен. Однако можно сделать паузу в выполнении или временный останов программы, устанавливая контрольную точку в исходном коде внутри редактора кода. Тогда, приостановив программу, можно исследовать значения свойств и переменных и использовать другие встроенные средства отладки.
1.4 Формы и компоненты
Формы - это основа визуального программирования в Delphi. Визуальное программирование означает интерактивную разработку программ, дающую возможность визуально помещать компоненты на формах и управлять или при помощи мыши, чтобы получить желаемые и эстетически приятные результаты.
В таком сценарии написание кода выходит на арену только после того, как компонент был визуально выбран и помещён на форме. Этот подход к программированию абсолютно отличается от традиционного цикла код/компиляция/отладка, во время которого внешний вид программы абсолютно не известен до первого успешного запуска. Программист может написать тысячи строк кода, прежде чем увидеть результат.
Визуальное программирование предлагает более быструю обратную связь и для разработчика, и для пользователя. Если для пользователя что-то выглядит не так, то это гораздо легче изменить, используя диалоговые инструменты в визуальной среде, чем перекодировать всё это традиционным способом.
Поэтому концепция визуального программирования была встречена на рынке с большим успехом. Delphi - это ярчайший пример визуально ориентированного инструмента разработки программ.
Ключевая идея визуального программирования - выбирать и помещать компоненты на форму.
Форма во время выполнения представляет собой главное окно приложения, и является чем-то вроде “коробки”, которая содержит компоненты приложения. Форма - это владелец компонентов, которые программист выбирает и размещает на ней.
Определение компонента всё ещё не вполне однозначно среди экспертов. В довольно узком смысле компонент - это то, что можно предварительно выбрать из Палитры компонентов и затем наложить на форму, в желаемом месте. Для размещённых компонентов можно менять место положения на форме, изменять их размер и регулировать свойства при помощи Инспектора объекта. Это то, в чём состоит так сильно рекламируемый подход визуального программирования.
Для изменения во время разработки свойств компонента надо выбрать компонент на форме, нажимая на него. Инспектор объекта покажет свойства, специфичные для данного компонента. Их можно изучать и, возможно, изменять.
сама форма - также компонент. Подобно другим компонентам, она имеет ряд свойств, которые можно изменять. Форма отличается от других компонентов тем, что получается автоматически в Дизайнере форм. Программист никогда не может выбирать форму непосредственно из Палитры компонентов. Форма - это очень специальный компонент, который создаётся после выбора New Form из меню File.
Среда Delphi выполняет двойную функцию: с одной стороны, являясь инструментом разработки программного обеспечения, она позволяет разрабатывать программы Windows, пользуясь палитрой подготовленных заранее элементов программного обеспечения. С другой стороны, в отличие от других сред разработки, Delphi также позволяет создавать новые компоненты в дополнение к тем, которые уже имеются в Палитре компонентов. Можно легко включать эти новые компоненты в среду Delphi так, чтобы они появились в Палитре компонентов наряду с имеющимися.
По мере разработки программы можно вводить начальные значения для свойств всех компонентов проекта. Эти значения не только воздействуют на внешний вид программы во время выполнения, не могут немедленно приводить к изменению внешнего вида, например, цвета формы, даже в режиме проекта. Это лучшая черта визуального программирования.
Технический совет № 1(расположение нескольких компонентов)
Если надо расположить на форме больше одного компонента одного и того же вида, вместо того, чтобы щёлкать туда и обратно между Палитрой компонентов и формой, можно выбрать компонент из Палитры компонентов в “приклеенном” режиме следующим образом:
Нажмите компонент в палитре, держа нажатой клавишу Shift. После этого можно последовательно нажимать на форму несколько раз, располагая один компонент за другим. Компонент остаётся выбранным, пока явно не будет выбран какой-нибудь другой компонент.
Технический совет № 2 (перемещение групп компонентов).
Можно перемещать более одного компонента одновременно. Для этого надо выбрать первый компонент из группы, нажав на него. При выборе последующих компонентов держите нажатой клавишу Shift. После того, как все компоненты выбраны, отпустите клавишу Shift. Теперь нажмите на один из выбранных компонентов, но не отпускайте левую кнопку мыши. Теперь имеется возможность перемещать всю группу компонентов как единое целое. Чтобы устранить выбор компонентов, нажмите где-нибудь внутри формы, но не на какой-либо компонент выбранной группы.
Такие компоненты как Label, Button и Form являются визуальными компонентами. Они все видны пользователю, когда программа выполняется.
Но компоненты Delphi не обязательно должны быть визуальными. Невизуальный тип компонентов имеет другие цели. Примерами могут быть база данных, последовательный порт, компонент принтера и другие прикладные элементы, которые не появляются в форме, но предоставляют услуги и выполняют действия. Они - часть проекта, связаны с другими компонентами посредством кода Object Pascal и взаимодействуют с другим компонентами во время выполнения программы. Но они не могут быть замечены пользователем непосредственно.
Даже несмотря на то, что невизуальные компоненты не видны, они - часть проекта, и помещаются на форме точно так же, как визуальные. Во время разработки Delphi показывает маленькую пиктограмму графического представления компонента на форме. Во время выполнения графическое представление не видимо. Компонент просто незаметно выполняет свою работу, но не отображается на форме.
1.5 Программы и модули
Особенность программирования в Delphi состоит в том, что она генерирует за человека систематически необходимый код. Программист должен концентрироваться только на настраиваемой части кода.
Каждая программа имеет основную часть, которая начинает выполняться первой. Эта основная часть обычно вызывает другие, вторичные части, чтобы выполнить различные требуемые задачи.
В качестве примера рассмотрим листинг файла некоторой основной программы BUTTON. DPR:
1 program Button;
2 uses Forms, Ubutton in ‘UBUTTON. PAS’ {Form1}
3 {$R*.RES}
4 begin
5 Application. CreateForm (Tform1, Form1);
6 *****n;
7 end.
Программа коротка потому, что она использует вторичную часть, то есть модули, которые выполняют большую часть работы. Delphi сама сгенерировала все операторы приведённого листинга.
Строка 3 содержит директиву, т. е. специальную команду компилятору. В данном случае к объектному коду будет подключаться файл ресурсов. Между операторными скобками begin и end содержатся операторы основной программы. Строка 5 содержит оператор, который создаёт форму, а оператор 6 запускает программу.
Рассмотрим исходный текст модуля UBUTTON. PAS.
______________________________________________________________
1: unit Ubutton;
2:
3: interface
4:
5: uses
6: SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
7: Forms, Dialogs, StdCtrls, Buttons;
8:
9: type
10: TForm1 = class(TForm)
11: CloseBtn: TBitBtn;
12: procedure CloseBtnClick(Sender: TObject);
13: private
14: { Private declarations }
15: public
16: { Public declarations }
17: end;
18:
19: var
20: Form1: TForm1;
21:
22: implementation
23:
24: {$R *.DFM}
25:
26: procedure TForm1.CloseBtnClick(Sender: TObject);
27: begin
28: MessageDlg('Close form',mtInformation,[mbOK],0);
29: Close;
30: end;
31:
32: end.
______________________________________________________________
Строки с 5 по 7 перечисляют имена модулей, используемых модулем Ubutton. Строки с 9 по 17 определяют класс TForm1, который поддерживает форму. Строка 19 определяет экспортируемую переменную Form1, имеющую тип TForm1. В секции реализации определяется процедура TForm1.CloseBtnClick, которая отвечает за реакцию на нажатие мыши на графической кнопке. Строки 28 и 29 - написаны программистом. Оператор в строке 28 выводит на дисплей диалоговое окно сообщения. Оператор Close в строке 29 закрывает форму.
Delphi сама сгенерировала все операторы в последнем листинге за исключением тех, которые находятся в строках 28 и 29. Имя процедуры в строке 26 содержит имя процедуры CloseBtnClick, объявленное в строке 12. Это имя в свою очередь составлено из имени кнопки CloseBtn и имени события Click. Определение процедуры в строке 26 использует имя класса TForm1, к которому относится процедура, затем следует точка и имя процедуры. Этот синтаксис сообщает компилятору, что процедура CloseBtnClick принадлежит классу Tform1.
Технический совет № 3.
Используйте автоматическую возможность модификации кода Delphi, когда изменяете имя управляющего элемента.
Не редактируйте вручную имена полей класса, которые представляют управляющие элементы. Не редактируйте вручную имена методов. обрабатывающих события.
Не добавляйте объявления в основной программе, если их можно поместить в модуль.
В разделе интерфейса обратим внимание на операторы type и var.
В операторе type Delphi позволяет определять классы, которые играют ключевую роль в создании и управлении формами и их управляющими элементами. Класс можно представить себе как некоторую супер-запись, которая определяет поля и методы. Поля описывают состояние объекта, а методы определяют, как объект управляется.
Вопросы: через какую страницу Инспектора объекта осуществляется доступ к полям класса? к методам класса?
Общий синтаксис класса выглядит так:
Type
TClassName = Class
public
<public fields>
<public methods>
protected
<protected fields>
<protected methods>
private
<private fields>
<private methods>
end;
Объявление класса имеет три возможных раздела, которые определяют доступность полей и методов. Раздел public объявляет поля и методы, не имеющие никаких ограничений доступа - экземпляры класса и классы - потомки могут иметь доступ к этим полям и методам. Раздел protected объявляет поля и методы, имеющие некоторые ограничения доступа - классы - потомки могут иметь доступ к этим полям и методам. Раздел private объявляет поля и методы, имеющие серьёзные ограничения доступа - экземпляры класса или классы - потомки к ним обращаться не могут.
Поля класса содержат данные (состояния), которые определяют атрибуты экземпляров класса.
Методы класса - процедуры и функции, которые манипулируют полями и возвращают результаты, основанные на текущих значениях полей. Методы класса автоматически имеют доступ ко всем полям этого класса. Поэтому не надо передавать поля как параметры метода.
Эффективность использования классов заключается в возможности создавать новые классы как потомки существующих. Каждый класс - потомок наследует поля и методы родителя и классов - предков. Можно также объявлять методы в новых классах, которые отменяют унаследованные. Эта возможность позволяет не замыкаться на использовании унаследованных методов, которые не соответствуют потребностям нового класса. Фактически классы - потомки совершенствуют поведение своих предков, вводя новое, более специализированное, поведение.
Общий синтаксис класса - потомка аналогичен синтаксису класса-не-потомка (базового класса), однако после ключевого слова class в круглых скобках ставится имя родительского класса. Например:
Type
TTimeClass = class
public
Hour : Integer;
Minute : Integer;
Second : Integer;
Initialize;
function GetSeconds : Integer;
end;
TDateTime = class(TTimeClass)
public
Year : Integer;
Month : Integer;
Day : Integer;
Initialize;
function GetDayNumber : Integer;
end;
Класс TDateTime - потомок класса TTimeClass и наследует поля Hour, Minute и Second. Класс потомка также наследует метод GetSeconds. Класс TDateTime отменяет унаследованный метод Initialize и объявляет метод GetDayNumber.
Оператор var позволяет объявлять переменные, которые экспортируются модулем. для правильного профессионального общения в этом же параграфе немного познакомимся с понятиями класса и объекта.
Объекты - это экземпляры классов. Объект объявляется в операторе var точно так же, как и другие переменные. Каждый объект имеет собственный набор полей класса и может обращаться только к его публичным ( public ) полям. Аналогично, только публичные методы класса могут быть доступны объекту.
Объектно-ориентированное программирование (Object - oriented programming - OOP) подразумевает управление объектами путём посылки им сообщений. Сообщение предписывает объекту выполнить некоторую задачу. Объект ищет метод, чьё имя соответствует такому сообщению, и применяет этот метод. Таким образом, OOP - сообщение определяет, что делать объекту, а метод определяет, как управлять объектом. Паскаль использует операцию точки, чтобы обратиться к публичным полям объекта и также посылать сообщение объекту. Пример посылки OOP - сообщения к экземпляру класса :
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 |


