Глава 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 вы можете указывать параметры  запуска.  Эти

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

 

             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 ак-

        тивизирует цветной монитор,  а 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

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

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

 

             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

        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)

 

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

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

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

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

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

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

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

        включен.

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

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

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

 

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

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

 

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

 

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

        пуске IDE.

Выход из 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.

 

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

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

 

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

                 перекрестных ссылок 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 в диалоговом окне.

               При выборе  командной кнопки 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 или выберите коман-

                ду 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, то тематические указатели будут ос-

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

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

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

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

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

                другому.

 

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

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

 

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

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

        файл:

 

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

 

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

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

 

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

 

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

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

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

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

 

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

 

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

 

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

 

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

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

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

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

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

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

 

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

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

 

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

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

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

             Для модификации  поведения  редактора 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 удаляет только последний символ, букву

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

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

 

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

              ного типа.

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        способа:

 

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

 

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

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

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

 

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

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

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

 

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

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

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

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

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

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

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

 

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

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

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

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

 

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

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

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

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

               ктирования.

 

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

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

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

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

 

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

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

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

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

               удаленного текста состоит в применении команды 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, то весь выделенный текста удаляется.

 

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

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

Поиск

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

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

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

 

             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  в блоке ввода выводится

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

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

        (когда курсор находится в блоке ввода 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]).

 

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

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

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

        ка пары.

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

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

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

 

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

 

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

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

                          ЪБї        ЪДДБДДї     ЪДДБДДї

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

                   АДДДДВДДДДЩ      АДДДДДДДДДВДДДДДДДДЩ

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

                      пара                  пара

 

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

        ки.

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

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

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

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

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

 

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

 

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

 

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

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

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

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

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

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

 

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

 

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

 

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

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

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

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

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

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

        Например, зарезервированные слова 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.

             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 (Выделение син-

                таксиса).

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

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

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

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

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

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

        да, выберите команду 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 установлен,  ваш текст пе-

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

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

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

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

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

 

             ЪДДДДДДДДДДДДДДДДДДВДДДДДДДДДї

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

             ГДДДДДДДДДДДДДДДДДДЕДДДДДДДДДґ

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

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

             і                  і имя.                             і

             ГДДДДДДДДДДДДДДДДДДЕДДДДДДДДДґ

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

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

             і                  і файл.                            і

             ГДДДДДДДДДДДДДДДДДДЕДДДДДДДДДґ

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

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

             ГДДДДДДДДДДДДДДДДДДЕДДДДДДДДДґ

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

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

             ГДДДДДДДДДДДДДДДДДДЕДДДДДДДДДґ

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

             і                  і файлы.                           і

             АДДДДДДДДДДДДДДДДДДБДДДДДДДДДЩ

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

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

 

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

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

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

 

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

 

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

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

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

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

 

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

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

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

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

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

 

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

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

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

 

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

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

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

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

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

                файлом.

 

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

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

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

 

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

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

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

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

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

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

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

 

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

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

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

 

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

 

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

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

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

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

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

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

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

 

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

 

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

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

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

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

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

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

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

 

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

               Compile).

 

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

 

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

 

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

 

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

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

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

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

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

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

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

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

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

 

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

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

 

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

 

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

 

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

                му.

 

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

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

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

        чаться:

 

          ЪДДВДДДДДДї

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

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

          ГДДЕДДДДДДґ

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

          і                           і                               і

          і  Windows                  і           .TPW                і

          і                           і                               і

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

          АДДБДДДДДДЩ

Компиляция

             Команда 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 проверяет все файлы,  чтобы убедить-

               ся, что они существуют и являются текущими.

 

                    Примечание: Более  подробно об основных файла расска-

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

             * Если  исходный файл для данного модуля модифицирован с мо-

               мента создания файла .TPU,  .TPW или .TPP (объектный код),

               то этот модуль перекомпилируется.

 

             * Если изменяется интерфейс для данного модуля, перекомпили-

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

 

                    Примечание: О модулях подробнее рассказывается в Гла-

               ве 7 "Модули Borland Pascal".

 

             * Если модуль компонуется с файлом .OBJ (внешние подпрограм-

               мы) и  файл  .OBJ  является более новым,  чем модули .TPU,

               .TPW или .TPP, то модуль перекомпилируется.

 

             * Если модуль содержит включаемый файл,  и  включаемый  файл

               более новый, чем модули .TPU, .TPW или .TPP, то модуль пе-

               рекомпилируется.

 

             Если компилятор не может найти исходный код модуля,  то  мо-

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

