Язык программирования Delphi (Делфи). Основные понятия и определения Delphi Язык программирования delphi основные понятия
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 обычно ассоциируется среда разработки приложений на основе языка Object Pascal, разработанного фирмой Borland. Этот язык является наследником Turbo Pascal с объектно-ориентированными расширениями, который в свою очередь ведет свою историю от «чистого» Pascal, созданного Никлаусом Виртом в 1970 году.
Впоследствии, в 2002 году, разработчики из компании Borland официально поставили знак равенства между языками Delphi и Object Pascal.
Предыстория
Изначальный Pascal, по мнению его разработчиков, имел самый быстрый компилятор в мире. Более того, вместе с ним была впервые разработана технология создания платформенно-независимых программ, которая нашла широкое применение в таком языке, как Java.Однако его IDE, если это понятие можно применить к среде разработки того времени, функционировала только на базе операционной системы DOS.
С появлением Windows возникла необходимость в создании среды разработки ПО для этой платформы. Наиболее популярным решением для персональных Windows-компьютеров в 80-е - начале 90 годов стал компилятор и IDE Turbo Pascal фирмы Borland. Встроенный компилятор обеспечивал высокую скорость компиляции и высокое качество кода (отсюда приставка Turbo). Среда Turbo Pascal обеспечивала также отладку кода, содержала богатый набор примеров. Все эти качества на какое-то время позволили Turbo Pascal стать стандартом языка Pascal.
Вызов времени
В Windows довольно быстро начал развиваться графический интерфейс, а в IDE Turbo Pascal по-прежнему использовался DOS-подобный интерфейс. Постепенно в Microsoft поняли, что нужно двигаться в сторону «визуализации» программирования.Чтобы создать простую программу, разработчикам приходилось писать по несколько страниц кода: прописывать объемные блоки кода для меню и окон, шрифтов, очищать память, «рисовать» кнопки и т.д. Однако преимущества графического интерфейса Windows были довольно сильны, поэтому нужно было поддержать развитие операционной системы. В Microsoft понимали, что необходимо как-то облегчить жизнь разработчиков. Поэтому в 90-х годах компания запустила несколько параллельных проектов по созданию нового языка программирования и среды разработки для Windows. Первой ласточкой стал Visual Basic.
Перспективы языка Pascal в этом отношении оказались далеко не радужными. К середине 90-х годов он уже находился в довольно запущенном состоянии. Компания Borland начала дорабатывать его, но вскоре стало понятно: изменения и добавления будут настолько серьезными, что результат этой работы можно считать новым языком программирования. Для нового языка была разработана IDE с графическим интерфейсом. Новая среда программирования и язык получили общее название Delphi.
Своё имя новая система (Delphi) получила в честь древнегреческого города Дельфы. Название было выбрано неспроста: город Дельфы связан с именем бога мудрости и покровителем искусств Аполлона. Согласно легенде главное святилище Аполлона находилось именно в этом городе. Его жрицы-сивиллы изрекали пророчества желающим узнать свою судьбу.
«Имя Delphi было предложено Денни Торпом во время мозгового штурма. Мы хотели, чтобы в имени системы отразились уникальные способности продукта к работе с базами данных, и Delphi как нельзя лучше перекликается с таким заслуженным именем в этой области, как Oracle, по крайней мере для тех, кому сочетание «Дельфийский Оракул» о чем-то говорит», рассказывал руководитель исследовательской группы по разработке системы Delphi Чак Язджевски.
В России Borland Delphi появился в конце 1993 года и сразу же завоевал большую популярность.
Основные версии
Версия 1 была предназначена для разработки под 16-разрядную платформу Win16. Начиная со второй версии, была реализована возможность компиляции программы под 32-разрядную платформу Win32.
Delphi 1
В версии 3 появилась поддержка многозвенной технологии (multi-tiered) доступа к данным, что позволило создавать масштабируемые приложения (относительно слабо зависящие от сервера БД) за счет перенесения методов обработки информации (бизнес-правил) на среднее звено.
Delphi 3
Вместе с 6-й версией Delphi вышла совместимая с ним по языку и библиотекам среда Kylix, предназначенная для компиляции программ под операционную систему Linux.
Версия 8 способна генерировать байт-код исключительно для платформы.NET. Это первая среда, ориентированная на разработку мультиязычных приложений (лишь для платформы.NET). Последующие версии (обозначаемые годами выхода, а не порядковыми номерами, как это было ранее) позволили создавать как приложения Win32, так и.NET-приложения.
В Delphi 2006, появилась возможность писать приложения для.NET используя стандартную библиотеку классов.NET, VCL для.NET. Среда также позволила писать.NET-приложения на C# и Win32-приложения на C++. В Delphi 2006 также была реализована технология MDA (Model Driven Architecture) с помощью ECO (Enterprise Core Objects) версии 3.0.
За что боролись
Процесс разработки в Delphi предельно упрощен. В первую очередь это относится к созданию интерфейса, на который уходит 80% времени разработки программы. Достаточно просто перетащить нужные компоненты на поверхность Windows-окна (в Delphi оно называется формой) и настраиваете их свойства с помощью специального инструмента (Object Inspector). С его помощью можно связать события этих компонентов (нажатие на кнопку, выбор мышью элемента в списке и т.д.) с кодом его обработки.Разработчик получил в распоряжение мощные средства отладки (вплоть до пошагового выполнения команд процессора), удобную контекстную справочную систему (в том числе и по Microsoft API), средства коллективной работы над проектом.
Стало возможным создавать компоненты ActiveX без использования Microsoft IDL, расширять возможности web-сервера (скрипты на стороне сервера), практически ничего не зная об HTML, XML или ASP.
Появилась возможность создавать распределенные приложения на базе СОМ и CORBA, Интернет- и intranet-приложения, используя для доступа к данным Borland DataBase Engine, ODBC-драйверы или Microsoft ADO.
В Delphi разработчикам дали возможность создавать свои собственные компоненты, импортировать ОСХ-компоненты, создавать шаблоны проектов и мастеров, генерирующих заготовки проектов. Более того, авторы предоставили разработчику интерфейс для связи других приложений (или внешних программ) с Delphi IDE.
Перемены
Новая версия Delphi выходила каждый год, но после пятой как будто что-то произошло… Позже выяснилось, что параллельно с работой над новой версией Delphi велась разработка Delphi-подобного языка программирования для Linux. Новый продукт получил название Kylix. Delphi оказал огромное влияние на создание концепции языка C# для платформы.NET. Многие его элементы и концептуальные решения вошли в состав С#. Одной из причин называют переход Андерса Хейлсберга, одного из ведущих разработчиков Delphi, из компании Borland Ltd. в Microsoft Corp.В марте 2006 года компания Borland приняла решение о прекращении дальнейшего развития интегрированных сред разработки JBuilder, Delphi и C++Builder по причине убыточности этого направления. Была запланирована продажа IDE-сектора компании. Группа сторонников свободного программного обеспечения организовала сбор средств для покупки у Borland прав на среду разработки и компилятор. Однако в ноябре того же года было принято решение отказаться от продажи IDE бизнеса.
После этого разработкой IDE-продуктов стала заниматься новая компания - CodeGear, которая была финансово полностью подконтрольна Borland.
В марте 2007 года CodeGear порадовала пользователей обновлённой линейкой продуктов Delphi 2007 for Win32 и выходом совершенно нового продукта Delphi 2007 for PHP.
25 августа 2008 года компания Embarcadero, новый хозяин CodeGear, опубликовала пресс-релиз на Delphi for Win32 2009. В этой версии появилось множество нововведений на уровне языка:
По умолчанию полная поддержка Юникода во всех частях языка, VCL и RTL;
Замена обращений ко всем функциям Windows API на юникодные аналоги (то есть MessageBox вызывает MessageBoxW, а не MessageBoxA).
Обобщённые типы, они же generics.
Анонимные методы.
Новая директива компилятора $POINTERMATH .
Функция Exit теперь может принимать параметры в соответствии с типом функции.
В версии Delphi XE2 (2011 год) был добавлен компилятор Win64 и кросс-компиляция для операционных систем фирмы Apple (MacOS X, iOS).
Про следующую версию в своем интервью рассказывал Всеволод Леонов, российский евангелист Delphi из компании Embarcadero Technologies:
Продукт Delphi XE3 является продолжением нового поколения средств быстрой разработки семейства Delphi. Напомню, в 2011 году вышла Delphi XE2 с платформой FireMonkey, которая является альтернативой библиотеки визуальных компонентов VCL.Вышедшая в 2013 году версия Delphi XE5 обеспечила кросс-компиляцию приложений для устройств на платформе ARM/Android.Она очень похожа на VCL по методам использования и составу компонентов (кнопки, метки, поля ввода, меню и т.д.), но обладает способностью быть перенесенной на другую операционную систему. FireMonkey - кроссплатформенная. Приложения, созданные с помощью FireMonkey, могут компилироваться и под Windows, и под Mac OS. Практически в один-два «клика» мы можем пересобрать проект под принципиально другую операционную систему. Практически все демонстрационные проекты, поставляемые с Delphi на платформе FireMonkey, имеют две версии: одну под Windows, другую - под Mac OS. И для этого не нужно вносить изменения в исходный код приложения
В апреле 2016 года появилась Delphi 10.1 berlin. Нововведения:
- Компилятор и набор инструментов Object Pascal для 64-разрядной iOS;
- Поддержка универсальных приложений iOS (включение 32- и 64-разрядных двоичных файлов в пакет приложения);
- Предпросмотр FireUI на мобильных платформах;
- Предпросмотр на разных устройствах;
- Расширенные возможности работы со стилями в дизайнере единого интерфейса, в том числе универсальные стили и настройка стилей Windows;
- Диспетчер устройств FireUI позволяет изменять спецификации доступных устройств и добавлять новые устройства;
- Элементы управления Memo, ListView, Calendar, Switch для платформы iOS;
- Компонент MapView для мобильных платформ (iOS и Android), поддерживающий специализированные библиотеки интерактивных карт для каждой платформы (разработанные соответственно Apple и Google).
Ни жив, ни мертв
Известно, что Delphi перманентно «хоронят» или заявляют, что так жить нельзя. Они аргументируют тем, что система стала монструозной, неактуальной, неподдерживаемой, неудобной, какой-то еще…Но можно вспомнить, что такое мнение чаще встречается в США и Западной Европе, где этот язык бешеной популярности и не имел никогда. Там эти соображения могут быть вполне резонными во многих случаях. Но есть и другие страны, где ситуация может отличаться - страны СНГ и остальные страны Восточной Европы.
С этим согласен Всеволод Леонов:
Небольшой исторический экскурс по поводу стран Восточной Европы. Система образования бывшего СССР была очень сильна во многих аспектах, но не по части прикладного программирования. В начале 90-х как получить доступ к компьютеру, так и научиться что-то делать в современных средах разработки могли лишь те, кто имел определенную специальность.Целые факультеты «пролетали мимо» фундаментальных курсов по программированию. И наличие Turbo Pascal с низким порогом вхождения, а затем среды Delphi, позволяющей заняться самообразованием в хорошем смысле этого слова, смогли насытить ИТ-отрасль достаточно грамотными разработчиками, а также повысить общенациональный инженерный уровень создания прикладного ПО.
Таким образом, для стран бывшего соцлагеря связка Pascal/Delphi резко выдернула экономику из ИТ-небытия за счет очень простого языка программирования и среды визуальной разработки на основе готовых компонентов.
Новый герой из open source
Наиболее известной свободной реализаций языка Pascal является Free Pascal. Помимо открытости исходного кода, его основным преимуществом является мультиплатформенность, а также поддержка различных диалектов.На основе FreePascal создана свободная мультиплатформенная IDE Lazarus , позволяющая работать с проектами Delphi. Она основана на библиотеке визуальных компонентов Lazarus Component Library (LCL).
Список заявленных поддерживаемых платформ:
Windows: 98, 2k, XP, Vista, 7, 32 и 64bit;
FreeBSD/Linux: gtk 2.8 и qt4.5, 32 и 64bit;
Mac OS X: 10.4, LCL только 32bit, не-LCL могут быть 64bit.
С другой стороны, среда Delphi по мере развития действительно становилась все более громоздкой и малопригодной для обучения программированию. Кроме того, отсутствует бесплатная версия Delphi даже для академического использования. Данные факторы привели к практически полному исчезновению Delphi из сферы образования.
Delphi - что это?
В последнее время резко возрос интерес к программированию. Это связано с развитием и внедрением в повседневную жизнь информационно-коммуникационных технологий. Если человек имеет дело с компьютером, то рано или поздно у него возникает желание, а иногда и необходимость, программировать.
Среди пользователей персональных компьютеров в настоящее время наиболее популярно семейство операционных систем Windows и, естественно, что тот, кто собирается программировать, стремится писать программы, которые будут работать в этих системах.
Несколько лет назад рядовому программисту оставалось только мечтать о создании собственных программ, работающих в среде Windows, т. к. единственным средством разработки был Borland C++ for Windows, явно ориентированный на профессионалов, обладающих серьезными знаниями и опытом.
Бурное развитие вычислительной техники, потребность в эффективных средствах разработки программного обеспечения привели к появлению систем программирования, ориентированных на так называемую "быструю разработку", среди которых можно выделить Borland Delphi и Microsoft Visual Basic . В основе систем быстрой разработки (RAD-систем, Rapid Application Development - среда быстрой разработки приложений) лежит технология визуального проектирования и событийного программирования, суть которой заключается в том, что среда разработки берет на себя большую часть рутинной работы, оставляя программисту работу по конструированию диалоговых окон и функций обработки событий. Производительность программиста при использовании RAD-систем - фантастическая!
Delphi - это среда быстрой разработки, в которой в качестве языка программирования используется язык Delphi. Язык Delphi - строго типизированный объектно-ориентированный язык, в основе которого лежит хорошо знакомый программистам Object Pascal .
В настоящее время программистам стала доступна очередная версия пакета Delphi - Borland Delphi 7 Studio . Как и предыдущие версии, Borland Delphi 7 Studio позволяет создавать самые различные программы: от простейших однооконных приложений до программ управления распределенными базами. В состав пакета включены разнообразные утилиты, обеспечивающие работу с базами данных, XML-документами, создание справочной системы, решение других задач. Отличительной особенностью седьмой версии является поддержка технологии.NET.
Borland Delphi 7 Studio может работать в среде операционных систем от Windows 98 до Windows XP. Особых требований, по современным меркам, к ресурсам компьютера пакет не предъявляет: процессор должен быть типа Pentium или Celeron с тактовой частотой не ниже 166 МГц (рекомендуется Pentium II 400 МГц), оперативной памяти - 128 Мбайт (рекомендуется 256 Мбайт), достаточное количество свободного дискового пространства (для полной установки версии Enterprise необходимо приблизительно 475 Мбайт).
Об этой книге
В книге, которая посвящена программированию в конкретной среде разработки, необходим баланс между тремя линиями - языком программирования, техникой и технологией программирования (программированием как таковым) и средой разработки. Уже при первом знакомстве со средой разработки, представлении ее возможностей у автора возникает проблема: чтобы описать процесс разработки программы, объяснить, как работает программа, нужно оперировать такими терминами, как объект , событие , свойство , понимание которых на начальном этапе изучения программирования весьма проблематично. Как поступить? Сначала дать описание языка, а затем приступить к описанию среды разработки и процесса программирования в Delphi? Очевидно, что это не лучший вариант. Поэтому при изложении материала принят подход, в основу которого положен принцип соблюдения баланса между языком программирования, методами программирования и средой разработки. В начале книги некоторые понятия, без которых просто невозможно изложение материала, даются на уровне определений.
Книга, которую вы держите в руках, - это не описание языка Delphi или среды разработки Delphi 7 Studio. Это учебное пособие по программированию на языке Delphi в одноименной среде. В нем рассмотрена вся цепочка, весь процесс создания программы: от разработки диалогового окна и функций обработки событий до создания справочной системы и установочного диска.
Цель этой книги может быть сформулирована так: научить программировать в среде Delphi, т. е. создавать законченные программы различного назначения: от простых однооконных приложений до вполне профессиональных программ работы с базами данных.
Научиться программировать можно только программируя, решая конкретные задачи. При этом достигнутые в программировании успехи в значительной степени зависят от опыта. Поэтому, чтобы получить максимальную пользу от книги, вы должны работать с ней активно. Не занимайтесь просто чтением примеров, реализуйте их с помощью вашего компьютера. Не бойтесь экспериментировать - вносите изменения в программы. Чем больше вы сделаете самостоятельно, тем большему вы научитесь!
Передо мной никогда не стояла задача определения размера файла Delphi . Но после того как где-то увидел вопрос: "как определить размер файла ", мне тоже стало интересно.
Определение размера файла это то же самое, что определение роста удава в известном мультике! Сколько байтов в него поместится, таков и его размер. План такой:
- Задаём тип данных размером 1 байт. Это будет запись.
- Определяем файловую переменную этого типа.
- Начинаем с начала файла и переходим к концу. Сколько переходов - столько и байтов в файле!
procedure
type
TSize = Record
Bait: byte;
end;
var
F: File of
TSize;
Size: Integer;
begin
Size:=0;
with
OpenDialog1 do
if
Execute then
begin
AssignFile(F, FileName);
Reset(F);
while
(not
EOF(F)) do
begin
Size:=Size+1;
seek(F, Size);
end;
CloseFile(F);
end;
end;
Программа была написана за пять минут, что называется, "на коленке". Она работает, и для файлов размером до нескольких мегабайт время ожидания результата невелико, несколько секунд. Для больших файлов ожидание затягивается, и программа выглядит "зависшей". Можно изменить программу так, чтобы она считала килобайты (заменить seek(F, Size ) на seek(F, Size*1024 )). Скорость работы возрастёт в 1024 раза, и уже будет приемлемой.
Это была ещё одна демонстрация приёмов работы с файлами. А на самом деле всё гораздо проще! Размер файла возвращается встроенной функцией FileSize . А файл достаточно описать как имеющий тип byte :
procedure
TForm1.ButtonClick(Sender: TObject);
var
F: File of
byte;
Size: Integer;
begin
with
OpenDialog1 do
if
Execute then
begin
AssignFile(F, FileName);
Reset(F);
Size:=Filesize(F);
Form1.Caption:=IntToStr(Size); // Выводим информацию о размере в заголовок Формы
CloseFile(F);
end;
end;
Есть альтернативный способ работы с файлами Delphi , в котором файл рассматривается как объект. Там также есть встроенные способы определения размера файла. Также приведу процедуру целиком:
procedure
TForm1.ButtonClick(Sender: TObject);
var
F: TFileStream;
begin
with
OpenDialog1 do
if
Execute then
begin
F:=TFileStream.Create(Filename, fmOpenRead);
Caption:=IntToStr(F.Size);
F.Free;
end;
end;
Эта процедура выглядит компактнее, работает быстрее, но и требует дополнительной подготовки.