
- •Основы программирования
- •Введение
- •Основы delphi
- •Общая технология программирования
- •Язык программирования
- •Объектно-ориентированное программирование
- •Визуальное программирование
- •Событийно управляемое программирование
- •Windows-приложение
- •Среда программирования
- •Первоначальные сведения о проекте приложения
- •Встроенный отладчик
- •Использование встроенных классов
- •Иерархия классов
- •Использование палитры компонентов и инспектора объектов
- •Использование графики
- •Основные инструменты
- •Основные характеристики шрифтов
- •Графические данные и палитра
- •Некоторые общие свойства компонентов
- •Сохранение проекта
- •Построение простейшего проекта
- •Понятие исключительной ситуации
- •Введение в object pascal
- •Структура приложения
- •Структура программы-проекта
- •Структура модуля
- •Пример 1
- •Описания программных элементов
- •Программные элементы и адреса памяти
- •Области видимости
- •Правила записи имен
- •Время жизни идентификаторов
- •Использование локальных переменных в примере 1
- •Использование глобальных переменных в примере 1
- •Простые типы
- •Целые типы
- •Целые типы
- •Некоторые операции с целым типом
- •Символьные типы
- •Логические типы
- •Тип перечень
- •Интервальный тип
- •Вещественный тип
- •Вещественные типы
- •Некоторые операции с вещественным типом
- •Тип дата-время
- •Выражения
- •Константы
- •Типизированные константы.
- •Переменные
- •Операции
- •Унарная операция not (отрицание)
- •Логические операции and, or, xor
- •Функции
- •Порядок вычисления выражений
- •Виды операторов
- •Простые операторы
- •Составной оператор
- •Операторы условного перехода
- •Оператор if
- •Пример 2
- •Оператор case
- •Пример 3
- •Использование enter в примере 3
- •Операторы цикла
- •Оператор цикла for
- •Пример 4
- •Оператор цикла while
- •Пример 5
- •Оператор цикла repeat
- •Пример 6
- •Использование процедур break и continue
- •Пример 7
- •Массивы
- •Статические массивы
- •Динамические массивы
- •Пример 8
- •Пример 9
- •Записи (объединения)
- •Оператор with
- •Пример 10
- •Совместимость и преобразование типов данных
- •Идентичность типов
- •Совместимость типов
- •Совместимость по присваиванию
- •Преобразование типов
- •Операторы обработки исключительных ситуаций
- •Пример 11
- •Множества
- •Операции над множествами
- •Пример 12
- •Вариантный тип данных
- •Процедуры и функции
- •Процедура
- •Функция
- •Рекурсия
- •Формальные и фактические параметры
- •Параметры-значения
- •Параметры-переменные
- •Параметры-константы
- •Параметры без типа
- •Массивы открытого типа
- •Парамеры по умолчанию
- •Процедура exit
- •Директивы подпрограммы
- •Соглашения по передаче данных
- •Директива forward
- •Директива external
- •Директива assembler
- •Перегруженные подпрограммы
- •Пример 13
- •Инкапсуляция
- •Класс как объектный тип
- •Наследование
- •Области видимости
- •Операции is и as
- •Виды методов
- •Методы virtual и полиморфизм
- •Методы dynamic
- •Методы message
- •Методы abstract
- •Методы override
- •Методы class
- •Пример 14
- •Динамическое создание компонентов
- •Использование класса со счетчиком объектов
- •Отслеживание разрушения объектов
- •События
- •Указатели на методы
- •Пример 15
- •Типы ссылки на класс
- •Свойства
- •Свойства simple
- •Свойства enumerated
- •Свойства set
- •Свойства object
- •Свойства array
- •Задание начальных значений свойствам
- •Пример 16
- •Файловые типы
- •Текстовые файлы
- •Типизированные файлы
- •Файлы без типа
- •Дополнительные процедуры и функции
- •Пример 17
- •Компонент tmainmenu
- •Указатели
- •Пример 18
- •Динамические структуры данных
- •Однонаправленные списки
- •Двунаправленные списки
- •Стеки, очереди
- •Бинарные деревья
- •Пример 19
- •Процедурный тип
- •Программные единицы dll
- •Пример 20
- •Технологии программирования
- •Потоки данных
- •Пример 21
- •Пример 22
- •Интерфейс drag and drop
- •Пример 23
- •Технология drag and dock
- •Пример 24
- •Использование функций windows api при работе с файлами
- •Пример 25
- •Использование отображаемых файлов
- •Пример 26
- •Программные потоки
- •Приоритеты потоков
- •Класс tthread
- •Пример 27
- •Использование блокировки в примере 27
- •Многопоточное приложение в примере 28
- •Проблемы синхронизации потоков
- •Список используемых в примерах компонентов
- •Список используемых компонентов и других классов
- •Библиографический список
- •Оглавление
Построение простейшего проекта
Создадим простейший проект, который просто демонстрирует последовательность действий при работе в среде Delphi. Данный проект будет иметь одну форму (рис. 11), на которой расположены два интерфейсных элемента (две простые кнопки).
Рис. 11. Форма простейшего проекта.
Первая кнопка будет использоваться для запуска приложения и выполнения каких либо действий (кнопка “Операция”), а вторая - для закрытия программы (кнопка “Выход”).
Для построения этого проекта в среде Delphi необходимо выполнить следующие действия:
открыть новый проект: File - New Application;
изменить заголовок (Form1) главной формы, выбрав в инспекторе объектов свойство Caption. Имя формы – Name - изменять не надо;
сохранить проект на диске, например, с помощью команд меню File – Save All, выбрав требуемый каталог и присвоив осмысленные имена файлам;
поместить на форму первую кнопку. Для этого в палитре компонентов открыть страницу Standard, мышью выбрать компонент Button и щелкнуть левой кнопкой. Поместить курсор мыши на форму и щелкнуть левой кнопкой - объект Button1 появится на форме;
изменить название этой кнопки. Для этого проделать то же самое, что и для формы. В инспекторе объектов выбрать Caption (для Button1) и изменить название «Button1» на «Операция»;
добавить вторую кнопку и изменить ее название (Caption) «Button2» на «Выход» - повторить пункты 3 и 4. Name, как и в пункте 5, изменять не надо;
с помощью мыши выровнять расположение этих кнопок на форме и, если надо, изменить их размер. Добавить ко второй кнопке обработчик события: нажатие левой кнопки мыши (или клавиши Enter), - с помощью которого будет осуществляться выход из программы. С помощью мыши пометим вторую кнопку и на странице событий в инспекторе объектов выберем событие OnClick. Выполним двойной щелчок левой кнопкой мыши в поле справа от имени OnClick - появится редактор кода с программной заготовкой требуемого обработчика событий (рис.12). Между begin и end необходимо вставить имя процедуры (подпрограммы) Close.
Рис. 12. Заготовка для обработчика событий OnClick
запустить программу на выполнение, например, командой Run в пункте меню Run или с помощью клавиши F9 или с помощью зеленого треугольничка на панели инструментов. Проверить работоспособность кнопки «Закрыть» - сделать щелчок мышью на этой кнопке. Произойдет выход из приложения и возврат в среду Delphi.
повторно сохранить проект на диске, чтобы записать все выполненные действия. Это можно сделать и при выходе из Delphi.
Понятие исключительной ситуации
Исключительная ситуация – это изменение условий работы приложения, которые могут быть причиной невозможности дальнейшего его выполнения. Любое взаимодействие с операционной системой на предмет получения ресурсов: места на диске, памяти, открытие файла – может завершиться неудачно. Любое вычисление может закончиться делением на нуль или переполнением. Платой за надежную работу программы в таких условиях служит введение многочисленных проверок, способных предотвратить некорректные действия в случае возникновения нештатной ситуации. Обычно для корректного выхода из ситуации нужно отменить целую последовательность действий, предшествующих неудачному действию. Выход из положения нештатной ситуации предложен разработчиками Windows - это структурированная обработка исключительных ситуаций, которая реализована и в Delphi.
Структурированная обработка исключительных ситуаций в Delphi реализована с помощью множества классов. Предком всех таких классов является объектный тип (класс) Exception. Чтобы выделить имена классов, связанных с исключительными ситуациями, первой буквой их имен является буква E. Имена других классов начинаются с буквы T.
В Delphi исключительные ситуации представлены в форме объектов. При возникновении исключительной ситуации в памяти создается объект обработки исключительной ситуации. Для удаления этого объекта должен быть создан обработчик исключительной ситуации. Для работы с такими объектами разработаны специальные конструкции языка, которые позволяют написать дополнительный код обработки возможных исключительных ситуаций.
В Delphi существует множество встроенных классов обработки исключительных ситуаций. Приложение обычно имеет один глобальный обработчик и несколько локальных специализированных процедур-обработчиков, реагирующих на соответствующие конкретные исключения. Для исключения, не имеющего своего локального обработчика, приложением вызывается глобальный обработчик.