Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Руководство пользователя 3.doc
Скачиваний:
4
Добавлен:
22.04.2019
Размер:
1.44 Mб
Скачать

Глава 4. Программирование в

интегрированной интерактивной среде для DOS

─────────────────────────────────────────────────────────────────

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

IDE вы можете выполнять следующие основные задачи:

* запускать IDE и выходить из нее;

* записывать и редактировать свой исходный код;

* работать с файлами (открывать, закрывать и сохранять их);

* компилировать и выполнять свои программы;

* отлаживать программы;

* просматривать исходный код;

* настраивать по своему усмотрению конфигурацию IDE;

* управлять программными проектами.

Данная глава дает основные понятия по каждой из перечислен-

ных тем, за исключением отладки программы (о которой рассказыва-

ется в Главе 6 "Отладка в интегрированной среде").

Запуск IDE и выход из нее

─────────────────────────────────────────────────────────────────

Перейдите в подкаталог Borland Pascal, созданный вами с по-

мощью программы Install. Обычно этим каталогом является каталог

C:\BP\BIN. Чтобы запустить IDE защищенного режима, введите коман-

ду:

BP

Файлы DPMI16BI.OVL и RTM.EXE должны находиться в текущем ка-

талоге по вашему маршруту, иначе BP.EXE не запустится.

Чтобы запустить IDE, работающую в реальном режиме, введите

команду:

TURBO

Вместе с командами для запуска IDE вы можете использовать

один или более параметров и имен файлов.

Параметры запуска

─────────────────────────────────────────────────────────────────

При запуске IDE вы можете указывать параметры запуска. Эти

B.Pascal 7 & Objects /UG - 44 -

параметры запуска имеют следующий синтаксис:

BP[/параметры][файлы]

или

TURBO[/параметры][файлы]

Указание после параметра символа + или пробела включает его,

указание символа - отключает. Например:

BP /G /P- myfile

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

MYFILE, разрешает сохранение графической памяти и запрещает пе-

реключений палитр.

Вместо символа косой черты (/) перед параметром вы можете

использовать минус (-). Например:

BP -G -P- myfile

Некоторые параметры запуска применяются только к IDE реаль-

ного режима - TURBO.EXE. В этом случае параметр помечен словами

"(только TURBO)". Два параметра применяются к IDE защищенного ре-

жима - BP.EXE. В этом случае параметр помечен словами (только

BP).

Параметр /C

Если вы используете параметр /C, за которым без пробела сле-

дует имя файла конфигурации, то IDE при запуске загружает этот

файл конфигурации. Например:

TURBO /Cmyconfig

О файлах конфигурации рассказывается ниже.

Параметр /D

Если вы укажете параметр /D, IDE сможет одновременно рабо-

тать с двумя мониторами. IDE проверяет, имеется ли на вашем

компьютере соответствующее оборудование, например, монохромная и

цветная плата. Если это не так, то IDE игнорирует данный пара-

метр. Режим с двумя мониторами полезно использовать при отладке

программы. Один монитор вы можете использовать как экран выводи-

мых программой данных, а другой - для работы с отладчиком. Ис-

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

DOS (File│Shell to DOS), так что на одном экране будет выводиться

IDE, а другой дает вам доступ к командной строке DOS.

Если система имеет два монитора, DOS интерпретирует один мо-

нитор как активный монитор. Для переключения между двумя монито-

рами можно использовать команду DOS MODE. Например, MODE CJ80 ак-

B.Pascal 7 & Objects /UG - 45 -

тивизирует цветной монитор, а MODE MONO активизирует монохромный

монитор. В режиме с двумя мониторами обычный экран IDE выводится

на неактивном мониторе, а вывод программы поступает на активный

монитор.

Поэтому когда вы на одном мониторе набираете в ответ на

подсказку DOS BP /D или TURBO /D, IDE выводится на другом монито-

ре. Когда вы хотите проверить программу на конкретном мониторе,

выйдите из IDE, переключите активный монитор на тот, на котором

вы хотите ее проверить, а затем снова дайте команду BP /D или

TURBO /D. Вывод программы затем будет поступать на тот монитор,

где вы набрали команду.

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

* Не изменяйте активный монитор (используя, например, коман-

ду DOS MODE), когда вы находитесь в командном процессоре

DOS (File│DOS Shell).

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

портам видеоплаты неактивного монитора, не поддерживаются

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

* Когда вы выполняете или отлаживаете программы, которые яв-

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

метр /D.

Параметр /E (только TURBO)

Используйте параметр /E для изменения размера динамически

распределяемой области памяти редактора. По умолчанию ее размер

равен 28К (минимальная установка). Максимальное значение - 128К.

Размер динамически распределяемой области памяти, превышающий

28К, улучшает производительность IDE только в том случае, если вы

используете в качестве устройства свопинга медленный диск. Если у

вас есть память EMS или вы разместили файл свопинга на виртуаль-

ном диске (см. параметр /S), не изменяйте используемый по умолча-

нию параметр.

Параметр /F (только BP)

С помощью параметра /F вы можете задать файл свопинга для

администратора Borland Pascal этапа выполнения (RTM.EXE). Напри-

мер, если вы компилируете прикладную программу, которая требует 4

мегабайта памяти, но на вашем компьютере доступно только два ме-

габайта, то вы можете задать файл свопинга 4-мегабайтной вирту-

альной памяти; ваша прикладная программа получит необходимую ей

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

1024К до 16384К. В следующем примере задается файл свопинга в 2

мегабайта:

BP /F2048

B.Pascal 7 & Objects /UG - 46 -

Когда вам больше не нужен будет файл свопинга виртуальной

памяти, выключите это параметр, задав файл нулевого размера:

BP /F0

Параметр /G

Используйте параметр /G для разрешения полного сохранения

графической памяти, при отладке графических программ в системах с

EGA, VGA или MCGA. При включении сохранения графического экрана

(Graphics Screen Save) IDE резервирует дополнительные 8 килобайт

для буфера, который размещается в EMS (при ее доступности).

Параметр /L

Используйте параметр /L, если вы работаете с IDE на жидкок-

ристаллическом или плазменном экране.

Параметр /N

Используйте параметр /N для разрешения или запрета проверки

на помехи на адаптере CGA. Если вы работаете с адаптером CGA, ко-

торый не дает на экране помехи ("снег") при обновлении изображе-

ния, запретите данный параметр. Если вы не работаете с CGA, этот

параметр не действует.

Параметр /O (только TURBO)

Используйте параметр /O для изменения размера оверлейной ди-

намически распределяемой памяти IDE. По умолчанию назначается

размер 90К. Если у вас есть EMS, то вы можете уменьшить размер

оверлейной динамически распределяемой памяти, не ухудшая произво-

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

и отладки программ.

Параметр /P

Используйте параметр /P, управляющий переключением палитр на

видеоадаптере EGA, когда ваша программа модифицирует регистры па-

литры. Палитра EGA будет восстанавливаться при каждом переключе-

нии экрана.

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

пока ваша программа не модифицирует регистры палитры EGA или не

использует для переключения палитры BGI.

Параметр /R

Если параметр /R включен при запуске IDE, то текущим стано-

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

выхода из IDE. По умолчанию этот параметр включен. Чтобы этот па-

раметр начал действовать, нужно также выбрать параметр IDE

Options│Enviroment│Preferences и установить параметр Desktop Auto

B.Pascal 7 & Objects /UG - 47 -

Save. Если вы не хотите, чтобы IDE запоминала последний каталог,

выключите параметр /R.

Параметр /S

Если ваша система не имеет дополнительной памяти, используй-

те параметр /S для задания диска и маршрута доступа к "быстрой"

области свопинга, такой как виртуальный диск (например, /Sd:\,

где d - дисковод). Если каталог свопинга не задан, то файл сво-

пинга создается в текущем каталоге.

Параметр /T

Если вы не хотите, чтобы IDE загружала библиотеку исполняю-

щей системы, запретите параметр /T. Для TURBO.EXE библиотекой ис-

полняющей системы является TURBO.TPL. В зависимости от целевой

платформы для BP.EXE библиотекой исполняющей системы может быть

TURBO.TPL (реальный режим), TPW.TPL (Windows) или TPP.TPL (защи-

щенный режим). Если библиотека исполняющей системы не загружена,

перед компиляцией или отладкой программ вам потребуется модуль

System. Запретив параметр /N и выделив SYSTEM.TPU из библиотеки

исполняющей системы с помощью TPUMOVER, вы можете увеличить ем-

кость IDE реального режима. Если вы используете IDE защищенного

режима, то может сделать тоже самое, выделив в зависимости от це-

левой платформы модуль SYSTEM.TPU, SYSTEM.TPW или SYSTEM.TPP. О

выборе целевой платформы рассказывается ниже.

Примечание: Об утилите TPUMOVER рассказывается в Главе

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

средствам и утилитам".

Параметр /W (только TURBO)

Используйте параметр /W, если вы хотите изменить размер ди-

намической памяти окна. По умолчанию этот размер устанавливается

в 32К. Минимальная установка - 24К; максимальная - 64К. Если вам

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

размер динамической памяти окна. Размер по умолчанию дает IDE хо-

рошую емкость и достаточное оконное пространство.

Параметр /X (только TURBO)

Используйте параметр /X, если вы хотите, чтобы IDE использо-

вала дополнительную память (EMS). По умолчанию этот параметр

включен. При разрешении данного параметра IDE улучшает производи-

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

данные редактора и другие системные ресурсы.

Параметр /Y (только BP)

С помощью этого параметра вы можете сделать так, чтобы ком-

пилятор "запоминал" информацию об идентификаторах между компиля-

циями. Если данный параметр включен, и вы изменили свою програм-

B.Pascal 7 & Objects /UG - 48 -

му, но следующая компиляция завершается неудачно, то вам все рав-

но будет доступна информация об идентификаторах с предыдущей ком-

пиляции. Таким образом, вы сможете просмотреть свою программу и

определить, в чем состоит проблема. По умолчанию данный параметр

включен.

Установка параметров

запуска в интегрированной среде

Параметры запуска вы можете также установить в самой интег-

рированной среде:

1. Выберите команду Options│Enviroment│Startup для вывода

диалогового окна Startup Options.

2. Выберите нужные параметры и задействуйте кнопку OK.

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

пуске IDE.

B.Pascal 7 & Objects /UG - 49 -

Выход из IDE

─────────────────────────────────────────────────────────────────

Из IDE можно выйти двумя способами:

* Чтобы полностью выйти из IDE, выберите команду File│Exit.

Если вы внесли изменения, которые не были сохранены, IDE

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

программы.

* Чтобы временно выйти из IDE для ввода команд в ответ на

подсказку DOS, выберите команду File│DOS Shell. IDE оста-

ется в памяти, но управление передается в DOS. Вы можете

ввести команды DOS и даже запустить другие программы. Ког-

да вы будете готовы вернуться в IDE, наберите в командной

строке EXIT и нажмите Enter. IDE выводится в том виде, как

вы из нее выше.

Использование справочной системы Help

─────────────────────────────────────────────────────────────────

Справочная система Help предоставляет вам возможность легко-

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

рированной интерактивной среде, библиотеке исполняющей системе,

директивах компилятора и т.д.

Если вы ранее не работали со справочной системой Help для

DOS по языкам Borland, то, прочитав следующие разделы, вы можете

вывести справочный экран. Экран содержимого справочника Borland

Pascal Help Contents выводится при выборе команды Help│Contents.

Перемещение в справочной системе

─────────────────────────────────────────────────────────────────

Если вы посмотрите на справочный экран, то увидите текст,

который выводится цветом, отличным от окружающего текста. Это

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

ного экрана, содержащего новую информацию по соответствующей те-

ме. Выберите один из следующих методов:

* Дважды щелкните на ссылке "мышью".

* Если справочный экран не содержит командных кнопок:

Нажимайте повторно клавишу Tab, пока не будет подсвечена

ссылка, затем нажмите клавишу Enter.

* Если справочный экран представляет собой диалоговое окно с

командными кнопками:

- Если вы используете "мышь", щелкните "мышью" на кнопке

B.Pascal 7 & Objects /UG - 50 -

перекрестных ссылок Cross-ref.

- Если вы используете клавиатуру, нажмите Enter; при этом

по умолчанию выбирается кнопка Cross-ref. Чтобы выбрать

другую кнопку, нажимайте повторно клавишу Tab, пока не

будет подсвечена нужная кнопка, затем нажмите клавишу

Enter.

Выводится новый справочный экран Help с информацией по выб-

ранной теме. Вы перешли в новое место справочной системы. На этом

экране вы можете видеть другие ссылки, которые можно выбирать для

получения дальнейшей информации.

Чтобы вернуться к предыдущему экрану Help, выберите команду

Help│Previous Topic или нажмите клавиши Alt+F1.

Запрос помощи

─────────────────────────────────────────────────────────────────

Доступ к справочнику Help можно получить несколькими спосо-

бами:

* Выбрав команду Help в строке меню или нажав Alt+H для вы-

вода меню Help.

В меню Help вы можете выбрать вывод экрана оглавления

Contents, экрана тематического указателя Index по всей

справочной системе, детальную информацию по теме, на кото-

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

работе со справочной системой Help.

* Для вывода экрана тематического указателя Borland Pascal

Help Index нажмите клавиши Shift+F1.

Экран тематического указателя Index аналогичен тематичес-

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

нуть страницы для получения информации по нужной теме

здесь нужно дважды щелкнуть на ней кнопкой "мыши" или пе-

рейти к теме с помощью клавиши Tab и нажать Enter.

* Нажав клавишу F1.

Вы получите контекстно-зависимую информацию, зависящую от

