Delphi – это язык высокого уровня, поддерживающий объектно-ориентированный дизайн. Он происходит из Паскаля и часто упоминается как Delphi Pascal. Это быстрая среда для разработки приложений, на которой можно создавать разные системы, начиная от баз данных и заканчивая мобильными приложениями.
Delphi выпускается в разных версиях, поэтому перед загрузкой установщика вам нужно решить, какую версию выбрать. Существует четыре версии Delphi:
- Версия Starter является самой простой и не содержит функций, необходимых для разработки мобильных приложений. Эта версия предназначена для любителей, студентов и вообще для тех, кто просто хочет изучать Delphi. Starter поддерживает создание приложений только для 32-битной Windows;
- Следующая версия Professional. Она также не содержит функций для мобильной разработки, но их можно установить отдельно в виде пакетов мобильных дополнений. Professional – хороший выбор, если вы планируете создавать приложения для Windows и вам не требуется возможность подключения к удаленным базам данных;
- Третья версия Enterprise. Это полная версия Delphi и содержит все, что есть в Professional, а также многое другое. Она позволяет создавать приложения для всех поддерживаемых мобильных и настольных платформ, включая Android, iOS, Windows, Mac и Linux. Она также содержит платформу DataSnap для построения масштабируемых многоуровневых систем, недоступных в версии Professional;
- Самая полная версия Delphi – Architect. Это пакет продуктов, который содержит Delphi Enterprise и отдельно установленную версию ER/Studio Developer Edition для моделирования реляционных баз данных SQL, а также DB Power Studio Developer Edition, которая содержит инструменты для работы с базами данных SQL.
Delphi доступен как самостоятельный продукт, но его также можно использовать как часть RAD Studio. RAD Studio содержит Delphi и C++ Builder. Delphi и C++ Builder – две разные личности IDE в RAD Studio, и обе они могут быть установлены из одного и того же установщика RAD Studio в одну глубоко интегрированную среду. Оба продукта предоставляют одинаковые возможности для создания мобильных и настольных приложений для разных операционных систем из одного и того же исходного кода с использованием визуальных дизайнеров и используют одни и те же библиотеки компонентов, но различаются используемым языком программирования. Delphi использует Object Pascal, а C++ Builder использует стандарт C++.
Установка пользовательских компонентов
Delphi IDE имеет открытую архитектуру и предоставляет множество способов расширить свою функциональность с помощью дополнительных пакетов. Вы можете увидеть список установленных в данный момент пакетов в опции Installed Packages, доступной в меню Component. Наиболее типичным конструкционным блоком Delphi является Component. Технически, речь идет о применении принципов объектно-ориентированного программирования и их продвижении на один шаг вперед. С компонентами у вас есть возможность манипулировать обычными экземплярами объектов языка программирования во время разработки, прежде чем проект будет построен для данной платформы. Пакеты могут также содержать редакторы пользовательских свойств и расширение API Open Tools для самой IDE, которое может добавлять пользовательские функции в IDE, такие как дополнительные меню и окна.
Из стандартной установки Delphi по умолчанию вы получите несколько сотен уже предустановленных компонентов. В зависимости от версии Delphi и выбранных функций этот список может отличаться. Выберите опцию Installed Packages в меню Component, чтобы проверить, какие компоненты действительно установлены, как показано на следующем снимке экрана:
Существует множество дополнительных бесплатных и коммерческих пакетов компонентов, которые не установлены по умолчанию. Их можно установить с помощью встроенного диспетчера пакетов GetIt. Он доступен либо на странице приветствия, либо в меню Tools.
Object Pascal
Object Pascal – это высокоуровневый, современный и строго типизированный скомпилированный язык, который поддерживает структурированное и объектно-ориентированное программирование. Именно он и является языком программирования Delphi.
Чтобы решить проблему с помощью компьютера, вам нужно определить конечный набор действий, которые работают с определенными данными или, другими словами, определить алгоритм. Алгоритм, выраженный на языке программирования, является компьютерной программой, и его действия описываются как инструкции языка программирования
Одно или несколько действий, выполняемых над определенными данными, могут быть инкапсулированы в язык Object Pascal в виде подпрограммы или класса. В Object Pascal подпрограммы называются функциями. Если функция не возвращает значение, она называется процедурой. Классы являются краеугольным камнем объектно-ориентированного программирования, которое является наиболее важным подходом к созданию приложений в Object Pascal. Объекты группируют данные вместе с операциями над этими данными, обеспечивая инкапсуляцию и возможность повторного использования.
Работа компилятора заключается в обработке одного или нескольких файлов, содержащих текст программ, которые мы пишем на языке программирования, и создании двоичного файла, который может быть загружен операционной системой и выполнен. Компиляторы могут также генерировать другие типы двоичных файлов, такие как пакеты или сервисы. Файлы исходного кода – это обычные текстовые файлы, которые можно открыть в произвольном текстовом редакторе. Расширением по умолчанию файла, содержащего исходный код Object Pascal, является .pas. Когда вы устанавливаете Delphi, он регистрируется в Windows как программа по умолчанию для открытия файлов различных типов, связанных с программированием на Delphi, включая .pas, .dpr, .dpk, .dproj и некоторые другие.
Константы
Константа – это идентификатор, который обозначает значение, которое не может быть изменено. Нормальная десятичная запись используется для чисел, которые являются целыми или действительными константами. Шестнадцатеричная целочисленная константа использует знак доллара в качестве префикса. Также можно использовать инженерную нотацию, где показатель степени следует за символом E или e.
Например, строковая константа будет распечатана как Paweł's computer, как показано в следующей программе:
Object Pascal позволяет использовать константные выражения. Компилятор оценивает их во время компиляции без фактического выполнения программы.
Object Pascal позволяет встраивать управляющие символы в строки символов. Символ #, за которым следует целое число без знака в диапазоне от 0 до 255, означает символ соответствующего значения ASCII. Полезным примером этой возможности является вставка символа новой строки в строковую константу, поэтому он отображается в несколько строк. Например, посмотрите следующий фрагмент кода:
Встраивание нового управляющего символа новой строки ASCII 13 отображает сообщение в две строки. Для удобства чтения фактический символ новой строки определяется как константа.
Типы
Написание приложений в Object Pascal начинается с определения пользовательских типов. Только самые простые программы могут обойтись лишь с помощью встроенных типов. После того как вы определили свои типы, вы начинаете писать код и реализовывать алгоритмы, которые работают с вашими типами или структурами данных. Чем тщательнее разработаны ваши типы, тем более чистым и читаемым будет ваш код.
Object Pascal поставляется с множеством различных встроенных типов, которые вы можете использовать для определения своих собственных пользовательских типов. С опытом станет более очевидно, как моделировать вашу проблемную область. Если вы пишете приложение для управления оценками в школе, вы, вероятно, захотите смоделировать абстракцию школьного класса. Должна ли она быть константой, перечисляемым типом, записью или классом?
В каждой стране и на уровне образования существуют разные схемы оценок. В качестве примера давайте рассмотрим систему оценок, которая использовалась в большинстве школ СНГ: очень хорошо (5), хорошо (4), достаточно (3) и недостаточно (2). Сначала у нас может возникнуть соблазн использовать числа в качестве оценок в нашем коде. Обратитесь к следующему фрагменту кода:
Это не оптимальный дизайн. Что если наше приложение по ошибке присваивает значение переменной с отрицательным или слишком большим значением?
В этом конкретном случае было бы лучше определить школьный класс как перечислимый тип. Это сделает наш код менее подверженным ошибкам и намного более читабельным. Существует два разных способа определения перечислимого типа. Традиционно мы определяем перечисление TSchoolGrade следующим образом:
Где-то в нашем коде у нас есть переменная типа TSchoolGrade, которая может содержать только одну из четырех возможных оценок, определенных этим типом. Теперь наш код стал лучше. Префикс sg помогает нам помнить, что, например, идентификатор sgGood фактически является одним из возможных значений школьных оценок. Другая возможность – использовать перечисленные значения в полной форме. С помощью директивы компилятора SCOPEDENUMS ON/OFF мы можем принудительно использовать полную форму перечисления, как показано в следующем фрагменте кода:
Теперь нам больше не нужен префикс sg. Все зависит от вашего личного вкуса относительно того, какую форму определения перечисляемых типов использовать. Первый более компактный. Второй может быть более читабельным.
После определения типа мы будем использовать его в нашем коде, либо как отдельную переменную, либо как коллекцию. Самый базовый тип коллекции – это набор (set). Он очень мощный и недоступен на других языках программирования. Мы могли бы, например, определить набор квалификационных школьных оценок. Элементы набора заключены в квадратные скобки. Выполните следующий код:
Используя оператор in, мы можем проверить, принадлежит ли данное значение набору. Также можно использовать другие операторы для объединения наборов, вычисления их пересечений и, в общем-то, для реализации других операций теории сетов.