Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Руководство пользователя 9 страница



│ CPU86 │ Данная версия Borland Pascal предназначена│

│ │ для семейства процессоров 80х86. │

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

│ CPU87 │ Присутствует арифметический сопроцессор│

│ │ 80х87. │

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

│ DPMI │ Данная версия предназначена для операцион-│

│ │ ной среды защищенного режима DOS. При соз-│

│ │ дании приложений для защищенного режима│

│ │ DOS данный идентификатор доступен для│

│ │ BP.EXE. │

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

│ MSDOS │ Данная версия предназначена для операци-│

│ │ онной системы MS-DOS. Данный идентификатор│

│ │ доступен в BP.EXE только при создании при-│

│ │ ложений DOS реального или защищенного ре-│

│ │ жима и в TURBO.EXE. │

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

│ VER70 │ Данная версия является версией 7.0 компи-│

│ │ лятора. │

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

│ WINDOWS │ Данная версия предназначена для операци-│

│ │ онной среды Windows. Данный идентификатор│

│ │ доступен в BP.EXE и в BPW.EXE, когда целе-│

│ │ вой платформой является Windows. │

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



 

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

лятора рассказывается в Главе 2 ("Директивы компилятора") "Руко-

водства программиста".

 

 

Идентификаторы IFxxx, ELSE и ENDIF

 

Смысл условных директив в том, что если определен или нет

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

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

ходного кода. Они имеют следующий общий формат, где IFxxx - это

директивы IFDEF, INDEF или IFOPT, за которыми следует соответс-

твующий аргумент, а "исходный код" - любое количество исходного

кода Паскаля.

 

{$IFxxx}

исходный код


 

B.Pascal 7 & Objects /UG - 82 -

 

{$ENDIF}

 

Если выражение в директиве IFxxx принимает значение True, то

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

и интерпретируется как обычный комментарий в программе.

 

Часто у вас имеются альтернативные фрагменты кода. Если вы-

ражение принимает значение True, то компилируется один фрагмент

кода, а если False - другой. Компилятор позволяет сделать это с

помощью директивы $ELSE:

 

{$IFxxx}

исходный код A

{$ELSE}

исходный код B

{$ENDIF}

 

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

ный код A", в противном случае компилируется "исходный код B".

 

Все директивы IFxxx должны завершаться с одном исходном фай-

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

файле и заканчиваться в другом. Однако, в директиве IFxxx может

указываться включаемый файл:

 

{$IFxxx}

{$I file1.pas}

{$ELSE}

{$I file2.pas}

{$ENDIF}

 

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

рать альтернативные включаемые файлы

 

Допускается использовать вложенные конструкции IFxxx..ENDIF,

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

 

{$IFxxx} { первая директива IF }

.

.

.

{$IFxxx} { первая директива IF }

.

.

.

 

{$ENDIF} { завершает вторую директиву IF }

.

.

.

{$ENDIF} { завершает первую директиву IF }

 

 


 

B.Pascal 7 & Objects /UG - 83 -

 

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

 

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

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

торов.

 

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

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

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

 

{$IFDEF debug}

{$D+,L+}

{$ELSE}

{$D-,L-}

{$ENDIF}

 

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

 

{$DEFINE debug}

 

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

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

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

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

 

{$IFDEF debug}

исходный код

{$ENDIF}

 

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

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

 


 

B.Pascal 7 & Objects /UG - 84 -

 

 

Директива IFOPT

 

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

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

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

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

 

{$IFOPT x+}

и

{$IFOPT x-}

 

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

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

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

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

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

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

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

 

var

{$IFOPT N+}

Radius,Circ,Area: Double;

{$ELSE}

Radius,Circ,Area: Real;

{$ENDIF}

 

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

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

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

 


 

B.Pascal 7 & Objects /UG - 85 -

 

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

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

 

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

 

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

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

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

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

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

 

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

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

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

 

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

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

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

 

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

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

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

 

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

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

 

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

 

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

 

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

 

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

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

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

мотр).

 


 

B.Pascal 7 & Objects /UG - 86 -

 

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

 

Для активизации ObjectBrowser выберите в меню Search (Поиск)

команду Objects (Объекты), Units (Модули) или Globals (Глобальные

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

тор в исходном коде и выбрать для вывода ObjectBrowser команду

Search│Symbol (Поиск│Идентификатор).

 

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

информацию об идентификаторах между компиляциями. Если этот пара-

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

завершиться неудачно, то вам все равно будет доступна информация

об идентификаторах, сохраненная с последней компиляции. Благодаря

этому вы сможете просмотреть свою программу, что поможет вам оп-

ределить источник проблемы. Чтобы компилятор сохранял информацию

об идентификаторах между компиляциями, нужно сделать следующее:

 

1. Выбрать команду Options│Enviroment│Startup.

 

2. Установить параметр Preserve Symbols (Сохранение иденти-

фикаторов); по умолчанию он установлен.

 

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

 

4. Для выхода из IDE выбрать команду File│Exit.

 

5. Снова запустить IDE.

 

Примечание: Поскольку Preserve Symbols - это параметр

запуска, изменение его установки не будет иметь действие,

пока вы не выйдите из IDE и не запустите ее снова.


 

B.Pascal 7 & Objects /UG - 87 -

 

 

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

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

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

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

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

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

 

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

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

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

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

курсора).

 

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