того, что вы делаете в этот момент - редактируете, отлажи-

ваете программу, выбираете параметры меню и т.д.

Если вы находились в диалоговом окне, то увидите справоч-

ный экран по тому параметру, который выделен в момент на-

жатия F1.

* Выбрав командную кнопку Help в диалоговом окне.

B.Pascal 7 & Objects /UG - 51 -

При выборе командной кнопки Help вы получите информацию о

диалоговом окне.

* Поместив курсор на термин в окне редактирования и выбрав

Topic Search. Используйте любой из следующих методов:

- нажмите клавиши Ctrl+F1;

- выберите команду Help│Topic Search;

- удерживая клавишу Ctrl, щелкните правой кнопкой "мыши"

(комбинация нажатий Ctrl+правая кнопка "мыши" должна

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

Options│Enviroment│Mouse и выберите команду Topic

Search).

- выберите команду Topic Search в локальном меню окна ре-

дактирования (нажмите клавиши Alt+F10 для вывода на эк-

ран локального меню или щелкните правой кнопкой "мыши".

Примечание: О локальном меню окна редактирования расс-

казывается ниже.

В справочном экране выводится информация о термине, на кото-

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

Копирование примеров исходного кода

─────────────────────────────────────────────────────────────────

Справочная система Help содержит примеры кода для каждой

процедуры и функции. Вы можете скопировать эти примеры из спра-

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

1. Выведите справочный экран по интересующей вас процедуре

или функции.

2. Прокрутите справочное окно, пока не увидите в нем пример

исходного кода.

3. Для вывода локального меню Help нажмите клавиши Alt+F10

или щелкните правой кнопкой "мыши".

4. Скопируйте пример:

* для копирования всего примера выберите команду Copy

Example;

* для копирования части исходного кода подсветите то, что

вы хотите скопировать, и выберите команду Copy.

5. Вернитесь в окно редактирования и выберите команду

Edit│Paste, нажмите клавишу Shift+Ins или выберите коман-

B.Pascal 7 & Objects /UG - 52 -

ду Paste в локальном меню окна редактирования.

Загрузка других справочных файлов

─────────────────────────────────────────────────────────────────

Интегрированная среда позволяет вам подключать к справочной

системе Help другие справочные файлы. Например, если вы хотите

получать справочную информацию по Turbo Vision, то можете загру-

зить справочный файл Turbo Vision. IDE объединяет тематические

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

экране Index как к обычной справочной системе Help, так и к спра-

вочной системе Turbo Vision.

Чтобы загрузить новую справочную систему Help, выполните

следующие шаги:

1. Выберите команду Help│Files (Справочник│Файлы).

Выводится диалоговое окно установки справочных файлов

Install Help Files.

2. Выберите команду New (Новый).

Выводится диалоговое окно Help Files (Справочные файлы).

Все справочные файлы в вашем каталоге BIN с расширением

.TPH выводится в блоке списка. Если вы не видите справоч-

ных файлов, измените каталог BP\BIN.

3. Дважды щелкните "мышью" на справочном файле, который вы

хотите включить в справочную систему, или выделите его и

нажмите клавишу Enter.

Примечание: Если вы хотите также выбрать второй

справочный файл, повторите этот шаг.

Диалоговое окно Install Help Files появляется вновь, и в

нем выводится справочный файл, который вы выбрали в блоке

списка.

4. Выберите командную кнопку OK.

5. Выберите команду Help│Index или нажмите клавиши Shift+F1.

В строке состояния вы можете увидеть краткое сообщение,

показывающее индексирование и слияние. После завершения

слияния вы можете прокрутить справочный экран и увидеть,

что вам доступны все темы в выбранных справочных файлах.

Тематические указатели остаются объединенными в течении

текущего сеанса. Если в диалоговом окне Preferences

(Options│Enviroment│Preferences) вы установили параметр

Enviroment Auto Save, то тематические указатели будут ос-

B.Pascal 7 & Objects /UG - 53 -

таваться объединенными и в следующих сеансах. Если вы не

сохранили свою операционную среду, то при следующем за-

пуске IDE тематический указатель Help возвращается в ис-

ходное состояние. Другими словами, объединение тематичес-

ких указателей не будет сохраняться от одного сеанса к

другому.

Примечание: О сохранении операционной среды расска-

зывается ниже.

Если вы не хотите видеть на экране тематического указателя

Index конкретные записи Help, то можете "удалить" справочный

файл:

1. Выберите команду Help│Files.

2. Выберите имя справочного файла, который вы больше не хо-

тите просматривать.

3. Выберите команду Delete.

4. Выберите командную кнопку OK.

Выход из справочника Help

─────────────────────────────────────────────────────────────────

Чтобы закрыть окно Help и вернуться в свою прикладную прог-

рамму вы можете выбрать один из следующих методов:

* Нажать клавишу Esc.

* Щелкнуть "мышью" на элементе закрытия окна Help.

* Щелкнуть "мышью" вне окна Help.

Если вы хотите вновь вывести предыдущий справочный экран,

нажмите клавиши Alt+F1.

Запись и редактирование исходного кода

─────────────────────────────────────────────────────────────────

Набирайте текст, как это делается в любом редакторе. Для за-

вершения строки нажимайте Enter. Когда вы введете достаточно

строк, чтобы заполнить экран, он будет прокручиваться.

Примечание: В IDE вы можете открыть столько окон,

сколько позволяет память вашей системы.

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

жении A ("Справочник по редактору") "Руководства программиста".

B.Pascal 7 & Objects /UG - 54 -

Настройка конфигурации редактора

─────────────────────────────────────────────────────────────────

Для модификации поведения редактора Borland Pascal имеется

несколько параметров. Для вывода диалогового окна Editor выберите

команду Options│Enviroment│Editor.

Чтобы подробнее узнать о каждом параметре, выделите данный

параметр и нажмите клавишу F1. Справочная система Help поясняет,

что делает данный параметр.

Примечание: О выделении синтаксиса в редакторе расска-

зывается ниже.

Изменение решения: команда Undo

─────────────────────────────────────────────────────────────────

Редактор имеет команду отмены Undo, которая облегчает изме-

нение вашего решения при выполнении каких-либо действий и исправ-

ление ошибки. Чтобы отменить действие предыдущей операции редак-

тирования, выберите команду Edit│Undo или нажмите клавиши

Alt+Backspace. Если вы продолжаете выбирать команду Undo, редак-

тор продолжает отменять действия. С помощью команды возобновления

Edit│Redo вы можете также отменить саму команду Undo.

Команда Undo вставляет все удаленные вами символы, удаляет

любой вставленный символ, заменяет все перезаписанные символы и

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

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

перед выполнение блочной операции.

Команда Undo не изменяет установку параметров, влияющих бо-

лее чем на одно окно. Например, если вы используете клавишу Ins

для изменения режима вставки на режим замены, а затем выберите

Undo, редактор не изменит режим обратно не режим вставки. Но если

вы удалили символ, перешли в режим замены, затем выбрали команду

Undo, то удаленные ранее символ выводится вновь.

Групповая отмена

Параметр Group Undo в диалоговом окне Options│Enviroment│

Editor влияет на то, как ведет себя команда Undo и соответствую-

щая команда Redo. Если вы выберите параметр Group Undo (Групповая

отмена), при нажатии клавиш Alt+Backspace или Edit│Undo, редактор

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

Приведем пример того, как работает групповой параметр. Если

вы наберете, например, MISTAKE и параметр Group Undo установлен,

то Undo удаляет все слово. Если параметр Group Undo не выбран, и

вы набираете MISTAKE, Undo удаляет только последний символ, букву

B.Pascal 7 & Objects /UG - 55 -

E. Чтобы отменить слово MISTAKE при выключенном параметре Group

Undo, вам нужно использовать команду Undo семь раз.

Примечание: Группа - это последовательность команд од-

ного типа.

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

групповыми операциями. Когда вы меняете тип команды, старая груп-

па завершается и начинается новая. Для редактора вставка возврата

каретки нажатием клавиши Enter - это вставка, за которой следует

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

вставили символы, затем переместили курсор), группа вставки сим-

волов завершается, когда вы нажимаете Enter.

Отмена отмены

Команда Edit│Redo изменяет на обратное действие последней

команды Undo. Redo немедленно действует только после команды Undo

или другой команды Redo. Последовательность команд Redo отменяет

действие последовательности команд Undo. Как и в случае команды

Undo, на команду Redo влияет параметр Group Undo.

B.Pascal 7 & Objects /UG - 56 -

Работа с блоками текста

─────────────────────────────────────────────────────────────────

Блок текста - это любой объем текста (от одного символа до

сотен строк), который выделен на экране. В каждый момент времени

в окне может быть выделен только один блок.

Выделение блока

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

способа:

* Буксируйте "мышь" по тексту, который вы хотите выделить.

* Переместите свой курсор в начало блока текста, нажмите

клавишу Shift и, удерживая ее, переместите курсор к концу

блока с помощью клавиш стрелок.

* Щелкните "мышью" в начале блока, переместите курсор к кон-

цу блока с помощью клавиш стрелок, затем, нажав Shift,

снова щелкните кнопкой "мыши".

Если вы уже работали с редакторами Borland ранее, то можете

использовать команды работы с блоками как обычно. Таблицу команд

редактора Borland для работы с блоками можно найти в Приложении A

("Справочник по редактору") "Руководства программиста".

Вырезание, копирование и вставка блоков

После выбора блока его можно скопировать, переместить или

записать в файл.

* Чтобы вырезать выделенный текст, нажмите клавиши Shift+Del

или выберите команды Edit│Cut. Выделенный блок удаляется

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

("карман") - временную область памяти.

* Для копирования выделенного текста нажмите клавиши

Ctrl+Ins или выберите команду Edit│Copy. Выделенный блок

остается в тексте, а его копия помещается в буфер вырезан-

ного изображения и готова для вставки в другом окне реда-

ктирования.

* Чтобы вставить (скопировать) текст, содержащийся в буфере

вырезанного изображения, в активное окно, нажмите клавиши

Shift+Ins или выберите команду Edit│Paste. Блок, содержа-

щийся в буфере, вставляется в текущей позиции курсора.

* Для стирания (удаления) выделенного текста нажмите клавиши

Ctrl+Del или выберите команду Edit│Clear. Выделенный блок

удаляется из текста, и копия не помещается в буфер выре-

занного изображения. Единственный способ восстановления

B.Pascal 7 & Objects /UG - 57 -

удаленного текста состоит в применении команды Edit│Undo.

Изменение поведения выделенных блоков

На поведение в редакторе выделенных блоков влияют два пара-

метра - Persistent Blocks и Overwrite Blocks. Их можно найти в

диалоговом окне Options│Enviroment│Editor.

* Если включен параметр Persistent Blocks (Постоянные бло-

ки), то выделенные блоки остаются выделенными пока вы их

не удалите или не отмените выделение (или пока не выделите

другой блок).

* Если параметр Persistent Blocks выключен, и вы перемещаете

курсор за выделенный блок, то выделение блока отменяется.

* Если параметр Persistent Blocks выключен, то параметр

Overwrite Blocks setting игнорируется.

* Если включен параметр Overwrite Block (Затирание блока), и

вы набираете букву, то выделенный блок заменяется набран-

ной буквой.

* Если параметр Overwrite Block выключен, и вы набираете

букву, то буква вставляется после выделенного текста.

* Если параметр Overwrite Block включен, а параметр

Persistent Block выключен, и вы нажимаете клавишу Del или

клавишу Backspace, то весь выделенный текста удаляется.

Если вы вставляете текст (нажимая символ или вставляя его из

буфера), то весь выделенный текст заменяется вставленным текстом.

B.Pascal 7 & Objects /UG - 58 -

Поиск

─────────────────────────────────────────────────────────────────

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

коде. Для поиска строки текста в активном окне редактирования вы-

полните следующие шаги:

1. Выберите команду Search│Find. При этом открывается диало-

говое окно Find Text (Поиск текста).

2. Наберите искомую строку в блоке ввода Text to Find.

3. Вы можете также задать различные параметры поиска:

* Кнопки с независимой фиксацией Options (Параметры) оп-

ределяют, будет при поиске:

- различаться регистр символов;

- выполняться поиск только полного слова;

