Среды быстрого проектирования
В последние несколько лет в программировании (особенно в программировании для операционной системы 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 размещена еще одна небольшая инструментальная панель, содержащая выпадающий список и две быстрые кнопки. Это панель сохранения и выбора различных конфигураций окна ИСР, которые программист сам может создавать и запоминать.
В основном поле окна слева расположено окно Инспектора Объектов (Object 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 занесено множество шаблонов стандартных структур языка Object 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