(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Переход от Visual Basic к Delphi: oбзор для программистов и разработчиков

Источник: Borland
Митчел Ц. Керман

Введение

Операционная система Linux в последнее время завоевала большую популярность. Она получила широкое признание в качестве альтернативы ОС Microsoft Windows. В результате, программисты и разработчики во всем мире занялись изучением того, как следует разрабатывать системы для конечных пользователей и заказчиков, чтобы в них максимально использовались преимущества, предоставляемые Linux. Именно для этих целей замечательно подходит Borland Delphi. В течение длительного времени Delphi считается одним из лучших инструментов разработки приложений для Windows. Вооруженные инструментарием Kylix Project ("Delphi для Linux") от Borland, разработчики, использующие Delphi, находятся на прямом пути к созданию кросс-платформенной системы Windows/Linux.

Visual Basic (VB), флагман среди продуктов корпорации Microsoft, является наиболее популярной платформой разработки приложений для ОС Windows. VB представляет собой инструментарий быстрой разработки приложений (RAD), уходящий корнями в язык BASIC. В настоящее время, более семи миллионов разработчиков во всем мире используют VB. Delphi также является RAD-инструментарием, поэтому разработчики, уже использующие Visual Basic, найдут у них много общего. Оба инструмента способствуют увеличению продуктивности работы программиста, что сокращает время разработки приложений. Основное различие, однако, заключается в том, что Delphi будет иметь версии как для Windows, так и для Linux.

Что такое Linux?

С технической точки зрения, название Linux относится только к ядру ОС. Однако в большинстве случаев (включая настоящую статью) термин Linux, обычно применяется ко всей ОС и ее пакету приложений как альтернативе Microsoft Windows или MacOS.

Linux представляет собой свободно распространяемую операционную систему, подобную Unix, первоначально созданную Линусом Торвальдсом (Linus Torvalds) при участии программистов, энтузиастов и людей, увлеченных компьютерами, во всем мире. Впервые Linux была разработана в 1991 году для 80386 микропроцессора от Intel, но сейчас она уже может работать на самых различных платформах, включая Alpha, SPARC, PowerPC, и все семейство x86 микропроцессоров от Intel.

Linux является современной ОС и поддерживает следующие свойства:

  • 32-битовая архитектура
  • Многозадачный режим с приоритетами
  • Защищенная память
  • Поддержка многопользовательского режима работы
  • Богатая сетевая поддержка, включая TCP/IP

Постоянно растущее число Web-сайтов и поставщиков услуг Internet (ISP) используют Linux в качестве серверной операционной системы. Кроме того, во всем мире Linux используется программистами, работающими на языках C и C++, в качестве одной из платформ разработки. Более того, на Linux могут работать все приложения типичного Unix-сервера, например:

  • Web-серверы (например, Apache)
  • Почтовые серверы (например, Sendmail)
  • Серверы баз данных (например, Oracle и Informix)
  • Графический оконный интерфейс и менеджеры оконного интерфейса (например, X-Windows, GNOME и KDE)
  • Наборы офисные программ (например, Applixware, StarOffice, and KOffice)

Linux распространяется по общедоступной лицензии (GPL) GNU; это означает, что каждый может бесплатно получить доступ к исходному коду Linux. Любой специалист может модифицировать этот код при условии, что все эти модификации также будут бесплатно распространяться вместе с исходным кодом.

Открытый доступ к исходному коду Linux (т.е. open source ) обеспечивает следующие преимущества:

  • Гибкость. Linux легко настраивается в соответствии с требованиями пользователя, в результате чего она может устанавливаться на самые различные платформы, от мобильных устройств до кластеров серверов.
  • Надежность. Linux была очень тщательно отлажена, а каждая новая версия этой операционной системы сразу же после появления на рынке детально изучается и тестируется тысячами программистов по всему миру.
  • Экономичность. Начальные затраты на использование Linux крайне низки по сравнению с другими операционными системами, т.к. здесь нет лицензий или каких-либо сопутствующих взносов. Пользовательская поддержка осуществляется огромным количеством программистов открытого исходного кода и коммерческих поставщиков.

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

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

  • GNU: GCC/EGCS. Инструментарий для разработки open source, который использовался для разработки ОС и среды для Linux. В качестве инструментов для open source, они бесплатно распространяются по сети Internet. Они захватили значительную долю рынка, и большая часть инструментария для Linux была написана именно на GCC/EGCS. Как и Code Warrior (см. ниже), эти инструменты не поддерживают возможности разработки RAD, Internet, работу с базами данных или графический пользовательский интерфейс (GUI). Но без этих возможностей данный инструментарий не отвечает требованиям приложений масштаба предприятия. Кроме того, разработка крупномасштабных проектов с помощью этих инструментов представляет собой сложный и трудоемкий процесс, т.к. все они используют язык C/C++.
  • Cygnus: Code Fusion for Linux. Cygnus создал Linux-совместимую интегрированную среду разработки (IDE) для GNU-инструментария, такого как GCC. Выпущенный в августе 1999, Code Fusion был одним из первых инструментов на рынке Linux. Как и у GNU-инструментария и Code Warrior, недостатком Code Fusion является отсутствие возможностей быстрой разработки, поддержки Internet, баз данных и GUI. Cygnus имеет надежную репутацию в области open source и включает в свой инструментарий новейшие оптимизации инструкций для процессоров Intel, но торговая марка компании мало известна вне круга ее постоянных пользователей.
  • Metrowerks: Code Warrior. Code Warrior был выпущен в мае 1999 и явился первым коммерческим инструментом разработки для Linux. Он позволяет осуществлять разработки для многих платформ, включая Windows, Solaris, Linux, BeOS, Palm, WinCE и Java, но при этом, занимает очень малую долю рынка для каждой из этих операционных систем. Кроме того, Code Warrior не является RAD-инструментарием и не поддерживает возможности разработки графического интерфейса пользователя и работу с базами данных.
  • Microsoft. До настоящего времени компания Microsoft ничего не сообщала о своих планах относительно возможного участия в разработке инструментария для Linux. Так как все инструменты, созданные Microsoft, направлены на разработку ОС Windows, мы считаем маловероятной возможность выхода Microsoft на рынок инструментария для Linux.

Borland/Inprise. В настоящее время Borland/Inprise предлагает один инструмент разработки для Linux, а именно, Jbuilder; вскоре на рынке появятся еще два инструмента, C++Builder и Delphi. JBuilder представляет собой среду разработки на языке Java от Borland. Сейчас на рынке имеются версии данного продукта под Windows, Linux и Solaris. JBuilder является легко расширяемым инструментом разработки приложений, работающих с базами данных, поддерживающим Java 2. C++Builder представляет собой платформу для разработки на C++, а Delphi - популярный RAD-инструментарий. C++Builder использует в качестве языка программирования C++, а Delphi - Object Pascal. Оба инструмента имеют общую IDE. Эта IDE очень интуитивна, и у нее много общего с IDE на Visual Basic. И тот, и другой инструмент имеют версии для Windows, вскоре также выйдут версии для Linux. Kylix представляет собой попытку корпорации Borland создать Linux-версии C++Builder и Delphi.

Преимущества Delphi

Теперь, когда вы познакомились с ОС Linux, ее свойствами и различными инструментальными средствами разработки для Linux, давайте поговорим о VB (Visual Basic) и Delphi. По сравнению с возможностями VB, Delphi имеет значительные преимущества, такие как:

  • Кросс-платформенная разработка. Как уже упоминалось ранее,в настоящее время имеются версии Delphi для Windows, а очень скоро появится Linux-версия. Для обеих ОС может использоваться один и тот же код, хотя присущие этим ОС отличия могут потребовать внесения в него небольших изменений.
  • Превосходная среда разработки. Delphi IDEподдерживает все функциональные возможности, которыми должен обладать RAD-инструментарий, и даже более того. Это интуитивная и простая в использовании среда разработки. Кроме того, IDE является гибкой средой, позволяющей программистам настраивать ее в соответствии со своими требованиями и предпочтениями.
  • Мощные компоненты и элементы управления. Delphi содержит библиотеку визуальных компонентов (VCL), подобную панели инструментов VB, в которую входят часто используемые компоненты и элементы управления. Количество и тип компонентов, включенных в библиотеку, зависит от используемого издания Delphi (Standard, Professional, или Enterprise). Все компоненты библиотеки написаны на языке Object Pascal. Таким образом, программисты могут модифицировать и расширять библиотеку.
  • Истинное объектно-ориентированное программирование. Хотя Microsoftзаявляет, что VB является объектно-ориентированным языком, мы (будучи образованными программистами) хорошо знаем, что он просто основан на концепции объектов. Истинное наследование объектов и полиморфизм недоступны в VB. Delphi предлагает полную модель объектов, поддерживающую инкапсуляцию, наследование и полиморфизм.
  • Указатели и динамические переменные. VB поддерживает динамические переменные, но не поддерживает переменные в виде явных указателей. Сколько раз эта проблема уже вставала перед вами при попытке разработки более эффективного кода или более ясных структур данных? "Что же, для корректного представления этих данных нам, действительно, нужна древовидная структура". Хотя более опытные VB-программисты могут преодолеть эту проблему, используя объектные переменные VB (хотя на самом деле они являются неявными указателями), многие программисты просто стараются обойти эту проблему за счет алгоритмов и эффективного использования памяти. Object Pascal, используемый Delphi, поддерживает динамические переменные и явные указатели, эффективно разрешая большинство проблем, связанных с эффективностью алгоритмов и структур данных.
  • Развивает навыки правильного программирования. Теперь мы подошли к моему "больному месту". Будучи автором учебников и преподавателем основ программирования, я считаю, что одна из основных моих задач - это научить студентов всегда объявлять свои переменные. VB (как и его предшественник, BASIC) поддерживает опцию, позволяющую не требовать явного объявления переменных. "Проверьте, пожалуйста, чтобы 'Option Explicit' всегда была в начале вашего VB-кода",- обычно, говорю я своим студентам. Возможно, вы не согласитесь со мной в этом вопросе, но попытайтесь вспомнить то время, когда вы только начали учиться программированию. Хотя данная опция является очень мощным и экономичным средством для квалифицированного программиста, она может "свести с ума" любого новичка. Явное объявление переменных способствует самоописанию имен переменных, повышает читабельность кода, обеспечивает более строгое управление требованиями к распределению памяти и помогает избежать путаницы, вызываемой переменными с одинаковыми именами, находящимися в разных частях исходного кода. Так как Object Pascal всегда требует явного объявления переменных, он поддерживает подобную практику правильного программирования. Кроме того, синтаксис языка Object Pascal способствует развитию навыков структурного и модульного программирования.
  • Правила строгого контроля типов. Как и в практике правильного программирования, мы подходим к сравнению правил контроля типов двух языков. VB - это язык со слабым контролем типов. Например, переменная типа данных Double (число с плавающей точкой с двойной точностью) может быть присвоена переменной типа Integer без отрицательных последствий (или нет?) VB автоматически преобразует значение с двойной точностью в целое значение. Такое автоматическое преобразование вызывает ряд проблем: VB округляет или усекает часть с плавающей точкой? Вы помните? Для положительных значений, VB выполняет округление: если часть с плавающей точкой меньше или равна 0.5, то VB округляет ее до ближайшего меньшего целого (по существу, усекая часть с плавающей точкой), а если часть с плавающей точкой больше или равна 0.5, то VB округляет ее до ближайшего большего целого. Конечно, мы можем избежать данной проблемы, улучшив одновременно читабельность нашего кода, если используем функцию преобразования типа данных, такую как Fix- или Int-функции VB. В отличие от VB, Object Pascal, используемый Delphi, является языком со строгим контролем типов. Значение с двойной точностью не может быть присвоено переменной целого типа без предварительного выполнения необходимого преобразования типа данных. Таким образом, проблема исчезает сама собой.

Это и другие преимущества будут детально описаны ниже.

Цель данной статьи

Данная статья предназначена для программистов и разработчиков, знакомых с VB и желающих больше узнать о Delphi. В статье дается сравнение (хотя далеко не полное) свойств продуктов и языков из этих двух пакетов. Автор статьи предполагает, что читатель имеет базовые знания о RAD, включая концепции разработки GUI, компонентные свойства и методы и событийно-управляемое программирование. Я думаю, что данную статью будет полезно прочесть как студентам и начинающим программистам, так и опытным специалистам.

Далее в статье будут сравниваться и противопоставляться VB и Delphi. Сравнение производится на четырех уровнях: IDE, язык программирования, встроенный отладчик и перенос приложений. И снова хочу напомнить, что данная статья не является полным справочным руководством; с ее помощью специалисты, уже знакомые с VB, опираясь на имеющиеся у них знания, могут пройти процесс изучения Delphi.

Интегрированная среда разработки

Разработчики VB обнаружат много знакомого в Delphi IDE. Многие меню, панели инструментов и окна в Delphi и VB имеют одинаковый дизайн и назначение. Delphi поддерживает все инструменты, необходимые для современной RAD-среды, и совершенно ясно, что разработка и организация всех этих инструментов проводилась группой разработчиков Delphi очень обдумано и предусмотрительно.

VB и Delphi имеют окна с одинаковыми именами и функциональностью. Например, оба продукта имеют окна, позволяющие модифицировать свойства элементов управления. Visual Basic является средой разработки с многодокументным интерфейсом (MDI); все его окна размещаются в основном окне приложения. Delphi, в свою очередь, является средой с однодокументным интерфейсом (SDI) с самостоятельными свободно-перемещаемыми окнами. В последующих параграфах будут представлены IDE-элементы Delphi, а также проведено их сравнение и противопоставление соответствующим окнам VB.

По умолчанию Delphi IDE состоит из следующих окон:

  • Горизонтальное меню
  • Шесть панелей инструментов:
  1. Панель инструментов Standard
  2. Панель инструментов View
  3. Панель инструментов Debug
  4. Панель инструментов Custom
  5. Панель инструментов Desktops
  6. Component Palette
  • Меньшие окна:

1. Окно Form

  1. Окно Object Inspector
  2. Окно Code Editor

4. Другие окна

На Рисунке 1 представлена структура Delphi IDE по умолчанию.

Рис. 1. Устанавливаемая по умолчанию интегрированная среда разработки Delphi

Горизонтальное меню

Как и VB, Delphi имеет горизонтальное меню. Горизонтальное меню в Delphi представляет собой типичное "выпадающее" меню. Многие опции меню доступны через комбинации "горячих клавиш", приведенные справа от "выпадающего" меню. Через горизонтальное меню разработчик может получить доступ ко всем функциональным возможностям, необходимым для создания приложения. На Рисунке 2 представлено горизонтальное меню и пример "ниспадающего" меню.

Панели инструментов

Панели инструментов содержат значки, обеспечивающие быстрый доступ к стандартным задачам. VB содержит четыре самостоятельные панели инструментов, Standard, Debug, Edit, и Form Editor, в которых задачи разделены и организованы по их назначению. По умолчанию, VB отображает только панель инструментов Standard. Delphi содержит шесть отдельных панелей инструментов; все они отображаются по умолчанию.

Рис. 2. Горизонтальное меню в Delphi с активизированным "выпадающим" меню

Как в VB, так и в Delphi вы можете отображать различные панели инструментов с помощью меню View. Или же, щелкните правой кнопкой мыши по панели инструментов Standard в VB, и на экране отобразится "всплывающее" меню со списком доступных панелей инструментов. Таким же образом вы можете открыть аналогичное "всплывающее" меню в Delphi. Кроме того, панели инструментов в VB и Delphi можно настраивать.

Панель инструментов Standard

Панель инструментов Standard (Рисунок 3) содержит значки для стандартных задач, таких как открытие, сохранение и создание Delphi-проектов и соответствующих файлов.

Рис. 3. Панель инструментов Standard

Панель инструментов View

Панель инструментовView, представленная на Рис. 4, содержит значки для создания новых форм, просмотра форм и блоков кода, а также переключения между формой и ее блоком кода. Используя эту панель, вы можете быстро переключаться между окнами в Delphi IDE.

Рис. 4. Панель инструментов View

Панель инструментов Debug

Как и в VB, панель инструментов Debug (Рисунок 5) используется для интерактивного тестирования и отладки программ. Она обеспечивает быстрый доступ к нескольким командам Delphi-отладчика, доступным из меню Run. Подобно VB-отладчику, Delphi-отладчик является утилитой периода отладки ("design-time"). Он может использоваться в среде разработки Delphi, пока вы работаете над исходным кодом.

Рис. 5. Панель инструментов Debug

Панель инструментов Custom

На Рисунке 6 представлена панель инструментов Custom. По умолчанию она содержит одну кнопку, обеспечивающую доступ к оперативной подсказке Delphi.

Рис. 6. Панель инструментов Custom

Панель инструментов Desktops

При открытии VB, все окна и панели инструментов располагаются там, где они находились перед последним закрытием VB. Программист не может создать несколько различных раскладок рабочего стола. Что же касается Delphi, то здесь программист может настроить различные установки рабочего стола, используя панель инструментов Desktops, показанную на Рисунке 7. Данная панель инструментов содержит отборочный список доступных оформлений рабочего стола и позволяет программисту загружать и сохранять различные виды оформления. В оформление рабочего стола входят: отображение, задание размеров, установка и размещение окон в IDE. Выбранное оформление будет действительно для всех проектов, а также будет использоваться при следующем запуске Delphi. В VB отсутствует аналог такой панели инструментов.

Рис. 7. Панель инструментов Desktops

Component Palette

В VB, Toolbox содержит все элементы управления ActiveX, доступные для текущего проекта. Эквивалентом Toolbox в Delphi является Component Palette, показанная на рисунке 8.

Рис. 8. Component Palette

Первое различие между VB Toolbox и Delphi Component Palette заключается в том, что Component Palette снабжено закладками. Для изменения такого оформления с использованием закладок, щелкните правой кнопкой мыши по Component Palette и выберите Properties из "всплывающего" меню. В результате, откроется окно Palette Properties, в котором вы можете настраивать Component Palette. По умолчанию, VB Toolbox не снабжено закладками. Хотя программист может настроить Toolbox и добавить в него закладки, что ускорит и упростит распознавание элементов управления, как это сделано в Delphi Component Palette.

Другим различием между двумя окнами является то, что VB Toolbox содержит только те элементы управления, которые доступны или используются текущим проектом. Component Palette, в свою очередь, всегда содержит все элементы управления. Более того, при компиляции VB-приложения, все элементы управления ActiveX не включаются в исполняемый файл в то время, как Delphi компилирует требуемые элементы управления в исполняемый файл.

Delphi также поддерживает использование элементов управления ActiveX. Если в приложении используется элемент управления ActiveX, то он "заключается" в блок кода, что позволяет устанавливать ее в Component Palette и использовать в Delphi IDE.

Меньшие окна

Устанавливаемая по умолчанию среда разработки Delphi включает в себя следующие меньшие окна: окно Form, окно Object Inspector, окно Code Editor и другие окна.

 

Окно Form

Окно Form в Delphi (Рисунок 9) выглядит и работает так же, как и окно Form в VB. Основное отличие заключается в единицах измерения. В VB используются твипсы (twips), а в Delphi пиксели.

Рис. 9. Окно Form

Как и в VB, для выравнивания расположения и размеров элементов управления используется сетка формы. Для изменения любых опций дизайнера Form, выберите Tools/Environment Options… из строки меню и щелкните левой кнопкой мыши по закладке Preferences. Под закладкой отобразится фрейм дизайнера Form, в котором вы можете изменить нижеперечисленные опции:

    • Display Grid - Регулирует, будет или нет отображаться сетка.
    • Snap To Grid - Управляет выравниванием элементов управления. Если опция активизирована, то все края элементов управления будут привязаны к точкам сетки.
    • Show Component Captions - Для невизуальных компонентов, имя компонента под соответствующим компонентом отображает в форм-дизайнере.
    • Show Designer Hints - Если данная опция активизирована, когда вы изменяете размер или перемещаете элемент управления, то размер и положение будут отображаться в виде всплывающей подсказки.
    • New Forms As Text - Указывает, в каком формате, текстовом или двоичном, будут сохраняться вновь созданные формы.
    • AutoCreate Forms - Определяет, будут ли новые формы создаваться автоматически при выполнении приложения.
    • Grid Size X, Grid Size Y - Определяет количество пикселей между точками сетки.

Как и VB, Delphi поддерживает несколько методов размещения элемента управления на форме. Первый метод: дважды щелкните мышью по требуемому элементу управления в Component Palette. В результате, в центре формы будет помещен этот элемент управления с размером, принятым по умолчанию. Второй метод: щелкните левой кнопкой мыши по требуемому элементу управления в Component Palette, а затем щелкните левой кнопкой мыши по форме. В результате, этот элемент управления принятого по умолчанию размера будет помещен на форму таким образом, что его левый верхний угол совпадет с точкой, по которой вы щелкнули мышью. И, наконец, вы можете один раз щелкнуть мышью по элементу управления в Component Palette, а затем еще раз щелкнуть по нему и перетащить на форму. Данный метод позволяет программисту непосредственно задавать размер и местоположение элемента управления.

Можно помещать на форму несколько элементов управления одного и того же типа, если выбрать элемент управления из Component Palette при нажатой клавише Shift. После выбора элемента управления вы сможете помещать на форму другие элементы управления того же типа, используя любой из двух последних методов, описанных выше.

Окно Object Inspector

На Рис. 10 изображено окно Object Inspector. Object Inspector в Delphi имеет много общего с окном Properties в VB. Оба окна отображают список доступных на время разработки свойств для текущего выбранного окна. По умолчанию, Object Inspector отображает этот список в алфавитном порядке. Если вы привыкли к просмотру свойств по категориям, то Delphi позволяет настроить отображение списка в соответствии с вашим желанием. Просто щелкните правой кнопкой мыши по окну Object Inspector и выберите Arrange/by Category из "всплывающего" меню.

Delphi поддерживает четыре базовых типа свойств объектов: Simple (простые), Enumerated (перечисляемые), Sets (наборы) и содержащие редакторы свойств. Простые свойства позволяют вводить значение свойства непосредственно с клавиатуры. Перечисляемые позволяют выбирать свойства из списка допустимых значений. Например, свойство BorderStyle формы является свойством Enumerated-типа. Свойства типа Set являются единственными свойствами, допускающими присвоение нескольких значений. Примером свойства типа Set может служить свойство Style в свойстве Font объекта. Свойство Style может принимать следующие значения: Italics, Bold, Underline, Strikeout или любую их комбинацию. Как и в VB, в Object Inspector, свойства, использующие Property Editors, отмечены справа эллипсами (три точки). Для активизации Property Editor, щелкните левой кнопкой мыши по эллипсам.

Рис. 10. Окно Object Inspector

Окно Object Inspector не только отображает все свойства, доступные для объекта на период разработки, но и имеет закладку со списком всех событий, на которые объект может реагировать. Чтобы просмотреть список всех событий, поддерживаемых для данного объекта, в VB следует перейти в Code Editor, выбрать объект из "ниспадающего" списка Object, а затем выбрать событие из "ниспадающего" списка Procedure.

В Delphi у вас может быть несколько элементов управления (или даже различных событий), вызывающих один и тот же обработчик событий. После написания обработчика событий, используйте закладку Events в окне Object Inspector, чтобы выбрать один обработчик событий для нескольких элементов управления (или различных событий). В "ниспадающем" списке окна Object Inspector будут отображены все обработчики событий, имеющие один список параметров. Как вы видите, Delphi отличается особой гибкостью и эффективностью при работе с объектами и обработчиками событий. В VB для этого потребовалось бы, чтобы один обработчик событий вызывал другой.

Окно Code Editor

Code Editor в VB открывает каждый модуль в новом окне. В Delphi Code Editor представляет собой одно окно, как показано на рис.11. Данное окно имеет закладки для каждого открытого блока или модуля. Предупреждение: Очень часто у вас будет возникать желание закрыть окно Code Editor после завершения редактирования кода. В Delphi, если вы закрываете блок, то закроется также и форма, использовавшая его. Чтобы закрыть сначала блок, а затем и форму, щелкните правой кнопкой мыши по закладке блока в Code Editor и выберите Close Page из "всплывающего" меню.

Рис. 11. Окно Code Editor

Code Editor в Delphi использует цветовое кодирование, подобное VB-редактору. Вы можете настраивать цвета, выбрав Tools/Editor Options… и нажав на закладку Colors. Затем выберите элемент, цвет которого вы собираетесь изменить. Выберите требуемый цвет, используя левую кнопку мыши для изменения цвета переднего плана и правую кнопку мыши для изменения цвета фона. Кроме того, вы можете изменить настройку так, чтобы при отображении элемента использовался полужирный шрифт или курсив.

В Code Editor поддерживаются те же "горячие" клавиши, что и для стандартной навигации Windows:

Аналогично IntelliSense-технологии в VB, Delphi содержит набор из пяти инструментов для разработчиков, известных как Code Insight:

1. Code Completion отображает список поддерживаемых типов данных, если вы объявляете переменную, или список свойств и методов, в случае использования объекта. По мере того, как вы вводите тип данных, свойство или метод, Delphi выполняет инкрементный поиск в "ниспадающем" списке. По умолчанию, данный список сортируется по области действия. Для его отображения в алфавитном порядке, щелкните правой кнопкой мыши по "ниспадающему" списку и выберите Sort by Name из "всплывающего" меню. После того, как вы нашли элемент, который хотите использовать, нажмите клавишу Enter, чтобы выбрать его и поместить в свой код.

2. Code Parameters отображает диалоговое окно с именами и типами параметров для функции, метода или процедуры. Таким образом, Вы можете посмотреть требуемые аргументы для данной функции, метода или процедуры, когда вы вводите их в свой код.

3. Code Templates является наиболее полезным свойством при переходе от VB к Delphi. Code Templates поддерживает шаблоны синтаксиса для базовых кодовых структур. Нажатие Ctrl-J активизирует данное свойство и вызывает "всплывающее" меню поддерживаемых шаблонов. Кроме того, вы можете ввести начало оператора, а затем нажать Ctrl-J. Если Delphi поддерживает данный оператор, то в код будет вставлен соответствующий шаблон. Если же Delphi не поддерживает данный оператор, то отобразится список шаблонов, наиболее близко соответствующих данному оператору. Для изменения имеющихся или добавления новых шаблонов кода, выберите Tools/Editor Options…, а затем закладку Code Insight.

4. Tooltip Expression Evaluation отображает значение переменной или выражения в виде всплывающей подсказки во время интерактивной отладки.

5. Tooltip Symbol Insight отображает информацию объявления любого идентификатора в Code Editor. Во "всплывающем" окне отображается вид идентификатора (процедура, функция, тип, константа, переменная, блок и т.д.), а также файл блоков и номер строки его объявления.

В Delphi, каждый открытый блок имеет отдельную закладку в Code Editor. Если блок, который вы хотите отредактировать, не открыт, выберите View/Units или View/Forms из меню. Опция View/Units отображает список всех поддерживаемых блоков в проекте. Аналогичным образом, View/Forms отображает список всех поддерживаемых форм в проекте. Открытие формы приводит к открытию соответствующего блока.

Другим навигационным свойством в Code Editor, поддерживаемым Delphi, являются закладки. Delphi разрешает устанавливать до десяти закладок в Code Editor, с нумерацией от нуля (0) до девяти (9). Для установки закладки, установите курсор на требуемую строку кода и нажмите Shift-Ctrl- number , где number является одной из цифровых клавиш, от 0 до 9. Для перехода к уже пронумерованной закладке, нажмите Ctrl- number .

Другие окна

В дополнение к трем окнам, отображаемым по умолчанию, Delphi поддерживает еще несколько других полезных окон. На Рис. 11, окно Code Explorer, которое по умолчанию располагается в окне Code Editor, слева от активных закладок страниц редактора. Другими словами, это окно располагается в левой части окна Code Editor. Code Explorer позволяет программисту легко перемещаться по файлам блоков. Оно содержит три диаграммы, отображающие все типы, классы, свойства, методы, глобальные переменные и глобальные процедуры, определенные в блоке кода, который в данный момент редактируется в окне Code Editor. Окно также содержит список блоков, которые используются редактируемым в данный момент блоком. Если окно Code Explorer еще не открыто, откройте его, выбрав View/Code Explorer.

Программист может просматривать файлы, входящие в состав проекта Delphi в окне Project Manager. В Project Manager, Delphi-проекты можно организовывать в группы проектов, где каждая группа проектов будет состоять из взаимосвязанных проектов или проектов, функционирующих вместе как части многозвенного приложения. Кроме того, данное окно позволяет программисту легко перемещаться между различными проектами и входящими в их состав файлами в пределах группы проектов. Для открытия окна Project Manager, выберите View/Project Manager или нажмите Ctrl-Alt-F11.

Для успешного завершения создания программы, особенно большой программы, программисту необходимо выполнить множество задач. Delphi поддерживает окно To-Do List, имеющий встроенный блокнот, в котором программист может последовательно организовывать все эти задачи. Данный список очень полезен при планировании, программировании, тестировании и отладке больших проектов, которые обычно пишет целая команда программистов. Для открытия данного окна, выберите View/To-Do List из горизонтального меню. Вы можете добавить, отредактировать или удалить любой элемент списка, щелкнув правой кнопкой мыши по окну To-Do List.

Окно Alignment Palette поддерживает средства быстрого выравнивания компонентов в форме. Для открытия данного окна, выберите View/Alignment Palette из горизонтального меню.

В окне Project Browser перечислены блоки, классы, типы, свойства, методы, переменные и процедуры, объявленные или используемые в текущем проекте. Project Browser организует всю эту информацию в виде трех диаграмм. Для открытия окна Project Browser, выберите View/Browser или нажмите Shift-Ctrl-B.

Для открытия Component List (или окна Components), выберите View/Component List из горизонтального меню. Данное окно отображает в алфавитном порядке все компоненты, поддерживаемые вашей версией Delphi. Вы можете добавлять компоненты в свою Delphi-программу, выбрав требуемый компонент из данного окна с помощью мыши или путем ввода с клавиатуры. При использовании мыши, Component Palette предоставляет более быстрые средства выбора и размещения компонентов в приложения, т.к. в данном окне компоненты упорядочены по своим функциям. Поэтому вместо окна Components рекомендуется использовать Component Palette.

Window List позволяет быстро переключаться между окнами среды разработки Delphi. Если у вас открыто много окон, Window List предоставляет простейший способ обнаружения и активизации требуемого окна. Для открытия Window List, выберите View/Window List или нажмите Alt-0. Затем выберите из списка требуемое окно и щелкните по кнопке OK.

Delphi также содержит несколько окон, связанных со встроенным отладчиком. Описание этих окон будет приведено в разделе, относящемся к отладке.

Язык программирования

В данном разделе описаны типы файлов, поддерживаемые Delphi, и синтаксис языка Object Pascal.

Типы файлов в Delphi

Как и в VB, Delphi-приложение (называемое проектом) состоит из нескольких различных типов файлов. В качестве трех основных типов файлов можно выделить файлы проектов, файлы блоков и файлы форм. Файл проекта (.DPR) является "основной программой"; он обращается к файлам блоков и файлам форм, составляющим проект Delphi. Таким образом, файл проекта связывает вместе все файлы, относящиеся к определенному проекту. Обычно файлы блоков и файлы форм присутствуют в проекте в соотношение один к одному, т.е. каждый файл блока имеет соответствующих файл формы и наоборот. Файл формы (.DFM) содержит объекты, входящие в форму, и установки свойств объектов, а файл блока (.PAS) содержит исходный код, связанный с формой. По сравнению с Delphi, в VB объекты, установки свойств и код содержатся только в файле формы (.FRM).

Помните, что вы должны сохранять как проект, так и формы для своего Delphi-приложения. При сохранении формы, файл блока и файл формы сохраняются под одним и тем же именем с соответствующими расширениями имени файла. Для сохранения формы, выберите File/Save or File/Save As… из горизонтального меню, щелкните мышью по значку Save на панели инструментов Standard или нажмите Ctrl-S. Для сохранения файла проекта, выберите File/Save Project As… из горизонтального меню. Для быстрого сохранения всех файлов, связанных с данным проектом, выберите File/Save All из меню или щелкните мышью по значку Save All на панели инструментов Standard.

Файл проекта

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

Ниже приведен общий синтаксис файла проекта:

program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1};
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run; end.

