Приложение 1

СРЕДА РАЗРАБОТЧИКА

П 1.1. ГЛАВНОЕ МЕНЮ

П 1.1.1. Опция File

New

Опция-заголовок. При ее выборе раскрывается подменю со следующими опциями

Application

Создает новую программу для Windows

CLX Application

Создает новую программу для Windows и Linux

Data Module

Создает новый модуль данных

Form

Создает новую форму и подключает ее к проекту

Frame

Создает новую раму

Other

Открывает окно репозитория (рис. П1.1).

 

Exit

Вставляет в текущую форму ссылку на другой модуль Печатает активную форму или модуль Прекращает работу Delphi

Print

Закрывает все открытые файлы

Unit

Закрывает текущую форму

Open

Открывает ранее созданную форму

Open Project

Открывает ранее созданный проект

Reopen

Вызывает список ранее загружавшихся проектов и форм для выбора и повторной загрузки

Save Save As

Сохраняет активную форму

Save Project As

Сохраняет активную форму под другим именем

Save All Close

Сохраняет файл проекта под другим именем

Close All Use

Сохраняет файл проекта и все открытые модули

П1.1.1.1. Репозиторий Delphi

Окно репозитория Delphi открывается при выборе File | New | Other и имеет вид, показанный на рис. П1.1.

На его страницах расположены пиктограммы для выбора прототипов форм, модулей, проектов и экспертов построения форм и проектов. Зависимые переключатели Copy, Inherit и Use определяют режим связи между хранящимся в репозитории прототипом и его копией в проекте: Copy - выбранный элемент копируется в текущий каталог и автоматически подключается к проекту; между образцом и его копией нет никакой связи; inherit - в проекте создаются наследники выбранного элемента и всех его родителей; любые изменения образца проявляются во всех проектах, которые его унаследовали; изменения наследника не влияют на образец; Use - выбранный элемент становится частью проекта; любые его изменения в проекте приводят к изменениям образца и сказываются во всех других проектах, которые его унаследовали или используют.

Ниже кратко описывается методика размещения в репозитории разработанной программистом формы.

Рис.П 1.l. Окно репозитория Delphi

  1. Разработайте форму, которую вы часто будете использовать в разных проектах[Если вы хотите тиражировать какую-то форму текущего проекта, ее нет нужды размещать в репозитории - она там уже есть на закладке с именем вашего проекта (такая закладка репозитория автоматически создается для каждого открываемого проекта).]. Поместите на ней все необходимые интерфейсные компоненты и, если это необходимо, закодируйте обработчики их событий.
  2. Сохраните форму в любой папке жесткого диска. Для упорядочения поиска прототипов можно использовать для этих целей папку Objrepos каталога размещения Delphi.
  3. Щелкните по форме правой кнопкой мыши и в локальном меню выберите Add to Repository. На экране появится диалоговое окно регистрации формы в репозитории (рис. П1.2).
  4. В строке Title напишите имя, под которым форма будет зарегистрирована в репозитории, например, WorkForm, в строке Description - описание формы, например. Основная форма для проекта Bibliophil, в строке Author - свое имя. Раскройте список Page и выберите закладку страницы репозитория, на которой следует разместить форму, после чего щелкните по кнопке ок - форма помещена в репозитории. Замечу, что, если вы не укажете страницу, форма не будет размещена в репозитории, однако вы сможете ее найти на странице, связанной с закладкой с именем вашего проекта. Тиражирование такой формы, как и любой другой формы этой страницы, возможно только в рамках вашего проекта.

Рис. П1.2. Окно регистрации формы в репозитории

