
- •Основы программирования
- •Введение
- •Основы 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 - это могучая среда разработки самых разнообразных программных приложений, являющаяся одновременно и редактором и компилятором. Данная среда ориентирована на работу, прежде всего, в операционных системах Windows. Однако с помощью Delphi можно разрабатывать приложения для Linux и строить кроссплатформенные приложения Windows- Linux.
В основе любой программы на Delphi лежит язык Object Pascal – язык программирования высокого уровня, позволяющий использовать такие объектно-ориентированные языковые средства, как динамические массивы, перегрузка методов, параметры, заданные по умолчанию, файловые потоки, многопоточные приложения и многое другое.
В качестве главного момента можно отметить следующее: изучение Delphi должно вестись в двух направлениях: изучение среды разработки и изучение языка программирования.
Объектно-ориентированное программирование
В Delphi разрабатываются Windows-приложения, соответствующие внутренней логике функционирования операциионной системы Windows. Эти приложения используют библиотеку базовых классов объектов (библиотеку компонентов). Таким образом, приложение представляет собой совокупность объектов, которыми является само приложение и все его компоненты: окна, кнопки, меню и т.д. Объект-приложение разрабатывается как программа-проект, которая взаимодействует с другими объектами. Это взаимодействие, как и положено в объектно-ориентированном мире, выражается в сообщениях, посылаемых друг другу объектами. Идея обмена сообщениями легла в основу операционной системы Windows, где объекты-окна посылают и получают сообщения.
Основные принципы и понятия объектно-ориентированного программирования: инкапсуляция, класс, поля, методы, объект, наследование, полиморфизм.
Класс является обобщением понятия типа данных и задает свойства и поведение объектов класса, являющихся построенными экземплярами класса. Каждый объект принадлежит некоторому классу. Отношение между объектом и классом такое же, как между переменной и ее типом. С формальной точки зрения класс – это объединение данных и обрабатывающих их процедур (инкапсуляция). Данные класса называются полями или переменными класса, а процедуры обработки полей – методами класса. Поля определяют свойства объекта (экземпляра класса) или состояние объекта, методы определяют поведение объекта.
Если определен класс A, то можно определить новый класс B, наследующий свойства и поведение объектов класса A. Это значит, что в классе B неявно определены все поля и методы класса A. Класс B, являясь наследником базового (родительского, предка) класса A, называется производным (дочерним, потомком) по отношению к классу A. В производном классе можно задать новые свойства и новое поведение (эволюционное развитие), определив новые поля и методы.
Метод базового класса иногда полезно объявить как виртуальный. Виртуальность обеспечивает возможность написания полиморфного метода, который может обеспечить разнообразное (полиморфное) поведение виртуального метода в зависимости от использования его тем или иным объектом.
Визуальное программирование
Визуальное программирование позволяет разрабатывать все элементы приложения, непосредственно наблюдая результаты своей работы на экране. Иными словами, разработчик увидит, как будет работать его приложение еще до того, как полностью будет написана программа. Реализация визуального программирования стала возможной в связи с развитием графического интерфейса GUI (Graphical User Interface). Основными понятиями визуального программирования являются: объект, свойство, событие.
Понятие объект является одновременно и понятием объектно-ориентированного программирования. Объекты: – кнопки, строки, списки и т.д. – являются кирпичиками, из которых строится приложение. Среда визуального программирования позволяет увидеть объекты на экране монитора до выполнения программы. Изменение внешнего вида объекта выполняется с помощью таких его свойств, как высота, ширина, положение, цвет и др. Свойства – это атрибуты объекта, которые составляют его индивидуальность и помогают описать его. В то же время свойства обеспечивают возможность реагировать на внешние события.
Жизнь объектов состоит в обмене сообщениями. Сообщения инициируются событиями, которые происходят во внешнем по отношению к приложению мире: при действиях пользователя, операционной системы или другого приложения. События могут возникать, например, при нажатии на кнопку мыши или клавиши на клавиатуре. Сообщение может быть проигнорировано или обработано. Для обработки сообщения необходимо запрограммировать соответствующий обработчик события. Соответственно в ООП, в том числе и Delphi, основным стилем программирования является управляемое событиями программирование.