шаги:

 

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

 

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

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

 

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

 


 

B.Pascal 7 & Objects /UG - 88 -

 

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

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

 

Команда Search│Objects открывает окно, в котором выводятся

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

кой структуре. В верхней части окна ObjectBrowser показывает ба-

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

яснить соотношения "предок-потомок" помогают соединяющие линии.

 

Примечание: Подробную информацию о типах объектов вы

можете найти в Главе 9 ("Объектно-ориентированной програм-

мирование").

 

▒File▒Edit▒Search▒▒Run▒▒Compile▒Debug▒Tools▒Options▒Window▒Help▒▒

╔═[*]══════════════════════ Browse: Object ════════════════2═[*]╗

║ Global Scope ║

║─┤ I ├─────────────────────────────────────────────────────────║

║─Objects▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒^

║ ├────Location █

║ │ ├───Block ▒

║ │ │ ├───Ball ▒

║ │ │ └───Brick ▒

║ │ ├───Cursor ▒

║ │ │ └───SaveScreen ▒

║ │ ├───Obstacle ▒

║ │ │ ├───Boundary ▒

║ │ │ │ ├───LeftBound ▒

║ │ │ │ ├───LowerBound ▒

║ │ │ │ ├───RightBound ▒

║ │ │ │ └───UpperBound ▒

║ │ │ ├───Paddle ▒

║ │ │ └───Wall ▒

║ │ └───TextString ▒

║ │ └───Counter ▒

║ │ └───DownCounter ▒

║ │ └───LimitCounter v

╚<▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒>─┘

░F1░Help░<┘░Browse░░Ctrl░<┘░Go░to░source░Space░Track░src░F10░Menu

 

Рис. 4.4 Просмотр иерархии объектов прикладной программы.

 

Если иерархия объектов у вас слишком большая, вы можете за-

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

 

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

 

1. Выберите объект.

 

2. Нажмите клавишу - (минус).

 

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

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

 


 

B.Pascal 7 & Objects /UG - 89 -

 

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

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

 

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

 

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

 

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

 

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

 

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

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

 

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

 

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

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

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

 

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

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

 

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

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

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

 

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

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

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

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

 

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

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

 

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

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

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

 

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

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

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

Directories.

 

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

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

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

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

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

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

 

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

 


 

B.Pascal 7 & Objects /UG - 90 -

 

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

мации.

 

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

ObjectBrowser:

 

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

манду Options│Browser.

 

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

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

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

объекта.

 

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

 

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

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

 

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

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

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

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

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

 


 

B.Pascal 7 & Objects /UG - 91 -

 

 

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

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

объект Location в программе BREAKOUT.PAS (пример демонстрационной

программы в каталоге EXAMPLES\DOS\BREAKOUT), то увидите следующую

информацию об идентификаторах:

 

▒File▒Edit▒Search▒▒Run▒▒Compile▒Debug▒Tools▒Options▒Window▒Help▒▒

╔═[*]══════════════════════ Browse: Object ════════════════2═[*]╗

║ Global Scope ║

║─┤ S │ I │ R ├─────────────────────────────────────────────────║

║▒var▒▒▒▒Location.X:▒▒Integer▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒^

║ var Location.Y: Integer █

║ var Location.Visible: Boolean ▒

║ var Location.Init(Integer, Integer) ▒

║ proc Location.Relocate(Integer, Integer) ▒

║ proc Location.MoveTo(Integer, Integer) ▒

║ proc Location.Show ▒

║ proc Location.Hide ▒

║ func Location.GetX: Integer ▒

║ func Location.GetY: Integer ▒

║ func Location.InVisible: Boolean ▒

║ ▒

║ ▒

║ v

╚<█▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒>─┘

░F1░Help░<┘░Browse░░Ctrl░<┘░Go░to░source░Space░Track░src░F10░Menu

 

Рис. 4.5 Просмотр информации об идентификаторах.

 

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

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

Заметим, что включение идентификаторов процедур также включает

идентификаторы функций.

 

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

│ Идентификатор │ Смысл │

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

│ const │ Константа │

│ func │ Функция │

│ label │ Метка │

│ proc │ Процедура │

│ type │ Тип │

│ var │ Переменная или типизированная кон- │

│ │ станта. │

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

 

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

Search│Previous Browser или нажмите клавиши Ctrl+P.

 

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


 

B.Pascal 7 & Objects /UG - 92 -

 

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

твия. Если вы предпочитаете по умолчанию видеть информацию о

ссылках, то сделайте следующее:

 

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

 

2. Выберите в качестве значения параметра Preferred Pane

Reference.

 

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

 

По умолчанию ObjectBrowser выводит для проверяемого иденти-

фикатора полную информацию об описании. Вы можете просмотреть все

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


Дата добавления: 2015-09-30; просмотров: 21 | Нарушение авторских прав







mybiblioteka.su - 2015-2024 год. (0.062 сек.)







<== предыдущая лекция | следующая лекция ==>