Как видно из приведенного выше синтаксиса, файл проекта состоит из трех элементов:

заголовка программы

оператор uses (необязательный элемент)

блок объявлений и операторов между зарезервированными словами begin и end

Заголовок программы задает имя программы. В операторе uses приведены файлы блоков, используемые программой. Блок (между зарезервированными словами begin и end) содержит объявления и операторы, исполняемые во время выполнения программы. Delphi IDE предполагает, что все эти три элемента находятся в одном файле проекта.

И, наконец, еще одно предупреждение: Советуем Вам не менять вручную код, генерированный IDE. Это относится не только к файлам проектов, но и к файлам блоков. Другими словами, позвольте IDE самой выполнять за вас работу. Например, если вы хотите добавить в проект новую форму, выберите File/New Form или щелкните мышью по кнопке New Form на панели инструментов View. Аналогично, чтобы добавить обработчик событий в файл блока, выберите объект и событие в Object Inspector для соответствующей формы, а затем введите имя для обработчика событий. Delphi автоматически генерирует заголовок и блок для обработчика событий.

Блоки

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

Файл блока состоит из заголовка, разделов интерфейса, реализации, инициализации и завершения. Разделы инициализации и завершения являются необязательными. Как и файл проекта, в конце файла блока должно стоять зарезервированное слово end с последующей точкой. Ниже приведен общий синтаксис файла блока:

