Программа на языке делфи. Основные понятия и определения Delphi. Алгоритмы и программы

Введение

Настоящие указания составлены с целью оказания помощи студентам для получения ими практических навыков по технологии визуального проектирования собственных приложений под Windows в среде Delphi с использованием методологии объектно-ориентированного программирования. Лабораторные работы охватывают основные этапы разработки программ под Windows.

Методические указания состоят из трех разделов. В первом разделе приводится описание основных понятий визуального проектирования приложений и среды программирования Delphi.Во втором разделе сформулированы общие требования по выполнению и оформлению результатов лабораторных работ. Третий раздел состоит из описаний конкретных лабораторных работ с необходимыми краткими теоретическими сведениями, примерами составления программ, рекомендациями по выполнению работ, вариантами заданий на выполнение работ и вопросами для самопроверки. Для выполнения работы студенты должны ознакомиться с языком Object Pascal и средой визуального программирования Delphi .

Основные понятия и определения Delphi

delphi программный массив визуальный

Экран после запуска Delphi содержит четыре окна: главное, формы, инспектора объектов и редактора кода, которое почти полностью закрыто окном формы.

В главном окне находиться меню команд Delphi, панель инструментов и палитра компонентов.

Окно формы, его заголовок FORM1 представляет собой заготовку, макет одного из объектов разрабатываемого приложения.

Окно инспектора объектов, его заголовок Object Inspector позволяет видеть и менять свойства объектов проекта. После запуска Delphi в этом окне отображаются свойства формы FORM1.

Окно редактора кода предназначено для создания процедур обработки событий. В Delphi кодом называется текст программы.

Объекты или элементы управления это компоненты формы, из которых создается проект, кстати, сама форма, как указывалось выше, также является объектом. Объектами могут быть - командные кнопки, поля ввода текстовой информации, переключатели, метки, линейки прокрутки и окна.

Свойствами объекта являются, например, размер текста заголовка, цвет фона формы или текст на командной кнопке и многое другое, полный перечень свойств можно увидеть в окне Object Inspector для выделенного объекта.

Событие - это то, что происходит во время работы созданного Вами приложения. В Delphi у каждого события есть имя, например, щелчок кнопкой мыши это событие OnClick, двойной щелчок - событие OnDblClick .

Проект - это набор файлов (программных единиц - модулей), используя которые компилятор создает файл исполняемой программы. Один из файлов проекта, который называется файлом проекта и имеет расширение dpr, содержит общее описание проекта. Файл проекта является главным модулем приложения, который формируется Delphi. Помимо главного модуля, проект включает в себя один или более модулей (Unit) . Файлы модулей проекта(Unit) содержат тексты процедур, функций, описание типов, а также всю информацию для создания исполняемой программы, и имеют расширение pas. Процедура - эта группа операторов в языке программирования, позволяющая выполнить конкретные действия (решить задачу). Так или иначе, весь составленный инициализации Вами исполняемый код обязательно помещается в какую-нибудь процедуру.

Модуль (Unit) состоит из трех разделов: интерфейса (начинается со слова interface), реализации(начинается со слова implementetion) и. Ниже приводится структура модуля.

unit ИмяМодуля;

{ Здесь находятся описание процедур и функций этого модуля, которые могут использоваться другими модулями}

{Здесь находятся объявления глобальных констант модуля, которые могут использоваться процедурами и функциями модуля}

{Здесь находятся объявления глобальных типов модуля, которые могут использоваться процедурами и функциями модуля}

{Здесь находятся объявления глобальных переменных модуля, которые могут использоваться процедурами и функциями модуля}

{Здесь находятся описание процедур и функций модуля}

{Здесь находятся инструкции раздела инициализации переменных модуля}

Таким образом, раздел интерфейса сообщает компилятору, какая часть модуля является доступной для других модулей программы. Раздел реализации начинается директивой {$R*.DFM}, указывающей компилятору, что в процессе генерации выполняемого файла надо использовать описание формы. описание формы находится в файле с расширением dfm, имя которого совпадает с именем модуля. За директивой {$R*.DFM} следуют процедуры обработки событий для формы и ее компонентов. Сюда же программист может поместить разработанные процедуры и функции. Если раздел инициализации не содержит инструкций, то слово begin не указывается.