Построение (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.

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

             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 - проверка переполнения

        стека;  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.

             Когда вы выбираете 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-}) дает код, который в зависимости

               от установки  ваших булевских выражений более быстро рабо-

               тает.

             * При выключенной эмуляции 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+}) вы можете использовать вызовы функций как операто-

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

               расываться.

             Оптимизация вашего кода с помощью этих параметров имеет  два

        преимущества. Во-первых,  это  делает  ваш код более компактным и

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

        вы обычно делать не можете.  Однако, все эти параметры вносят не-

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

        рамма начинает вести себя странно, вернитесь к исходной ситуации.

Условная компиляция

             Чтобы облегчить  ваши  задачи,  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.                          і

        АДДДДДБДДДДДДДЩ

Директивы DEFINE и UNDEF

             Директивы IFDEF и IFNDEF проверяют,  определен  ли  заданный

        идентификатор. Эти идентификаторы определяются с помощью DEFINE и

        UNDEF. (Можно также определять идентификаторы в командной  строке

        или в IDE.)

 

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

        щую директиву:

 

             {$DEFINE идентификатор}

 

        где "идентификатор" в плане длины,  разрешенных символов и других

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

        ров. Например, вы можете записать:

 

             {$DEFINE debug}

 

             Этим для остальной части компилируемого модуля или до следу-

        ющего оператора:

 

             {$UNDEF debug}

 

        определяется идентификатор debug.

 

             Директива UNDEF "разопределяет" идентификатор.  Если иденти-

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

 

                   Определение условных идентификаторов в IDE

 

             Вместо того,  чтобы вставлять директиву DEFINE в свой исход-

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

        блоке ввода Conditional Defines (Условные определения). Определи-

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

        пятой. Например,  в следующем примере определяются  два  условных

        идентификатора - TestCode и DebugCode:

 

             TestCode:DebugCode

Предопределенные идентификаторы

             Кроме определяемых вами идентификаторов вы можете также про-

        верять отдельные идентификаторы, определяемые компилятором:

 

                    Предопределенные условные идентификаторы  Таблица 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}

                исходный код

             {$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 }

Директивы IFDEF и IFNDEF

             Директивы IFDEF и IFNDEF позволяют вам условно компилировать

        код на основе определения или неопределения некоторых идентифика-

        торов.

 

             Директивы IFDEF и IFNDEF обычно используются для включения в

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

        тите в начало каждого модуля следующий код:

 

             {$IFDEF debug}

             {$D+,L+}

             {$ELSE}

             {$D-,L-}

             {$ENDIF}

 

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

 

             {$DEFINE debug}

 

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

        чиком генерируется полная отладочная информация.  Аналогично,  вы

        можете иметь фрагменты кода,  компилируемые только при отладке. В

        этом случае можно записать:

 

             {$IFDEF debug}

                исходный код

             {$ENDIF}

 

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

        ной точке определен идентификатор debug.

Директива IFOPT

             Иногда включить  или  исключить код желательно в зависимости

        от того,  какой выбран параметр компилятора (проверка  диапазона,

        проверка  ввода-вывода  и т.д.).  Вы можете сделать это с помощью

        директивы IFOPT, которая имеет две формы:

 

             {$IFOPT x+}

        и

             {$IFOPT x-}

 

        где x - один из параметров компилятора.  При использовании первой

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

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

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

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

        на или нет поддержка сопроцессора 80х87,  можно использовать сле-

        дующий исходный код:

 

             var

               {$IFOPT N+}

                  Radius,Circ,Area:  Double;

               {$ELSE}

                  Radius,Circ,Area:  Real;

               {$ENDIF}

 

                   Примечание: Полное описание всех параметров компилято-

              ра вы можете найти  в  Главе  2  ("Директивы  компилятора")

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

