- •Сборник лекций по дисциплине «Объектно – ориентированное программирование»
- •2202 «Автоматизированные системы обработки информации и управления»
- •Рассмотрено
- •Рецензент:
- •Содержание
- •Пояснительная записка
- •Лекция №1 Тема: Введение
- •1. Определение объектно-ориентированного программирования
- •2. Свойства, события и методы объекта
- •3. Конструкторы
- •4. Компоненты: визуальные и невизуальные
- •5. Классы, наследование
- •Лекция №2 Тема: Язык Object Pascal
- •1. Синтаксические правила языка
- •2. Компилятор и его директивы
- •3. Файлы проекта Delphi
- •4. Области видимости и время жизни
- •Лекция №3 Тема: Константы, переменные, типизированные константы, процедуры и функции
- •1. Константы
- •2. Переменная
- •3. Типизированные константы
- •4. Процедуры и функции
- •1. Определение операций
- •2. Арифметические операции
- •3. Операции отношения
- •4. Булевы операции
- •5. Операции со строками
- •6. Операции с указателями
- •7. Операции с множествами
- •8. Операции с классами
- •9. Операция @
- •10. Приоритет и ассоциативность операций
- •Лекция №5 Тема: Операторы
- •1. Оператор присваивания и его соотношение с методом Assign
- •2. Оператор передачи управления goto
- •3. Оператор with
- •4. Условные операторы выбора if
- •5. Условный оператор множественного выбора case
- •6. Оператор цикла for
- •7. Оператор цикла repeat
- •8. Оператор цикла while
- •9. Прерывание цикла: оператор break, процедуры Continue, Exit и Abort
- •Лекция № 6 Тема: Динамическое распределение памяти. Исключения. Сообщения Windows.
- •1. Динамическое распределение памяти
- •2. Исключения
- •3. Последовательность обработки исключений
- •4. Преднамеренная генерация исключений
- •5. Сообщения Windows и их обработка
- •Лекция №7 Тема: Типы данных в языке Object Pascal
- •Символьные типы данных
- •Типы строк
- •1. Классификация типов данных
- •2. Порядковые типы данных
- •3. Целые типы данных
- •4. Действительные типы данных
- •5. Булевы типы данных
- •6. Символьные типы данных
- •7. Типы строк
- •8. Перечислимые типы
- •9. Ограниченные типы
- •10. Множества
- •Лекция №8 Тема: Структурные типы данных
- •1. Указатели
- •2. Файлы
- •3. Массивы
- •4. Записи
- •Лекция №9 Тема: Интегрированная Среда Разработки (иср) Delphi
- •1. Основные положения интегрированной среды разработки
- •2. Палитра компонентов
- •3. Редактор кода и инспектор объектов
- •4. Перетаскивание и встраивание окон в иср
- •5. Настройка инструментальной панели, палитры компонентов и редктора кода
- •6. Настройка интегрированной среды
- •7. Проекты Delphi
- •Лекция №10 Тема: Формы
- •1. Использование форм
- •2. Характеристики формы
- •3. Организация взаимодействия форм
- •4. Особенности модальных форм
- •5. Процедуры и функции, реализующие диалоги
- •Лекция №11 Тема: Компоненты ввода и отображения текстовой информации
- •1. Классификация компонентов ввода и отображения текстовой информации
- •2. Основные свойства, события и методы компонентов Label, StaticText и Panel
- •3. Основные свойства, события и методы окон редактирования Edit и MaskEdit
- •Символы шаблона маски:
- •4. Основные свойства, события и методов многострочных окон редактирования Memo и Richedit
- •Общие свойства окон редактирования:
- •5. Основные свойства, события и методы компонентов выбора из списков — ListBox, CheckListBox и ComboBox
- •6. Основные свойства, события и методы таблицы строк — компонент StringGrid
- •Лекция №12 Тема: Кнопки, индикаторы, управляющие элементы
- •1. Классификация компонентов кнопок, индикаторов и управляющих эелементов
- •2. Основные свойства, события и методы управляющих кнопок Button и BitBtn
- •3. Основные события и свойства кнопки с фиксацией SpeedButton
- •4. Основные свойства и события группы радиокнопок — компоненты RadioGroup, RadioButton и GroupBox
- •5. Основные свойства и события индикаторов CheckBox и CheckListBox
- •6. Основные свойства и события ползункиов и полос прокруток — компоненты TrackBar и ScrollBar
- •7. Основные свойства и события компонента Timer
- •Лекция №13 Тема: Компоненты меню
- •1. Основные свойства, события и методы главного меню — компонент MainMenu
- •2. Основные свойства, события и методы контекстного всплывающего меню — компонент PopupMenu
- •3. Горячие клавиши — компонент HotKey
- •Лекция №14 Тема: Системные диалоги
- •1. Общая характеристика компонентов — диалогов
- •2. Диалоги открытия и сохранения файлов — компоненты OpenDialog, SaveDialog, OpenPictureDialog, SavePictureDialog
- •3. Фрагменты диалогов — компоненты DriveComboBox, DirectoryListBox, FilterComboBox, FileListBox и DirectoryOutline
- •4. Диалог выбора шрифта — компонент FontDialog
- •5. Диалог выбора цвета — компонент ColorDialog
- •6. Диалоги печати и установки принтера — компоненты PrintDialog и PrinterSetupDialog
- •Лекция №15 Тема: Ввод и отображение чисел, дат и времени
- •1. Классификация компонентов ввода и отображения чисел, дат и времени
- •2. Основные свойства, события и методы компонентов UpDown и SpinEdit
- •3. Основные свойства, события и методы компонента DateTimePicker
- •4. Основные свойства, события и методы компонентов MonthCalendar и Calendar
- •5. Компонент f1Book
- •Лекция №16 Тема: Компоненты отображения заголовков и иерархических данных
- •1. Классификация компонентов отображения заголовков и иерархических данных
- •2. Основные свойства, события и методы компонентов Header HeaderControl
- •3. Основные свойства, события и методы компонентов TreeView и OutLine
- •4.Основные свойства, события и методы компонента ListView
- •Лекция №17 Тема: Отображение графической и мультимедиа информации
- •1. Классификация компонентов отображения графической информации
- •2. Основные свойства, события и методы таблиц изображений — компоненты DrawGrid и StringGrid
- •3. Основные свойства, события и методы компонента Shape
- •4. Основные свойства, события и методы компонента Chart
- •5. Основные свойства, события и методы компонентов страницы ActiveX — fiBook, Chartfx, Graph
- •6. Классификация компонентов отображения мультимедиа - компоненты Animate, MediaPlayer, ProgressBar, Gauge
- •7. Основные свойства, события и методы компонентов ProgressBar и Gauge
- •Лекция №18 Тема: Панели и компоненты внешнего оформления
- •1. Общая характеристика компонентов внешнего оформления
- •2. Панели общего назначения — компоненты Panel, GroupBox, Bevel, ScrollBox, Splitter
- •Некоторые свойства компонента Panel:
- •3. Многостраничные панели — компоненты TabControl, PageControl, TabSet, TabbedNoteBook, NoteBook
- •4. Инструментальные панели — компоненты ToolBar и PageScroller
- •5. Перестраиваемые панели - компоненты ControlBar и CoolBar
- •6. Полоса состояния StatusBar
- •7. Фреймы
- •Лекция №19 Тема: Компоненты организации управления приложением
- •1. Характеристика компонентов организации управления приложением
- •2. Диспетчеризация событий — компоненты, связанные с ActionList
- •3. Список изображений — компонент ImageList
- •4. Приложение — компонент ApplicationEvents и объект Application
- •Лекция № 20
- •1.8. Изменение размеров панелей при использовании выравнивания
- •1. Требования к интерфейсу пользователя приложений для Windows
- •1.1. Цветовое решение приложения
- •1.2. Шрифты текстов
- •1.3. Требования к меню
- •1.4. Компоновка форм
- •1.5. Последовательность фокусировки элементов
- •1.6. Подсказки и контекстно-зависимые справки
- •1.7. Проектирование окон с изменяемыми размерами
- •1.8. Изменение размеров панелей при использовании выравнивания
- •1.9. Изменение местоположения и размеров компонентов
- •1.10. Панели с перестраиваемыми границами
- •1.11. Ограничение пределов изменения размеров окон и компонентов
- •Контрольные вопросы:
- •Рекомендуемая литература: 1.1. Лекция № 21 Тема: Перетаскивание объектов
- •1. Перетаскивание информации об объектах — технология Drag&Drop
- •2. Перетаскивание и встраивание объектов — Drag&Doc. Плавающие окна
- •Лекция№22 Тема: Печать и разработка отчетов
- •1. Печать с помощью функций файлового ввода/вывода
- •2. Методы компонентов, обеспечивающие печать
- •3. Печать файлов средствами стандартных приложений Windows с помощью функции ShellExecute и обращения к серверам сом
- •4. Печать с помощью объекта Printer
- •5. Подготовка и печать отчетов с помощью QuickReport
- •5.1.Быстрый отчет (QuickRep)
- •Специфичные свойства
- •5.2. Специфичные методы
- •5.3.Специфичные события
- •5.4. Компоненты отчета
- •5.5. Основные свойства компонентов
- •Самостоятельная работа: Сформировать составной отчет.
- •Лекция № 23 Тема: Графика План:
- •2. Форматы графических файлов
- •3. Классы для хранения графических объектов tPicture, tBitMap, Tlcon и tMetafile
- •4. Редактор Изображений Image Editor
- •4.1. Создание файла изображения
- •4.2. Работа с файлами ресурсов
- •4.2.1.Создание файла ресурсов
- •4.2.2.Подключение файла ресурсов
- •5. Графические возможности Delphi
- •5.1. Холст
- •5.2. Карандаш и кисть
- •Карандаш
- •5.3. Вывод текста
- •5.4. Методы вычерчивания графических примитивов
- •5.4.1. Линия
- •5.4.2 Ломаная линия
- •5.4.3 Окружность и эллипс
- •5.4.4 Дуга
- •5.4.5 Прямоугольник
- •5.4.6 Многоугольник
- •5.4.7 Сектор
- •5.4.8 Точка
- •Самостоятельная работа: На поверхности диалогового окна, в точке нажатия левой кнопки мыши вычертить контур пятиконечной звезды.
- •Лекция № 24 Тема: Мультимедиа и анимация План:
- •1.1.2 Процедуры воспроизведения звуков Веер, MessageBeep и PlaySound
- •1.1.3. Универсальный проигрыватель MediaPlayer
- •1.1.4 Воспроизведение немых видео клипов — компонент Animate
- •2. Мультипликация
- •2.1. Метод базовой точки
- •3. Создание анимации
- •Лекция № 25 Тема: Взаимодействие приложения с внешними программами
- •2. Управление окнами внешних программ
- •1.1. Запуск внешней программы функцией WinExec
- •2. Управление окнами внешних программ
- •2.1. Определение дескриптора окна приложения
- •2.2. Некоторые функции api Windows для управления окнами
- •3. Создание динамически подключаемых библиотек (dll)
- •Лекция№26 Тема: Сообщения Windows и их обработка
- •2. Посылка сообщений
- •3. Обработка сообщений
- •4. Определение собственных сообщений
- •1. Сообщения Windows
- •2. Посылка сообщений
- •2.1. Функция SendMessage
- •2.2. Функция PostMessage
- •3. Обработка сообщений
- •4. Определение собственных сообщений
- •Лекция№27
- •1. Внедрение объектов
- •2. Технология связывания и внедрения объектов (ole)
- •3. Многопоточные приложения
- •4. Технология применения объектов com, dcom
- •Лекция №28 Тема: Динамический обмен данными — dde
- •1. Общие сведения
- •2. Установление контакта с сервером
- •3. Обмен данными между клиентом и сервером
- •3.1. Построение приложения-сервера
- •3.2. Построение приложения-клиента
- •4. Запрос данных сервера
- •5. Постоянное отслеживание информации на сервере
- •6. Передача информации от клиента к серверу
- •Лекция №29 Тема: Разработка собственных компонентов
- •1. Создание новых компонентов
- •2.Создание и установка ActiveX-элементов
- •3. Создание и установка пакетов
- •4. Использование пакетов
- •Лекция №30 Тема: Создание справочной системы. Разработка тестовых файлов
- •1. Этапы разработки
- •2. Планирование системы справок
- •3. Создание текстовых файлов
- •3.1. Задание идентифицирующей строки и организация перекрестных ссылок
- •3.2. Задание названия раздела
- •3.3. Определение ключевых слов
- •3.4. Определение условий компиляции
- •3.5. Указание порядка просмотра связанных разделов
- •3.6. Вставка графики
- •3.7. Выполнение макрокоманд
- •3.8. Отображение текста раздела в дополнительном окне
- •Лекция №31 Тема: Разработка проектного файла справочной системы
- •1. Разработка проектного файла
- •1.1. Секция options
- •1.2. Секция files
- •1.3. Секция windows
- •1.4. Секция map
- •3. Компиляция, тестирование и связывание Help-файла с программой
- •4. Макрокоманды WinHelp
- •Рекомендуемая литература
3. Создание текстовых файлов
Вся справочная информация помещается в один или несколько текстовых файлов в формате RTF. Для их создания может использоваться любой текстовый редактор, поддерживающий этот формат.
При создании текстовых файлов нужно учитывать некоторые особенности их подготовки:
Количество RTF-файлов может быть произвольным. Вы можете поместить всю справочную информацию в один файл или предусмотреть для каждого раздела отдельный файл — все зависит от объема и структуры справочной службы, а также ваших личных пристрастий.
В пределах одного файла каждый раздел отделяется от другого служебным символом конца страницы (в Word этот символ вставляется нажатием клавиш Ctrl+Enter).
Любой раздел, доступный с помощью перекрестных ссылок или индексных указателей, должен иметь связанный с ним идентификатор — уникальную текстовую строку.
Раздел может иметь название и связанный с ним список ключевых слов.
Управляющие символы, которые включаются в текстовый файл, представлены в табл. 75.
Таблица 75.
Управляющие символы
Символ |
Описание |
Сноска # |
Указывает идентификатор раздела |
Перечеркнутый или дважды подчеркнутый текст |
Определяет отображение связанного с текстом раздела (перекрестной ссылки) в стандартном справочном окне |
1 |
2 |
Подчеркнутый текст |
Определяет отображение раздела перекрестной ссылки в окне пояснений («всплывающем» окне) |
Скрытый текст |
Определяет идентификатор раздела, связанного с перекрестной ссылкой |
Сноска $ |
Задает название раздела |
Сноска К |
Указывает список ключевых слов для поиска раздела |
Сноска + |
Задает порядковый номер раздела в списке просмотра связанных разделов |
Сноска А |
Определяет условие компиляции раздела |
Сноска > |
Определяет тип дополнительного окна, в котором будет отображаться раздел |
Сноска ! |
Указывает макрокоманду, которая будет выполняться при открытии окна с разделом |
3.1. Задание идентифицирующей строки и организация перекрестных ссылок
Для задания перекрестных ссылок, реализующих гипертекстовый переход от одного раздела к другому, разделы помечаются уникальными идентифицирующими строками (идентификаторами). Только помеченные идентификаторами разделы можно просматривать в рамках гипертекстовой системы (непомеченные разделы могут быть доступны для просмотра по ключевым словам и в порядке просмотра связанных разделов).
Идентифицирующая строка может содержать любые символы, кроме #, @, !, *, =, >, % и пробелов. Разница в регистре латинских букв (но не кириллицы!) игнорируется. Длина строки — до 255 символов. В качестве идентификаторов имеет смысл использовать текст заголовка раздела, заменив в нем пробелы символами подчеркивания, — в этом случае вам не придется вспоминать идентификатор при ссылке на него.
Идентификатор задается с помощью сноски # в самом начале раздела. Например:
# Назначение^программы
Перекрестная ссылка представляет собой выделенную цветом часть текста, щелчок мышью на которой приводит к смене раздела. Для кодирования ссылки она выделяется в тексте перечеркнутым или дважды подчеркнутым шрифтом, и сразу за ней без каких-либо пробелов указывается идентификатор темы в виде скрытого текста. На рис. 89 показано окно редактора Word с фрагментом текста справочной службы.
Рис. 89. Пример задания перекрестных ссылок
Как
показано на рисунке, раздел Перекрестные
ссылки связан с идентификатором
HYPER,
который задан в виде текста сноски #,
предшествующей первому символу
заголовка (для задания сноски выберите
в главном меню Word
команду Вставка > Сноска, в окне Сноски
установите переключатель Другая и
введите символ # в
поле 1, 2, 3). В тексте раздела указаны две
перекрестные ссылки в виде слов ССЫЛКА
и ГИПЕРТЕКСТ.
Эти слова выделены соответственно
дважды подчеркнутым и перечеркнутым
шрифтом, но в окне справочной службы
они будут выглядеть одинаково:
выделены зеленым цветом и подчеркнуты
одной линией. Сразу за каждой ссылкой
следует идентификатор соответствующего
раздела. Поскольку идентификатор
выделяется скрытым текстом, в обычном
режиме он скрыт и появляется только
в режиме отображения служебных символов
после щелчка на кнопке Непечатаемые
символы инструментальной панели Word.
Для задания скрытого текста в редакторе Word необходимо выделить текст, воспользоваться командой Формат > Шрифт и в группе Эффекты открывшегося диалогового окна установить флажок Скрытый.
Поскольку эту последовательность действий при написании текста справочной службы придется выполнять очень часто, полезно предварительно настроить Word. Для этого выберите команду Сервис > Настройка, в открывшемся диалоговом окне перейдите на вкладку Команды, в списке Категории выделите пункт Все команды и перетащите мышью (нажав и не отпуская левую кнопку) пункт Hidden из списка Команды на инструментальную панель, где он превратится в кнопку. После этого щелкните на кнопке Закрыть в окне Настройка. Теперь, чтобы ввести скрытый текст, достаточно выделить его и щелкнуть на новой кнопке. Для задания перечеркнутого или дважды подчеркнутого текста нет специальной команды, поэтому автоматизировать соответствующие действия нужно с помощью макроса. Чтобы создать макрос, сначала выделите текст, затем выберите команду Сервис > Макрос > Начать запись, в окне Запись макроса введите подходящее имя (например, Зачеркнутый) и щелкните на кнопке Панели, затем из окна Настройка перетащите имя макроса на инструментальную панель и закройте окно. Теперь указатель мыши будет иметь вид кассеты с лептой, а на экране появится соответствующая панель управления. Выберите команду Формат > Шрифт > Зачеркнутый и остановите запись макроса щелчком на левой кнопке панели управления или с помощью команды Сервис > Макрос > Остановить запись.
Любой вызываемый раздел может отображаться в основном окне справки или в окне пояснений. Это окно появляется поверх основного окна (такие окна иногда называют «всплывающии») и обычно используется для пояснений (рис. 90).
Рис. 90. Пример использования окна пояснений
Чтобы показать раздел в окне пояснений, нужно выделить текст перекрестной ссылки шрифтом с одинарным подчеркиванием, например так:
Для проверки работы ASI-шиныASI и связанных с ней датчиков…
В выделенную скрытым текстом часть ссылки можно вставить следующие дополнительные управляющие символы:
* — отменяет выделение текста ссылки цветом;
% — отменяет выделение текста ссылки цветом и подчеркиванием;
@ — указывает Help-файл, в котором находится нужная тема;
> — указывает тип окна для отображения раздела.
Символы * и % вставляются непосредственно перед идентификатором раздела и так же, как и он, оформляются скрытым текстом. Например:
ГИПЕРТЕК%HYPER
Теперь в справочном окне слово ГИПЕРТЕКСТ ничем, кроме формы расположенного над ним указателя мыши, не будет отличаться от обычного текста справки; тем не менее, щелчок на нем вызовет переход к теме HYPER. В ссылке можно указать только один из символов отмены выделения — * или %.
Символы @ и >, наоборот, вставляются в конце скрытого текста, и за ними должны следовать:
маршрут доступа и имя Help-файла — для символа @;
имя типа окна, в котором следует отобразить раздел — для символа >; это окно должно определяться в файле проекта (см. ниже подтему «Секция Windows» в теме «Разработка проектного файла»).
Например, если раздел HYPER расположен в файле C:\PROBA\PROBA.HLP и должен показываться в дополнительном окне типа WIND, соответствующая ссылка будет такой:
ГИПЕРТЕКСТHYPER@C:\PROBA\PROBA.HLP>WIND
Обратите внимание: символы @ и >, как и следующие за ними символы маршрута и имени окна, должны оформляться скрытым текстом. Если, как в приведенном примере, в ссылке одновременно указываются и маршрут, и тип окна, порядок их следования безразличен, однако в одной ссылке можно указать только один символ @ и (или) один символ >. Имя окна нужно указывать прописными буквами, даже если в файле проекта оно определено строчными.
