Интегрированная Среда Разработки (Integrated Development Environment — IDE, в дальнейшем мы будем использовать для нее аббревиатуру ИСР) — это среда, в которой есть все необходимое для проектирования, запуска и тестирования приложений и где все нацелено на облегчение процесса создания программ. ИСР интегрирует в себе редактор кодов, отладчик, инструментальные панели, редактор изображений, инструментарий баз данных — все, с чем приходится работать.
Запустите Delphi с помощью меню Windows Пуск | Программы
. Когда вы щелкнете на пиктограмме Delphi, перед вами откроется основное окно Интегрированной Среды Разработки (см. рис. 1.1). Для версий Delphi, отличных от Delphi 5, окно выглядит несколько иначе, но в основных чертах окна ИСР всех версий Delphi одинаковы.
Рис. 1.1 Основное окно Интегрированной Среды Разработки в Delphi 5 | |
В верхней части окна ИСР вы видите полосу главного меню. Ее состав несколько различается от версии к версии и, кроме того, зависит от варианта Delphi, с которым вы работаете. На рис. 1.1 приведен вид окна для варианта клиент/сервер.
Ниже полосы главного меню расположены две инструментальные панели. Левая панель содержит два ряда быстрых кнопок, дублирующих некоторые наиболее часто используемые команды меню. Правая панель содержит палитру компонентов библиотеки визуальных компонентов (Visual Component Library — VCL). Именно эта библиотека и составляет основной предмет рассмотрения данной книги. В дальнейшем мы для краткости будем называть библиотеку визуальных компонентов просто библиотекой, благо это ближе к истине, так как в ней содержатся и визуальные (видимые пользователю), и невизуальные компоненты (они явным образом не видны пользователю). Палитра компонентов содержит ряд страниц, закладки которых видны в ее верхней части.
В основном поле окна вы можете видеть слева окно Инспектора Объектов (Object Inspector), с помощью которого вы в дальнейшем будете задавать свойства компонентов и обработчики событий. Правее вы можете видеть окно пустой формы, готовой для переноса на нее компонентов. Под ним расположено окно Редактора Кодов. Обычно оно при первом взгляде на экран невидимо, так как его размер равен размеру формы и окно Редактора Кодов полностью перекрывается окном формы. На рис. 1.1 это окно немного сдвинуто и выглядывает из под окна формы.
Подробные сведения о всех разделах меню не входят в задачу данной книги. Этому посвящена отдельная книга серии «Все о Delphi». Отметим только несколько основных команд, которые используются при разработке прикладных программ в среде Delphi (в дальнейшем изложении для краткости будем называть прикладные программы просто приложениями). Создание нового проекта приложения начинается с команды File | New Application
. По этой команде открывается новый проект приложения с пустой формой, как вы можете это видеть на рис. 1.1. Сохранить на диске готовый проект или его заготовку можно командой File | Save Project As
или File | Save All
. Удобно также для сохранения использовать быстрые кнопки — третью или четвертую слева в верхнем ряду на рис. 1.1. Открыть ранее сохраненный проект можно командой File | Open
или File | Open Project
(вторая слева быстрая кнопка в верхнем ряду на рис. 1.1). Но если вы недавно работали с этим проектом, то удобнее воспользоваться командой File | Reopen
или кнопочкой справа от быстрой кнопки Open
(см. рис. 1.1). Эта команда дает вам возможность быстро выбрать проект из числа тех, с которыми вы работали последнее время.
Для компиляции и запуска на выполнение приложения надо выполнить команду Run | Run
(быстрая кнопка с зеленой стрелкой, пятая в нижнем ряду на рис. 1.1).
Ограничимся описанием только этих основных команд. Подробное описание всех разделов меню вы можете найти во встроенной справке Delphi, которая вызывается или из меню Help
, или нажатием клавиши F1.
Палитра компонентов — витрина библиотеки визуальных компонентов (Visual Component Library — VCL). Подробное описание палитры и методики работы с ней будет дано в главе 2, а компонентам, отображаемым в палитре, посвящена вся книга. Поэтому пока ограничимся только кратким рассмотрением техники переноса компонентов из палитры на форму. Чтобы осуществить эту операцию, надо открыть соответствующую страницу библиотеки и указать курсором мыши необходимый компонент. Затем надо сделать щелчок мышью в нужном месте формы и компонент разместится там. В дальнейшем вы можете отбуксировать его в любое другое место.
Форма, на которой размещаются компоненты, является основой почти всех приложений Delphi. Ее можно понимать как типичное окно Windows. Она имеет те же свойства, что присущи другим окнам Windows 95/98: управляющее меню в верхнем левом углу, полосу заголовка, занимающую верхнюю часть, кнопки развертывания, свертывания и закрытия окна в верхнем правом углу. Форма является контейнером (родителем — Parent)размещенных на ней компонентов. Впрочем, компоненты могут размещаться не непосредственно на форме, а в других компонентах — панелях. Тогда родителем по отношению к этим компонентам выступает соответствующая панель. Понятие родительского компонента в дальнейшем не раз будет использоваться в этой книге.
Одной из наиболее важных частей среды Delphi является окно Редактора Кода. Его вы можете видеть на рис. 1.1, а в укрупненном виде оно показано на рис. 1.2 а. В действительности, если вы откроете в первый раз это окно в Delphi 5, оно может выглядеть несколько иначе (рис 1.2 б) и включать в себя слева еще одно встроенное окно — окно Исследователя Кода Code Explorer
. Это окно в данной книге мы рассматривать не будем. В большинстве случаев вы просто можете закрыть его, щелкнув на кнопке с крестиком в его правом верхнем углу. Чтобы оно вообще больше не появлялось, выполните команду Tools | Environment Options
и в открывшемся диалоговом окне на странице Explorer
выключите опцию Automatically show Explorer
(показывать автоматически окно Code Explorer).
Рис. 1.2 Окно Редактора Кода без встроенного окна Code Explorer (а) и со встроенным окном (б) | а) | |
б) |
Редактор Кода является полноценным программным редактором. Его можно настраивать на различный стиль работы, который вам более привычен. В редакторе применяется выделением цветом синтаксических элементов. Жирным шрифтом выделяются ключевые слова языка Object Pascal (на рис. 1.2 вы видите выделение таких слов, как type, class и др.). Синим курсивом выделяются комментарии (например, на рис. 1.2 это комментарий «{ Private declarations }»).
В заголовке окна Редактора Кода отображается имя текущего файла, того, с текстом которого вы работаете. В верхней части окна вы можете видеть также закладки или ярлычки, указывающие текущую страницу. Приложения Delphi могут использовать много исходных файлов и закладки помогают вам переходить от одного из них к другому.
В окно Редактора Кода, как и в другие окна Delphi, встроена контекстная справка. Чтобы получить справку по какому-то слову кода (ключевому слову, написанному имени функции и т.п.) достаточно установить курсор на это слово и нажать клавишу F1. Вам будет показана соответствующая тема справки.
Следующим важнейшим элементом среды разработки является Инспектор Объектов (Object Inspector) — см. левое окно на рис. 1.1. Он обеспечивает простой и удобный интерфейс для изменения свойств объектов Delphi и управления событиями, на которые реагирует объект. Но прежде, чем рассказывать о нем, надо сказать несколько слов о принципах объектно-ориентированного программирования, на которых основан современный подход к созданию прикладных программ.
В современном представлении программа — это система объектов. Каждый объект характеризуется набором свойств. Свойство — это некоторые данные плюс процедуры их чтения и записи в объект. Эти процедуры называются методами и часто работают незримо для пользователя. Пусть некоторый объект имеет свойство А и вы пишете в программе оператор А := А * 10 (символы «:=» используются в языке Object Pascal для присваивания переменной, указанной в левой части оператора, значения, равного выражению в правой части). В действительности в этом случае программа вызывает метод чтения значения А, умножает это значение на 10, а затем вызывает метод записи значения в А, и передает в него вычисленную величину А * 10. Эти методы невидимы для пользователя. Но помимо них каждый объект обладает еще рядом методов — функций и процедур, оперирующих со свойствами объекта. Так что более полно объект можно характеризовать как совокупность свойств и методов. Перенеся объект на форму и нажав клавишу F1 вы можете увидеть во встроенной справке Delphi все его свойства (propeties) и методы (methods).
Помимо методов и свойств любой компонент характеризуется набором событий, на которое он может реагировать. Под событиями прежде всего понимаются действия пользователя: щелчок мыши, перемещение курсора, нажатие кнопок мыши или клавиш. Но и сами объекты тоже могут генерировать различные события. В объекте могут предусматриваться обработчики тех или иных событий, воспринимаемых данным компонентом. Фактически к написанию этих обработчиков и сводится программирование приложений. В обработчиках программист описывает, как должны реагировать компоненты на соответствующие события.
Завершив на этом краткий экскурс в объектно-ориентированное программирование вернемся к рассмотрению Инспектора Объектов. Окно Инспектора Объектов (рис, 1.3) имеет две страницы.
Рис. 1.3 Страница свойств (а) и страница событий (б) Инспектора Объектов | а) | б) |
Страница свойств (Properties
) Инспектора Объектов (см. рис. 1.3 а), показывает свойства того объекта, который в данный момент выделен вами. Щелкните на окне пустой формы и на странице свойств Инспектора Объектов вы сможете увидеть свойства формы (они показаны на рис. 1.3 а). Вы можете изменять эти свойства. Например, измените свойство Caption (надпись) вашей формы, написав в нем «Моя форма
», и вы увидите, что эта надпись появится в полосе заголовка вашей формы.
Если щелкнуть на некоторых свойствах, например, на свойстве Color (цвет), то справа от имени свойства откроется окно выпадающего списка. Нажав в нем на кнопочку со стрелкой вниз, вы можете увидеть список возможных значений свойства (см. рис. 1.3 а). Например, смените значение свойства Color с принятого по умолчанию clBtnFace (цвет поверхности кнопок) на clWindow (цвет окна). Вы увидите, что поверхность формы изменит свой цвет.
Рядом с некоторыми свойствами вы можете видеть знак плюс (см., например, свойство BorderIcons на рис. 1.3 а). Это означает, что данное свойство является объектом, который в свою очередь имеет ряд свойств.
Найдите, например, свойство Font (шрифт). Рядом с ним вы увидите знак плюс. Щелкните на этом плюсе или сделайте двойной щелчок на свойстве Font. Вы увидите, что откроется таблица таких свойств, как Color (цвет), Height (высота), Name (имя шрифта) и др. Среди них вы увидите свойство Style (стиль), около которого тоже имеется знак плюс. Щелчок на этом плюсе или двойной щелчок на этом свойстве раскроет дополнительный список подсвойств, в котором вы можете, например, установить в true свойство fsBold (жирный). Кстати, для смены true на false и обратно в подобных булевых свойствах не обязательно выбирать значение из выпадающего списка. Достаточно сделать двойной щелчок на значения свойства, и оно изменится. После того, как вы просмотрели или изменили подсвойства, вы можете опять сделать двойной щелчок на головном свойстве или щелчок на знаке минус около него, и список подсвойств свернется.
Страница событий (Events
) составляет вторую часть Инспектора Объектов (см. рис. 1.3 б). На ней указаны все события, на которые может реагировать выбранный объект. Например, если вам надо выполнить какие-то действия в момент создания формы (обычно это различные операции настройки), то вы должны выделить событие OnCreate. Рядом с именем этого события откроется окно с выпадающим списком. Если вы уже написали в своем приложении какие-то обработчики событий и хотите при событии OnCreate использовать один из них, вы можете выбрать необходимый обработчик из выпадающего списка. Если же вам надо написать новый обработчик, то сделайте двойной щелчок на пустом окне списка.
Вы попадете в окно Редактора Кода, в котором увидите текст:
procedure TForm1.FormCreate(Sender: TObject); begin end;
Курсор будет расположен в пустой строке между ключевыми словами begin и end. Увиденный вами код — это заготовка обработчика события, которую автоматически сделала Delphi. Вам остается только в промежутке между begin и end написать необходимые операторы.
Если вы сделали эти операции, то вернитесь в Инспектор Объектов, выделите в нем, например, событие OnActivate и нажмите в нем кнопку выпадающего списка. Вы увидите в нем введенный вами ранее обработчик события OnCreate (этот момент изображен на рис. 1.3 б). Если вам надо использовать тот же самый обработчик и в событии OnActivate, просто выберите его из списка. Таким образом вы можете избежать дублирования в программе одних и тех же фрагментов кода.
Пользуясь Инспектором Объектов вы можете получить контекстную справку по свойствам или событиям. Для этого выделите в окне Инспектора Объектов интересующее вас свойство или событие и нажмите клавишу F1.
В Delphi 5 в Инспектор Объектов введена возможность фильтрации свойств и событий и возможность группировать их по категориям. Для того, чтобы воспользоваться этими возможностями, щелкните в окне Инспектора Объектов правой кнопкой мыши. Во всплывшем меню вы можете выбрать раздел View
. Вам будет показан ряд категорий свойств и событий, около каждой из которых имеется индикатор. Вы можете включить индикаторы только у некоторых категорий и тогда в Инспекторе Объектов вы увидите события и свойства только указанных категорий. Выбор раздела Toggle
переключит видимость разделов: те, которые были видимы станут невидимы и наоборот.
В том же меню, всплывающем при щелчке правой кнопкой мыши, вы можете выбрать раздел Arrange
и в нем установить одну из двух возможностей: by Name
— упорядочить свойства и события по алфавитной последовательности их имен, или by Category
— упорядочить их по категориям. При этом некоторые свойства могут попасть одновременно в несколько категорий. Но это не имеет значения: вы можете менять их значения в любой категории и они синхронно изменятся во всех категориях.