Среды быстрого проектирования

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

Этот процесс автоматизирован в средах быстрого проектирования (Rapid Application Development, RAD-среды). Все необходимые элементы оформления и управления создаются и обслуживаются не путем ручного программирования, а с помощью готовых визуальных компонентов, которые с помощью мыши “перетаскиваются” в проектируемое окно. Их свойства и поведение затем настраиваются с помощью простых редакторов, визуально показывающих характеристики соответствующих элементов. При этом вспомогательный исходный текст программы, ответственный за создание и работу этих элементов, генерируется RAD-средой автоматически, что позволяет сосредоточиться только на логике решаемой задачи. В результате про­граммирование во многом заменяется на проектирование – подобный подход назы­вается еще визуальным программированием.

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

Сегодня имеется немало систем программирования, выпускаемых различными фирмами и ориентированных на различные модели ПК и операционные системы. Наиболее популярны следующие визуальные среды быстрого проектирования программ для Windows:

· Microsoft Visual Basic;

· Borland Delphi;

· Borland C++Bulider.

Рассмотрим основные возможности визуальных сред быстрого проектирования программ для Windows на примере широко распространенной системы программирования Borland Delphi.

Интегрированная среда разработки.Интегрированная среда разработки (ИСР, Integrated Development Environment – IDE) – это среда, в которой есть все необходимое для проектирования, запуска и тестирования при­ложений и где все нацелено на облегчение процесса создания программ.

ИСР ин­тегрирует в себе редактор кодов, отладчик, инструментальные панели, редактор изображений, инструментарий баз данных – все, с чем приходится работать. Эта интеграция предоставляет разработчику гармоничный набор инструментов, допол­няющих друг друга. Более того, программисту предоставлена возможность расширять меню ИСР, включая в нее необходимые дополнитель­ные программы, в том числе и собственные.

Главной часть приложения Delphi является файл проекта, содержащий код на языке Object Pascal, с которого начинается выполнение программы и который обеспечивает инициализацию других модулей. Он создается и модифицируется Delphi автоматически в процессе разработки приложения. Основой почти всех приложений Delphi является форма. Формы – это объекты, в которые помещаются другие объекты для создания пользовательского интерфейса приложения. Ее можно понимать как типичное окно Windows.

На рис. 14. представлено основное окно интегрированной среды разработки в Delphi. Рассмотрим кратко его основные элементы.

В верхней части окна ИСР находится полоса главного меню. Ее состав несколь­ко различается от версии к версии. Дадим краткий обзор основных разделов меню.

· Разделы меню File (файл) позволяют создать новый проект, новую форму, от­крыть ранее созданный проект или форму, сохранить проекты или формы в фай­лах с заданными именами.

· Разделы меню Edit (правка, редактирование) позволяют выполнять обычные для приложений Windows операции обмена с буфером Clipboard, а также дают воз­можность выравнивать группы размещенных на форме компонентов по размерам и местоположению.

· Разделы меню Search (поиск) позволяют осуществлять в коде приложе­ния поиск и контекстные замены, которые свойственны большинству известных текстовых редакторов.

· Разделы меню View (просмотр) позволяют вызывать на экран различные окна, необходимые для проектирования.

· Разделы меню Project (проект) позволяют добавлять и убирать из проекта формы, задавать опции проекта, компилировать проект без его выполнения и делать много других полезных операций.

· Меню Run (выполнение) дает возможность выполнять проект в нормальном или отладочном режимах, продвигаясь по шагам, останавливаясь в указанных точках кода, просматривая значения переменных и т.д.

· Меню Component (компонент) по­зволяет создавать и устанавливать новые компоненты, конфигурировать палитру компонентов.

· Разделы меню Database (база данных) позволяют использовать инструментарий для работы с базами данных.

· Меню Tools (инструментарий) включает ряд разделов, позволяющих выпол­нять различные вспомогательные программы, например, вызывать Редактор Изоб­ражений (Image Editor), работать с программами, конфигурирующими базы дан­ных и сети, и т.д. Кроме того, в это меню можно включить любые разде­лы, вызывающие те или иные приложения, и таким образом расширить возмож­ности главного меню Delphi, приспособив его для своих задач.

Мы рассмотрели основные меню, входящие в полосу главного меню. Но поми­мо главного меню в Delphi имеется система контекстных всплывающих меню, ко­торые появляются, если пользователь поместил курсор мыши в том или ином окне или на том или ином компоненте и щелкнул правой кнопкой мыши. Большинство разделов этих контекстных меню дублируют основные разделы главного меню. Од­нако во всплывающих меню в ряде случаев имеются разделы, отсутствующие в главном меню.

Ниже полосы главного меню расположены две инструментальные панели. Левая панель (состоящая в свою очередь из нескольких панелей) содержит два ряда быстрых кнопок, дублирующих некоторые наиболее часто используемые команды меню. Назначение размещенных на них быстрых кнопок можно уз­нать из ярлычков, появляющихся, если поместить курсор мыши над соответст­вующей кнопкой и на некоторое время задержать его. Правая панель содержит палитру компонентов библиотеки визу­альных компонентов (Visual Component Library – VCL). Палитра компонентов содержит ряд страниц, закладки кото­рых видны в ее верхней части.

Правее полосы главного меню в Delphi размещена еще одна небольшая инст­рументальная панель, содержащая выпадающий список и две быстрые кнопки. Это панель сохранения и выбора различных конфигураций окна ИСР, которые программист сам может создавать и запоминать.

В основном поле окна слева расположено окно Инспектора Объектов (Ob­ject Inspector). Инспектор Объектов обеспечивает простой и удобный интер­фейс для изменения свойств объектов Delphi и управления событиями, на которые реагирует объект.