unit Unit1;
interface
uses {содержит список использованных блоков}
const {содержит общедоступные константы}
type {содержит общедоступные типы}
var {содержит общедоступные переменные}
{содержит оставшуюся часть раздела интерфейса}
implementation
uses {содержит список использованных блоков}
const {содержит приватные константы}
type {содержит приватные типы}
var {содержит приватные переменные}
{ содержит оставшуюся часть раздела реализации}
initialization {содержит раздел инициализации}
finalization {содержит раздел завершения}
end.

Раздел интерфейса начинается с зарезервированного слова "interface" и продолжается до начала раздела реализации. Раздел интерфейса объявляет константы, типы данных, переменные и стандартные программы, доступные для клиентов (других блоков или программ), использующих блок, в котором они объявлены. Таким образом, любой объект, присутствующий в разделе интерфейса, является общедоступным, т.к. клиент может получить к нему доступ, как если бы данный объект был объявлен в самом клиенте.

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

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

Разделы интерфейса и реализации могут содержать собственные операторы uses, которые должны располагаться непосредственно после заголовков разделов (зарезервированных слов "interface" и "implementation"). Оператор uses задает используемые блоки. Блок System используется автоматически каждым Delphi-приложением и не может быть явно задан в операторе uses. Блок System реализует стандартные программы для ввода и вывода файлов, обработки строк, операций с плавающей точкой, динамического распределения памяти и т.д. Другие блоки библиотеки стандартных программ, такие как SysUtils, должны быть включены в оператор uses. В большинстве случаев, Delphi устанавливает все необходимые блоки в оператор uses clause во время генерации и обслуживания исходного файла.

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

