- •Ответственный за выпуск: Бивойно п.Г. , декан факультета электронных и информационных технологий, канд. Техн. Наук, доцент
- •Содержание
- •4.1.4 Разработка интерфейса проекта 66
- •5.1.7 Разработка интерфейса проекта 81
- •Введение
- •Лабораторная работа № 1. Знакомство с интегрированой средой разработки (иср)“Delphi 7”
- •Краткие теоретические сведения о иср “Delphi 7”
- •Конструктор стартовой формы
- •Главное окно иср “Delphi 7”
- •Главное меню
- •Панели инструментов
- •Палитра компонентов
- •Окно просмотра дерева объектов
- •Окно редактора кода
- •Закладка редактора кода модуля
- •Закладка редактора кода файла проекта
- •Окно Object Inspector
- •Закладка описания свойств объекта
- •События и процедуры обработки событий
- •Создание простейшего проекта
- •Разработка интерфейса проекта
- •Создание процедуры инициализации приложения
- •Создание процедуры вычисления результата
- •Улучшение проекта
- •Сохранение проекта
- •Продолжение работы с проектом на другом компьютере
- •Содержание отчета
- •Контрольные вопросы и задания
- •Рекомендованая литература
- •Лабораторная работа № 2. Вещественный тип данных. Расчеты по формулам
- •Краткие теоретические сведения
- •Язык программирования Object Pascal
- •Объекты, переменные и константы
- •Классы и типы
- •Объявление объектов и переменных
- •Вещественный тип данных
- •Выражение
- •Стандартные функции для данных вещественного типа
- •Инструкция присваивания
- •Форматирование результатов расчетов
- •Создание проекта «Расчет по формуле»
- •Создание интерфейса
- •Компонент ole-контейнер
- •Компонент Group Box
- •Компонент Memo
- •Завершение работы над интерфейсом
- •Создание процедур обработки событий Процедура очистки протокола
- •Процедура инициализации формы
- •Процедура выполнения расчета по формуле
- •Контольный пример
- •Трассировка процедуры
- •Содержание отчета
- •Контрольные вопросы
- •Рекомендованая литература
- •Лабораторная работа № 3. Подпрограммы Краткие теоретические сведения
- •Правила написания подпрограмм
- •Описание процедуры
- •Вызов процедуры
- •Описание функции
- •Вызов функции
- •Способы передачи параметров в подпрограммы
- •Передача параметров по значению
- •Передача параметров по наименованию
- •Расположение подпрограмм
- •Подпрограммы обработки событий класса формы
- •Другие подпрограммы класса формы
- •Размещение подпрограмм в модуле
- •Размещение подпрограмм в других модулях
- •Размещение подпрограмм внутри других подпрограмм
- •Область действия имен
- •Реализация проекта «Процедуры и функции»
- •Создание процедур и функций Процедуры инициализации
- •Процедура считывания коэффициентов уравнения
- •Функция для расчета по формуле
- •Использование дополнительного модуля
- •Завершение работы над проектом
- •Исследование созданного приложения
- •Анализ передачи параметров по наименованию
- •Анализ передачи параметров по значению
- •Содержание отчета
- •Контрольные вопросы
- •Операции над логическими данными
- •Логические выражения
- •Разветвляющиеся алгоритмы
- •Программирование разветвлений Условный оператор if…then…else
- •Оператор варианта case
- •Реализация проекта «Организация разветвлений»
- •Разработка интерфейса проекта
- •Компоненты для работы со списками
- •Процедуры обработки событий выбора из списка
- •Процедуры обработки событий onKeyPress
- •Решение квадратного уравнения
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 5. Построение циклов с инструкциями „while” и „repeat”
- •Краткие теоретические сведения
- •Циклические алгоритмы
- •Инструкция while…do
- •Инструкция repeat…until
- •Прерывание цикла
- •Итерационные алгоритмы
- •Пример итерационного алгоритма для вычисления кубического корня
- •Задание для самостоятельной работы
- •Алгоритмы вычисления сумм бесконечных рядов
- •Задание для самостоятельной работы
- •Создание проекта WhileRepeat
- •Разработка интерфейса проекта
- •Компоненты PageControl и TabSheet
- •Компонент CheckBox
- •Создание закладки для вычисления корня
- •Создание закладки для вычисления синуса
- •Создание процедур и функций Процедура для контроля ввода данных
- •Процедура вычисления кубического корня
- •Процедура вычисления синуса
- •Задания для расчетно-графической работы № 2
- •Содержание отчета
- •Контрольные вопросы
- •Целые типы данных
- •Символьные типы данных
- •Ограниченный тип данных.
- •Применение инструкции цикла for
- •Табулирование значений функций
- •Форматирование результатов при выводе таблиц
- •Строки символов
- •Операции над строками
- •Процедура Delete
- •Процедура Insert
- •Функция Pos
- •Функции Trim, TrimLeft, TrimRight
- •Создание проекта «Применение цикла for»
- •Разработка формы «Табулирование функции» Разработка интерфейса
- •Создание вспомогательных процедур и функций
- •Создание процедуры табулирования функции
- •Разработка формы «Таблица “символ-код”» Разработка интерфейса
- •Создание процедуры вывода таблицы символ-код
- •Разработка формы «Обработка последовательностей целых чисел»
- •Разработка интерфейса
- •Создание процедуры обработки последовательности целых чисел
- •Создание многодокументной (mdi)формы
- •Задание для самостоятельной работы
- •Содержание отчета
- •Контрольные вопросы
- •Рекомендованая литература
-
Расположение подпрограмм
Подпрограммы могут располагаться в самых разных местах. Место расположения программы не влияет на ее работу, но от этого зависит доступность (видимость) подпрограммы. Ниже рассматриваются варианты расположения подпрограмм и обсуждаются особенности их использования, зависящие от расположения подпрограммы.
Подпрограммы обработки событий класса формы
В ранее рассмотренных примерах мы уже имели дело с такими подпрограммами.
Подпрограммы, относящимися к классу формы, объявляются в описании класса в разделе interface, а располагаются в разделе implementation модуля.
Отличительная особенность этих подпрограмм в том, что в разделе implementation их имя записывается вместе с именем класса, через точку. Это признак того, что подпрограмма принадлежит классу формы.
В таких подпрограммах доступны все компоненты, расположенные на форме. При обращении к ним, нет необходимости указывать имя формы, например, можно писать Edit1.text вместо Form1.Edit1.text.
Одна и та же процедура обработки события может быть связана с событиями нескольких объектов. В этих случаях, для того, чтобы получить доступ к объекту, вызвавшему процедуру, можно использовать ссылку на этот объект, которая передается в процедуру в виде параметра Sender. Чтобы получить доступ к объекту, нужно привести эту ссылку к соответствующему классу, например, таким образом – TButton(Sender).
Другие подпрограммы класса формы
Класс формы может содержать не только процедуры обработки событий, но и другие подпрограммы. Обычно эти подпрограммы как-то связаны с компонентами формы, и расположение подпрограммы в классе формы упрощает доступ к ее компонентам. Эти подпрограммы отличаются от процедур обработки событий только тем, что программист сам должен вводить объявления подпрограмм, кроме того, эти объявления могут располагаться только в разделах private или public описания класса формы. Сама же процедура будет размещаться в разделе implementation.
После объявления подпрограммы можно автоматически сформировать шаблон подпрограммы в разделе implementation модуля, нажав комбинацию клавиш <Ctrl+Shift+C>. Для перемещения между описанием и объявлением подпрограммы класса можно использовать комбинации клавиш <Ctrl+Shift+↑> и <Ctrl+Shift+↓>.
Рассмотрение подпрограмм, относящихся к классу формы, выходит за рамки нашего курса, поэтому мы, по возможности, не будем их использовать.
Размещение подпрограмм в модуле
В модуле формы, помимо подпрограмм, принадлежащих классу формы, могут располагаться и другие подпрограммы, причем, это не исключение, а скорее правило. В дальнейшем мы будем писать в основном именно такие подпрограммы.
Если такая подпрограмма используется только в данном модуле, то она описывается в разделе implementation, и ее описание должно располагаться раньше, чем обращение к ней.
В тех же случаях, когда подпрограмму предполагается использовать и в других модулях, то помимо описания в разделе implementation, ее следует объявить в разделе interface, но за пределами описания класса. Объявление подпрограммы модуля выглядит так же, как и ее заголовок.
Если в подпрограмме модуля, не принадлежащей к классу формы, приходится обращаться к компонентам формы, то при таких обращениях пред именем компонента следует указывать имя формы, например, Form1.Edit1.text.