Delphi является языком программирования и средой разработки программного обеспечения. Он разработан Borland (ранее известный как Inprise). Язык программирования Делфи, ранее известный как Object Pascal (Pascal с объектно-ориентированными расширениями), первоначально ориентированный только на Microsoft Windows, но в настоящее время позволяет строить собственные приложения для Linux и Microsoft. NET Framework, и других (см. ниже). Программирование для начинающих.
Наиболее популярное использование - разработка настольных приложений и баз данных предприятия, а как инструмент язык программирования Делфи может использоваться и для большинства типов развивающихся проектов. Это был один из первых языков, который стал известным как инструмент RAD (быстрая разработка приложений), когда вышел в 1995 году. Delphi 2, вышедший год спустя, поддерживал 32-разрядную среду Windows , и а только несколько лет спустя вышли C, C + + Builder. В 2001 году стала доступна версия под ОС Linux известная как Kylix (классическая греческая урна). Каждый год выходило по одной новой версии, в 2002 году продукт стал известен как Delphi 7 Studio, язык стал официально называться язык программирования Delphi, а не Object Pascal, а также была добавлена поддержка Linux (через Kylix) и. NET (через Предварительный компилятор). Полная поддержка. NET запланирована на предстоящий Delphi 8. Программирование для чайников.
Основные компоненты Delphi и Kylix: язык Delphi (ранее официально известный как языка Object Pascal), ВК / CLX (Visual Component Library), сильные связи с базами данных, в сочетании с мощной IDE (Integrated Development Environment) и дополнительными инструментами поддержки.
Замечательные особенности языка Delphi включают:

  • Прозрачная обработка объектов через ссылки или указатели
  • Свойства как часть языка, вкупе с функциями Get и Set, которые являются прозрачной инкапсуляцией доступа к членам полям
  • Свойства индекса и свойствами по умолчанию, которые обеспечивают доступ к коллекции удобным и прозрачным способом
  • Делегаты или по-другому методы указателей безопасного типа, которые используются для приведения в действие события вызванных компонентами
  • Делегирование реализации интерфейса в поле или свойство класса
  • Простота внедрения обработчики Windows сообщение, отметь метод класса с числом / имя окна сообщений для обработки
  • Большинство функций, перечисленных выше, были введены в Delphi первой и адаптированы на других языках позже.

Главный архитектором Delphi, и его предшественника Turbo Pascal, был Андерс Хейлсбергом, пока он не перешел в Microsoft в 1996 году посвятил свое дело основам программирования.
Продукт Delphi распространяется в различных комплектах, каждый из которых предлагает большую функциональность по сравнению с другими:

  • Персональный
  • Профессиональный
  • Предприятие
  • Архитектор

Веские причины для использования Delphi:

  • Очень информативные и полезные сообществу новости
  • Может компилировать в один исполняемый, упрощая распределение и сокращение вопросов с разными DLL
  • VCL и сторонние компоненты, как правило, доступны с полным исходным кодом
  • Мощный и быстрый оптимизирующий компилятор
  • Из одного исходного кода получаются отличные машинные коды для разных ОС
  • Поддержка новейших технологий и стандартов

Клоны и альтернативы

Не будучи способным удовлетворить все потребности программистов, есть целый набор дополнительных средств, которые призваны расширить диапазон решаемых задач с помощью Delphi или это можно сделать с помощью вставки кода на других языках, там где Delphi и Kylix бессильны.
Эти заменители Делфи могут быть использованы в случае невозможности оплатить среду разработки, потребности в бесплатных средах разработки (например, для операционных систем и свободно распространяемого программного обеспечения или в образовательных целях). В большинстве случаев эти альтернативы используются для обучения, а так же для написания серверных компонент, для операционных систем, которые не являются широко распространенными (так было до тех пор, пока не появился Kylix для ОС Linux, котоорая используется в основной массе как ОС для серверов). .
Перечислим некоторые:

  • Free Pascal - замена, которая выпускается в виде компилятора, запускаемого из командной строки. Данная разработка основана на совместимости с основным набором функций как Turbo Pascal, так и Delphi диалектов. Особенности Delphi версий выше 4 реализованы и работают. Работает на большинстве x86 операционных систем, включая Win32, Dos , Linux, BSD и Novell Netware. Поддержка других операционных систем на m68k и PowerPC , статус которых до сих пор меняется очень быстро, не производится. Работа по переносу на платформу SPARC началась.
  • GNU Pascal (отдельно распространяемых часть GNU Compiler Collection) хотя формально не нацелена на диалекты Borland Паскаль, но содержит совместимость с Borland Pascal, и постепенно впитывает особенности языка Delphi, хотя и не подходит для перекомпиляции больших объемов кода Delphi. Это самый плодовитый компилятор с точки зрения операционных систем и процессоров, хотя, и заслуживает упоминания только в качестве последнего варианта.
  • Существует инструмент под названием Pocket студия, которая направлена на компиляцию урезанного кода Delphi для КПК.
  • Virtual Pascal - компилятор, x86 32-разрядный Turbo Pascal и Delphi, совместим в основном с OS/2 и Windows, хотя разработан DOS Extender и экспериментальный Linux кросс-компилятор. Компилятор застрял на уровне около Delphi версии 2, и сайт не претерпел существенных изменений в течение двух лет, но в качестве альтернативы это еще один из лучшимх, с великолепным IDE и отладчиком, хотя Free Pascal тоже не дремлет.
  • BloodShed распространяет очень хороший графический редактор Win32 (хотя и не RAD) как интерфейс для GNU Pascal и Free Pascal.
  • Lazarus усилия направлены на создание среды разработки для Free Pascal. Хотя порт GTK становится полезной для написания небольших приложений, таких как средства конфигурирования, то win32 порт все еще нуждается в значительной доработке.
  • InnerFuse является переводчиком Delphi для встраивания в приложения. Ходят слухи, что работать с несколькими версиями Делфи.
  • WDOSX является Win32 API эмуляции DOS Extender, который может быть использован для получения консольных приложейний написанных на Delphi, работающих на обычной DOS.