Элементы программирования

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

Комментарии

VB имеет два отдельных оператора комментария, оператор примечания (Rem) и апостроф ('). VB-компилятор всегда игнорирует оба эти оператора. В Object Pascal, комментарии также игнорируются компилятором, за исключением случаев, когда они выполняют функцию разделителей (разграничивающих смежные маркеры) или директив компилятора. Существует три способа построения комментариев:

{Текст между открывающей и закрывающей круглыми скобками является комментарием}

(* Текст между открывающей круглой скобкой с последующим символом ‘*’ и ‘*’ с последующей закрывающей круглой скобкой является комментарием *)

// Любой текст между двойной косой чертой и концом строки представляет собой комментарий

Комментарий, содержащий символ доллара ($) сразу же после открывающей скобки { или (* является директивой компилятора. Директивы компилятора представляют собой неисполняемые операторы в коде, изменяющие опции компилятора. Например, {$WARNINGS OFF} сообщает компилятору Object Pascal, что он не должен генерировать предупреждающие сообщения. В VB, оператор Option означает директиву компилятора.

Завершение оператора

В VB, оператор завершается в конце строки, если только не был установлен символ продолжения строки (символ подчеркивания), указывающий на продолжение оператора на следующей строке. Object Pascal не требует установки символа продолжения строки; т.е. оператор может располагаться на нескольких строках. Символ точка с запятой (;) является разделителем и ограничителем оператора; он отделяет один оператор от другого.

Идентификаторы

Идентификатор в Object Pascal обозначает константу, переменную, поле, тип данных, свойство, процедуру, функцию, программу, блок, библиотеку или пакет. Идентификатор может иметь любую длину, но только первые 255 символов являются значимыми. Первым символом идентификатора должна быть буква или символ подчеркивания. За ним может следовать любое количество букв, цифр и символов подчеркивания. Идентификаторы не могут содержать пробелы, а зарезервированные слова не могут использоваться в качестве идентификаторов.

Object Pascal не учитывает регистр; это означает, например, что идентификатор с именем FindItem может быть записан различными способами, как finditem, findItem, Finditem, или FINDITEM.

Типы данных

Тип данных задает, какой вид данных может содержать переменная. Встроенные типы данных для Object Pascal приведены в Таблице 1. В таблице представлен диапазон достоверных значений для каждого типа данных и требуемый для них объем памяти. Помните, что указанные типы данных применимы только для Windows-версии Delphi; Linux-версия не содержит тип данных Variant, он относится только к Windows.

Логические и численные типы данных

Таблица 1. Типы данных Object Pascal

Тип данных   Диапазон   Формат или размер   Значимые цифры  
Shortint от -128 до +127 8-битовое со знаком  
Smallint от -32768 до +32767 16- битовое со знаком  
Integer (or Longint) от-2147483648 до +2147483647 32- битовое со знаком  
Int64 от -263 до +263-1 64- битовое со знаком  
Byte от 0 до 255 8- битовое без знака  
Word от 0 до 65535 16- битовое без знака  
Longword (or Cardinal) от 0 до 4294967295 32- битовое без знака  
Boolean (or ByteBool) True или False 1 байт  
WordBool True или False 2 байта  
LongBool True или False 4 байта  
Real48 от 2.9 x 10-39 до 1.7 x 1038 6 байт от 11 до 12
Single от 1.5 x 10-45 до 3.4 x 1038 4 байта от 7 до 8
Real (or Double) от 5.0 x 10-324 до 1.7 x 10308 8 байт от 15 до 16
Extended от 3.6 x 10-4951 до 1.1 x 104932 10 байт от 19 до 20
Comp от -263+1 до +263-1 8 байт от 19 до 20
Currency от -922337203685477.5808 до +922337203685477.5807 8 байт от 19 до 20

Символьные и строковые типы данных

Тип данных   Максимальная длина  Требуемый объем памяти  
Char (or AnsiChar) 1 ANSI -символ 1 байт
WideChar 1 Unicode -символ 2 байта
ShortString 255 ANSI-символов от 2 до 256 байт
String (or AnsiString) 231 ANSI-символов от 4 байт до 2 гигабайт
WideString 230 Unicode-символов от 4 байт до 2 гигабайт

Константы

Константа представляет собой именованный элемент, сохраняющий постоянное значение в течение выполнения программы. Она может быть определена любым математическим или строковым выражением. Во время компиляции, компилятор просто заменяет имя константы связанным с ней значением. Численные константы представляют число или числовой литерал, а строковые константы представляют строковый литерал. Число 7, например, является численной константой, а 'days per week' - строковой константой.

В Object Pascal, для определения констант используется оператор const. Как и аналогичный VB-оператор, оператор const может декларировать группу констант. Ниже представлена общая форма данного оператора:

Const

   constantName = Expression;
   [constantName = Expression;]

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

Const

   MINS_PER_HR = 60;
   HRS_PER_DAY = 24;
   DAYS_PER_WK = 7;

В VB, эти же константы будут определяться с использованием следующего оператора:

Const MINS_PER_HR = 60, HRS_PER_DAY = 24, _DAYS_PER_WK = 7

Переменные

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

VB использует для объявления переменных оператор Dim (размерность), а Object Pascal использует оператор var. Ниже приведен общий синтаксис оператора var:

var
   variableName[, variableName]: DataType;
   [variableName[, variableName]: DataType;]

где DataType представляет заранее заданный или определенный пользователем тип данных. Рассмотрим в качестве примера следующие объявления VB-переменных:

Dim dollars As Integer, cents As Integer Dim cost As Double
Dim myMessage As String

В Delphi объявления аналогичных переменных будут иметь вид:

Var

   dollars:   Integer;
   cents:     Integer;
   cost:      Real;
   myMessage: String;

Операторы

В VB, знак равенства (=) представляет перегруженный оператор; он функционирует как оператор присваивания и как знак операции сравнения, обозначающий равенство. Однако в Object Pascal, знак равенства является только знаком операции сравнения, обозначающим равенство; он всегда сравнивает содержимое переменных для определения равенства. Оператор присваивания в Object Pascal представляет собой комбинацию из двух символов, двоеточия (:) с последующим знаком равенства (=), или :=.

Давайте рассмотрим фрагмент VB-кода:

Dim value1 As Integer, value2 As Integer Dim check As Boolean
value1 = 5 
value2 = 7 
check = (value1 = value2)

В данном фрагменте, value1 и value2 присваиваются два разных значения, 5 и 7 соответственно. Значение булевой переменной присваивается, исходя из того, равны ли значения value1 и value2. В данном случае, переменной check присваивается значение False, т.к. значения двух указанных переменных не равны. Эквивалентный код в Object Pascal будет выглядеть следующим образом:

var
   value1: Integer;
   value2: Integer;
   check: Boolean;
begin
   value1 := 5;
   value2 := 7;
   check := (value1 = value2); end;

Арифметические и реляционные операторы в Object Pascal представлены в двух таблицах. В Таблице 2 приведены арифметические операторы, а в Таблице 3 - операторы отношения. Операторы отношения в Object Pascal и VB одинаковы. Арифметические операторы также одинаковы, за исключением целочисленного деления, деления по модулю и возведения в степень. В Object Pascal, целочисленное деление, деление по модулю имеют встроенные операторы, а возведение в степень такового не имеет. Для выполнения операции возведения в степень программист должен вызвать функцию из math-библиотеки.

Таблица 2. Арифметические операторы Object Pascal

Операция  Оператор  Тип операнда  Тип результата  Example  
Sign Identity + (unary) integer, real integer, real + x
Sign Negation - (unary) integer, real integer, real - x
Mutliplication * integer, real integer, real x * y
Division / integer, real real x / y
Integer Division div integer integer x div y
Modulo Division mod integer integer x mod y
Addition + integer, real integer, real x + y
Subtraction - integer, real integer, real x - y
Таблица 3. Операторы отношения Object Pascal

Оператор отношения  Object Pascal  Математика 
Less than < <
Less than or equal to <= ?
Greater than > >
Greater than or equal to >= ?
Equal to = =
Not equal to <> ?

К логическим операторам в Object Pascal относятся and, or, not и xor. По умолчанию, Object Pascal выполняет укороченные вычисления and- и or-операций. Это означает, что он вычисляет только такую часть выражения, которая необходима для определения конечного значения. Для выполнения полного вычисления данных выражений, выберите Project/Options… и щелкните мышью по закладке Compiler. Затем щелкните мышью по "Complete boolean eval" во фрейме Syntax options. Или же, вставьте в свой код директиву компилятора {$B+}.

Как и в VB, единственной строковой операцией в Delphi является конкатенация строк (которая связывает строки вместе). VB поддерживает два различных, но взаимозаменяемых, оператора, выполняющих конкатенацию строк, амперсанд (&) и знак плюс (+). В Object Pascal, для конкатенации строк используется только знак плюс (+). Таким образом, знак плюс (+) является перегруженным оператором в Object Pascal; он используется для обозначения знака, сложения и конкатенации строк.

При разговоре о строковых операциях следует упомянуть еще об одном различии между VB и Object Pascal, касающемся символа разделителя строк. В VB, для разделения строк используются двойные кавычки ("), а в Object Pascal используются одинарные кавычки ('). Ниже приведен пример строки кода, в которой использованы строки и оператор конкатенации строк:

myName := 'Mitchell' + ' ' + 'Kerman';

Эта строка кода эквивалентна следующей:

myName := 'Mitchell Kerman';

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 11.08.2001 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Купить, скачать Dr.Web Security Space, 1 год, 1 ПК
GFI WebMonitor Plus Edition - подписка на 1 год
Enterprise Connectors (1 Year term)
Panda Global Protection - ESD версия - на 1 устройство - (лицензия на 1 год)
ABBYY Lingvo x6 Европейская Домашняя версия, электронный ключ
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Компьютерные книги. Рецензии и отзывы
Каждый день новые драйверы для вашего компьютера!
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100