- •Введение
- •Как использовать руководства по Borland Pascal
- •Глава 1. Установка и запуск Borland Pascal
- •Использование программы Install
- •Программа Install и Windows
- •Запуск Borland Pascal
- •Защищенный режим и память
- •Запуск Borland Pascal for Windows
- •Запуск bp.Exe в расширенном режиме Windows 386
- •Запуск bp.Exe в стандартном режиме Windows
- •Запуск bp.Exe в окне Windows dos
- •Жидкокристаллические и плазменные экраны
- •Файл readme
- •Файлы filelist.Doc и helpme!.Doc
- •Примеры программ
- •Глава 2. Что нового в Borland Pascal
- •Три интегрированных интерактивных среды разработки программ
- •Новые средства ide
- •Компилятор командной строки, работающий в защищенном режиме
- •Среда разработки программ защищенного режима dos
- •Динамически компонуемые библиотеки dos
- •Добавления к языку Паскаль
- •Улучшения в библиотеке исполняющей системы
- •Новые подпрограммы модуля System
- •Новые модули
- •Новые директивы компилятора
- •Усовершенствования компилятора
- •Улучшения в Turbo Vision
- •Улучшения ObjectWindows
- •Новые средства и утилиты
- •Глава 3. Основы интегрированной среды для dos
- •Запуск ide
- •Компоненты интегрированной среды
- •Окна ide
- •Управление окном
- •Строка состояния
- •Диалоговые окна
- •Глава 4. Программирование в интегрированной интерактивной среде для dos
- •Запуск ide и выход из нее
- •Параметры запуска
- •Установка параметров запуска в интегрированной среде
- •Выход из ide
- •Использование справочной системы Help
- •Перемещение в справочной системе
- •Запрос помощи
- •Копирование примеров исходного кода
- •Загрузка других справочных файлов
- •Выход из справочника Help
- •Запись и редактирование исходного кода
- •Настройка конфигурации редактора
- •Изменение решения: команда Undo
- •Групповая отмена
- •Отмена отмены
- •Работа с блоками текста
- •Выделение блока
- •Вырезание, копирование и вставка блоков
- •Изменение поведения выделенных блоков
- •Поиск и замена
- •Соответствие пар ограничителей
- •Переход к строке с заданным номером
- •Использование локального меню окна редактирования
- •Выделение синтаксиса
- •Выбор файлов для выделения
- •Запрещение выделения синтаксиса
- •Глава 4. Программирование в интегрированной интерактивной среде для dos (часть2) Печать исходного кода
- •Работа с файлами
- •Открытие файлов
- •Открытие файла в позиции курсора
- •Компиляция и выполнение
- •Выбор целевой платформы
- •Компиляция
- •Формирование (Make)
- •Построение (Build)
- •Выполнение
- •Передача программе параметров
- •Параметры компилятора и компоновщика
- •Оптимизация кода
- •Условная компиляция
- •Директивы define и undef
- •Предопределенные идентификаторы
- •Идентификаторы iFxxx, else и endif
- •Директивы ifdef и ifndef
- •Директива ifopt
- •Просмотр исходного кода
- •Просмотр объектов
- •Просмотр модулей
- •Просмотр глобальных идентификаторов
- •Просмотр идентификаторов в исходном коде
- •Просмотр функций ObjectBrowser
- •Выполнение в ide других программ
- •Настройка меню Tools
- •Работа с окном Messages
- •Настройка конфигурации ide
- •Сохранение рабочей операционной среды
- •Использование файла конфигурации
- •Использование файла оперативной области
- •Управление проектом
- •Глава 5. Программирование в интегрированной интерактивной среде для Windows
- •Запуск ide для Windows
- •Использование оперативной полосы
- •Настройка конфигурации оперативной полосы
- •Использование справочной системы Help
- •Перемещение по справочной системе
- •Запрос помощи
- •Копирование примеров кода
- •Выход из справочной системы
- •Запись и редактирование исходного кода
- •Настройка конфигурации редактора
- •Набор команд
- •Использование редактора
- •Выделение синтаксиса
- •Цветовое выделение текста
- •Использование системных цветов Windows
- •Изменение атрибутов текста
- •Печать исходного кода
- •Работа с файлами
- •Открытие файлов
- •Где находятся файлы?
- •Работа с файлами в другом каталоге
- •Компиляция и выполнение
- •Просмотр исходного кода
- •Просмотр объектов
- •Буквенные символы в ObjectBrowser
- •Фильтры
- •Просмотр глобальных идентификаторов
- •Просмотр идентификаторов в исходном коде
- •Выполнение в ide других программ
- •Настройка конфигурации ide
- •Глава 6. Отладка в интегрированной среде
- •Что такое отладка?
- •Какие существуют виды ошибок?
- •Методы отладки
- •Генерация отладочной информации
- •Управление выполнением
- •Что такое шаг?
- •Выполнение программы по шагам
- •Трассировка программы
- •Трассировка или выполнение по шагам?
- •Выполнение больших фрагментов
- •Поиск нужного места
- •Повторное выполнение
- •Отслеживание вывода программы
- •Переключение экранов
- •Окно Output
- •Использование двух мониторов
- •Просмотр значений
- •Что такое выражение?
- •Просмотр выражений
- •Спецификаторы формата в выражениях отладчика
- •Вычисление и модификация
- •Использование точек останова
- •Задание точек останова
- •Отмена точке останова
- •Модификация точек останова
- •Создание условный точек останова
- •Прерывание программы без точек останова
- •Глава 7. Модули Borland Pascal
- •Что такое модуль?
- •Структура модуля
- •Интерфейсная секция
- •Секция реализации
- •Секция инициализации
- •Как используются модули?
- •Ссылки на описания модуля
- •Оператор uses секции реализации
- •Стандартные модули
- •Создание ваших собственных модулей
- •Компиляция модуля
- •Доступность модуля для программы
- •Модули и большие программы
- •Утилита tpumover
- •Глава 7. Модули Borland Pascal
- •Что такое модуль?
- •Структура модуля
- •Интерфейсная секция
- •Секция реализации
- •Секция инициализации
- •Как используются модули?
- •Ссылки на описания модуля
- •Оператор uses секции реализации
- •Стандартные модули
- •Создание ваших собственных модулей
- •Компиляция модуля
- •Доступность модуля для программы
- •Модули и большие программы
- •Утилита tpumover
- •Глава 9. Объектно-ориентированное программирование
- •Объекты
- •Наследование
- •Объекты: наследующие записи
- •Экземпляры объектных типов
- •Поля объектов
- •Хорошая и плохая техника программирования
- •Совмещенные код и данные
- •Определение методов
- •Область действия метода и параметр Self
- •Поля данных объекта и формальные параметры метода
- •Объекты, экспортируемые модулями
- •Секция private
- •Программирование в "действительном залоге"
- •Глава 9. Объектно-ориентированное программирование(часть2) Инкапсуляция
- •Методы: никакого ухудшения
- •Расширяющиеся объекты
- •Наследование статических методов
- •Виртуальные методы и полиморфизм
- •Раннее связывание против позднего связывания
- •Совместимость типов объектов
- •Полиморфические объекты
- •Виртуальные методы
- •Проверка диапазонов при вызове виртуальных методов
- •Расширяемость объекта
- •Статические методы или виртуальные методы?
- •Динамические объекты
- •Размещение и инициализация с помощью процедуры New
- •Удаление динамических объектов
- •Деструкторы
- •Пример размещения динамического объекта
- •Что же дальше?
- •Заключение
- •Глава 10. Взгляд на Windows
- •Что такое приложение Windows?
- •Преимущества Windows
- •Требования
- •Программные средства
- •Архитектура с управлением по событиям
- •Графика, независимая от устройств
- •Многозадачность
- •Управление памятью
- •Ресурсы
- •Динамическая компоновка
- •Буфер вырезанного изображения
- •Динамический обмен данными
- •Множественный документальный интерфейс
- •Типы данных Windows
- •Объектно-ориентированная работа с окнами
- •Лучший интерфейс с Windows
- •Интерфейсные объекты
- •Абстрагирование функций Windows
- •Автоматизация ответа на сообщения
- •Структура программы Windows
- •Структура Windows
- •Взаимодействие с Windows и dos
- •Элементарная программа
- •Действия программы при запуске
- •Назначение основного окна
- •Цикл разработки прикладной программы
- •Изучение ObjectWindows
Просмотр объектов
Команда Search|Objects открывает окно, в котором выводятся
все используемые в программе объекты, упорядоченные в иерархичес-
кой структуре. В верхней части окна ObjectBrowser показывает ба-
зовый тип и выводит ниже и справа от базового типа потомков. Про-
яснить соотношения "предок-потомок" помогают соединяющие линии.
Примечание: Подробную информацию о типах объектов вы
можете найти в Главе 9 ("Объектно-ориентированной програм-
мирование").
#File#Edit#Search##Run##Compile#Debug#Tools#Options#Window#Help##
+=[*]====================== Browse: Object ================2=[*]+
| Global Scope |
|-| I +---------------------------------------------------------|
|-Objects#######################################################^
| +----Location X
| | +---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 X
| 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
+<X###########################################################>-+
*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 или является одним из стандартных модулей, то
вы не сможете просматривать или редактировать исходный код, пос-
кольку эти модули скомпилированы без включения отладочной инфор-
мации.