Как стать профессионалом по разработке сайтов и начать зарабатывать? Недорогие видео курсы с ознакомительным введением.

Начнем наше ознакомление с программированием в среде Delphi с таких вопросов, как суть собственно программирования, его основы и подвиды. Также мы рассмотрим, что представляет собой среда Delphi, чем она отличается от других, и какой путь был ей пройден с момента появления 10 лет назад.

Что такое программирование

Итак, прежде всего, уясним для себя, что же понимают под термином программирования? Сейчас многие называют себя программистами, не зная даже о том, что это такое: на проверку оказывается, что человек, изменивший пару строк кода в HTML-документе уже готов считать себя программистом. Но на самом деле, работая с HTML (именно с самим HTML), стать программистом нельзя, поскольку HTML, что явствует из названия (Hypertext Markup Language - язык разметки гипертекста), языком программирования не является.

В результате мы имеем первое условие: для изучения программирования нужен какой-либо язык программирования. В нашем случае это будет язык Object Pascal последних версий (14.0 или 15.0).

Далее, допустим кто-то, называющий себя программистом, не только правил пару строк кода HTML, но и видел Delphi, и даже нарисовал в нем форму с 2-3 кнопками и текстовым полем. Это ли программист? Скорее всего, тоже нет. Дело в том, что под визуальной оболочкой, на самом деле, скрывается сложнейший механизм, обеспечивающий взаимодействия элементов управления (тех же кнопок) с пользователем и операционной системой - с одной стороны, и позволяющий выполнять практически любые вычислительные действия - с другой. При всем этом следует уметь делать главное - составлять алгоритмы поведения программы - будь то ее реакция на нажатие той или иной кнопки, или создание функции для решения сложного математического уравнения.

Так вот, программирование в, своем современном понятии, включает в себя знание принципов работы операционной системы, взаимодействия ее компонентов и внутреннего устройства. Ну и при этом сохраняется классическое определение программирования, а именно - умение составлять алгоритмы, математические и поведения программы. Все это реализуется в контексте какого-либо языка программирования, например, того же Object Pascal из Delphi.

Что такое Delphi