Правее Инспектора Объектов на рис. 14 находится окно пустой фор­мы, готовой для переноса на нее компонентов.

Под окном формы на рис. 14 расположено окно Редак­тора Кода. Обычно оно при первом взгляде на экран невидимо, так как его размер равен размеру формы. Редактор Кода является полноценным программным редактором. Его можно настраивать на различный стиль работы. В редакто­ре применяется выделение цветом синтаксических элементов. Жирным шриф­том выделяются ключевые слова Object Pascal. Синим курсивом выделяются комментарии.

В заголовке окна Редактора Кода (рис. 15) отображается имя текущего файла. В верхней части окна можно видеть также за­кладки или ярлычки, указывающие текущую страницу. Приложения Delphi мо­гут использовать много исходных файлов и закладки помогают переходить от одного из них к другому. Можно также открыть дополнительное окно Редакто­ра Кода и одновременно ра­ботать с двумя модулями или с двумя разными фрагментами одного модуля.

В окно Редактора Кода, как и в другие окна Delphi, встроена контекстная справка. Чтобы получить справку по какому-то слову кода (ключевому слову, на­писанному имени функции и т.п.), достаточно установить курсор на это слово и на­жать клавишу F1. Будет показана соответствующая тема справки.

В Delphi имеются разнообразные инструментальные средства поддержки разработки кода, которые помогают разработчику при написании кода и его отладке. Основными из них являются: Знаток Кода (Code Insight), Исследователь Кода (Code Explorer), окно просмотра иерархии классов, модулей и глобальных символов (Object Browser).

Знаток Кода (Code Insight) встроен в окно Редактора Кода. Он во многих случаях подскажет имена свойств, методов, событий, типы аргументов, типовые синтаксические кон­струкции и многое другое. Code Insight может выполнять следующие функции:

Завершение кода. Если вы написали в своем приложении имя компонента, поставили после него точку и немного задержались с вводом последующего текста, то появится окно, со­держащее список всех свойств, методов и событий класса, к которому принадле­жит данный компонент. Вы можете выбрать из него требуемое или начать писать первые символы свойства или метода, а затем нажать Enter, и в ваш код вставится соответствующее имя. Аналогичным образом можно получить подсказку по типам аргументов функций или процедур.

Параметры функций, процедур, методов. После того как вы напишете имя функции, процедуры или метода и поставите открывающуюся скоб­ку, вы увидите список параметров и их типов. Причем по мере того, как вы будете вводить значения аргументов, вам будет высвечиваться тип следующего парамет­ра. Это, может быть, наиболее мощная возможность Code Insight, поскольку вряд ли кто-нибудь способен помнить параметры всех функций и методов Delphi.

Шаблоны кода. В Code Insight занесено множество шаблонов стандартных структур языка Ob­ject Pascal. Причем вы сами можете добавлять или удалять эти шаблоны. Из выпадающего списка вы можете выбрать нужный шаблон. Например, если вы выбрали шаблон управляющей структуры for, то в ваш код занесется текст:

for := to do begin

end;

Оценка выражений. Эта способность Code Insight очень полезна в процессе отладки. Code Insight позволяет при останове или пошаговом выполнении приложения подвести курсор в окне Редактора Кода к имени любой переменной или к выражению и уви­деть текущее значение оцениваемой величины.

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

Исследователь Кода Code Explorer (рис. 16) показывает дерево всех ти­пов, классов, свойств, методов, глобальных переменных и глобальных процедур, содержащихся в модуле, открытом в Редакторе Кода.

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

Инструментом, способным оказать помощь в написании и отладке прило­жения, является Object Browser (рис. 17).

Окно имеет две панели. В левой отображается Дерево объектов, список моду­лей или список глобальных символов. Правая панель отображает состав объекта, выделенного на левой панели. В панелях возможен быстрый поиск объекта. Начните писать первые символы имени, и указатель в панели перейдет на искомый объект. Если вы сделаете двойной щелчок на объекте в левой панели, то информация с правой панели, характеризующая состав объекта (например, методы, описанные в модуле), переместится на левую панель, а на правой появится более детальная ин­формация, например, о выделенном методе. Вы можете также увидеть текст модуля, относящийся к интересующему вас объекту.

Delphi имеет хорошо структурированную справочную систему. Справка может вызываться из меню Help или с помощью контекст­но-зависимого поиска практически из любого окна Delphi. Если выделить на форме какой-то компонент, нажать F1, то будет показана тема справки, связан­ная с этим компонентом. Если в окне Редактора Кода установить курсор на имени какой-то функции, на име­ни свойства или метода какого-то компонента и нажать F1, то также будет по­казана справка по данному вопросу. Аналогично можно получить кон­текстную справку о свойстве компонента из окна Инспектора Объектов, выделив соответствующее свойство.

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

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

Перечислим основные из технических возможностей отладчика приложений в ИСР Delphi.

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

Окно оценки и модификации. Окно имеет вид, представленный на рис. 18. В его верхнем окош­ке редактирования Expression вы можете ввести имя переменной или выражение. После этого, щелкнув на кнопке Evaluate, вы увидите в окне Result значение этого выражения. Если вы указали в окне Expression имя переменной, а не выражение, то вам становится доступной кнопка Modify, по­зволяющая изменить значение переменной, т.е. вы можете вмешаться в процесс выполнения приложения и насильственно изменять значения переменных.

Выполнение приложения по шагам. Для прохода фрагмента программы по шагам можно использовать команды, описанные в табл. 2.

Таблица 2

Наши рекомендации