Просмотр исходного кода

             IDE защищенного режима DOS содержит новое  программное  инс-

        трументальное средство  просмотра  объектов - ObjectBrowser.  Оно

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

        гое другое.  Даже если разрабатываемое вами приложение не исполь-

        зует объектно-ориентированное   программирование,   вы    найдете

        ObjectBrowser чрезвычайно полезным средством.  Вы можете просмат-

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

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

        фикаторы. С помощью ObjectBrowser вы можете делать следующее:

 

             * Просмотреть в своей прикладной программе  иерархию  объек-

               тов. Затем выбрать объект и просмотреть все его процедуры,

               функции и другие содержащиеся в программе  идентификаторы.

               При проверке  идентификатора  вы  можете  вывести перечень

               всех ссылок на него в процедурах,  функциях  программы  и,

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

               используется.

 

             * Вывести список всех глобальных идентификаторов, используе-

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

               берите одну переменную, то можете вывести список всех ссы-

               лок не нее в своей программе и, если хотите, перейти на то

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

 

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

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

               фикаторов его интерфейсной части.

 

             * Выбрать идентификатор в исходном коде,  затем  просмотреть

               детальную информацию по нему,  нажав клавишу Ctrl и однов-

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

 

             * Открыть множество окон просмотра, сравнить идентификаторы,

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

               щее открытое в средстве просмотра окно.

 

             Перед использованием ObjectBrowser убедитесь, что в диалого-

        вом окне OptionsіCompiler установлены следующие параметры:

 

             * Debug Information (Информация для отладки).

 

             * Locals Symbols (Локальные идентификаторы).

 

             * Symbol Information (Информация об идентификаторах).

 

             Убедитесь также,  что  в  диалоговом окне Debugging/Browsing

        (OptionsіDebugger) установлен  параметр   Integrated   Debugging/

        Browsing  (Отладка  с  использование  встроенного отладчика/Прос-

        мотр).

             Скомпилируйте программу, которую вы хотите просматривать.

 

             Для активизации 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 и не запустите ее снова.

             Если у вас есть "мышь",  то исходный код удобнее  просматри-

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

        ши". Затем,  удерживая нажатой клавишу Ctrl,  вы можете использо-

        вать правую кнопку "мыши" для указания и проверки объекта, проце-

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

        ходном коде и его анализа (вывода детальной информации).

 

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

              котором в исходном коде позиционирован  курсор,  вы  можете

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

              Browse Symbol at Cursor (Просмотр идентификатора в  позиции

              курсора).

 

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

        шаги:

 

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

 

             2. Выберите параметр Browse as the Ctrl + Right Mouse Button

                (Просмотр по клавише Ctrl + правая кнопка "мыши").

 

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

Просмотр объектов

             Команда 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. Нажмите клавишу - (минус).

 

             * При наличии "мыши" просто щелкните "мышью" на горизонталь-

               ной линии, соединяющей объект с иерархией.

             Теперь после объекта выводится + (плюс),  и он подсвечивает-

        ся, показывая, что потомки данного объекта на экран не выводятся.

 

             Вы можете вывести потомков объекта снова.

 

             * С помощью клавиатуры:

 

               1. Выделите объект с символом +.

 

               2. Нажмите клавишу +.

 

             * При  наличии  "мыши" щелкните ей на горизонтальной строке,

               соединяющей объект с иерархией.

 

             Потомки объекта появляются вновь.

 

             Из иерархии объектов вы можете просматривать все описанные в

        индивидуальном объекте идентификаторы.  Выделите объект и нажмите

        клавишу Enter, либо дважды щелкните на объекте кнопкой "мыши".

 

             При просмотре описанных в объекте идентификаторов вы  можете

        задать различные виды вывода:

 

             * Для  вывода информации о наследовании для просматриваемого

               объекта щелкните "мышью" на букве I в верхней  части  окна

               ObjectBrowser или нажмите клавиши Ctrl+I.

 

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

               где  имеется  ссылка  на  идентификатор  объекта  щелкните

               "мышью"  на букве R в верхней части окна ObjectBrowser или

               нажмите клавиши Ctrl+R.

 

             * Для вывода области действия объекта  щелкните  "мышью"  на

               букве S или нажмите клавиши Ctrl+S.

 

             Чтобы найти  идентификатор  в списке выводимых идентификато-

        ров, наберите первую букву имени идентификатора; ваш курсор быст-

        ро перемещается на соответствующий идентификатор.

 

             Чтобы ObjectBrowser  мог находить,  где расположены ваши ис-

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

        модулей и   включаемых   файлов   в   диалоговом   окне  Optionsі

        Directories.

 

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

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

        рекомпилировать. Хотя ObjectBrowser после  модификации  исходного

        кода все  равно сможет отслеживать информацию об идентификаторах,

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

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

 

                Изменения режима вывода информации ObjectBrowser

             Вы можете управлять характером вывода в ObjectBrowser инфор-

        мации.

 

             Можно выбрать,   какие   идентификаторы   должны    выводить

        ObjectBrowser:

 

             1. Для  вывода диалогового окна Browser Options выберите ко-

                манду OptionsіBrowser.

 

             2. В группе Symbols отметьте только те идентификаторы, кото-

                рые вы  хотите выводить в ObjectBrowser.  Вы можете также

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

                объекта.

 

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

 

                В ObjectBrowser выводятся только те идентификаторы, кото-

                рые вы выбрали.

 

             Вы можете также выбрать, какие идентификаторы выводить толь-

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

        Browser Options (Локальные параметры просмотра)  выберите  в  ло-

        кальном меню  окна  просмотра команду Options или при отображении

        окна просмотра нажмите клавиши Ctrl+O.

             Если вы в качестве типа отображаемых идентификаторов выбере-

        те типы,  переменные  и  процедуры,  а затем будете просматривать

        объект 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.

 

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

        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

 

             Когда вы открываете окно просмотра, затем просматриваете пе-

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

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

        дение таким образом, что новое окно просмотра будет заменять пре-

        дыдущее:

             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.

                     Примечание: Параметр  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 или является одним из стандартных модулей, то

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

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

        мации.