Теперь мы знаем, что программирование - есть составление алгоритмов плюс использование языка программирования. Но если изучаемым нами языком является Object Pascal, то что такое Delphi? Ответ таков: Delphi - это RAD, или Rapid Application Development - среда быстрой разработки приложений. Иначе говоря, Delphi включает в себя не только все средства для работы с языком Object Pascal (тем более, что начиная с версии, 2005 в Delphi имеется поддержка других языков программирования, в частности, C#), но и ряд дополнительных средств, призванных максимально ускорить и упростить создание программ. К таковым средствам относятся, прежде всего, визуальный редактор форм, при помощи которого за считанные минуты и без лишних усилий можно создать полноценно выглядящую программу, а так же прочие составные части визуальной составляющей разработки программ.

В результате время разработки программ существенно сокращается, поскольку отпадает необходимость просчитывать вручную расположение каждого элемента пользовательского интерфейса.

Вкупе с развитыми средствами для написания и отладки кода - специализированным текстовым редактором, оптимизирующим компилятором и отладчиком, Delphi являет собой средство быстрой разработки приложений. При этом основой Delphi для конечного пользователя является IDE - Integrated Development Environment (интегрированная среда разработки), которая объединяет в себе редактор кода и средства визуальной разработки, а также связывает это с компилятором, средствами разработки баз данных и прочими составными частями Delphi.

Delphi и другие

Разумеется, Delphi - не единственная среда быстрой разработки приложений. Существуют и другие RAD, столь же удобные для визуальной разработки программ, например, Visual Basic. Но BASIC известен как не самый мощный и удобный язык программирования, кроме того, программы на нем отличаются сравнительно невысоким быстродействием.

Вместе с тем, имеются и не менее мощные, по сравнению с Object Pascal, языки программирования, имеющие свои RAD - прежде всего, это язык C++ вместе с таким наиболее известными средствами разработки, как Visual C++ и C++ Builder. Однако C++ не в лучшую сторону отличается от Object Pascal с точки зрения простоты изучения. Кроме того, сборка и отладка программ на C++ происходит сравнительно медленно, хотя готовые программы выполняются так же быстро, как и созданные при помощи Delphi.

ПРИМЕЧАНИЕ
Отметим, что в момент своего появления в 1995 году, Delphi была действительно уникальной средой, объединяющей в себе визуальное программирование с оптимизирующим компилятором и средствами для работы с базами данных.

В результате мы получаем практически идеальный продукт для быстрой разработки программ: с одной стороны простота и удобство, сравнимые с Visual Basic, а с другой - мощь, скорость и гибкость, характерные для C++.

Здесь следует отметить, что используемый в Delphi язык Object Pascal имеет мало общего со своим прародителем - языком программирования Pascal, который, возможно, вы изучали в школе или в ВУЗе. Прежде всего, в Delphi применяется чистая объектно-ориентированная модель программирования, в то время как Pascal был обычным процедурным языком. В чем же суть отличий процедурного программирования от объектно-ориентированного? Вот этот вопрос мы и обсудим в следующих двух параграфах.

Процедурное программирование и алгоритмы

Практически все современные языки программирования являются процедурными по своей сути. Это означает, что каждая программа состоит из набора процедур, каждая из которых решает ту или иную задачу, при этом одна процедура может вызывать любую другую, в том числе и саму себя (последнее, т.е. вызов процедурой самой себя, называется рекурсией). Собственно программа составляется на основе алгоритмов, причем достаточно всего трех их разновидностей - выбора (развилки), повтора (цикла) и перехода. Впрочем, последний тип на практике практически не используется ввиду своей дурной репутации (речь о GOTO - некогда любимом, от безысходности, операторе BASIC -программистов).

Давайте рассмотрим простейший алгоритм - для игры "угадай число". Логика его работы состоит в том, что требуется проверить, является ли число большим или меньшим, чем загаданное, и если это так, ты вывести соответствующую подсказку, а если оно не больше и не меньше (т.е. совпадает) - то игра заканчивается. Блок-схема такого алгоритма будет состоять из 2 ветвлений (рис. 1.1).

Рис. 1.1. Блок-схема простого алгоритма

Первым делом здесь у пользователя запрашивается число A, которое дважды сравнивается с предварительно заданным числом B. Сначала проверяется, не является ли число A больше, чем B, и если да, то программа сообщает, что произошел "перелет", и возвращается на точку ввода числа. Если число не больше, то происходит второе сравнение - на то, не является ли A меньше B. Если это так, то выводится сообщение о том, что число меньше ("недолет") и, опять-таки, происходит возвращение к началу. Но если число A не меньше числа B, то, учитывая тот факт, что на данный момент уже известно, что оно и не больше, следовательно, оно равно числу B, и программа завершает свою работу. При этом она может вывести поздравление пользователя с тем, что он угадал число.

Данный алгоритм может быть частью другого алгоритма. Например, здесь не предусмотрена генерация самого числа, которое следует отгадать. Так же отсутствует возможность повторной игры. Чтобы исправить эту ситуацию, рассмотрим блок-схему алгоритма, управляющего выполнением программы в целом (рис. 1.2).


Рис. 1.2. Блок-схема управления программой

В начале выполнения генерируется новое число, которое будет отгадывать пользователь. Затем идет собственно блок угадывания, уже рассмотренный нами (см. рис. 1.1), - здесь он представлен в виде одного простого модуля, поскольку на ход выполнения программы в целом не влияет. По завершению этого блока мы имеем единственное ветвление - в зависимости от того, что ответит пользователь на предложение повторить игру. Так, если ответ будет положительным, то программа должна будет перейти к началу, т.е. к генерации нового числа. Если же пользователь отказывается, то работа программы должна быть завершена.

Конкретная реализация того или иного алгоритма зависит от применяемого языка программирования, а так же от предпочтений создателя программы, поскольку, как правило, одну и ту же конструкцию можно решить, используя несколько различных методов. Например, для возврата к какой-либо точке, обозначенной на блок-схеме, можно использовать как циклы, так и операторы безусловного перехода. Ну а сами блоки могут выноситься в отдельные процедуры и вызываться в качестве подпрограмм. Единственной общей чертой является условный оператор, отвечающий за развилку - практически во всех языках, и Pascal тут не исключение, он называется IF. Впрочем, с операторами Object Pascal мы еще успеем ознакомиться.

Об объектно-ориентированном программировании

Если выбор, повтор и переход - краеугольные основы любого процедурного языка программирования, то для объектно-ориентированного программирования важны такие понятия, как инкапсуляция, наследование и полиморфизм. Рассмотрим эти понятия, без которых ни один поддерживающий объекты язык не может называться объектно-ориентированным, подробнее.

ПРИМЕЧАНИЕ
Под термином "объект" в программировании понимают некий сложный тип данных, к которому могут быть привязаны уникальные для данного типа свойства, а в случае ООП - также и методы.

Инкапсуляция представляет собой объединение данных и обрабатывающих их подпрограмм - методов - внутри одного объекта, называемого в ООП "классом". Это означает, что в классе инкапсулируется все необходимое для работы с тем или иным объектом.

Наследование - это еще одна важная составная часть ООП. Под наследованием понимают возможность создания типа (объекта), базирующегося на определении другого объекта. При этом все свойства и методы родительского объекта, могут быть унаследованы потомком. К примеру, если у нас есть объект "машина", то на его основе можно создать другой объект, скажем, "трамвай", который унаследует все его свойства, и получит вдобавок к ним какие-либо собственные. В свою очередь, этот объект так же сможет иметь своих потомков, и т.д. В результате образуется дерево объектов, называемое иерархией классов.

В Object Pascal все классы происходят от единого предка - класса TObject, который реализует такие общие для всех классов действия над объектом, как создание и удаление.

СОВЕТ
В поставку коробочных версий Delphi включен плакат, на котором изображено дерево классов для всех основных компонент Delphi. Поэтому если вы - счастливый обладатель лицензионного продукта, то можете наглядно изучать устройство этой системы, разместив этот плакат на своем рабочем месте.

Наконец, третий кит, на котором стоит ООП - это полиморфизм, или возможность создавать в рамках родственных объектов одноименные свойства и методы, которые будут отличаться по своей сути. Скажем, у нас уже есть классы "машина" и "трамвай", и для обоих определено свойство "мотор", но если для машины тип мотора будет объектом одного типа, то для трамвая - совсем другого.

Еще одна важная составная деталь, характерная для ООП - это скрытие, которое позволяет делать невидимым ряд свойств объектов. Иными словами, если у нас может быть определен объект типа "машина", для которого, в свою очередь, определены такие свойства, как шасси, мотор и колеса. Так вот, если мотор и колеса, можно сделать видимыми (и доступными) повсеместно, где только доступен сам класс "машина", то шасси - нет. Соответственно доступ к такому свойству можно будет получить только в тех частях программы, в которых производится описание самого объекта "машина". Такие свойства называют защищенными.

Подробнее об объектно-ориентированном программировании будет рассказано во второй части настоящего издания.

Визуальное программирование и Delphi

Итак, Delphi являет собой среду, работающую с объектно-ориентированным структурным языком программирования Object Pascal. В дополнение к этому, Delphi является еще и средой визуальной разработки. Иначе говоря, уже в процессе создания программы видно, как она будет выглядеть во время выполнения. Визуальное программирование в разы сокращает время, необходимое на создание пользовательского интерфейса для приложений Windows. До появления визуальных средств разработки, программирование под Windows было сопряжено с большими трудностями, поскольку требовалось практически вслепую вычислять расположение каждого элемента управления в окне приложения, что приводило к множеству ошибок (рис. 1.3).


Рис. 1.3. Классический и визуальный подходы к созданию интерфейса

То, что Delphi является визуальной средой разработки, наносит свой отпечаток и на язык программирования. В частности, в нем предусмотрены специальные средства для того, чтобы определенные свойства классов могли быть доступны уже на этапе разработки программы, а не только во время выполнения. Но самой важной частью всего этого великолепия является библиотека классов - VCL (Visual Component Library). Именно VCL скрывает все острые углы внутренностей Windows, и позволяет легко создавать приложения, не вступая в затяжную войну с обработкой системных сообщений, обратных вызовов, дескрипторов и указателей.

При всем этом, разумеется, никто не запрещает вам при надобности использовать функции Windows напрямую, в обход VCL. Впрочем, такое может понадобиться весьма нечасто, поэтому для начинающего программиста на Delphi, для написания Windows-приложений ничего, кроме VCL, не требуется.

Визуальные компоненты мы детально рассмотрим в 3-й части этой книги.

Версии Delphi и их отличия

В завершение вводной части рассмотрим различия между версиями Delphi, попутно изучив историю развития этой замечательной среды разработки.

Delphi 1 . Вышедший незадолго до появления Windows 95, Delphi 1.0 был первым инструментом разработки приложений Windows (3.1), объединившим в себе оптимизирующий компилятор, визуальную среду разработки и мощные средства для работы с базами данных. Для языка Pascal это стало настоящим перевоплощением - он стал Object Pascal.

Delphi 2 . Вышедшая через год 2-я версия Delphi предлагала все то же, но уже для 32-разряных версий Windows (95/NT), опять-таки став первым средством, сочетающим 32-битный компилятор, средства для работы с БД и визуальную среду разработки, поддерживающую OLE (а после выхода обновленной Delphi 2.01 - и ActiveX). Язык так же изменился, став ориентированным на 32-разрядное применение.

Delphi 3 . Дальнейшее совершенствование Delphi по всем направлениям привело к выходу 3-й версии, имевшей расширенный набор инструментов для создания приложений благодаря поддержке COM и ActiveX. В этой версии также впервые был сделан акцент на возможности создания приложений для Интернета, а так же появился нетипизированный тип данных - variant.

Delphi 4 . Еще одна ключевая веха развития. В этой версии было введено много нового и полезного для упрощения разработки приложений, включая новую среду с динамическими подсказками и т.д. Была усовершенствована модель работы с компонентами (VCL), появилась возможность быстрого использования таких технологий, как MIDAS, DCOM и CORBA. В этой версии так же был усовершенствован язык Object Pascal: появились новые черты, свойственные современному ООП, были введены новые типы данных, включая 64-битные.

Delphi 5 . Изменений в Delphi 4 было так много, что, к сожалению, не обошлось без досадных накладок и ошибок. Результатом был выпуск 3-х пакетов обновлений (наши пираты продавали их под вывесками Delphi 4.1, 4.2 и 4.3). Но самым полным и правильным пакетом обновлений следует считать Delphi 5 - в этой версии было доведено до ума все то, что было начато в Delphi 4.

Delphi 6 . С выходом шестой версии Borland провозгласила новую, кросс-платформенную эпоху в Delphi, параллельно выпустив версию Delphi для ОС Linux (Kylix 1.0). Теперь при создании приложения можно было выбирать его тип - для Windows, или же универсальное. Соответственно, к библиотеке VCL добавилась библиотека CLX, совместимая как с Windows, так и с Linux. Кроме того, в 6-й версии наконец-то появились "родные", а не чужеродные ActiveX, компоненты для работы с Интернетом, причем сразу в обоих вариантах - и для VCL и для CLX. Начиная с этой версии, сам язык программирования Object Pascal официально называется Delphi.

Delphi 7 . Дальнейшее развитие Delphi 6, улучшенная библиотека CLX и новая корреспондирующая версия среды разработки под ОС Linux - Kylix 3. Вместе с тем, начиная с Delphi 7, Borland озаботилась вопросом совместимости с еще одной платформой - Microsoft .NET, для чего некоторые изменения были внесены как в VCL, так и в язык (и, соответственно, в компилятор).

Delphi 8 . Первая версия Delphi, ориентированная на работу с платформой Microsoft.NET. В этой версии разработчики рискнули изменить интерфейс среды, сделав его похожим на продукцию Microsoft - нового крупного акционера Borland. Поддержка, соответственно, была Kylix прекращена.

Delphi 2005 . Менее чем через год после выхода Delphi 8, появилась новая версия, в которой спешно вернули возможность работать в классическом стиле IDE при разработке приложений для Windows. Вместе с тем, Delphi 2005, в случае разработки приложений специально для платформы NET, позволяет работать не только с языком Delphi, но и с C#. При этом в сам язык Delphi были введены такие новшества, как оператор for…in и встраиваемые процедуры и функции.

Delphi 2006 . Последняя версия Дельфи, выпущенная фирмой Borland. Так же была выпущена облегченная версия - Turbo Delphi . Дальше началось странствие по другим разработчикам.

Delphi 2007 . Версия, выпущенная CodeGear. Добавлена поддержка интерфейса Aero для Windows Vista.

Delphi 2009 . Версия, выпущенная Embarcodero. Реализована поддержка Unicode в VCL и RTL, заменены обращения ко всем функциям Windows API на аналоги в Unicode, добавлены обобщенные типы и анонимные методы.

Delphi 2010 . Поддержка Windows 7, компоненты для работы с касаниями и жестами, компоненты dbExpress теперь официально поддерживает Firebird.

Delphi XE (Delphi 2011) . Добавлена поддержка для облачных вычислений.

Сайт:

Delphi (Де́лфи, произносится /ˈdɛlˌfi:/ ) - императивный , структурированный , объектно-ориентированный язык программирования , диалект Object Pascal . Начиная со среды разработки Delphi 7.0 , в официальных документах Borland стала использовать название Delphi для обозначения языка Object Pascal . Начиная с 2007 года уже язык Delphi (производный от Object Pascal) начал жить своей самостоятельной жизнью и претерпевал различные изменения, связанные с современными тенденциями (например, с развитием платформы.NET) развития языков программирования: появились class helpers, перегрузки операторов и другое.

Целевая платформа

Изначально среда разработки была предназначена исключительно для разработки приложений Microsoft Windows , затем был реализован также для платформ Linux (как Kylix), однако после выпуска в 2002 году Kylix 3 его разработка была прекращена, и, вскоре после этого, было объявлено о поддержке Microsoft .NET .

Реализация среды разработки проектом Lazarus (Free Pascal , компиляция в режиме совместимости с Delphi) позволяет использовать его для создания приложений на Delphi для таких платформ, как Linux, Mac OS X и Windows CE .

Также предпринимались попытки использования языка в проектах GNU (например, Notepad GNU) и написания компилятора для GCC .

История языка

Object Pascal - результат развития языка Турбо Паскаль , который, в свою очередь, развился из языка Паскаль . Паскаль был полностью процедурным языком , Турбо Паскаль, начиная с версии 5.5, добавил в Паскаль объектно-ориентированные свойства, а в Object Pascal - динамическую идентификацию типа данных с возможностью доступа к метаданным классов (то есть к описанию классов и их членов) в компилируемом коде, также называемом интроспекцией - данная технология получила обозначение RTTI . Так как все классы наследуют функции базового класса TObject, то любой указатель на объект можно преобразовать к нему, после чего воспользоваться методом ClassType и функцией TypeInfo, которые и обеспечат интроспекцию.

Также отличительным свойством Object Pascal от С++ является то, что объекты по умолчанию располагаются в динамической памяти. Однако можно переопределить виртуальные методы NewInstance и FreeInstance класса TObject. Таким образом, абсолютно любой класс может осуществить «желание» «где хочу - там и буду лежать». Соответственно организуется и «многокучность».

Object Pascal (Delphi) является результатом функционального расширения Turbo Pascal .

Delphi оказал огромное влияние на создание концепции языка для платформы .NET . Многие его элементы и концептуальные решения вошли в состав С#. Одной из причин называют переход Андерса Хейлсберга , одного из ведущих разработчиков Дельфи, из компании Borland Ltd. в Microsoft Corp.

  • Версия 8 способна генерировать байт-код исключительно для платформы.NET. Это первая среда, ориентированная на разработку мультиязычных приложений (лишь для платформы.NET);
  • Последующие версии (обозначаемые годами выхода, а не порядковыми номерами, как это было ранее) могут создавать как приложения Win32, так и байт-код для платформы.NET.

Однако в ноябре того же года было принято решение отказаться от продажи IDE бизнеса. Тем не менее, разработкой IDE продуктов теперь будет заниматься новая компания - CodeGear, которая будет финансово полностью подконтрольна Borland.

В августе 2006 года Borland выпустил облегченную версию RAD Studio под именем Turbo: Turbo Delphi (для Win32 и.NET), Turbo C#, Turbo C++.

В марте 2008 года было объявлено о прекращении развития этой линейки продуктов.

В марте 2007 года CodeGear порадовала пользователей обновленной линейкой продуктов Delphi 2007 for Win32 и выходом совершенно нового продукта Delphi 2007 for PHP.

В июне 2007 года CodeGear представила свои планы на будущее, то есть опубликовала так называемый roadmap .

Embarcadero RAD Studio 2010

  • По умолчанию полная поддержка Юникода во всех частях языка, VCL и RTL; замена обращений ко всем функциям Windows API на юникодные аналоги (то есть MessageBox вызывает MessageBoxW, а не MessageBoxA).
  • Обобщённые типы , они же generics .
  • Новая директива компилятора $POINTERMATH .
  • Функция Exit теперь может принимать параметры в соответствии с типом функции.

Компиляторы

  • Embarcadero Delphi (ранее наз. CodeGear Delphi и Borland Delphi) - наверное, самый известный компилятор, который является последователем Borland Pascal и Turbo Pascal . Используется Win16 (Delphi 1), Win32 (Delphi 2 и позже), Win64 (Delphi 16 (XE2) и позже), а также .NET 1.x, 2.0 (Delphi 8, Delphi 2005-Delphi 2007). Поддержка.NET, впоследствии выделена в отдельный продукт, известный как Oxygene.
  • Free Pascal (FPC) - свободный компилятор Оbject Pascal, который поддерживает различные диалекты Паскаля, включая Turbo Pascal , Delphi и собственные диалекты. На текущий момент, FPC может генерировать код для x86 , x86-64 , PowerPC , SPARC и процессоров ARM , а также для различных операционных систем, в том числе для Microsoft Windows , Linux , FreeBSD , Mac OS . Существует несколько сред разработки программного обеспечения для FPC (один из самых известных представителей - Lazarus).
  • GNU Pascal (отдельно разработанная версия из GCC). Не ставит целью продолжение серии диалектов Delphi, как составляющей Паскаля, но тем не менее содержит режим совместимости Borland Pascal, и очень медленно приспосабливает компоненты языка Delphi. Не подходит для компиляции больших проектов, содержащих код Delphi, но стоит отметить, что его поддерживают большинство операционных систем и архитектур.
  • Oxygene (ранее известен как Chrome ) - компилятор Object Pascal, который интегрирован в Microsoft Visual Studio . Также доступный в виде компилятора с вольной командной строкой CLI . Использует.NET и моно платформы. В настоящий момент продаётся под маркой Embarcadero Delphi Prism.
  • MIDletPascal - язык программирования с Delphi-подобным синтаксисом, и одноименный компилятор, который преобразует исходный код в компактный и быстрый байт-код Java .
  • PocketStudio - основанная на Паскале, IDE для Palm OS .
  • Virtual Pascal - Бесплатный компилятор и текстовая IDE для Win32, OS/2 и Линукса. На тот момент очень быстрый и весьма совместимый (частично поддерживаются конструкции Delphi 5). Внешне очень похож на текстовую среду Borland Pascal 7, хотя отсутствует совместимая с ним графика, например. Однако разработка окончилась в 2004 году, а исходники открыты не были. С тех пор FPC ушёл намного вперед и в целом для программирования лучше он. Тем не менее, VP остаётся очень неплохим вариантом быстрой замены ещё более устаревших версий Borland Pascal для школы/института, учитывая родную работу в Win32 без проблем с русскими кодировками.

Синтаксис языка

Операторы

Список операторов через пробел: := + - * / div mod not and or with xor shl shr ^ = <> >= <= < > @ in is as

Выражения

Выражения в Object Pascal (Delphi) бывают арифметическими, логическими и строковыми.

Основные логические выражения:
Логические выражения в основном употребляются в условных операторах. К логическим выражениям относятся такие операции как:

  • not - «НЕ», отрицание логического выражения (NOT <логическое_выражение>)
  • and - «И», умножение (пересечение) логических выражений (<логическое_выражение1> AND <логическое_выражение2>)
  • or - «ИЛИ», объединение логических выражений (<логическое_выражение1> OR <логическое_выражение2>)
  • xor - «Исключающее ИЛИ», отрицание ИЛИ, все что не попадает под ИЛИ (<логическое_выражение1> XOR <логическое_выражение2>)

Типы данных

Обрабатываемые в программе данные подразделяются на переменные, константы и литералы. Константы представляют собой данные, значения которых установлены в разделе объявления констант и не изменяются в процессе выполнения программы.

Объекты

  • Продукция Embarcadero: Embarcadero Delphi, Embarcadero C++ Builder , Borland JBuilder 1 и 2 версии.
  • Администрирование и разработка баз данных: MySQL Tools, IBExpert .
  • Инженерное программное обеспечение: Altium Designer .
  • Файловые менеджеры: Total Commander , Frigate .
  • Просмотрщики графики: FastStone Image Viewer , FuturixImager , drComRead.
  • Видео- и аудиопроигрыватели: Light Alloy , The KMPlayer , AIMP , X-Amp.
  • Программы мгновенного обмена сообщениями: QIP , R&Q , графический интерфейс Skype , The Bat! , PopTray , FeedDemon .
  • Создание музыки: FL Studio , Guitar Pro (до версии 6.0).
  • Разработка программного обеспечения: Dev-C++ , DUnit , Game Maker , Inno Setup , PyScripter.
  • Веб-разработка: Macromedia HomeSite .
  • Текстовые редакторы: BirEdit , Notepad GNU , Bred .
  • Бухучёт и налогообложение: «ПАРУС », AVARDA (до версии 6.x включительно).
  • Программы для создания анимаций : Pivot Stickfigure Animator .
  • Программы для сжатия данных : ALZip , PowerArchiver , PeaZip .
  • Компьютерные игры: Age of wonders , «Космические рейнджеры », Venom. Codename: Outbreak , Space Empires V , «Правда о девятой роте ».
  • Графические редакторы: Real Paint.

Примечания

Литература

  • Нил Дж. Рубенкинг. Язык программирования Delphi для «чайников». Введение в Borland Delphi 2006 = Delphi for Dummies. - М .: Диалектика, 2007. - 336 с. - ISBN 0-7645-0179-8
  • Хавьер Пашеку. Программирование в Borland Delphi 2006 для профессионалов = Delphi for .NET Developer’s Guide. - М .: Вильямс, 2006. - 944 с. - ISBN 0-672-32443-X
  • А. Н. Вальвачев, К. А. Сурков, Д. А. Сурков, Ю. М. Четырько. Программирование на языке Delphi. Учебное пособие . - 2005.

Ссылки

  • Страница среды программирования на сайте Embarcadero Technologies

Итак, в данной статье речь пойдет о том, как определить разрядность операционной системы Windows при программированиии на языке Delphi. Это нужно для того, чтобы например выбрать ту или иную версию драйвера - x86 (32 разрядная) или x64 (64 разрядная).

И так, приступим.

Создаем новый проект, кидаем на форму компонент Label (текстовая надпись).

Затем переходим в редактор исходного кода и в разделе с переменными var добавляем строковую переменную razr (тип данных string, т.е строка).

var Form1: TForm1;

razr: string;

После этого два раза нажимаем на форму, копируем и вставляем в нее следующий код (в процедуре создания главной формы TForm1.FormCreate), между фразами begin и end; (то есть началом и концом процедуры).

{с помощью функции Get Enviroment Variable считываем знаение переменной ProgramFiles(X86)

если система 32 разрядная, то она будет иметь пустое значение

если 64 разрядная, то она будет иметь знаение C:Program Files(x86)

т.е папка, в которую устанавливаются 32 разрядные версии программ}

razr:= GetEnvironmentVariable("ProgramFiles(x86)");

label1.Caption:= razr;

if (razr = "") then

begin

label1.Font.Color:=clRed; { Меняет цвет надписи, вы можете выбрать любой на ваш вкус, например clGreen - зеленый}

label1.Caption:= "У вас x86"; {вместо имени метки labl1 вы можете написать любое другое, например metka}

else

begin

label1.Font.Color:=clBlue; { Меняет цвет надписи, вы можете выбрать любой на ваш вкус, например clGreen - зеленый}

label1.Caption:= "У вас x64";

end;

Как же работает программа?

C помощью функции Get Enviroment Variable происходит считывание значения переменной окружения в Windows ProgramFiles(X86).

Если система 32 разрядная, то она будет иметь пустое значение.

Если 64 разрядная, то она будет иметь знаение C:Program Files(x86) т.е это папка, в которую устанавливаются 32 разрядные версии программ.

Собственно на этом всё.

Вот, что получилось у меня.

Ниже вы можете скачать архив с исходником программы, чтобы попробовать самостоятельно разобраться в ее работе.


Комментарии ()

wdfm 90

На Windows 7 x64 программа работает отлично, можно пользоваться

Edward 300

Все кто будет разводить офф топик + нецензурную брань, я буду давать бан на 1 день! Это не касается администраторов.
.php?board=18.0

Форум не за просто так я делал!

Edward 300