- использоваться регулярные выражения (об использовании

регулярных выражений в строках поиска рассказывается

в Приложении A "Справочного руководства программис-

та").

* Кнопки с зависимой фиксацией Scope (Область действия)

управляют тем, в какой части файла выполняется поиск -

во все файле или только в выделенном тексте.

* Кнопки с зависимой фиксацией Direction (Направление)

управляют тем, в каком направлении вы выполняете поиск

- в прямом или в обратном.

* Кнопки с зависимой фиксацией Origin (Начало) управляет

тем, откуда начинается поиск.

4. Для выполнения поиска выберите командную кнопку OK.

5. Если вы хотите выполнить повторный поиск того же элемен-

та, выберите команду Search│Search Again (Поиск│Повторный

поиск).

По умолчанию в блоке ввода Text to Find (Искомый текст) вы-

водится слово, на котором позиционируется курсор. Если вы не хо-

тите, чтобы это происходило, сделайте следующее:

1. Выберите команду Options│Enviroment│Editor.

2. Отмените установку параметра Find Text at Cursor.

При выводе диалогового окна Find в блоке ввода выводится

слово, на котором находится курсор. Если вы хотите вместо отдель-

B.Pascal 7 & Objects /UG - 59 -

ного слова найти предложение или группу слов, нажмите клавишу >

(когда курсор находится в блоке ввода Find Text). В блоке ввода

появляется дополнительный текст, как если бы он "вытягивался" из

окна редактирования.

Поиск и замена

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

команду Search│Replace (Поиск│Замена). Выберите в диалоговом окне

параметры, как это делается для команды Search, но включите в

блок Next Text строку замены.

Если вы хотите заменить все вхождения строки в своем файле,

выберите параметр Change All. Если вы выберете параметр Prompt on

Replace, редактор будет выполнять поиск, пока не найдет указанную

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

пользуете параметр Prompt on Replace, лучше выбрать параметр

Whole Words Only (Только полные слова). Это позволит избежать

случаев замены символов в середине слова - возможно, вы не хоти-

те, чтобы это происходило.

Соответствие пар ограничителей

Иногда вам не требуется искать текст, а нужно найти соот-

ветствующий парный ограничитель (фигурную или квадратную скобку,

одинарную кавычку, двойную кавычку, двойной знак вопроса или ком-

бинацию скобки и звездочки, обозначающую комментарий). Предполо-

жим у вас есть сложное выражение с множеством вложенных выраже-

ний, и вы хотите убедиться, что не пропущена ни одна скобка. Нуж-

но сделать следующее:

1. Поместите курсор на ограничителе (скобке).

2. Нажмите клавиши Ctrl+Q[.

Редактор немедленно перемещает курсор к ограничителю, соот-

ветствующему выбранному. Если он перемещается на ограничитель,

отличный от ожидаемого вами, то это указывает на ошибку.

Если для выбранного вами ограничителя нет соответствующего

парного, редактор не смещает курсор.

На самом деле есть две команды редактирования пар ограничи-

телей: одна для поиска соответствующей пары в прямом направлении

(Ctrl+Q[), а другая - в обратном (Ctrl+Q]).

Если вы поместите курсор на одинарную или двойную кавычку,

редактор не знает, в каком направлении нужно искать парный огра-

ничитель. В этом случае вы должны задать корректную команду поис-

ка пары.

B.Pascal 7 & Objects /UG - 60 -

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

какая команда используется для поиска пары. Редактор знает, в ка-

ком направлении искать соответствующий ограничитель.

Приведем пример, иллюстрирующий соответствие пар:

совпадающая совпадающая совпадающая

пара пара пара

┌┴┐ ┌──┴──┐ ┌──┴──┐

Array1[Array2[x]] ((x > 0) and (y < 0)

└────┬────┘ └─────────┬────────┘

совпадающая совпадающая

пара пара

Рис. 4.1 Поиск соответствующей квадратной или круглой скоб-

ки.

B.Pascal 7 & Objects /UG - 61 -

Переход к строке с заданным номером

─────────────────────────────────────────────────────────────────

Редактор отслеживает, на какой строке находится курсор в

строке состояния окна. Быстрый способ перехода в определенное

место в файле состоит в использовании команды Go to Line Number

(Переход на строку с номером):

1. Выберите команду Search│Go to Line Number.

2. Наберите номер строки, на которую вы хотите перейти.

3. Выберите командную кнопку OK.

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

─────────────────────────────────────────────────────────────────

Многие из функций, выполняемых вами при работе в окне редак-

тирования, удобно расположены в локальном меню окна редактирова-

ния. Когда окно редактирования активно, вы можете вывести локаль-

ное меню двумя способами:

* Нажать клавиши Alt+F10.

* Щелкнуть правой кнопкой "мыши".

Интегрированная среда IDE содержит также другие локальные

меню. Прочитав об использовании справочника Help, отладке и прос-

мотре, вы узнаете, где находятся остальные локальные меню.

B.Pascal 7 & Objects /UG - 62 -

Выделение синтаксиса

─────────────────────────────────────────────────────────────────

Когда вы пишете или редактируете программу на Паскале, неко-

торые части исходного кода выводятся на экран разными цветами.

Например, зарезервированные слова Borland Pascal выводятся белым

цветом, а остальной текст - желтым. Такое цветовое выделение ис-

ходного кода облегчает быструю идентификацию частей кода.

Цвета текста

Чтобы изменить цвет элемента, выполните следующие шаги:

1. Выберите команду Options│Enviroment│Colors. Выводится ди-

алоговое окно Colors (Цвета).

╔═[ ]═══════════════════════Colors═════════════════════════╗

║ ║

║ Group Item ║

║ Compiler ^ Whitespace ^ ┌─Foreground─────┐ ║

║ Desktop ▒ Comments ▒ │▒▒▒▒▓▓▓▓▒▒▒▒ │ ║

║ Dialogs ▒ Reserved words ▒ │▓▓▓▓████ ░░░░│ ║

║ Help ▒ Identifiers ▒ │████ ░░░░████│ ║

║ Menus ▒ Symbols ▒ └────────────────┘ ║

║ Messages ▒ Strings ▒ ┌─Background─────┐ ║

║ Output ▒ Members ▒ │▒▒▒▒▓▓▓▓▒▒▒▒ │ ║

║ Register █ Assembler ▒ │▓▓▓▓████ ░░░░│ ║

║ ▓Syntax▓▓▓▓▓▓▓▒ ▒ │████ ░░░░ │ ║

║ Watches ▒ ▒ └────────────────┘ ║

║ ▒ █ Text░Text░Text░ ║

║ v v Text░Text░Text░ ║

║ ║

║ █████OK████ ███Cancel███ ███Help████ ║

║ ▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒ ║

║ ║

╚══════════════════════════════════════════════════════════╝

Рис. 4.2 Диалоговое окно Colors.

Colors - цвета; Group - группа; Compiler - компилятор;

Desktop - оперативная область; Dialogs - диалоги; Help -

справочник; Menus - меню; Messages - сообщения; Output -

вывод; Register - регистр; Syntax - синтаксис; Watches -

выражения просмотра; Item - элемент; Whitespace - пробел;

Comments - комментарий; Reserved words - зарезервирован-

ные слова; Identifiers - идентификаторы; Symbols - имена;

Strings - строки; Members - элементы (члены); Assembler -

ассемблер; Foreground - основной цвет; Background - фоно-

вый цвет.

В блоке списка слева выводятся все группы элементов, ко-

торые вы можете выделять цветом в IDE.

B.Pascal 7 & Objects /UG - 63 -

2. Прокрутите блок списка Group, пока не увидите группу

Syntax (Синтаксис). Выберите группу Syntax и в блоке

списка Item выведутся элементы кода Паскаля, которые вы

можете выделять цветом.

3. Выделите элемент, который вы хотите изменять в блоке

списка Item.

4. Выберите основной и фоновый цвет, который вы хотите наз-

начить для элемента.

* Чтобы выбрать фоновый цвет с помощью "мыши", щелкните

ее кнопкой на нужном цвете матрицы цветов Foreground.

Чтобы выбрать цвет с помощью клавиатуры, нажимайте кла-

вишу Tab, пока не будет выбрана матрица фонового цвета,

затем для выделения цвета используйте клавиши стрелок.

* Чтобы выбрать фоновый цвет, выберите нужный цвет в мат-

рице цветов Background.

Как только вы сделаете выбор цвета, он будет отражен в

примере текстового окна.

5. Выберите командную кнопку OK.

Выбор файлов для выделения

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

с расширениями .PAS и .INC. Вы можете использовать выделение син-

таксиса в файлах другого типа.

Чтобы изменить тип файлов, выводимых с выделением синтакси-

са, сделайте следующее:

1. Выберите команду Options│Enviroment│Editor.

2. Измените текст в блоке Highlight Extensions.

Допускается любое разрешенное имя файла DOS, включая тра-

фаретные символы. Вы можете задать несколько имен файлов.

В этом случае их нужно разделить двоеточиями.

Запрещение выделения синтаксиса

Если вы не хотите использовать выделение синтаксиса, то мо-

жете выключить его:

1. Выберите команду Options│Enviroment│Editor.

2. Отмените выбор параметра Syntax Highlight (Выделение син-

таксиса).

B.Pascal 7 & Objects /UG - 64 -

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

Editor│Normal Text в диалоговом окне Options│Enviroment│Coplors.

Если вы не выключите подсветку синтаксиса, изменение цвета обыч-

ного текста не действует.

B.Pascal 7 & Objects /UG - 65 -

Печать исходного кода

─────────────────────────────────────────────────────────────────

Если вы хотите получить печатную копию своего исходного ко-

да, выберите команду File│Print. IDE расширяет символы табуляции

(заменяя табуляцию соответствующим числом пробелов и затем печа-

тает ваш файл.

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

Вы можете напечатать текст таким образом, чтобы синтаксичес-

кие элементы были выделены. Перед печатью вы должны пропустить

выводимый на принтер текст черед программу-фильтр PRNFLTR.EXE:

1. Выберите команду File│Printer Setup.

2. Если программа PRNFLTR.EXE не находится по вашему маршру-

ту или в текущем каталоге, добавьте информацию о текущем

маршруте в запись PRNFLTR в диалоговом окне Filter Path.

3. В блоке ввода Command Line вы можете указать принтер

Epsor, HP LaserJet или PostScript.

* Если вы используете принтер Epson, введите:

$NOSWAP /EPSON

* Если вы используете принтер HP LaserJet, введите:

$NOSWAP /HP

* Если вы используете принтер PostScript, введите:

$NOSWAP /PS

Если у вас другой тип принтера, то вы можете модифициро-

вать файл PRNFLTR.PAS, чтобы воспринимались соответству-

ющие коды.

4. Установите параметр Send Highllighting Escape Codes.

5. Выберите командную кнопку OK.

6. Выберите команду File│Print.

Если параметр Syntax Highlight установлен, ваш текст пе-

чатается с выделением синтаксических элементов.

B.Pascal 7 & Objects /UG - 66 -

Работа с файлами

─────────────────────────────────────────────────────────────────

При программировании в IDE вы можете создавать новые файлы,

открывать существующие файлы и сохранять их. Основные команды ра-

боты с файлами перечислены в следующей таблице:

┌──────────────────┬──────────────────────────────────┐

│ Команда │ Описание │

├──────────────────┼──────────────────────────────────┤

│ File│New │ Открывает новое окно редактиро-│

│ │ вания и присваивает ему временное│

│ │ имя. │

├──────────────────┼──────────────────────────────────┤

│ File│Open │ Выводит диалоговое окно, с по-│

│ │ мощью которого можно открыть│

│ │ файл. │

├──────────────────┼──────────────────────────────────┤

│ File│Save │ Сохраняет файл в активном окне│

│ │ редактора на диске. │

├──────────────────┼──────────────────────────────────┤

│ File│Save As │ Сохраняет файл в активном окне│

│ │ редактора под другим именем. │

├──────────────────┼──────────────────────────────────┤

│ File│Save All │ Сохраняет все модифицированные│

│ │ файлы. │

└──────────────────┴──────────────────────────────────┘

B.Pascal 7 & Objects /UG - 67 -

Открытие файлов

─────────────────────────────────────────────────────────────────

Для открытия файла выполните следующие шаги:

1. Выберите команду File│Open. Выводится диалоговое окно

Open a File (Открытие файла). Для задания открываемого

файла вы можете выполнить одно из следующих действий.

* В блоке ввода наберите полное имя файла.

* Наберите имя файла с трафаретными символами. Это от-

фильтровывает список файлов в соответствии с вашими

спецификациями. В списке Files выберите имя файла, ко-

торый вы хотите редактировать.

* Для вывода списка протокола (спецификаций имен файлов,

которые вы задавали ранее), нажмите стрелку вниз. Выбе-

рите требуемое имя файла или спецификацию. Выбор специ-

фикации файла выводит файлы, соответствующие данной

спецификации.

* Дважды щелкнув "мышью" на имени другого каталога в

списке файлов, просмотрите содержимое этого каталога.

Выберите имя файла, который вы хотите редактировать.

2. После того как имя файла, который вы хотите редактиро-

вать, будет выделено в блоке ввода, выберите команду Open

(Открыть) или Replace (Заменить). Команда Open загружает

файл в новое окно редактирования; команда Replace заменя-

ет содержимое активного окна редактирования выбранным

файлом.

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

Enter или, когда увидите имя нужного файла в списке, дважды щелк-

нуть на нем кнопкой "мыши". Файл будет открыт.

Если вы откроете один или более файлов, а затем закроете их,

то увидите их список в нижней части меню File (до пяти файлов).

Если вы выберите в меню один из этих пяти файлов, то файл откры-

вается в окне редактирования. Когда вы работаете с несколькими

открытыми файлами, то можете закрыть некоторые из них, при необ-

ходимости быстро открывая их снова с помощью списка. Это уменьшит

перегруженность вашей оперативной области.

Вы можете также изменить используемый по умолчанию каталог

на тот, в котором находится открываемый вами файл. Это изменяет

поведение, заданное переменными операционной среды Windows:

1. Выберите команду Options│Enviroment│Preferences.

2. Установите параметр Change Dir (Смена каталога).

B.Pascal 7 & Objects /UG - 68 -

3. Выберите командную кнопку OK.

Открытие файла в позиции курсора

─────────────────────────────────────────────────────────────────

IDE дает вам быстрый способ открытия файла, имя которого на-

ходится в вашем исходном коде. Вы найдете это удобным, когда пот-

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

мого в вашей программе.

1. Поместите курсор на имя файла, который вы хотите открыть.

2. Нажмите клавиши Ctrl+Enter или выведите локальное меню

окна редактирования и выберите команду Open File at

Cursor (Открытие файла в позиции курсора).

B.Pascal 7 & Objects /UG - 69 -

Компиляция и выполнение

─────────────────────────────────────────────────────────────────

IDE предоставляет вам несколько способов создания выполняе-

мой программы, модуля или (если вы используете защищенный режим)

динамически компонуемую библиотеку. Вы можете:

* Скомпилировать текущий файл с помощью команды (Compile│

Compile).

* Скомпилировать все измененные файлы (Compile│Make).

* Скомпилировать все файлы проекта (Compile│Build).

* Скомпилировать и выполнить программу (Run│Run).

Каждая из этих возможностей подходит для конкретной ситуа-

ции. Следующие разделы помогут вам решить, какую возможность луч-

ше использовать.

Выбор целевой платформы

─────────────────────────────────────────────────────────────────

Если вы используете BP.EXE, то перед компиляцией своей прог-

раммы вам нужно сообщить IDE, какой вид прикладной программы вы

создаете: программу DOS реального режима, программу Windows или

программу DOS защищенного режима. Тип создаваемой прикладной

программы называется целевой платформой.

Примечание: TURBO.EXE может создавать приложение ре-

ального режима.

Для выбора целевой платформы сделайте следующее:

1. Выберите команду Compile│Target.

2. В диалоговом окне Target выберите нужную целевую платфор-

му.

3. Выберите командную кнопку OK.

B.Pascal 7 & Objects /UG - 70 -

При компиляции модуля расширения имени файла полученного в

результате модуля в зависимости от целевой платформы будут разли-

чаться:

┌───────────────────────────┬───────────────────────────────┐

│ Целевая платформа │ Расширение имени файла модуля │

│ │ объектного кода │

├───────────────────────────┼───────────────────────────────┤

│ Реальный режим DOS │ .TPU │

│ │ │

│ Windows │ .TPW │

│ │ │

│ Защищенный режим DOS │ .TPP │

└───────────────────────────┴───────────────────────────────┘

B.Pascal 7 & Objects /UG - 71 -

Компиляция

─────────────────────────────────────────────────────────────────

Команда Compile│Compile компилирует только файл в активном

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

тояния, в котором сообщается о ходе и результатах компиляции.

Когда компиляция и компоновка будет выполнена, нажмите любую кла-

вишу. Окно состояния исчезнет. Если имеется ошибка, в верхней

части окна редактирования вы увидите сообщение об ошибке, а кур-

сор будет позиционирован на ту строку кода, где имеется ошибка.

Выбор места назначения

Если вы используете IDE защищенного режима, то с помощью ко-

манды Compile│Destination можете выбрать компиляцию программы на

диск или в память. Если вы выберете компиляцию на диск, ваш вы-

полняемый код сохраняется на диске в виде файла .EXE. Компиляция

на диск увеличивает объем памяти, доступной в IDE для компиляции

и отладки вашей программ. При выборе компиляции в память ваша

программа будет записываться в память, и, если вы ее не сохрани-

те, будет потеряна при выходе из IDE.

При компиляции на диск полученные в результате файлы .EXE

или .TPU сохраняются в том же каталоге, что и исходные файлы, или

в каталоге EXE and TPU (Options│Directories), если он задан.

Формирование (Make)

─────────────────────────────────────────────────────────────────

Если ваша программа включает в себя не только исходный код в

активном окне, например, основной файл, один или более модулей,

внешние модули на языке ассемблера и т.д., то вы можете сформиро-

вать свою программу. При формировании компилируется весь исходный

код, который был модифицирован с момента последней компиляции.

Команда Compile│Make создает файл .EXE или модуль. Если вы

в качестве целевой платформы используете IDE защищенного режима и

Windows, она может также создавать динамически компонуемую библи-

отеку (DLL).

Примечание: О создании DLL рассказывается в Главе 11

"Библиотеки динамической компоновки" "Руководства по язы-

ку".

Команда Make (Формирование) использует следующие правила:

* Если задан основной файл, то он компилируется. В противном

случае компилируется файл в активном окне редактирования.

Перед компиляцией IDE проверяет все файлы, чтобы убедить-

ся, что они существуют и являются текущими.

Примечание: Более подробно об основных файла расска-

зывается ниже.

B.Pascal 7 & Objects /UG - 72 -

* Если исходный файл для данного модуля модифицирован с мо-

мента создания файла .TPU, .TPW или .TPP (объектный код),

то этот модуль перекомпилируется.

* Если изменяется интерфейс для данного модуля, перекомпили-

руются все другие зависящие от него модули.

Примечание: О модулях подробнее рассказывается в Гла-

ве 7 "Модули Borland Pascal".

* Если модуль компонуется с файлом .OBJ (внешние подпрограм-

мы) и файл .OBJ является более новым, чем модули .TPU,

.TPW или .TPP, то модуль перекомпилируется.

* Если модуль содержит включаемый файл, и включаемый файл

более новый, чем модули .TPU, .TPW или .TPP, то модуль пе-

рекомпилируется.

Если компилятор не может найти исходный код модуля, то мо-

дуль не компилируется и используется как есть.

B.Pascal 7 & Objects /UG - 73 -

Построение (Build)

─────────────────────────────────────────────────────────────────

Команда Compile│Build (Компиляция│Построение) перестраивает

все компоненты вашей программы независимо от того, являются они

текущими или нет.

Эта команда аналогична команде Compile│Make, только она вы-

полняет полную перекомпиляцию, даже если файл не изменялся. Если

вы остановите команду Build, нажав клавиши Ctrl+Break, или полу-

чите ошибки, которые прекращают построение, то, выбрав Compile│

Make, вы можете определить, где это произошло.

Если в IDE реального режима DOS вы выбрали компиляцию в па-

мять, то все файлы .TPU обновляются на диске (для всех перекомпи-

лируемых командой Build модулей).

Выполнение

─────────────────────────────────────────────────────────────────

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

она работает. Для этого можно использовать команду Run│Run. На

самом деле вам не нужно предварительно компилировать свою прог-

рамму. Если ваш код изменился с момента последней компиляции, ко-

манда Run автоматически формирует вашу программу и затем выполня-

ет ее.

Если ваша программа представляет собой прикладную программу

DOS защищенного режима, то в текущем каталоге или по маршруту DOS

у вас должны находиться файлы DPMI16BL.OVL и RTM.EXE, в противном

случае программа выполняться не будет. Вы можете свободно расп-

ространять эти файлы с готовой прикладной программой.

Передача программе параметров

При запуске программы вы можете передать ей параметры ко-

мандной строки. Для вывода диалогового окна Parameters (Парамет-

ры) и набора списка параметров, которые вы хотите использовать,

выберите команду Run│Paramenters.

B.Pascal 7 & Objects /UG - 74 -

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

─────────────────────────────────────────────────────────────────

IDE позволяет вам выбрать несколько параметров, влияющих на

характер компиляции кода. Для вывода диалогового окна параметров

компилятора Compiler Options выберите команду Options│Compiler.

Если вы не уверены относительно того, что делает конкретный пара-

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

поясняющая справка. Для вывода более подробной информации о дан-

ном параметре нажмите клавишу F1 или выберите команду Help для

получения справочной информации обо всем диалоговом окне Compiler

Options.

╔═[ ]══════════════════════Compiler Options═════════════════════╗

║ Compiler settings for: ▒▒Real mode target▒▒▒▒▒▒▒▒▒▒v▒║

║───────────────────────────────────────────────────────────────║

║ Code generation ║

║ ▒[▒]▒Force▒far▒calls▒▒▒▒▒▒▒▒▒[▒]▒286▒instructions▒▒▒▒▒▒▒▒▒ ║

║ ▒[▒]▒Overlays▒allowed▒▒▒▒▒▒▒▒[▒]▒Smart▒callbacks▒▒▒▒▒▒▒▒▒▒ ║

║ ▒[X]▒Word▒align▒data▒▒▒▒▒▒▒▒▒[▒]▒Windows▒stack▒frames▒▒▒▒▒ ║

║ Runtime errors Syntax Options ║

║ ▒[▒]▒Range▒checking▒▒▒▒▒ ▒[X]▒Strict▒var-strings▒▒▒▒▒▒▒ ║

║ ▒[X]▒Stack▒checking▒▒▒▒▒ ▒[▒]▒Complete▒boolean▒eval▒▒▒▒ ║

║ ▒[X]▒I/O▒checking▒▒▒▒▒▒▒ ▒[X]▒Extended▒syntax▒▒▒▒▒▒▒▒▒▒ ║

║ ▒[ ]▒Overflow▒checking▒▒ ▒[▒]▒Typed▒@▒operator▒▒▒▒▒▒▒▒▒ ║

║ Debugging ▒[▒]▒Open▒parameters▒▒▒▒▒▒▒▒▒▒ ║

║ ▒[X]▒Debug▒Information▒▒ Numeric processing ║

║ ▒[X]▒Local▒symbols▒▒▒▒▒▒ ▒[▒]▒8087/80287▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ║

║ ▒[X]▒Symbol▒information▒ ▒[X]▒Emulation▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ║

║ ║

║ Conditional defines ║

║ ██████████████████████████████████████████████████████████v█ ║

║ ║

║ █████OK████ ███Cancel███ ███Help████ ║

║ ▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒ ║

║ ║

╚═══════════════════════════════════════════════════════════════╝

Рис. 4.3 Диалоговое окно Compiler Options.

Compiler settings for - установки компилятора для; Real mode

target - целевая платформа реального режима; Code generation -

генерация кода; Force far calls - принудительное использование

вызовов дальнего типа; 286 instructions - инструкции процессора

286; Overlays allowed - допустимость оверлеев; Smart callbacks -

эффективные вызовы; Word align data - выравнивание данных на гра-

ницу слова; Windows stack frames кадры стека Windows; Runtime

errors - ошибки этапа выполнения; Syntax Options - синтаксические

ошибки; Range checking - проверка диапазона; Strict var-strings -

строгая проверка строковых переменных; Stack checking - проверка

стека; Complete boolean eval - полное вычисление булевских выра-

жений; I/O checking - проверка ввода-вывода; Extended syntax -

расширенный синтаксис; Overflow checking - проверка переполнения

B.Pascal 7 & Objects /UG - 75 -

стека; Typed @ operator - типизованная операция @; Debugging -

отладка; Open parameters - открытые параметры; Debug Information

- отладочная информация; Numeric processing - числовая обработка;

Local symbols - локальные идентификаторы; 8087/80287 - процессоры

8087/80287; Symbol information - локальная информация; Emulation

- эмуляция; Conditional defines - условные определения.

Задание параметров

компилятора для целевой платформы

Выбираемые вами параметры компилятора в сильной степени за-

висят от того, какую целевую платформу вы используете. Например,

если вы создаете приложение DOS реального режима, то можете раз-

решить использование оверлеев, что не требуется для программ

Windows или защищенного режима DOS.

Для указанной целевой платформы вы можете установить стан-

дартные параметры компилятора:

Примечание: Меню Compiler Options компилятора

TURBO.EXE не имеет параметра Compiler Setting For.

1. Для вывода прокручиваемого списка щелкните "мышью" на

стрелке v или нажмите клавишу стрелки вниз при выборе

блока списка Compiler Setting For.

2. Проверьте выбранную целевую платформу.

IDE автоматически устанавливает обычно используемые парамет-

ры. В любой момент вы можете переопределить эти выбранные в IDE

параметры.

Если параметр компилятора несовместим с выбранной целевой

платформой, то он становится тусклым, и вы не можете его выби-

рать.

Установка параметров

компилятора для всех целевых платформ

Если вы хотите чтобы конкретный параметр компилятора был ус-

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

следующее:

1. В качестве значения параметра Compiler Settings For выбе-

рите All Targets.

2. Установите или отмените параметр компилятора, который вы

хотите установить.

Например, если вы хотите использовать инструкции процессора

286 для всех платформ, выберите All Targets (Все платформы), за-

тем установите параметр 286 instructions.

B.Pascal 7 & Objects /UG - 76 -

Когда вы выбираете All Targets, то можете увидеть, что в не-

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

знак (?). Это указывает, то установка параметра для всех платформ

не является одинаковой. Вы можете изменить этот параметр, сделав

его одинаковым для всех платформ, или оставить как есть.

Задание параметров компоновщика

Характер компоновки вашего кода зависит от установок в диа-

логовом окне Linker Options (Параметры компоновщика). Для его вы-

вода выберите команду Options│Linker. Если нужна более детальная

информация, выберите Help.

Включение в код директив компилятора

Существует еще один способ задания режима компиляции исход-

ного кода. Вместо использования для установки параметров диалого-

вых окон вы можете включить в свой код директивы компилятора.

Например, вы можете включить в свою программу проверку диапазона,

установив в диалоговом окне Options│Compiler параметр Range

Checking, или поместить в исходный код директиву {$R+}. Полное

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

в Главе 2 ("Директивы компилятора") "Справочного руководства

программиста".

Включаемые в исходный код директивы компилятора имеют боль-

ший приоритет, чем параметры компилятора, устанавливаемые в IDE.

Например, если в IDE вы установите параметр Range Checking, но

ваша программа включает в себя директиву {R-}, то программа ком-

пилируется с выключенной проверкой диапазона.

Оптимизация кода

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

программу код проверки и обработки ошибок, влияют как на размер,

так и на скорость вашего кода. Хотя такие параметры полезно ис-

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

более быстрый и компактный код.

Приведем параметры, влияющие на оптимизацию кода. Каждая ди-

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

раметра компилятора. Рассмотрим использование для завершающей

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

* Выравнивание данных на границу слова Word Align Data

({$A+}) выравнивает переменные и типизированные константы

на границу слова, что дает в системах с процессорами 80x86

более быстрый доступ к памяти.

* Выключение полного вычисления булевских выражений Complete

Boolean Evaluation ({$B-}) дает код, который в зависимости

от установки ваших булевских выражений более быстро рабо-

тает.

B.Pascal 7 & Objects /UG - 77 -

* При выключенной эмуляции Emulation ({$E-}) компилятор не

будет выполнять компоновку с библиотекой исполняющей сис-

темы, эмулирующей сопроцессор 80x87. Она должна использо-

вать сопроцессор 80х87 (в случае его наличия) или стан-

дартный 6-байтовый тип Real. При компиляции приложений

Windows эмуляция не используется; при наличии директивы

эмуляции компилятор ее игнорирует.

* Когда задана генерация кода процессора 80286 Code

Generation ({$G+}), компилятор для улучшения генерации ко-

да использует дополнительные инструкции процессора 80286.

Скомпилированные таким образом программы не будут работать

на процессорах 8088 и 8086.

* При выключенной проверке ввода-вывода I/O Checking ({$I-})

компилятор не проверяет ошибки ввода-вывода. Вызвав пре-

допределенную функцию IOResult, вы можете самостоятельно

проверить ошибки ввода-вывода.

* Когда выключена числовая обработка Numeric Processing

({$N-}), компилятор генерирует код, способный выполнять

все операции с плавающей точкой с помощью встроенного

6-байтового типа Real. Если параметр Numeric Processing

включен, ({$N+}), компилятор использует сопроцессор 80х87

или эмулирует сопроцессор с помощью программного обеспе-

чения, в зависимости от наличия сопроцессора 80х87. Полу-

ченный в результате код может использовать четыре дополни-

тельных вещественных типа (Single, Double, Extended и

Comp).

* Когда выключена проверка диапазона Stack Checking ({$R-}),

компилятор не выполняет проверку на ошибки индексирования

массива и присваивание значения вне диапазона.

* При выключенной проверке стека Stack Checking ({$S-}) ком-

пилятор не обеспечивает достаточного пространства в стеке

для каждого вызова процедуры или функции.

* Когда включена нестрогая проверка строк-переменных Relaxed

String Var Checking ($V-}), компилятор не проверяет пара-

метры-переменные строкового типа. Это позволяет вам пере-

давать строки фактических параметров, имеющие длину, от-

личную от длины, определенной для формального парамет-

ра-переменной.

* При разрешении расширенного синтаксиса Extended Syntax

({$X+}) вы можете использовать вызовы функций как операто-

ры, поскольку результат функциональных вызовов может отб-

расываться.

B.Pascal 7 & Objects /UG - 78 -

Оптимизация вашего кода с помощью этих параметров имеет два

преимущества. Во-первых, это делает ваш код более компактным и

быстрым. Во-вторых, позволяет делать вам некоторые вещи, которые

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

который риск, поэтому используйте их аккуратно, и если ваша прог-

рамма начинает вести себя странно, вернитесь к исходной ситуации.

B.Pascal 7 & Objects /UG - 79 -

Условная компиляция

─────────────────────────────────────────────────────────────────

Чтобы облегчить ваши задачи, Borland Pascal предлагает

средство условной компиляции. Это означает, что можете компили-

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

ных идентификаторов.

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

тора, с которыми вы уже познакомились. Они имеют следующий фор-

мат:

{$директива аргумент}

где "директива" - это такая директива как DEFINE, IFDEF и т.д., а

аргумент - необязательный аргумент. Между ними обязательно должен

присутствовать разделитель (пробел или табуляция). Все условные

директивы и их смысл приведены в Таблице 4.3.

Примечание: Полное описание директив условной компиля-

ции можно найти в Главе 2 ("Директивы компилятора") "Спра-

вочного руководства программиста".

Директива условной компиляции Таблица 4.3

┌──────────────────────────────┬────────────────────────────────┐

│ Директива │ Описание │

├──────────────────────────────┼────────────────────────────────┤

│ {$DEFINE идентификатор} │ Определяет "идентификатор" для │

│ │ других директив. │

├──────────────────────────────┼────────────────────────────────┤

│ {$UNDEF идентификатор} │ Отменяет определение "иденти- │

│ │ фикатора". │

├──────────────────────────────┼────────────────────────────────┤

│ {$IFDEF идентификатор} │ Компилирует следующий код, ес- │

│ │ ли определен "идентификатор". │

├──────────────────────────────┼────────────────────────────────┤

│ {$IFNDEF идентификатор} │ Компилирует следующий код, ес- │

│ │ ли "идентификатор" не опреде- │

│ │ лен. │

├──────────────────────────────┼────────────────────────────────┤

│ {$IFOPT x+} │ Компилирует следующий код, ес- │

│ │ ли разрешена директива x. │

├──────────────────────────────┼────────────────────────────────┤

│ {$IFOPT x-} │ Компилирует следующий код, ес- │

│ │ ли запрещена директива x. │

├──────────────────────────────┼────────────────────────────────┤

│ {ELSE} │ Компилирует следующий код, ес- │

│ │ ли предыдущее выражение IFxxx │

│ │ не равно True. │

├──────────────────────────────┼────────────────────────────────┤

│ {$ENDIF} │ Отмечает конец блока IFxxx или │

│ │ ELSE. │

└──────────────────────────────┴────────────────────────────────┘

B.Pascal 7 & Objects /UG - 80 -

Директивы DEFINE и UNDEF

─────────────────────────────────────────────────────────────────

Директивы IFDEF и IFNDEF проверяют, определен ли заданный

идентификатор. Эти идентификаторы определяются с помощью DEFINE и

UNDEF. (Можно также определять идентификаторы в командной строке

или в IDE.)

Чтобы определить идентификатор, включите в программу следую-

щую директиву:

{$DEFINE идентификатор}

где "идентификатор" в плане длины, разрешенных символов и других

спецификаций подчиняется обычным правилам для имен идентификато-

ров. Например, вы можете записать:

{$DEFINE debug}

Этим для остальной части компилируемого модуля или до следу-

ющего оператора:

{$UNDEF debug}

определяется идентификатор debug.

Директива UNDEF "разопределяет" идентификатор. Если иденти-

фикатор не определен, то она не действует.

Определение условных идентификаторов в IDE

Вместо того, чтобы вставлять директиву DEFINE в свой исход-

ный код, вы можете также определить условные идентификаторы и

блоке ввода Conditional Defines (Условные определения). Определи-

те идентификаторы, введя их в блоке ввода и разделив точками за-

пятой. Например, в следующем примере определяются два условных

идентификатора - TestCode и DebugCode:

TestCode:DebugCode

B.Pascal 7 & Objects /UG - 81 -

Предопределенные идентификаторы

Кроме определяемых вами идентификаторов вы можете также про-

верять отдельные идентификаторы, определяемые компилятором:

Предопределенные условные идентификаторы Таблица 4.4

┌───────────────────┬───────────────────────────────────────────┐

│ Идентификатор │ Показывает │

├───────────────────┼───────────────────────────────────────────┤

│ CPU86 │ Данная версия Borland Pascal предназначена│

│ │ для семейства процессоров 80х86. │

├───────────────────┼───────────────────────────────────────────┤

│ CPU87 │ Присутствует арифметический сопроцессор│

│ │ 80х87. │

├───────────────────┼───────────────────────────────────────────┤

│ DPMI │ Данная версия предназначена для операцион-│

│ │ ной среды защищенного режима DOS. При соз-│

│ │ дании приложений для защищенного режима│

│ │ DOS данный идентификатор доступен для│

│ │ BP.EXE. │

├───────────────────┼───────────────────────────────────────────┤

│ MSDOS │ Данная версия предназначена для операци-│

│ │ онной системы MS-DOS. Данный идентификатор│

│ │ доступен в BP.EXE только при создании при-│

│ │ ложений DOS реального или защищенного ре-│

│ │ жима и в TURBO.EXE. │

├───────────────────┼───────────────────────────────────────────┤

│ VER70 │ Данная версия является версией 7.0 компи-│

│ │ лятора. │

├───────────────────┼───────────────────────────────────────────┤

│ WINDOWS │ Данная версия предназначена для операци-│

│ │ онной среды Windows. Данный идентификатор│

│ │ доступен в BP.EXE и в BPW.EXE, когда целе-│

│ │ вой платформой является Windows. │

└───────────────────┴───────────────────────────────────────────┘

Подробнее о предопределенных условных идентификаторах компи-

лятора рассказывается в Главе 2 ("Директивы компилятора") "Руко-

водства программиста".

Идентификаторы IFxxx, ELSE и ENDIF

Смысл условных директив в том, что если определен или нет

конкретный идентификатор либо если установлен или нет конкретный

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

ходного кода. Они имеют следующий общий формат, где IFxxx - это

директивы IFDEF, INDEF или IFOPT, за которыми следует соответс-

твующий аргумент, а "исходный код" - любое количество исходного

кода Паскаля.

{$IFxxx}

исходный код

B.Pascal 7 & Objects /UG - 82 -

{$ENDIF}

Если выражение в директиве IFxxx принимает значение True, то

"исходный код" компилируется; в противном случае он игнорируется

и интерпретируется как обычный комментарий в программе.

Часто у вас имеются альтернативные фрагменты кода. Если вы-

ражение принимает значение True, то компилируется один фрагмент

кода, а если False - другой. Компилятор позволяет сделать это с

помощью директивы $ELSE:

{$IFxxx}

исходный код A

{$ELSE}

исходный код B

{$ENDIF}

Если выражение в IFxxx равно True, то компилируется "исход-

ный код A", в противном случае компилируется "исходный код B".

Все директивы IFxxx должны завершаться с одном исходном фай-

ле. Это означает, что они не могут начинаться в одном исходном

файле и заканчиваться в другом. Однако, в директиве IFxxx может

указываться включаемый файл:

{$IFxxx}

{$I file1.pas}

{$ELSE}

{$I file2.pas}

{$ENDIF}

Таким образом, на основе некоторого условия вы можете выби-

рать альтернативные включаемые файлы

Допускается использовать вложенные конструкции IFxxx..ENDIF,

так что вы можете записать, например, следующее:

{$IFxxx} { первая директива IF }

.

.

.

{$IFxxx} { первая директива IF }

.

.

.

{$ENDIF} { завершает вторую директиву IF }

.

.

.

{$ENDIF} { завершает первую директиву IF }

B.Pascal 7 & Objects /UG - 83 -

Директивы IFDEF и IFNDEF

Директивы IFDEF и IFNDEF позволяют вам условно компилировать

код на основе определения или неопределения некоторых идентифика-

торов.

Директивы IFDEF и IFNDEF обычно используются для включения в

компилируемый код отладочной информации. Например, если вы помес-

тите в начало каждого модуля следующий код:

{$IFDEF debug}

{$D+,L+}

{$ELSE}

{$D-,L-}

{$ENDIF}

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

{$DEFINE debug}

и компилируете свою программу, для использования с Турбо отлад-

чиком генерируется полная отладочная информация. Аналогично, вы

можете иметь фрагменты кода, компилируемые только при отладке. В

этом случае можно записать:

{$IFDEF debug}

исходный код

{$ENDIF}

где "исходный код" компилируется только в том случае, если в дан-

ной точке определен идентификатор debug.

B.Pascal 7 & Objects /UG - 84 -

Директива IFOPT

Иногда включить или исключить код желательно в зависимости

от того, какой выбран параметр компилятора (проверка диапазона,

проверка ввода-вывода и т.д.). Вы можете сделать это с помощью

директивы IFOPT, которая имеет две формы:

{$IFOPT x+}

и

{$IFOPT x-}

где x - один из параметров компилятора. При использовании первой

формы содержащийся ниже код будет компилироваться, если параметр

компилятора в данный момент разрешен; при использовании второй

формы код компилируется при запрещении параметра. Например, чтобы

выбрать тип данных для списка переменных на основе того, разреше-

на или нет поддержка сопроцессора 80х87, можно использовать сле-

дующий исходный код:

var

{$IFOPT N+}

Radius,Circ,Area: Double;

{$ELSE}

Radius,Circ,Area: Real;

{$ENDIF}

Примечание: Полное описание всех параметров компилято-

ра вы можете найти в Главе 2 ("Директивы компилятора")

"Справочного руководства программиста".

B.Pascal 7 & Objects /UG - 85 -

Просмотр исходного кода

─────────────────────────────────────────────────────────────────

IDE защищенного режима DOS содержит новое программное инс-

трументальное средство просмотра объектов - ObjectBrowser. Оно

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

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

зует объектно-ориентированное программирование, вы найдете

ObjectBrowser чрезвычайно полезным средством. Вы можете просмат-

ривать иерархию объектов, модулей и всех процедур, функций, пере-

менных, типов, констант и другие используемые в программе иденти-

фикаторы. С помощью ObjectBrowser вы можете делать следующее:

* Просмотреть в своей прикладной программе иерархию объек-

тов. Затем выбрать объект и просмотреть все его процедуры,

функции и другие содержащиеся в программе идентификаторы.

При проверке идентификатора вы можете вывести перечень

всех ссылок на него в процедурах, функциях программы и,

если хотите, перейти на то место в исходном коде, где он

используется.

* Вывести список всех глобальных идентификаторов, используе-

мые в вашей программе, и увидеть их описания. Если вы вы-

берите одну переменную, то можете вывести список всех ссы-

лок не нее в своей программе и, если хотите, перейти на то

место в исходном коде, где она используется.

* Вывести список всех используемых в программе модулей, за-

тем выбрать один из них и просмотреть список всех иденти-

фикаторов его интерфейсной части.

* Выбрать идентификатор в исходном коде, затем просмотреть

детальную информацию по нему, нажав клавишу Ctrl и однов-

ременно щелкнув правой кнопкой "мыши".

* Открыть множество окон просмотра, сравнить идентификаторы,

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

щее открытое в средстве просмотра окно.

Перед использованием ObjectBrowser убедитесь, что в диалого-

вом окне Options│Compiler установлены следующие параметры:

* Debug Information (Информация для отладки).

* Locals Symbols (Локальные идентификаторы).

* Symbol Information (Информация об идентификаторах).

Убедитесь также, что в диалоговом окне Debugging/Browsing

(Options│Debugger) установлен параметр Integrated Debugging/

Browsing (Отладка с использование встроенного отладчика/Прос-

мотр).

B.Pascal 7 & Objects /UG - 86 -

Скомпилируйте программу, которую вы хотите просматривать.

Для активизации ObjectBrowser выберите в меню Search (Поиск)

команду Objects (Объекты), Units (Модули) или Globals (Глобальные

идентификаторы). Вы можете также поместить курсор на идентифика-

тор в исходном коде и выбрать для вывода ObjectBrowser команду

Search│Symbol (Поиск│Идентификатор).

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

информацию об идентификаторах между компиляциями. Если этот пара-

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

завершиться неудачно, то вам все равно будет доступна информация

об идентификаторах, сохраненная с последней компиляции. Благодаря

этому вы сможете просмотреть свою программу, что поможет вам оп-

ределить источник проблемы. Чтобы компилятор сохранял информацию

об идентификаторах между компиляциями, нужно сделать следующее:

1. Выбрать команду Options│Enviroment│Startup.

2. Установить параметр Preserve Symbols (Сохранение иденти-

фикаторов); по умолчанию он установлен.

3. Выбрать командную кнопку OK.

4. Для выхода из IDE выбрать команду File│Exit.

5. Снова запустить IDE.

Примечание: Поскольку Preserve Symbols - это параметр

запуска, изменение его установки не будет иметь действие,

пока вы не выйдите из IDE и не запустите ее снова.

B.Pascal 7 & Objects /UG - 87 -

Если у вас есть "мышь", то исходный код удобнее просматри-

вать, если задать активизацию ObjectBrowser правой кнопкой "мы-

ши". Затем, удерживая нажатой клавишу Ctrl, вы можете использо-

вать правую кнопку "мыши" для указания и проверки объекта, проце-

дуры, функции, переменной или другого идентификатора в вашем ис-

ходном коде и его анализа (вывода детальной информации).

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

котором в исходном коде позиционирован курсор, вы можете

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

Browse Symbol at Cursor (Просмотр идентификатора в позиции

курсора).

Чтобы задать просмотр с помощью "мыши", выполните следующие

шаги:

1. Выберите команду Options│Enviroment│Mouse.

2. Выберите параметр Browse as the Ctrl + Right Mouse Button

(Просмотр по клавише Ctrl + правая кнопка "мыши").

3. Выберите командную кнопку OK.

B.Pascal 7 & Objects /UG - 88 -

Просмотр объектов

─────────────────────────────────────────────────────────────────

Команда Search│Objects открывает окно, в котором выводятся

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

кой структуре. В верхней части окна ObjectBrowser показывает ба-

зовый тип и выводит ниже и справа от базового типа потомков. Про-

яснить соотношения "предок-потомок" помогают соединяющие линии.

Примечание: Подробную информацию о типах объектов вы

можете найти в Главе 9 ("Объектно-ориентированной програм-

мирование").

▒File▒Edit▒Search▒▒Run▒▒Compile▒Debug▒Tools▒Options▒Window▒Help▒▒

╔═[*]══════════════════════ Browse: Object ════════════════2═[*]╗

║ Global Scope ║

║─┤ I ├─────────────────────────────────────────────────────────║

║─Objects▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒^

║ ├────Location █

║ │ ├───Block ▒

║ │ │ ├───Ball ▒

║ │ │ └───Brick ▒

║ │ ├───Cursor ▒

║ │ │ └───SaveScreen ▒

║ │ ├───Obstacle ▒

║ │ │ ├───Boundary ▒

║ │ │ │ ├───LeftBound ▒

║ │ │ │ ├───LowerBound ▒

║ │ │ │ ├───RightBound ▒

║ │ │ │ └───UpperBound ▒

║ │ │ ├───Paddle ▒

║ │ │ └───Wall ▒

║ │ └───TextString ▒

║ │ └───Counter ▒

║ │ └───DownCounter ▒

║ │ └───LimitCounter v

╚<▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒>─┘

░F1░Help░<┘░Browse░░Ctrl░<┘░Go░to░source░Space░Track░src░F10░Menu

Рис. 4.4 Просмотр иерархии объектов прикладной программы.

Если иерархия объектов у вас слишком большая, вы можете за-

дать, чтобы потомки конкретного объекта на экран не выводились.

* С помощью клавиатуры сделайте следующее:

1. Выберите объект.

2. Нажмите клавишу - (минус).

* При наличии "мыши" просто щелкните "мышью" на горизонталь-

ной линии, соединяющей объект с иерархией.

B.Pascal 7 & Objects /UG - 89 -

Теперь после объекта выводится + (плюс), и он подсвечивает-

ся, показывая, что потомки данного объекта на экран не выводятся.

Вы можете вывести потомков объекта снова.

* С помощью клавиатуры:

1. Выделите объект с символом +.

2. Нажмите клавишу +.

* При наличии "мыши" щелкните ей на горизонтальной строке,

соединяющей объект с иерархией.

Потомки объекта появляются вновь.

Из иерархии объектов вы можете просматривать все описанные в

индивидуальном объекте идентификаторы. Выделите объект и нажмите

клавишу Enter, либо дважды щелкните на объекте кнопкой "мыши".

При просмотре описанных в объекте идентификаторов вы можете

задать различные виды вывода:

* Для вывода информации о наследовании для просматриваемого

объекта щелкните "мышью" на букве I в верхней части окна

ObjectBrowser или нажмите клавиши Ctrl+I.

* Для вывода на экран перечня строк программы или модуля,

где имеется ссылка на идентификатор объекта щелкните

"мышью" на букве R в верхней части окна ObjectBrowser или

нажмите клавиши Ctrl+R.

* Для вывода области действия объекта щелкните "мышью" на

букве S или нажмите клавиши Ctrl+S.

Чтобы найти идентификатор в списке выводимых идентификато-

ров, наберите первую букву имени идентификатора; ваш курсор быст-

ро перемещается на соответствующий идентификатор.

Чтобы ObjectBrowser мог находить, где расположены ваши ис-

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

модулей и включаемых файлов в диалоговом окне Options│

Directories.

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

код, добавляя или удаляя строки программы, то программу лучше пе-

рекомпилировать. Хотя ObjectBrowser после модификации исходного

кода все равно сможет отслеживать информацию об идентификаторах,

номера строк исходного кода, выводимые в окне редактирования, не

будут обновляться, пока программа не будет перекомпилирована.

Изменения режима вывода информации ObjectBrowser

B.Pascal 7 & Objects /UG - 90 -

Вы можете управлять характером вывода в ObjectBrowser инфор-

мации.

Можно выбрать, какие идентификаторы должны выводить

ObjectBrowser:

1. Для вывода диалогового окна Browser Options выберите ко-

манду Options│Browser.

2. В группе Symbols отметьте только те идентификаторы, кото-

рые вы хотите выводить в ObjectBrowser. Вы можете также

выбрать вывод идентификаторов, наследуемых от предков

объекта.

3. Выберите командную кнопку OK.

В ObjectBrowser выводятся только те идентификаторы, кото-

рые вы выбрали.

Вы можете также выбрать, какие идентификаторы выводить толь-

ко в активном окне просмотра. Для вывода диалогового окна Local

Browser Options (Локальные параметры просмотра) выберите в ло-

кальном меню окна просмотра команду Options или при отображении

окна просмотра нажмите клавиши Ctrl+O.

B.Pascal 7 & Objects /UG - 91 -

Если вы в качестве типа отображаемых идентификаторов выбере-

те типы, переменные и процедуры, а затем будете просматривать

объект Location в программе BREAKOUT.PAS (пример демонстрационной

программы в каталоге EXAMPLES\DOS\BREAKOUT), то увидите следующую

информацию об идентификаторах:

▒File▒Edit▒Search▒▒Run▒▒Compile▒Debug▒Tools▒Options▒Window▒Help▒▒

╔═[*]══════════════════════ Browse: Object ════════════════2═[*]╗

║ Global Scope ║

║─┤ S │ I │ R ├─────────────────────────────────────────────────║

║▒var▒▒▒▒Location.X:▒▒Integer▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒^

║ var Location.Y: Integer █

║ var Location.Visible: Boolean ▒

║ var Location.Init(Integer, Integer) ▒

║ proc Location.Relocate(Integer, Integer) ▒

║ proc Location.MoveTo(Integer, Integer) ▒

║ proc Location.Show ▒

║ proc Location.Hide ▒

║ func Location.GetX: Integer ▒

║ func Location.GetY: Integer ▒

║ func Location.InVisible: Boolean ▒

║ ▒

║ ▒

║ v

╚<█▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒>─┘

░F1░Help░<┘░Browse░░Ctrl░<┘░Go░to░source░Space░Track░src░F10░Menu

Рис. 4.5 Просмотр информации об идентификаторах.

Сокращения слева от перечисленных идентификаторов перечисля-

ют идентификаторы, представляющие вид выводимого идентификатора.

Заметим, что включение идентификаторов процедур также включает

идентификаторы функций.

┌───────────────┬────────────────────────────────────┐

│ Идентификатор │ Смысл │

├───────────────┼────────────────────────────────────┤

│ const │ Константа │

│ func │ Функция │

│ label │ Метка │

│ proc │ Процедура │

│ type │ Тип │

│ var │ Переменная или типизированная кон- │

│ │ станта. │

└───────────────┴────────────────────────────────────┘

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

Search│Previous Browser или нажмите клавиши Ctrl+P.

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

B.Pascal 7 & Objects /UG - 92 -

ObjectBrowser по умолчанию выводит информацию об области дейс-

твия. Если вы предпочитаете по умолчанию видеть информацию о

ссылках, то сделайте следующее:

1. Выберите команду Options│Browser.

2. Выберите в качестве значения параметра Preferred Pane

Reference.

3. Выберите командную кнопку OK.

По умолчанию ObjectBrowser выводит для проверяемого иденти-

фикатора полную информацию об описании. Вы можете просмотреть все

поля и методы записей и объектов, включая полностью уточненные

идентификаторы. Если вы не хотите видеть полностью уточненные

идентификаторы, то сделайте следующее:

1. Выберите команду Options│Browser.

2. Отмените параметр вывода Qualified Symbols.

3. Выберите командную кнопку OK.

Примечание: Вы не увидите видеть полностью уточненные

идентификаторы, пока не установите наследование в диалого-

вом окне Browser Options (Options│Browser).

По умолчанию ObjectBrowser выводит идентификаторы в области

Scope в том порядке, в каком они описаны. Если вы предпочитаете

сортировать идентификаторы в алфавитном порядке, то сделайте сле-

дующее:

1. Выберите команду Options│Browser.

2. Установите параметр вывода Sort Always.

3. Выберите командную кнопку OK.

Идентификаторы будут сортироваться только по именам, а не

по полностью уточненным именам. Например, считается, что

следующий список идентификаторов отсортирован в алфавит-

ном порядке:

THELPFILE.DONE

TOBJECT.FREE

THELPFILE.INDEX: PHELP

Когда вы открываете окно просмотра, затем просматриваете пе-

речисленный в нем идентификатор, то открывается новое окно прос-

мотра, но предыдущее окно остается. Вы можете изменить это пове-

дение таким образом, что новое окно просмотра будет заменять пре-

дыдущее:

B.Pascal 7 & Objects /UG - 93 -

1. Выберите команду Options│Browser.

2. Установите параметр Replace Current sub-browsing.

3. Выберите командную кнопку OK.

Чтобы текущее окно просмотра сохранялось, когда вы выбираете

перечисленный в его списке идентификатор, сделайте следующее:

1. Выберите команду Options│Browser.

2. Установите параметр New Browser sub-browsing.

3. Выберите командную кнопку OK.

Возможно, в большинстве случаев вы предпочитаете использо-

вать параметр Replace Current или New Browser, но иногда исполь-

зуете альтернативный параметры. Быстро выбрать альтернативный па-

раметр можно следующим образом:

1. Нажмите и удерживайте в нажатом состоянии клавишу Shift.

2. Выберите следующее действие просмотра.

Например, если действует параметр New Browser, то при на-

жатии клавиши Shift следующее открываемое окно просмотра

будет замещать текущее.

Отслеживание и редактирование ссылок на строки

Когда ObjectBrowser выводит ссылочную информацию, вы можете

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

отслеживать ссылки на идентификатор. Отслеживание означает, что

IDE, при перемещении по ссылкам в окне просмотра, подсвечивает в

программе одну строку за другой.

Чтобы отредактировать выводимую в ссылке строку программы,

сделайте следующее:

1. Выделите ссылку в окне просмотра.

2. Нажмите клавиши Ctrl+Enter или Ctrl+G.

Ваш курсор перемещается на строку программы в исходном

коде, ссылка на которую содержится в окне просмотра. Те-

перь вы можете редактировать строку программы.

По умолчанию, когда ваш курсор перемещается на строку ис-

ходного кода программы, окно ObjectBrowser закрывается.

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

открытым, то отмените параметр Close On Go To Source в

диалоговом окне Preferences.

B.Pascal 7 & Objects /UG - 94 -

Примечание: Параметр Close On Go To Source влияет

также на окно сообщений Messages (см. ниже).

Для отслеживания строк программы:

1. В окне просмотра выделите ссылку, которую вы хотите отс-

леживать.

2. Нажмите клавишу пробела.

Если вы всегда хотите отслеживать ссылки по исходному ко-

ду, установите параметр Auto Track Source и группе

Options диалогового окна Preferences. Тогда при прокрутке

ссылок строки в исходном коде программы будут прокручи-

ваться автоматически, и пробел вам нажимать не нужно.

Примечание: Параметр Auto Track Source влияет также

на окно сообщений Messages (см. ниже).

Теперь строки программы, на которые имеются ссылки в окне

просмотра, отслеживаются в зависимости от того, как вы установили

параметры отслеживания в диалоговом окне Options│Enviroment│

Preferences: если файл, на который имеется ссылка, не находится в

окне редактирования, то IDE открывает файл, и он выводится либо в

новом, либо в текущем окне редактирования.

* Если вы хотите, чтобы файл выводился в новом окне редакти-

рования, выберите в качестве значения параметра Source

Tracking New Window.

* Если вы хотите, чтобы файл замещал текущий в активном окне

редактирования, выберите в качестве значения параметра

Source Tracking Current Window.

Примечание: Параметр Source Tracking влияет также на

окно сообщений Messages (см. ниже).

Если выбранный модуль хранится в библиотеке исполняющей сис-

темы Borland Pascal или является одним из стандартных модулей, то

вы не сможете просматривать или редактировать исходный код, пос-

кольку эти модули скомпилированы без включения отладочной инфор-

мации.

B.Pascal 7 & Objects /UG - 95 -

Просмотр модулей

─────────────────────────────────────────────────────────────────

Команда Search│Units открывает диалоговое окно, в котором

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

алфавитном порядке. Для просмотра идентификаторов, описанных в

интерфейсной части модуля, выделите конкретный модуль и нажмите

клавишу Enter или дважды щелкните не нем кнопкой "мыши". Анало-

гично тому, как это делается с объектами, вы можете видеть об-

ласть действия ссылочной информации для идентификатора. Если мо-

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

емых с Borland Pascal стандартных модулей, и скомпилирован таким

образом, что включает в себя всю необходимую для интегрированной

отладки/просмотра информацию, то вы можете при соответствующей

ссылке отслеживать и редактировать исходный код модуля.

В следующем примере модуль Walls описывается в строке 4 фай-

ла WALLS.PAS и вызывается на строке 37 BREAKOUT.PAS.

┌───────────────── Browse: Units ─────────────2──┐

│ Global scope │

├─┤ S ├──────────────────────────────────────────┤

│ unit Bounds │

│ unit Breakout │

│ unit Bricks │

│ unit Count │

│ unit Crt ╔═[*]═════ Browse: Walls ══3═══[^]═╗

│ unit Dos ║ unit Walls ║

│ unit Screen ║─┤ S │ R ├─────────────────────────║

│ unit System ║ WALLS.PAS(4) ║

│▒unit▒▒Walls▒▒▒▒ ║░BREAKOUT.PAS(37)░░░░░░░░░░░░░░░░░░║

│ ║ ║

│ ║ ║

│ ╚══2/2══════════════════════════════╝

│ │

│ │

└────────────────────────────────────────────────┘

Рис. 4.6 Просмотр модулей в вашей прикладной программе.

B.Pascal 7 & Objects /UG - 96 -

Просмотр глобальных идентификаторов

─────────────────────────────────────────────────────────────────

Команда Search│Global открывает окно, в котором выводятся

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

в алфавитном порядке. Как и в случае объектов, для просмотра

строк в программе, ссылающихся на этот идентификатор, описаний

идентификатора и иерархии наследования вы можете открывать допол-

нительные окна ObjectBrowser. При выводе ссылочной информации вы

можете отслеживать или редактировать строки программы. Например,

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

используемых в программе BREAKOUTS.PAS:

╔═[*]══════════════════════ Browse: Object ════════════════2═[^]╗

║ Global Scope ║

║─┤ S ├─────────────────────────────────────────────────────────║

║▒func▒▒▒Abs(..)▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒^

║ func Addr(...) █

║ const AnyFile = 63 ▒

║ proc Append(...) ▒

║ const Archive = 32 ▒

║ func ArcTan(...) ▒

║ proc Assing(...) ▒

║ proc AssingCrt(var Text) ▒

║ func Assigned(...) ▒

║ var b: Ball ▒

║ type Ball = object(Block) ▒

║ var Balls: DownCounter ▒

║ proc Beep ▒

║ const Block = 0 ▒

║ const Blink = 128 ▒

║ type Block = object(Location) ▒

║ proc BlockRead(...) ▒

║ const Blue = 1 v

╚<█▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒>─┘

Рис. 4.7 Просмотр глобальных идентификаторов, используемых в

программе.

B.Pascal 7 & Objects /UG - 97 -

Просмотр идентификаторов в исходном коде

─────────────────────────────────────────────────────────────────

Вы можете просматривать идентификаторы в своем исходном ко-

де. Поместите курсор на идентификатор и выберите один из следую-

щих методов:

* Для вывода диалогового окна Browse Symbol выберите в меню

Search команду Symbol. Используйте идентификатор, выведен-

ный в диалоговом окне, или введите другой идентификатор и

выберите командную кнопку OK.

* Для вывода локального меню окна редактирования нажмите

клавиши Alt+F10 или щелкните правой кнопки "мыши" и выбе-

рите команду Browse Symbol at Cursor.

* Если для просмотра идентификаторов вы задали правую кнопку

"мыши" (выбором команды Options│Enviroment│Mouse и Browse

at Cursor), то нажмите клавишу Ctrl и, удерживая ее, щел-

кните правой кнопкой "мыши".

Тип информации, которую вы видите, зависит от типа информа-

ции, доступной для выбранного идентификатора:

* Если для выделенного вами идентификатора информация об об-

ласти действия недоступна, то ObjectBrowser выводит для

него ссылочную информацию. Например, для простой константы

доступна только ссылочная информация.

* Если выделенный вами идентикатор не имеет доступной инфор-

мации об области действия, ObjectBrowser выводит для этого

идентификатора информацию об области действия. Он также

дает вам возможность видеть ссылочную информацию.

* Если выделенный вами идентификатор представляет собой

структурный тип, то ObjectBrowser выводит для этого типа

информацию об области действия. Он дает вам также возмож-

ность видеть информацию о наследовании и ссылочную инфор-

мацию. Если вы выберите информацию о наследовании, то уви-

дите непосредственного предка этого типа и непосредствен-

ных потомков, если они имеются.

Если вы выбрали просмотр структурного типа, ObjectBrowser

выводит на экран полностью уточненные имена, если удовлетворяются

следующие два условия:

* В диалоговом окне Browser Options (Options│Browser) или в

диалоговом окне Local Browser Options (локальное меню

Options окна просмотра) выбран параметр Inherited symbol.

* В диалоговом окне Browser Options (Options│Browser) или в

диалоговом окне Local Browser Options (локальное меню

Options окна просмотра) выбран параметр Qualified Symbols.

B.Pascal 7 & Objects /UG - 98 -

Например, на следующем рисунке показана полная информация об

описании области действия для переменной b типа Ball:

▒File▒Edit▒Search▒▒Run▒▒Compile▒Debug▒Tools▒Options▒Window▒Help▒▒

╔═[*]══════════════════════ Browse: b ═════════════════════2═[*]╗

║ var b: Ball ║

║─┤ S │ I │ R ├─────────────────────────────────────────────────║

║▒var▒▒▒▒Location.X:▒▒Integer▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒^

║ var Location.Y: Integer █

║ var Location.Visible: Boolean ▒

║ var Location.Init(Integer, Integer) ▒

║ proc Location.Relocate(Integer, Integer) ▒

║ proc Location.MoveTo(Integer, Integer) ▒

║ func Location.GetX: Integer ▒

║ func Location.GetY: Integer ▒

║ func Location.InVisible: Boolean ▒

║ var Block.Color: Integer ▒

║ var Block.Width: Integer ▒

║ var Block.BChar: Char ▒

║ proc Block.Show ▒

║ proc Block.Hide ▒

║ var Ball.XVel: Integer ▒

║ var Ball.YVel: Integer ▒

║ proc Ball.Init(Integer, Integer, Integer, Integer, Integer) ▒

║ func Ball.NextX: Integer ▒

║ func Ball.NextY: Integer ▒

║ proc Ball.MoveX v

╚<█▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒>─┘

░F1░Help░<┘░Browse░░Ctrl░<┘░Go░to░source░Space░Track░src░F10░Menu

Рис. 4.8 Просмотр полной информации описания области дейс-

твия.

Если ObjectBrowser выводит сообщение, говорящее, что ка-

кой-то идентификатор не найден, проверьте и убедитесь, что вы за-

дали в ObjectBrowser проверку допустимого идентификатора, и что

идентификатор находится в нужной области действия. Например, при

выборе команды Search│Symbol курсор может быть позиционирован на

комментарии. Либо курсор может находиться вне области действия, в

которой ObjectBrowser может найти информацию об идентификаторе.

Например, курсор может находиться на формальном параметре в опи-

сании функции, а не в реализации функции. В этом случае

ObjectBrowser не может найти идентификатор, но если вы найдете

параметр в реализации функции, то сможете просмотреть его.

B.Pascal 7 & Objects /UG - 99 -

Просмотр функций ObjectBrowser

─────────────────────────────────────────────────────────────────

В Таблице 4.5 перечислены клавиши и команды меню, активизи-

рующие функции ObjectBrowser:

Функции ObjectBrowser Таблица 4.5

┌───────────────────────────┬───────────────────────────────────┐

│ Чтобы выполнить: │ Сделайте следующее: │

├───────────────────────────┼───────────────────────────────────┤

│ Просмотр объектов │ Выберите команду Search│Objects. │

├───────────────────────────┼───────────────────────────────────┤

│ Просмотр модулей │ Выберите команду Search│Units. │

├───────────────────────────┼───────────────────────────────────┤

│ Просмотр глобальных │ Выберите команду Search│Globals. │

│ идентификаторов │ │

├───────────────────────────┼───────────────────────────────────┤

│ Просмотр идентификатора │ Поместите курсор на идентификаторе│

│ │ своей программы, выберите команду│

│ │ Search│Symbol или удерживайте на-│

│ │ жатой клавишу Ctrl и щелкните пра-│

│ │ вой кнопкой "мыши". │

├───────────────────────────┼───────────────────────────────────┤

│ Выбрать Browser Options │ Выберите команду Options│Browser. │

├───────────────────────────┼───────────────────────────────────┤

│ Выбрать параметр Source │ Выберите команду Options│Enviro-│

│ Tracking Options │ ment│Preferences. │

├───────────────────────────┼───────────────────────────────────┤

│ Выбрать Mouse Options │ Выберите команду Options│Enviro-│

│ │ mrnt│Mouse. │

├───────────────────────────┼───────────────────────────────────┤

│ Открыть предыдущее окно │ Выберите команду Search│Previous│

│ просмотра │ Browser, выберите в локальном меню│

│ │ окна просмотра команду Previous│

│ │ или нажмите клавиши Ctrl+P. │

├───────────────────────────┼───────────────────────────────────┤

│ Выбрать Local Browser │ Нажмите клавиши Ctrl+O или выбери-│

│ Options │ те команду Options в локальном │

│ │ меню окна просмотра. │

├───────────────────────────┼───────────────────────────────────┤

│ Отредактировать исходный │ Нажмите Ctrl+Enter в ObjectBrowser│

│ код │ нажмите клавиши Ctrl+G или выбери-│

│ │ те в локальном меню окна просмотра│

│ │ команду Goto Source. │

├───────────────────────────┼───────────────────────────────────┤

│ Отслеживать исходный │ Нажмите в ObjectBrowser пробел│

│ код │ нажмите клавиши Ctrl+T или выбери-│

│ │ те в локальном меню окна просмотра│

│ │ Track Source. │

├───────────────────────────┼───────────────────────────────────┤

│ Вывести ссылочную │ Нажмите в ObjectBrowser клавиши│

│ информацию │ Ctrl+R или щелкните "мышью" на│

│ │ букве R в рамке окна. │

B.Pascal 7 & Objects /UG - 100 -

├───────────────────────────┼───────────────────────────────────┤

│ Вывести информацию │ Нажмите в ObjectBrowser клавиши│

│ об области действия │ Ctrl+S или щелкните "мышью" на│

│ │ букве S в рамке окна. │

├───────────────────────────┼───────────────────────────────────┤

│ Вывод информации о │ Нажмите в ObjectBrowser клавиши│

│ наследовании │ Ctrl+I или щелкните "мышью" на│

│ │ букве I в рамке окна. │

├───────────────────────────┼───────────────────────────────────┤

│ Изменить на обратный │ Нажмите клавишу Shift, и, удержи-│

│ режим вывода подокна │ вая ее, выполните следующее дейст-│

│ │ вие. │

└───────────────────────────┴───────────────────────────────────┘

B.Pascal 7 & Objects /UG - 101 -

Выполнение в IDE других программ

─────────────────────────────────────────────────────────────────

Без выхода из IDE вы можете запускать другие программы и

утилиты. При установке пакета Borland Pascal IDE устанавливается

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

GREP, Turbo Assembler, Turbo Debugger и Turbo Profiler.

Чтобы запустить в интегрированной интерактивной среде прог-

рамму, сделайте следующее:

1. Откройте меню Tools (Инструментальные средства).

Вы увидите список программ и утилит, которые может запус-

кать.

2. Выберите в меню Tools программу, которую вы хотите запус-

тить.

При выборе программы ей передается управление. После выпол-

нения программы управление возвращается обратно в IDE.

Настройка меню Tools

─────────────────────────────────────────────────────────────────

Программы, которые вы найдете полезными, можно добавить в

меню Tools и запускать их потом из IDE.

Чтобы добавить программы в меню Tools, сделайте следующее:

1. Для вывода диалогового окна Tools выберите команду

Options│Tools.

В блоке списка заголовков программ Program Titles вы уви-

дите краткое описание уже инсталлированных и готовых к

выполнению программ.

2. Для вывода диалогового окна Modify/New Tool (Модифика-

ция/Новое инструментальное средство) выберите команду

New.

3. В блоке ввода заголовка программы Program Title наберите

имя программы, как вы хотите выводить его в меню Tools.

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

клавишам, укажите непосредственно перед и после того сим-

вола, который должен использоваться в качестве оператив-

ной клавиши, символ тильды (~). Этот символ будет выво-

диться в меню Tools жирным шрифтом и специальным шрифтом,

и при нажатии этой клавиши вы выберете программу. Напри-

мер, чтобы добавить в меню Tools редактор Brief и сделать

оперативной клавишей клавишу B, наберите:

B.Pascal 7 & Objects /UG - 102 -

~B~rief

4. Если вы хотите, чтобы ваша программа имела связанную с

ней оперативную клавишу, выберите один из параметров Hot

Key. Когда вы нажмете присвоенную оперативную клавишу,

программа начинает работать. Например, утилите GREP прис-

воены оперативные клавиши Shift+F2. В любой момент, чтобы

использовать GREP, просто нажмите Shift+F2.

5. В блоке ввода Program Path (Маршрут программы) наберите

имя программы.

Если вы не введете полного имени, то могут быть найдены

только программы в текущем каталоге или программы по

обычному маршруту DOS.

6. В блоке ввода Command Line (Командная строка) наберите

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

программе.

Полную справочную информацию по макрокомандам, которые

можно использовать в блоке Command Line в Modify/New Tool

вы можете найти в оперативном справочнике Help Borland

Pascal.

7. Выберите командную кнопку OK.

Для редактирования имеющейся в меню Tools программы сделайте

следующее:

1. Выберите команду Options│Tools.

2. В блоке списка Program Titles выберите нужную программу

для редактирования.

3. Выберите Edit (Редактирование).

4. Внесите изменения в заголовок программы, маршрут програм-

мы или командную строку.

5. Выберите командную кнопку OK.

Чтобы удалить указанную в меню Tools программу:

1. Выберите команду Options│Tools.

2. Выберите программу, которую вы хотите удалить.

3. Выберите Delete (Удаление).

4. Выберите командную кнопку OK.

B.Pascal 7 & Objects /UG - 103 -

Работа с окном Messages

Некоторые инструментальные средства посылают вывод программы

черед фильтр DOS - программу, конвертирующую вывод в формат, ко-

торый можно выводить в окне сообщений Messages. Более подробную

информацию об использовании и написании ваших собственных филь-

тров DOS вы можете получить в оперативном справочнике Help. Одним

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

является GREP, а ее фильтр называется GREP2MSG.EXE. Исходный код

CREP2MSG.PAS вы можете найти в каталоге UTILS.

При работе такого инструментального средства как GREP выво-

димая информация передается в появляющееся окно сообщений

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

Messages вы можете выбирать и редактировать строку программы, на

которую имеется ссылка в сообщении, либо вы можете отслеживать

свои сообщения (подсвечивать одну за другой строки исходного кода

программы, при прохождении сообщений в этом окне).

Чтобы отредактировать строку программы, на которую имеется

ссылка в сообщении, сделайте следующее:

* Если вы используете "мышь", дважды щелкните "мышью" на ин-

тересующем вам сообщении.

* При работе с клавиатурой выберите сообщение со ссылкой на

нужную строку программы и нажмите Enter.

* Ваш курсор перемещается на строку программы в исходном ко-

де, на которую ссылается сообщение в окне Messages. Теперь

вы можете отредактировать строку программы.

По умолчанию, когда курсор переходит на строку исходного

кода программы, окно Messages закрывается. Если вы предпо-

читаете, чтобы окно Messages оставалось открытым, отмените

выбор параметра Close On Go To Source в диалоговом окне

Preferences.

Примечание: Параметр Close On Go To Source влияет

также на ObjectBrowser (см. выше).

Чтобы отслеживать строки программы:

1. В окне Messages выберите сообщение со ссылкой на строку

программы, которую вы хотите отслеживать первой.

2. Нажмите клавишу пробела.

Если вы всегда хотите отслеживать сообщения в исходном

коде, установите в группе Options диалогового окна

Preferences параметр Auto Track Source. После этого при

прокрутке окна сообщений в вашем исходном коде автомати-

B.Pascal 7 & Objects /UG - 104 -

чески будут подсвечиваться соответствующие строки; вам не

нужно будет нажимать на клавишу пробела.

Примечание: Параметр Auto Track Source влияет также

на ObjectBrowser (см. выше).

Теперь строки программы, на которые есть ссылки в сообщени-

ях, отслеживаются в зависимости от установленных в диалоговом ок-

не Options│Enviroment│Preferences параметров. Если соответствую-

щий файл не находится в окне редактирования, IDE открывает файл и

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

тирования.

* Если вы хотите, чтобы файл выводился в новом окне редакти-

рования, выберите в качестве значения параметра Source

Tracking New Window.

Примечание: Параметр Source Tracking влияет также на

ObjectBrowser (см. выше).

* Если вы хотите, чтобы файл замещал текущий файл в одном из

активных окон редактирования, выберите в качестве значения

параметра Source Tracking Current Window.

Если окно сообщений закрыто, с помощью команды Tools│

Messages вы можете открыть его снова.

B.Pascal 7 & Objects /UG - 105 -

Настройка конфигурации IDE

─────────────────────────────────────────────────────────────────

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

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

параметры компилятора и компоновщика или изменить по своему ус-

мотрению расположение и размер окон редактирования. IDE может за-

поминать установленные значения и файлы и использовать их в сле-

дующем сеансе редактирования.

Сохранение рабочей операционной среды

─────────────────────────────────────────────────────────────────

С помощью Auto Save вы можете сохранить параметры Editor

Files, Desktop и Enviroment в диалоговом окне Options│Enviroment.

* Если установлен параметр Editor Files, IDE при выходе из

интегрированной среды, выборе команды File│DOS Shell, вы-

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

ванные файлы, открытые в окне редактирования.

* Если установлен параметр Desktop, IDE при выходе из интег-

рированной среды, выборе команды File│DOS Shell, выполне-

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

которыми вы работали в оперативной области.

* Если установлен параметр Enviroment, IDE при выходе из ин-

тегрированной среды, выборе команды File│DOS Shell, выпол-

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

выбранные вами все параметры редактирования, компоновки и

компиляции.

Использование файла конфигурации

Файл конфигурации сохраняет все параметры, установленные в

меню параметров Options, выбранные в диалоговом окне Find Text,

отслеживает все объединенные файлы Help, целевую платформу и имя

основного файла (если он имеется). Если в диалоговом окне

Options│Enviroment│Preferences установлен параметр Auto Save

Enviroment, то файл конфигурации обновляется при выходе из интег-

рированной среды, выборе команды File│DOS Shell, выполнении или

отладке программы. При использовании компиляторов BP.EXE или

TURBO.EXE по умолчанию файл компилятором называется TP.EXE.

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

сделайте следующее:

1. Выберите команду Options│Save As.

2. В поле ввода Options File Name наберите новое имя.

B.Pascal 7 & Objects /UG - 106 -

3. Выберите командную кнопку OK.

Примечание: Об использовании файла конфигурации для

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

главе.

Чтобы переключиться на другой существующий файл конфигура-

ции:

1. Выберите команду Options│Open.

2. Задайте имя существующего файла конфигурации.

3. Выберите командную кнопку OK.

Чтобы модифицировать существующую конфигурацию:

1. Измените нужные параметры.

2. Выберите команду Options│Save.

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

Использование файла оперативной области

─────────────────────────────────────────────────────────────────

Если в диалоговом окне Options│Envioroment│Preferences вы

установили параметр Auto Save Desktop, IDE при выходе из интегри-

рованной среды, выборе команды File│DOS Shell, выполнении или от-

ладке программы обновляет файл оперативной области. Файл опера-

тивной области отслеживает все файлы, которые вы открывали, и

файлы, с которыми вы работали, но закрыли их в ходе сеанса прог-

раммирования (кроме файлов NONAMExx.PAS). Когда вы начнете новый

сеанс редактирования, ваши окна редактирования выводятся в том

виде, какой они имели при выходе. Когда вы откроете меню File, то

список закрытых файлов в меню File продолжает увеличиваться (мак-

симум до 5 значений).

Как определить, какой файл оперативной области использовать?

Вы можете непосредственно выбрать новый файл оперативной области,

но каждый раз, когда вы создаете файл конфигурации, IDE создает

новый файл оперативной области. Имя файла будет тем же самым, но

имя файла оперативной области вместо расширения .TP имеет расши-

рение .DSK. Например, если ваш файл конфигурации называется

MY.TP, то файл оперативной области будет называться MY.DSK.

По умолчанию IDE сохраняет файл оперативной области в том же

каталоге, что и текущий файл конфигурации. Если хотите, то можете

сохранять файлы конфигурации в текущем каталоге:

1. Выберите команду Options│Enviroment│Preferences.

B.Pascal 7 & Objects /UG - 107 -

2. В группе Desktop File выберите параметр Current

Directory.

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

очищать оперативную область, так что IDE будет "забывать" список

всех файлов, с которыми вы работали, очищать все списки протоко-

лов и закрывать все окна, сделайте следующее:

1. Выберите команду Options│Enviroment│Preferences.

2. Убедитесь, что в диалоговом окне Preferences установлен

параметр Desktop, а параметр Enviroment выключен.

3. Перезапустите IDE.

IDE закрывает все ваши окна и сохраняет текущие парамет-

ры, но ваша оперативная область, списки протоколов и

списки закрытых файлов будут очищены.

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

Одновременно с сохранением файла оперативной области вы мо-

жете выбрать сохранение информации об идентификаторах в файле

идентификаторов (файл с расширением .PSM). Тогда при следующем

запуске IDE информация об идентификаторах, генерируемая при пос-

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

полнять немедленный просмотр и отладку.

Чтобы сохранять идентификаторы между сеансами, сделайте сле-

дующее:

1. Выберите команду Options│Enviroment│Preferences.

2. Убедитесь, что установлен параметр Auto Save Desktop.

3. В группе Desktop File Options выберите параметры Desktop

и Symbols.

4. Выберите командную кнопку OK.

B.Pascal 7 & Objects /UG - 108 -

Управление проектом

─────────────────────────────────────────────────────────────────

Если вы хотите сделать свое программирование проекта модуль-

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

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

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

вы можете хранить большие фрагменты кода.

Чтобы задать, какой файл будет основным, выполните следующие

шаги:

1. Выберите команду Compile│Primary File.

2. Когда выведется диалоговое окно, наберите имя своего фай-

ла или выберите его из окна списка Files.

3. Выберите командную кнопку OK.

Теперь, когда вы используете команду Compile│Make или Build,

компилируется основной файл, даже если он не является файлом в

активном окне редактирования.

Каждый проект, с которым вы работаете с IDE, имеет уникаль-

ные требования. Например, каждый проект имеет различный основной

и различные каталоги, где находятся ваши файлы. Вы можете настро-

ить IDE в соответствии со своим проектом.

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

с файлом конфигурации для каждого из них

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

для каждого проекта своего файла конфигурации. Когда вы начинаете

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

1. Установите все параметры так, как это требуется для ново-

го проекта.

2. Задайте основной файл.

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

для вашего проекта используйте команду Options│

Directories.

4. В меню Options выберите команду Save As.

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

вого файла конфигурации.

5. Задайте имя нового файла конфигурации.

6. Выберите командную кнопку OK.

B.Pascal 7 & Objects /UG - 109 -

Если вы в этот момент выйдите из IDE, а параметры Auto Save

Desktop и Enviroment Options (Options│Enviroment│Preferences) ус-

тановлены, то, когда вы начинаете новый сеанс, IDE использует но-

вый файл конфигурации и файл оперативной области. Файлы, с кото-

рыми вы работаете, будут доступны для вас в окне редактирования

или в списке закрытых файлов в меню File, поскольку для вашего

проекта создается новый файл оперативной области.

Если вы храните каждый проект Паскаля в отдельном каталоге,

то ниже даны рекомендации по удобному управлению проектом. Когда

вы установите все параметры так, как это требуется для проекта, и

зададите основной файл (если он имеется), сделайте следующее:

1. В меню Options выберите команду Save As.

2. Задайте новое имя файла конфигурации, включив в каталог

проекта полный маршрут.

* Если вы используете BP.EXE, задайте в качестве нового

файла конфигурации BP.TP.

* Если вы используете TURBO.EXE, задайте в качестве ново-

го файла конфигурации TURBO.TP.

3. Выберите командную кнопку OK.

Сохранив в каталоге проекта файл BP.TP или TURBO.TP, вы

можете перейти в каталог проекта, запустить IDE, и IDE

автоматически загрузит в файл конфигурации в этом катало-

ге.

Если вы не хотите больше работать с файлом, заданным в ка-

честве основного файла, то можете использовать для очистки этого

файла следующие два метода:

* Выберите команду Compile│Clear Primary File.

* Выберите в диалоговом окне Primary File параметр Primary

File и Clear (Очистка).

Если вы хотите работать с другим проектом, с помощью команды

Options│Open загрузите новый файл конфигурации проекта.

B.Pascal 7 & Objects /UG - 110 -

────────────────────────────────────────────────────────────────────────────

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]