Просмотр модулей

             Команда 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 Просмотр модулей в вашей прикладной программе.

Просмотр глобальных идентификаторов

             Команда 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 Просмотр глобальных идентификаторов, используемых в

        программе.

Просмотр идентификаторов в исходном коде

             Вы можете просматривать идентификаторы в своем исходном  ко-

        де. Поместите  курсор на идентификатор и выберите один из следую-

        щих методов:

 

             * Для вывода диалогового окна 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 типа 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 не  может  найти идентификатор,  но если вы найдете

        параметр в реализации функции, то сможете просмотреть его.

Просмотр функций 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 в рамке окна.             і

        ГДДЕДДДДДДДДДДґ

        і Вывести информацию        і Нажмите  в  ObjectBrowser  клавишиі

        і об области действия       і Ctrl+S  или  щелкните  "мышью"  наі

        і                           і букве S в рамке окна.             і

        ГДДЕДДДДДДДДДДґ

        і Вывод информации о        і Нажмите  в  ObjectBrowser  клавишиі

        і наследовании              і Ctrl+I  или  щелкните  "мышью"  наі

        і                           і букве I в рамке окна.             і

        ГДДЕДДДДДДДДДДґ

        і Изменить на обратный      і Нажмите клавишу Shift, и,  удержи-і

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

        і                           і вие.                              і

        АДДБДДДДДДДДДДЩ

Выполнение в 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~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.

Работа с окном 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.  После этого при

                прокрутке окна сообщений в вашем исходном коде  автомати-

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

                нужно будет нажимать на клавишу пробела.

 

                    Примечание: Параметр Auto Track Source  влияет  также

               на ObjectBrowser (см. выше).

 

             Теперь строки программы,  на которые есть ссылки в сообщени-

        ях, отслеживаются в зависимости от установленных в диалоговом ок-

        не OptionsіEnviromentіPreferences параметров.  Если соответствую-

        щий файл не находится в окне редактирования, IDE открывает файл и

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

        тирования.

 

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

               рования, выберите  в  качестве  значения  параметра Source

               Tracking New Window.

 

                    Примечание: Параметр Source Tracking влияет также  на

               ObjectBrowser (см. выше).

 

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

               активных окон редактирования, выберите в качестве значения

               параметра Source Tracking Current Window.

 

             Если окно   сообщений  закрыто,  с  помощью  команды  Toolsі

        Messages вы можете открыть его снова.

Настройка конфигурации 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 наберите новое имя.

             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.

             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.

Управление проектом

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

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

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

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

        вы можете хранить большие фрагменты кода.

 

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

        шаги:

 

             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.

             Если вы в этот момент выйдите из 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 загрузите новый файл конфигурации проекта.