Вновь размещенную форму можно сделать главной. Такая форма создается при старте нового проекта (опция главного меню File | New Application). Для определения главной формы выберите опцию Tools [Repository, укажите страницу размещения в левом списке Радез диалогового окна и форму в правом списке Objects, после чего установите флажок в переключателе Main Form. Если установить флажок в переключателе New Form, форма будет создаваться при щелчке по пиктографической кнопке New Form или при выборе опции File | New Form

П 1.1.2. Опция Edit

Undo

Отменяет последнее изменение проекта

Redo

Восстанавливает последнее изменение проекта

Cut

 

Вырезает выбранный компонент формы или фрагмент текста и

помещает его в буфер Clipboard

Copy

 

Копирует в Clipboard выделенные компоненты формы или

фрагмент текста модуля

Paste

Извлекает из буфера и переносит компоненты на форму или копирует текст в модуль (в позицию, указываемую текущим положением текстового курсора)

Delete

Удаляет выделенные компоненты или фрагмент текста

Select All

Выделяет все компоненты формы или весь текст модуля

Align To Grid

 

 

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

Bring To Front

Перемещает выделенные компоненты на передний план

Send To Back

Перемещает выделенные компоненты на задний план

Align

 

Вызывает окно выравнивания выделенных компонентов (рис.П1.3)

Size

Вызывает окно изменения размеров выделенных компонентов(рис. П 1.4)

Scale

Масштабирует выделенные компоненты (рис. П1.5)

Tab Order

Изменяет порядок обхода компонентов клавишей Tab

Creation Order

Изменяет порядок создания невизуальных компонентов

Flip Children

Lock Controls Add to interface

Изменяет свойство BiDiMode для всех или только для выделенных компонентов Блокирует возможность перемещения компонентов на форме Определяет новые свойства, методы и события для компонентов ActiveX

 

П1.1.2.1. Управление группой компонентов

Показанные ниже окна (рис. П1.3, П1.4 и П1.5) обрабатывают группу выделенных на форме компонентов по образу (или относительно) первого выделенного. Чтобы выделить группу компонентов, нужно нажать и удерживать клавишу Shift, после чего щелкать по компонентам левой кнопкой мыши. Каждый отмеченный таким образом компонент выделяется серыми квадратиками по углам его видимых границ. Затем вызываются опции Align, size или Scale для соответственно выравнивания, изменения размеров или масштабирования компонентов. Другой вариант - не отпуская Shift, щелкнуть правой кнопкой мыши по любому свободному месту формы и выбрать нужную опцию в локальном меню.

Рис. П1.3. Окно выравнивания компонентов

Переключатели этого окна определяют выравнивание всех выделенных компонентов относительно самого первого выделенного компонента (эталона):

Группа переключателей width регулирует ширину выделенных компонентов, а группа Height - их высоту:

Рис. П1.4. Окно изменения размеров компонентов

С помощью окна Scaling factor вводится коэффициент масштабирования в процентах от текущих размеров.

Рис. П 1.5. Окно масштабирования компонентов

П 1.1.3. Опция Search

Find

 

 

Ищет фрагмент текста и подсвечивает его, если он найден

Find In Files

Ищет фрагмент текста во всех файлах проекта, или только в открытых файлах, или, наконец,

Replace

Ищет и заменяет фрагмент текста во всех файлах текущего каталога

Search Again

Повторяет поиск или поиск и замену

Incremental Search

Ищет текст по мере его ввода - сначала первую букву, затем две первые буквы и т. д.

Go to Line Number

Перемещает курсор на строку с указанным номером от начала файла

Browse Symbol

Показывает место возникновением определения символа программы (опция доступна только после успешного прогона программы). Символом считается любой глобальный идентификатор вашего проекта

Find Error

По адресу ошибки периода прогона программы отыскивает фрагмент кода, связанный с ее

Go to Line Number Find Error Browse Symbol

П 1.1.4. Опция View

Project Manager

Показывает окно Менеджера проекта

Translation Manager

Открывает доступ к Менеджеру трансляций Показывает окно Инспектора объектов

Object Inspector

Показывает окно

Object TreeView

Дерева объектов

To_Do List

Открывает доступ к списку To-Do

Alignment Palette

Показывает окно палитры выравнивания компонентов

Browser

Показывает окно браузера объектов

Code Explorer

Показывает спрятанное ранее окно Навигатора кода

Component List

Показывает окно для выбора компонентов

Window List

Показывает окно открытых окон проекта

Debug Windows

Отладочные окна. Эта опция-заголовок открывает доступ к подменю со следующими опциями

Breakpoints

Показывает окно точек останова

Call Stack

Показывает окно стека

Watching expressions

Показывает окно наблюдения за переменными/выражениями

Local Variables

Позволяет наблюдать за изменениями локальных переменных в отладочном режиме

Threads

Показывает окно статуса потоков команд

Modules

Показывает окно модулей проекта

Event Log

Показывает журнал событии

CPU

Показывает состояние регистров центрального процессора

FPU

Показывает состояние регистров арифметического сопроцессора

Desktops

Управляет конфигурациями основных окон. Эта опция-заголовок открывает доступ к подменю со следующими опциями

Save Desktop

Сохраняет текущую конфигурацию

Delete

Удаляет ранее сохраненную конфигурацию

Save Debug Desktop

Определяет текущую конфигурацию как отладочную

Toggle Form/Unit

Переключает активность из окна формы в окно кода программы и обратно

Units

Показывает окно модулей

Forms

Показывает окно форм

Type Library

Показывает окно библиотеки типов

New Edit Window

Открывает новое окно с кодом текущего модуля

Toolbars

Показывает окно настроек панелей инструментальных кнопок

View as Form/Text

Показывает окно формы в обычном виде или в виде текстового описания

Next Window

Показывает следующий присоединенный к проекту модуль

 

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

П 1.1.4.1. Менеджер проекта

Центральную часть окна менеджера проекта (рис. П1.6) занимает список всех связанных с проектом форм. Кнопка New открывает доступ к репозиторию, чтобы добавить новый модуль к проекту. Кнопка Remove удаляет модуль из проекта. После щелчка правой кнопкой мыши по модулю появляется локальное меню, с помощью которого можно открыть модуль или сохранить его под другим именем.

С помощью менеджера проектов осуществляется компиляция проекта на тот или иной язык локализации (см. ниже П 1.1.4.2). Если для проекта определены языки локализации, в группе проектов помимо исполняемого файла хххх.ехе будут дополнительные проекты с тем же именем, но разными расширениями (по одному проекту на каждый язык локализации). Если, например, язык локализации английский (Великобритания), в группе будет проект xxxx.eng. Сделайте активным нужный проект и вызовите опцию Project | Build хххх (хххх - имя вашего проекта). В результате будет откомпилирован нужный ресурсный файл. После, этого вновь активизируйте проект хххх.ехе, с помощью опции proj-ect | Language | Set Active укажите язык локализации и вновь откомпилируйте проект. К нему будет подключен нужный ресурсный файл, и ваша программа станет локализованной.

Рис. ПI.6. Окно менеджера проекта

П1.1.4.2. Менеджер трансляции

Менеджер трансляций упрощает создание локализованных версий программных продуктов. Он становится доступным только после указания языков, на которые будут переводится текстовые сообщения, надписи, опции и другие текстовые ресурсы программы. Для каждого языка создается своя динамически подключаемая библиотека ресурсов. Изменение этой библиотеки перед компиляцией программы изменяет ее язык (см. выше “Менеджер проекта”).

Для выбора языка (языков) локализации используется опция меню Project [Language (см. с. 619). Главным языком программы по умолчанию считается язык локализации Windows, так что если Delphi работает под управлением русскоязычной Windows, главным языком будет русский.

Окно менеджера трансляций показано на рис. П1.7. Для представленного на нем примера главным языком программы является русский, а языком локализации - английский (Великобритания). Переводится надпись Введите пароль (Enter password).

Рис. П1.7. Окно менеджера трансляций

П 1.1.4.3. Список ТО-DO

Список то-do предназначен для координации работы нескольких программистов в рамках одного проекта.

Этот список содержит все комментарии проекта, которые начинаются символами //todo: (рис. П1.8).

Комментарии содержат сообщения руководителя проекта и/или программистов об обнаруженных ошибках и обычно располагаются там, где обнаружена неточность.

После вызова списка то-do переход к нужному комментарию осуществляется двойным щелчком мыщи на соответствующей строке списка.

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

Рис. П 1.8. Пример списка ТО-DO

В списке можно указать приоритет сообщения (колонка “! ”), его собственника (Owner) и категорию.

Эти параметры можно задать с помощью соответствующих ключей непосредственно в комментарии (см. рис. П1.8) или после вызова редактора сообщения в списке (он вызывается после активизации сообщения и нажатия клавиши F2).

П 1.1.4.4. Браузер объектов

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

П 1.1.5. Опция Project

Lanages

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

View Source

Показывает окно с кодом проекта Опция-заголовок.

Add To Repository

Помещает проект в репозиторий

Import Type Library

Импортирует в проект библиотеку типов элементов ActiveX

Remove From Project

Удаляет файл из проекта

Add To Project

Добавляет файл к проекту

Add Remove Set Active Update Resources DLL

Добавляет новый язык локализации Удаляет существующий язык локализации Делает активным язык локализации Создает заново ресурсные DLL, управляющие локализацией программы

Add New Project

 

 

Добавляет программу, DLL или пакет к текущей проектной группе

Add Exists Project

Открывает проект и добавляет его к текущей проектной группе

Compile Project!

Компилирует модули, которые изменились с момента предыдущей компиляции проекта

Build Projecti

Компилирует все модули проекта и создает исполняемую программу

Syntax Check Project1

Проверяет синтаксическую правильность программы

Information

Показывает информацию о вашей программе

Compile All Projects

Компилирует все файлы данной проектной группы, которые изменились с момента предыдущей компиляции

Build All Projects

Компилирует все файлы данной проектной группы независимо от того, изменялись ли они или нет с момента последней компиляции

Web Deployment Options

Устанавливает ActiveX компонент или ActiveForm на вашем Web-сервере. Вызывается перед компиляцией проекта

Web Deploy

Устанавливает ActiveX компонент или ActiveForm на вашем Web-сервере. Вызывается после компиляцией проекта

Options

Показывает диалоговое окно установки параметров проекта

 

П 1.1.4.1. Выбор языков локализации

После выбора Project [Languages I Add вызывается окно эксперта выбора языков локализации проекта (рис. П1.9).

Рис. П 1.9. Окно выбора языков локализации

В нем указывается один или несколько проектов, для которых осуществляется локализация, и главный язык проекта (код $419 соответствует русскому языку). В следующем окне (после щелчка по кнопке Next) вы сможете выбрать языки локализации, отметив их флажками. На следующем шаге эксперт предложит вам указать каталоги размещения библиотек, которые будут содержать локализованные ресурсы. Все библиотеки имеют одинаковое название хххх. drc (хххх - имя проекта), поэтому они должны размещаться в разных каталогах. Для компиляции программы с тем или иным языком локализации используются менеджер проекта и опция Project | Language I Set Active.

П 1.1.4.2. Управление опциями проекта

Управление опциями проекта осуществляется с помощью диалогового окна, вызываемого опцией Project | Options.

На странице Forms окна опций проекта (рис. ГЛ. 11) указывается главная форма проекта, а также автоматически создаваемые формы (Auto-create forms) и доступные проекту формы (Available forms). Кнопки между панелями этого окна позволяют переносить формы из одной панели в другую. Переключатель Default разрешает/запрещает использовать текущие установки страницы как умалчиваемые для других проектов.

Рис. П1.10. Окно опций проекта

На странице Application указывается подпись под пиктограммой свернутой программы (Title), сама пиктограмма (Icon) и имя Help-файла (Help file).

На странице Compiler собраны переключатели, управляющие параметрами процесса компиляции. В том числе (в фигурных скобках указана соответствующая директива компилятора): Optimizations - включает режим оптимизации {$0}, Aligned record fields - размещает данные, выравнивая их на границу 32-разрядного слова {$а}; Stack frames - заставляет компилятор создавать стековые рамы для всех процедур и функций {$W}. Pentium-Safe fdiv - вырабатывает код, предохраняющий от ошибок в вещественных вычислениях на процессорах Pentium ранних выпусков {$U}; Range Checking - создает код проверки выхода за границы массивов {$R}; l/o Checking создает код проверки корректности выполнения операций ввода/вывода {$I}; Overflow checking - вырабатывает код проверки переполнения при выполнении целочисленных операций ($Q}. Strict var-Strings - определяет строгую проверку соответствия строковых типов при обращении к подпрограммам {$V}. Complete Boolean Eva1 - определяет полное вычисление логических выражений {$B}; Extended Syntax - включает расширенный синтаксис Object Pascal {$xf; Typed @ Operator - контролирует типы указателей в операции @ {$Т}; open Parameters - разрешает использование открытых параметров в подпрограммах {$р}. Huge Strings - связывает зарезервированное слово String с длинными строками {$Н}; Assignable Typed Constants - разрешает присваивание типизированным константам {$J}; Debug information - помещает в DCU-файл отладочную информацию {$D}; Local Symbols - создает отладочную информацию о локальных символах программы {$l};

Symbol information - создает отладочную информацию о символах программы {$y}, Show Hints - заставляет компилятор выдавать рекомендации; Show Warnings - заставляет компилятор выдавать предупреждающие сообщения; Assertions - заставляет вырабатывать код для отладочных процедур Assertion {$C}.

Страница Linker определяет параметры компоновщика, в том числе: Off - запрещает создавать карту распределения памяти; Segments - карта содержит список модулей и адреса точек входа всех подпрограмм; Publics - дополняет Segments отсортированным списком символов секций public; Detailed - дополняет Public детальной информацией о модулях; Generate dcus - создает стандартные для Delphi DCU-фаЙлы; Generate С Object files - создает файлы в формате объектов языка С; Generate C++ Object files - создает файлы для связывания с программой, созданной С помощью C++ Builder; Generate Console Application - создает консольную программу; include TD32 Debug info - помещает в исполняемый файл информацию для внешнего отладчика; include remote debug symbols-используется для удаленного вызова отладчика; Min Stack Size-устанавливает минимальный размер стека; мах Stack size - устанавливает максимальный размер стека; image Base - указывает начальный адрес для загрузки изображений (для dll); exe Descriptor - информационная строка длиной до 255 символов, которая включается в исполняемый файл (например, для объявления авторских прав).

Страница Directories/Conditionals задает каталоги размещения и условные символы: Output Directory - указывает каталог размещения исполняемого файла; Unit Output Directory - указывает каталог размещения Dcu-файлов;

Search Path - каталог размещения файловых с исходными текстами программы, если они не обнаружены в текущем каталоге; при необходимости указать несколько каталогов в любом из описанных выше окон они разделяются точкой с запятой; Debug source path - определяет каталог размещения внешнего отладчика; bpl output directory - указывает папку размещения файлов компиляции пакетов; dcp output directory - определяет каталог размещения файлов для локализации программ; Conditional Defines - определяет символы для условной компиляции; Unit Aliases-определяет псевдонимы модулей.

На странице Versioninfo сосредоточены параметры управления информацией о версии программы: include version information in project - если переключатель выбран, в проект включается информация о версии программы, которую можно прочитать после щелчка правой кнопкой мыши на пиктограмме программы и выборе Properties; Module Version Number - поля Major, Minor, Release, Build определяют составной номер версии; Auto-increment build number - если переключатель активен, номер версии автоматически наращивается при каждой компиляции программы; Debug Build - указывает на создание отладочной версии программы; Pre-Release - указывает на создание некоммерческой версии программы; Special Build - казывает на специальную версию программы; Private Build - указывает на версию, не предназначенную для широкого распространения; dll - создается динамическая библиотека; Language id - идентификатор языка, на который рассчитана программа.

П 1.1.5. Опция Run

Run

Компилирует программу и делает ее прогон

Attach to Process

 

Позволяет присоединиться в режиме отладки к одному из уже запущенных процессов на другой сетевой машине

Parameters

Указывает командную строку запуска вашей программы

Register ActiveX Servers

 

Регистрирует ваш проект в реестре Windows. Опция доступна для ActiveX-проектов

Unregister ActiveX Servers

 

Удаляет ваш проект из реестра Windows. Опция доступна для ActiveX-проектов

Install MTS Objects

Регистрирует в вашем проекте объект MTS

Step Over

В отладочном режиме выполняет текущую строку кода и не прослеживает работу вызываемых подпрограмм

Trace Into

 

В отладочном режиме выполняет текущую строку кода и

прослеживает работу вызываемых подпрограмм

Trace To Next Source Line

 

Программа выполняется до ближайшего от текущего

положения курсора исполняемого оператора

Run To Cursor

 

 

 

В отладочном режиме выполняет программу и останавливается перед выполнением кода в строке с текстовым курсором

Run Until Return

 

В отладочном режиме выполняет текущую подпрограмму и останавливается

Show Execution Point

 

Отображает в окне кода оператор, на котором было прервано выполнение программы

Program Pause

Приостанавливает прогон отлаживаемой программы

Program Reset

 

Прекращает прогон программы и восстанавливает ре

жим конструирования программы

Inspect

Открывает окно проверки текущего значения

Evaluate/Modify

Открывает окно проверки/изменения переменных

Add Watch

 

Добавляет переменную или выражение в окно наблюдения

Add Breakpoint

Добавляет точку останова

 

П 1.1.6. Опция Component

New Component

 

 

Открывает окно эксперта компонентов

Install Component

Помещает компонент в существующий или новый пакет

Import ActiveX Control

Добавляет к проекту библиотеку типов ActiveX-компонентов

Create Component Template

Помещает шаблон в палитру компонентов

Install Packages

Указывает пакеты, необходимые на этапе конструирования и прогона программы

Configure Palette

Вызывает диалоговое окно настройки палитры компонентов

 

П 1.1.7. Опция Database

Explore

Вызывает инструмент исследования баз данных - Database Explorer или SQL Explorer (в зависимости от версии Delphi)

SQL Monitor

Вызывает инструмент запросов к БД - SQL Monitor

Form Wizard

Вызывает окно эксперта форм для создания формы, отображающей наборы данных из удаленных или локальных БД

 

П 1.1.8. Опция Tools

Environment Options

Вызывает окно настройки параметров среды Delphi и ее инструментов

Editor Options

Вызывает окно настройки параметров редактора Delphi

Debugger Options

Вызывает окно настройки параметров отладчика Delphi

П 1.1.8.1. Настройка параметров среды

Диалоговое окно настройки параметров среды вызывается опцией

Tools I Environment Options (рис. П1.11).

Рис. П 1.11. Окно настройки параметров среды

Закладка Preferences открывает доступ к параметрам среды Delphi: Editor files - перед прогоном автоматически сохраняются все измененные файлы; Project Desktop - перед прогоном автоматически сохраняется информация о состоянии экрана; Desktop Only - при выходе из программы сохраняется информация о состоянии экрана, Desktop and Symbols - при выходе из программы сохраняется информация о состоянии экрана и символах программы на момент последней удачной компиляции; Auto drag docking - разрешает причаливать одно инструментальное окно к другому; Show compiler progress - показывать окно отображения процесса компиляции; Warn on package rebuild - предупреждать о перекомпиляции пакетов; Minimize On Run - минимизировать окна Delphi в момент старта программы; Hide Designers On Run - прятать вспомогательные окна (окно Инспектора объектов и окна форм) в момент старта программы; Directory -содержит путь к окну расположения файла репозитория DELPHI32.DRO; если путь не указан, используется каталог bin каталога размещения Delphi.

Закладка Designer содержит настройки для процесса конструирования форм:

Display Grid - показывать сетку на пустой форме; Snap to Grid - привязывать расположение компонентов к узлам сетки; Show component captions - показывать имена компонентов на этапе конструирования программы; show designer hints - показывать оперативную подсказку об именах компонентов и их типах на этапе конструирования; show extended control hints - показывать ярлычки оперативной подсказки с расширенной информацией; New Forms as Text - сохранять файлы описания форм в текстовом формате; Auto create forms & data modules - при выборе переключателя каждая добавляемая к проекту форма или модуль данных помещается в список автоматически создаваемых форм, в противном случае - в список доступных форм; Grid size x - горизонтальный шаг сетки; Grid size Y - вертикальный шаг сетки.

Закладка Object Inspector открывает окно настройки параметров Инспектора объектов: SpeedSettings - позволяет выбрать один из следующих вариантов настройки: Custom colors & settings (настраиваемые цвета и установки). Default colors & settings (умалчиваемые цвета и установки), Delphi 5 emulation (эмуляция Delphi 5), Visual Studio (TM) emulation (эмуляция Visual Studio); Colors - позволяет настроить цветовыделение опций Инспектора объектов; Expand inline - раскрывать свойства и методы внешнего объекта; Show on events page -показывать внешний объект на странице событий.

Закладка Palette предоставляет средства для настройки палитры компонентов: вы может изменять порядок следования компонентов и страниц, переименовывать страницы, добавлять к ним новые компоненты, удалять существующие и т. д.

Закладка Library определяет каталоги размещения библиотек Delphi: Library path - маршрут поиска библиотечный файлов; bpl output library - выходной каталог для размещения BPL-файлов; dcp output library - выходной каталог для размещения DCP-файлов; Browsing Path - каталоги для, браузера.

Закладка Explorer позволяет настроить свойства кодового браузера, окно которого обычно “причалено” к окну редактора кода. Automatically show Explorer - если этот переключатель отмечен, окно кодового браузера появляется при создании каждого нового проекта; Highlight incomplete class items - выделяет цветом незавершенные определения классов; show declaration syntax - позволяет помимо имен элементов показывать свойства и методы; Explorer sorting- определяет способ сортировки элементов (по алфавиту или по порядку объявления). Finish incomplete properties - после отметки завершает определения не только классов, но и свойств. Переключатели initial browser view позволяют выбрать приоритет показа классов, модулей или глобальных определений.

Закладка Type Library служит для управления свойствами редактора библиотеки типов (используется при разработке многозвенных приложений баз данных).

Закладка Environment variables определяет т. н. переменные среды разработки, в том числе тип ОС, положение основных файлов ОС и т. п.

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

Закладка internet управляет форматами создаваемых файлов для передачи по Интернет (интранет).

Закладка General окна кодового редактора (вызывается Tools I Editor Options) позволяет настроить общие свойства кодового редактора: Auto indent Mode- реализовать автоотступ (при нажатии Enter курсор устанавливается на начало предыдущей строки); insert Mode - определяет умалчиваемым режим вставки (переключается клавишей Insert); Use Tab Character - при нажатии клавиши Tab в текст вставляется символ Tab (если переключатель не установлен, вставляются символы пробела); Smart Tab - при нажатии клавиши Tab смещает курсор к первому не пробелу в предыдущей строке; Optimal Fill - начинает каждый автоотступ с минимального количества символов Tab и/или пробела; Backspace Unindents - разрешает удалять автоотступ клавишей Backspace; Cursor Through Tabs - разрешает курсору перескакивать через пустые символы табуляции; Group Undo - разрешает удалять группу последних изменений текста при нажатии Alt+Backspace или выборе опции Edit/Undo; Cursor Beyond eof - позиция курсора включает символы конца строки; undo After Save - восстанавливать изменения, бывшие до последнего сохранения файла; Keep Trailing Blanks - сохранять ведомые символы пробела; Brief Regular Expressions - использовать шаблоны при поиске и поиске-замене; шаблоны включают в себя следующие специальные символы:

Символ

Назначение

^ или %

В начале строки означает, что искомый образец должен располагаться с начала строки

& или >

В конце строки означает, что искомый образец должен располагаться в конце строки

?

На этом месте может стоять любой символ

@

После символа указывает на любое число этих символов в этом месте: bо@ означает boo, bo, bot

+

После символа указывает на любое число символов, которые следуют дальше: bо+ означает boo, bonus, bot, но не b или bo

|

Выбор одного из выражений - до или после черты: bar | car выбирает bar или car На этом месте не должен стоять следующий символ

~

На этом месте должен стоять любой из указанных в скобках символов: [bot ] означает b, о или t

[^]

На этом месте не должен стоять любой из указанных в скобках символов: [bot ] означает любой символ, кроме b, о или t

[-]

Задает диапазон символов. Например [bot] -любой символ в диапазоне от b до о включительно

( )

Определяет вложенный шаблон. Среда допускает до 10 уровней вложенности

\

Отменяет действие стоящего за ним специального символа

Persistent Blocks - указывает, что выделенный блок остается выделенным, даже если его покидает текстовый курсор (выделение сохраняется до нового выделения);

Overwrite Blocks - заменяет выделенный блок текстом из буфера; если при этом установлен переключатель persistent Blocks, блок вставляется сразу за выделенным; Double Click Line - выделяет цветом всю строку при двойном щелчке на любом ее символе; Find Text At cursor - если переключатель установлен, в образце поиска при поиске или поиске/замене будет появляться слово, рядом с которым располагается текстовый курсор; Force Cut And Copy Enabled - разрешает операции Edit/Cut и Edit/Copy, даже если текст не выделен; Use syntax Highlighting - разрешает использование синтаксического цветовыделения; Block indent - определяет величину автоотступа для выделенного блока; undo Limit - определят размер буфера для операций Undo; Tab stops - размер табулостопа в символах шрифта экрана; Syntax Extensions - определяет расширения файлов, для которых будет использоваться синтаксическое цветовыделение.

Закладка Display определяет настройку экрана: Brief Cursor Shapes - использовать формы курсора, подобные использующимся в редакторе Brief; Create Backup File - создавать страховочный файл с расширением, начинающимся символом “~” (тильда); Preserve Line Ends - исключать остановку текстового курсора в конце строки; Zoom To Full Screen - разрешить распахивание кодового окна на весь экран; visible Right Margin - разрешает показывать правую границу текста в виде вертикальной пунктирной линии; visible gutter - разрешает показывать служебную зону в левой части окна редактора; Right Margin - определяет правую границу текста; Gutter width - определяет ширину левой служебной зоны; Editor Font - определяет используемый в редакторе шрифт; size - задает высоту шрифта.

Закладка Color позволяет выбрать цвета для отдельных синтаксических элементов. Эти цвета будут использованы для синтаксического цветовыделения.

Закладка Key Mappings позволяет настроить “горячие” клавиши, используемые в кодовом редакторе для ускорения решения типовых задач.

Закладка Code insight определяет используемые интеллектуальные возможности кодового редактора: Code Completion - разрешает использовать подсказку в виде списка свойств, методов и событий, появляющуюся после ввода имени класса (или имени объекта) и следующей за ним точки; Code Parameters - разрешает появление подсказки с перечислением формальных параметров при определении вызовов методов класса; Tooltip Expression Evaluation - разрешает показывать подсказку, в которой на этапе останова программы в контрольной точке будет отображаться текущее содержимое переменной или выражения при указании на них мышью; Tooltip Symbol insight - разрешает показывать информацию об объявленном типе и местонахождении этого объявления; Code Completion Delay - определяет задержку в секундах до включения интеллектуальных возможностей редактора; Templates - определяет кодовые слова, по которым редактор подготавливает стандартные заготовки; для использования уже определенных кодовых слов просто напечатайте нужное слово и нажмите Ctrl+Shift+J; например, если вы напечатаете arrayd и нажмете Ctrl+Shift+j, редактор вставит

array [0..I] of ;

(вертикальная черта обозначает место появления текстового курсора); кнопки Add, Edit и Delete используются соответственно для добавления нового, редактирования и удаления старого кодового слова; Code - показывает код, который связан с указанным кодовым словом.

П 1.1.9. Опция Help

Delphi Help

Основная справочная служба Delphi

Delphi Tools

Справочная служба по инструментам Delphi

Windows SDK

Справочная служба по Windows API

Borland Home Page

Домашняя страничка Borland

Delphi Home Page

Домашняя страничка Delphi

Borland Developer Support

Страничка поддержки разработчиков

Delphi Direct

Окно Интернет-поддержки разработчика

Customize

Вызов службы OpenHelp

About

Окно с краткой информацией о Delphi

 Рис. П 1.12. Окна справочной службы

П 1.1.9.1. Служба OpenHelp

Служба OpenHelp предназначена для модификации справочной службы Delphi: с ее помощью можно удалять ненужные разделы и, что наиболее важно, вставлять новые. Последнее связано с тем, что существует множество относительно небольших фирм, занимающихся разработкой и продажей пакетов компонентов для Delphi и C++ Builder (пакеты компонентов для этих двух инструментов идентичны), а также компонентов ActiveX. Сама Delphi имеет развитые средства создания новых компонентов (см. главы части 8). Поставщики компонентов обычно поставляют вместе с ними нужные файлы справочной помощи, которые OpenHelp может сделать частью справочной службы Delphi.

Служба OpenHelp вызывается опциями Help | Customize главного меню. Ее окно показано на рис. П 1.13.

Четыре закладки этого окна управляют содержанием справочной службы (закладка Content), набором файлов помощи (index), контекстно-чувствительной помощью (Link) и проектами (Project). Чтобы удалить раздел содержания, файл справки или проект, нужно на соответствующей закладке щелкнуть по удаляемому компоненту и выбрать в меню Edit | Remove Files или щелкнуть по инструментальной кнопке.

Для добавления к содержанию нового раздела требуется предварительно создать два специальных файла: файл с таблицей содержания (с расширением .toe) и файл содержания (.cnt). toe-файл, как следует из документации, есть стандартный файл содержания cnt, создаваемый утилитой hcw.exe (детальное описание процесса создания справочных файлов и файлов содержания вы найдете в гл. 21), за тем отличием, что в нем нельзя использовать секции include. Файл cnt, в свою очередь, отличается от стандартного тем, что в нем должны быть только две директивы: base и title, причем содержимое title у обоих файлов должно быть одинаковым и они должны располагаться в одной папке. После создания файлов вызывается OpenHelp, и на закладке Content щелкается кнопка или вызывается опция Edit |Add Files. В появляющемся вслед за этим диалоговом окне нужно указать положение файла toe.

Рис. П1.13. Окно службы OpenHelp

Для добавления справочного файла (.hlp) выбирается закладка index, щелкается та же кнопка и указывается положение hlp-файла.

Как показывает практика, эти два действия вполне достаточны для нормального подключения к справочной службе новой информации. Если вы закроете окно OpenHelp, появится запрос - нужно ли обрабатывать внесенные изменения. После утвердительного ответа новый вариант справочной службы будет готов к работе.

П 1.2. РАБОТА С РЕДАКТОРОМ

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

При их описании используются следующие обозначения клавиш управления курсором:

вл

вп

курсор влево;

курсор вправо;

вв

вн

курсор вверх;

курсор вниз.

 

П 1.2.1. Команды перемещения курсора

вл

на символ влево

HOME

в начало строки

вп

на символ вправо

END

в конец строки

Ctrl-ВЛ

на слово влево

Ctrl+PgUp

в начало экрана

Ctrl-ВП

на слово вправо

Ctrl+PgDn

в конец экрана

вв

на строку вверх

Ctrl+HOME

в начало файла

вн

на строку вниз

Ctrl+END

в конец файла

PgUp

на страницу вверх

Ctrl+Q+B

в начало блока

PgDn

на страницу вниз

Ctrl+Q+K

в конец блока

 

 П 1.2.2. Команды удаления/вставки

INS

включить/отключить режим вставки

Delete

стереть символ справа от курсора

Enter

вставить строку

Ctrl+T

стереть слово справа от курсора

Qrl+Y

удалить строку

Ctrl+Q+Y

стереть остаток строки справа от курсора

Backspace

стереть символ слева от курсора

Ctrl+Z

отменить последнее изменение текста

 

П 1.2.3. Команды работы с блоками

При подготовке текстов программ часто возникает необходимость перенести фрагмент текста в другое место или удалить его. Для такого рода операций удобно использовать блоки - фрагменты текста, рассматриваемые как единое целое. Длина блока может быть достаточно большой, он может занимать несколько экранных страниц. В каждый момент в одном окне редактора может быть объявлен только один блок. Обмен блоками между окнами возможен только через буфер Clipboard.

Ctrl+K+T

пометить в качестве блока слово слева от курсора

Ctrl+K+P

напечатать блок

Ctrl+K+H

убрать выделение блока цветом; повторное использование Ctrl+K+H вновь выделит блок

Ctrl+K+Y

удалить блок

Ctrl+K+R

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

Ctrl+K+W

записать блок на диск

Ctrl+K+I

сместить блок вправо на два символа

Ctrl+K+U

сместить блок влево на два символа

Shift+Delete

вырезать блок и поместить его в Clipboard

Ctrl+Insert

копировать блок в буфер Clipboard

Shift+Insert

вставить содержимое Clipboard в позицию, указываемую текстовым курсором

 

П 1.2.4. Прочие команды

Ctrl+F F3

искать по образцу продолжить поиск

Ctrl+R

искать по образцу и заменить

Ctrl+K+n

установить маркер; п = 0..9 (см. ниже)

Ctrl+Q+n

искать маркер

Ctrl+Q+]

искать парную скобку (см. ниже)

Ctrl+O+O

вставить настройку компилятора в начало файла (см. ниже)

Ctri+Shift+R

начинает и заканчивает определение макроса

Ctrl+Shift+P

выполняет ранее определенный макрос

 Назначение большинства команд понятно без каких-либо комментариев, но некоторые нуждаются в пояснении.

Ctrl+K+n. Устанавливает в текущую позицию курсора маркер с номером п = 0..9. Маркер на экране появляется в виде небольшого окошка с номером маркера в служебном поле слева от текста. Он никак не влияет на исполнение программы. Команда используется совместно с командой Ctrl+Q+n (искать маркер с номером и) для ускорения поиска нужных фрагментов текста при разработке крупных программ. Раз установленный маркер нельзя удалить, но можно его поместить в другое место файла. При записи на диск маркеры не запоминаются, т. е. после чтения файла с диска в нем нет маркеров.

Ctrl+Q+]. Эта команда используется для поиска ближайшей парной скобки. Она позволяет отыскивать пары скобок ( и ), { и }, [ и ]. Подведите курсор так, чтобы он расположился непосредственно перед одной из скобок, и дайте команду - редактор отыщет нужную парную скобку.

Ctrl+0+0. Эта команда заставит редактор поместить в самое начало файла строки, содержащие текущую настройку среды в виде директив компилятора, например:

($A+,B-,C+,D+,E-,F-,G+,H+,

I+,J+,K-,L+,M-,N+,0+,P+,

Q-,R-,S-,T-,U-,V+,W-,X+,

Y-}

($MIKSTACKSIZE $00004000)

($MAXSTACKSIZE $00100000)

{$IMAGEBASE $00400000}

{$APPTYPE GUI)

В окне кода можно запрограммировать часто повторяющиеся манипуляции с клавишами в виде макроса. Для начала указания макроса используется команда Ctri+Shift+R. После этого любые действия программиста с клавиатурой запоминаются вплоть до повторения команды Ctrl+Shift+R. Запомненный макрос исполняется командой Ctrl+Shift+P.

П1.2.5. Интеллектуальные возможности редактора

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

П 1.2.5.1. Поиск объявлений

Если активизировать окно кода и перемещать в нем указатель мыши при нажатой и удерживаемой клавише Ctrl, текст программы приобретает свойства гипертекста: на идентификаторах стандартный указатель мыши заменяется на руку с пальцем, а соответствующий идентификатор выделяется цветом и подчеркиваеся. Если в этот момент нажать левую кнопку мыши, редактор попытается отыскать исходный текст модуля, в котором объявлен соответствующий тип, подпрограмма или глобальная переменная, и, если поиск окажется удачным, загрузит текст модуля в окно кода и установит в нем текстовый курсор в начале описания типа (подпрограммы, переменной). Такого же эффекта можно достичь, если щелкнуть по идентификатору правой кнопкой мыши и выбрать опцию Find Declaration.

Поиск идет в следующем порядке (ниже указаны опции меню и элементы соответствующих окон, содержащие нужные каталоги):

  1. Project | Options | Directories | Conditionals | Search path;
  2. Project | Options|Directories | ConditionalsI Debug source path;
  3. Tools | Environment Options[Library|Browsing path
  4. Tools | Environment Options | Library | Library path.

Нельзя искать объявления, если текущий программный модуль еще ни разу не был сохранен на диске.

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

П 1.2.5.2. Создание стандартных заготовок для новых свойств и методов

При объявлении новых свойств класса в интерфейсной секции вы можете написать лишь имя свойства и его тип.

После нажатия Ctrl+Shift+C или щелчка правой кнопкой мыши и выбора продолжения Complete Class at Cursor редактор добавит необходимые элементы Read и Write в описание свойства и внесет другие изменения в текст программы.

Пусть, например, вы написали

type TMyButton = class(TButton) property Size: Integer;

procedure DoSomething;

end;

и нажали Ctrl+Shift+C (текстовый курсор при этом должен находиться в любом месте внутри описания класса). Редактор изменит описание класса следующим образом:

type TMyButton = class(TButton)

property Size:

Integer read FSize write SetSize;

procedure DoSomething;

private

FSize: Integer;

procedure SetSize(const Value: Integers;

end;

и добавит в исполняемую секцию описание двух методов:

{ TMyButton }

procedure TMyButton.DoSomething;

begin

end;

procedure TMyButton.SetSize(const Value: Integer);

begin

FSize := Value;

end;

Вы можете также вставить в раздел implementation новый метод класса и нажать Ctrl+Shift+C - редактор вставит прототип метода в объявление класса в секции interface.

П 1.2.5.3. Навигация внутри модуля

Клавиши курсора Вверх (Up) и Вниз (Down) в сочетании с нажатыми и удерживаемыми клавишами Ctrl и Shift осуществляют переключение между секциями interface и implementation текущего модуля. Если в секции interface вас заинтересовала реализация того или иного метода, щелкните по нему мышью и нажмите Ctrl+Shift+Down - редактор отыщет реализацию и покажет ее вам. Наоборот, чтобы из секции implementation переместиться к заголовку метода в секции interface, нажмите Ctrl+Shift+Up.

П 1.2.5.4. Вставка текстовых заготовок и окно Code Insight

Редактор может вставлять в текст множество текстовых заготовок, позволяющих сэкономить время ввода кода программы.

Просмотреть имеющиеся текстовые заготовки и при необходимости добавить к ним собственные можно с помощью Tools | Editor Options | Code Insight.

В средней части окна (рис. П1.14) с помощью списка Templates можно выбрать имя и краткое описание образца, а в окне Code увидеть и при желании отредактировать соответствующую текстовую заготовку.

С помощью кнопки Add можно добавить новый образец, с помощью Edit — изменить его имя и краткое описание, а с помощью Delete - удалить его.

При редактировании имеющейся или вставки новой заготовки учтите, что символ “|” определяет позицию текстового курсора после вставки заготовки в текст программы.

Для вставки заготовки напечатайте ее имя в окне кода и нажмите Ctrl+J - имя заменится на полный текст заготовки.

Если вы не помните всех имен заготовок, их можно выбрать из списка.

Для этого установите текстовый курсор в то место, где вы хотите вставить заготовку, и нажмите Ctrl+J - на экране появится окно с именами и краткими описаниями всех заготовок.

Рис. П1.14. Окно настройки параметров Coda Insight

Остальные элементы окна Code insight:

Code Completion - разрешает/запрещает появление окна с именами свойств и методов класса после ввода имени объекта и точки (рис. П 1.15).

Code Parameters - разрешает/запрещает появление окна с именами формальных параметров обращения к подпрограмме после ввода имени подпрограммы и открывающей скобки (рис. П 1.15).

Tooltip Expression Evaluations - разрешает/запрещает появление окна с указанием текущего значения переменной, над именем которой располагается указатель мыши в режиме отладки

Tooltip Symbol Insight - разрешает/запрещает появление окна с указанием параметров идентификатора, над которым располагается указатель мыши.

Delay - определяет задержку в секундах включения механизма показа окон Code Insight.

Рис. П1.15. Окна Code Insight

П1.3. ОТЛАДКА ПРОГРАММ

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

П 1.3.1. Точки контрольного останова

Точка контрольного останова определяет оператор в программе, перед выполнением которого программа прервет свою работу и управление будет передано среде Delphi. Точка останова задается с помощью опции view | Debug windows | Breakponts.

Окно точек останова (рис. П 1.16) содержит список всех установленных в проекте точек, перед выполнением которых происходит прекращение работы программы и управление получает среда Delphi.

Для добавления новой точки следует щелкнуть по окну правой кнопкой мыши и выбрать опцию Add. В этом случае появляется окно, с помощью которого можно указать положение добавляемой точки: FileName - определяет имя файла;

Line number - номер строки от начала файла (в момент появления окна оно содержит файл и строку с текстовым курсором). В строке Condition можно указать условие останова в виде логического выражения (например, MyValue = Мах-Value-12), а в строке Pass count - количество проходов программы через контрольную точку без прерывания вычислений.

Рис. П1.16. Окно точек останова (слева) и окно добавления новой точки (справа)

П 1.3.2. Окно наблюдения

Наблюдать за состоянием переменной или выражения можно с помощью специального окна, вызываемого опцией View | Debug windows | Watches (cm. там же).

Окно наблюдения (рис. П 1.17) используется в отладочном режиме для наблюдения за изменением значений выражений, помещенных в это окно. Для добавления нового выражения щелкните по окну правой кнопкой мыши и выберите опцию New Watch. В строке Expression введите выражение. Окно Repeat count определяет количество показываемых элементов массивов данных; окно Digits указывает количество значащих цифр для отображения вещественных данных;

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

Рис. П1.17. Окно наблюдения и окно добавления в него нового выражения

П 1.3.3. Принудительное прерывание работы программы

Если программа запущена из среды Delphi, ее работу можно прервать в любой

момент G помощью клавиш Ctrl+F2, кнопки, опцией Run | program pause или, наконец, установив точку контрольного останова в той части программы, которая выполняется в данный момент или будет выполнена.

П 1.3.4. Трассировка программы

Перед исполнением оператора, в котором установлена точка контрольного останова, работа программы будет прервана, управление получит среда Delphi, a в окне наблюдения отразится текущее значение наблюдаемых переменных и/или выражений. Теперь программист может прослеживать работу программы по шагам с помощью клавиш F7 и F8 или инструментальных кнопок. При нажатии F8 будут выполнены запрограммированные в текущей строке действия, и работа программы прервется перед выполнением следующей строки текста программы. Замечу, что контрольная точка останова выделяется по умолчанию красным цветом, а текущая прослеживаемая строка - синим. Если программа остановлена в контрольной точке, т.е. когда текущая строка совпадает со строкой останова, строка выделяется красным цветом, Признаком текущей строки является особое выделение строки в служебной зоне слева в окне редактора (см. рис. П1.18).

Рис. П1.18. Фрагмент окна редактора в режиме отладки

Кстати, чтобы установить/снять точку контрольного останова, достаточно щелкнуть мышью по служебной зоне слева от нужной строки или установить в эту строку текстовый курсор и нажать F5.

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

После трассировки нужного фрагмента программы можно продолжить нормальную ее работу, нажав клавишу F9.

П 1.3.5. Действия в точках прерывания

В Delphi 5 и 6 с любой точкой можно связать одно или несколько действий. Для этого нужно активизировать окно точек останова, вызвать его локальное меню (щелчок правой кнопкой) и выбрать продолжение Properties. В появившемся окне свойств щелкнуть по кнопке Advanced (рис. П1.19).

В нижней части окна имеется панель Actions, с помощью которой и определяются действия для точки останова, указанной в верхней части окна.

Break - простой останов перед выполнением помеченного оператора.

ignore subsequent exceptions - если переключатель установлен, игнорируются все возможные последующие исключения в текущем отладочном сеансе до очередной точки останова, в которой, возможно, это действие будет отменено.

Handle subsequent exceptions - после установки этого переключателя отменяется действие предыдущего переключателя и возобновляется обработка возможных исключений.

С помощью Log message вы можете указать произвольное сообщение, связанное с точкой останова, а с помощью Eval expression - вычислить некоторое выражение и поместить его результат в это сообщение.

П 1.3.6. Группировка точек прерывания

В Delphi 5 и б имеется возможность объединения точек останова в группы. Для этого используется все то же окно рис. П1.20: в строке Group следует указать имя группы, к которой принадлежит точка, а в строках Enable Group и Disable Group соответственно разрешить или запретить действие всех точек останова, относящихся к соответствующей группе.

Рис.П.1.19.Окно связывания точки псптнови с действием

П 1.3.7. Вычисление выражений и изменение значений

С помощью окна Evaluate/Modify (рис. П1.20) можно узнать значение любого выражения или установить в переменную другое значение. Это окно вызывается в режиме отладки после нажатия Ctrl+F7.

Рис 1.20. Окно прослеживания изменения значении

Это окно - модальное, т. е. оно прерывает отладку программы до тех пор, пока не будет закрыто. В строке Expression можно написать имя переменной или интересующее вас выражение. После щелчка по кнопке Evaluate в поле Result появится текущее значение переменной (выражения). Если в Expression содержится имя переменной, одновременно становится доступной кнопка Modify, а в строке New value повторяется текущее значение переменной. Если изменить эту строку и нажать Modify, в переменную будет помещено новое значение, которое и будет использоваться при дальнейшем прогоне программы (если определяется значение выражения, кнопка Modify и строка New value будут недоступны).

В Delphi 5 и 6 используются также дополнительные кнопки этого окна Watch и inspect. Если вы щелкните по первой из них, выражение (переменная) из окна Evaluate будет перенесено в окно наблюдений watch, щелчок по второй отображает выражение (переменную) в специальном окне Inspect.

П 1.3.8 Ведение протокола работы программы

В ряде случаев бывает неудобно или невозможно пользоваться пошаговой отладкой программ. Если вы, например, установите точку останова в подпрограмме прорисовки сетки TDBGrid, программа после останова не сможет нормально продолжить свою работу, т. к. в этом случае она будет пытаться восстановить экран и вновь будет остановлена и т. д. В таких ситуациях вам могут помочь контрольные точки, которые не прерывают работу программы, а лишь помещают некоторую информацию в специальный файл трассировки. Для реализации такой точки раскройте окно RunlAdd Breakpoint | Source Breakpoint (см. рис. П1.19), уберите флажок в переключателе Break и напишите сообщение в строке Log message. Вы можете также в строке Eval expression указать некоторое выражение, которое будет вычислено и вместе с сообщением помещено в протокол работы программы. Этот протокол можно просмотреть в любой момент (в том числе и после завершения прогона программы) с помощью опции View] Debug Windows! Event Log.