Глава 2. Что нового в Borland Pascal
Borland Pascal with Objects - это профессиональная объект-
но-ориентированная система программирования для реального и защи-
щенного режима DOS и Windows. Если вы работаете с программными
продуктами Turbo Pascal или Turbo Pascal for Windows, то из дан-
ной главы вы узнаете о новых средствах Borland Pascal и о том,
где найти информацию о них.
Три интегрированных интерактивных среды разработки программ
Borland Pascal предоставляет вам три интегрированных инте-
рактивных среды разработки программ (IDE):
* BP.EXE, интегрированную среду разработки программ, которая
работает в защищенном режиме DOS и генерирует по вашему
выбору прикладные программы DOS реального режима, Windows
и DOS защищенного режима. IDE защищенного режима означает,
что каждое ваше очень большое приложение будет иметь для
компиляции достаточно памяти.
* BPW.EXE, интегрированную среду, которая работает под
Windows и генерирует по вашему выбору прикладные программы
DOS реального режима, Windows и DOS защищенного режима.
* TURBO.EXE, интегрированную среду, которая работает в ре-
альном режиме DOS и генерирует только прикладные программы
DOS реального режима, работающие только на процессорах
80х86.
Примечание: Для работы IDE DOS защищенного режима ваш
компьютер должен иметь процессор 80286 или старше и не ме-
нее 2 мегабайт памяти.
Об интегрированных средах для DOS рассказывается в Главе 4
"Программирование в интегрированной интерактивной среде для DOS".
О специальных средствах интегрированной среды для Windows вы мо-
жете узнать из Главы 5 "Программирование в интегрированной инте-
рактивной среде для Windows".
Новые средства IDE
В перечисленных IDE вы можете найти следующие новые средс-
тва:
* Два средства просмотра объектов ObjectBrowser - одно в IDE
для DOS защищенного режима, другое в IDE для Windows. С
помощью ObjectBrowser вы можете просматривать в своей
программе объекты и модули, проверять свой исходный код,
получать полные перекрестные ссылки на каждый используемый
в программе идентификатор и видеть свою программу с новой
позиции. Об ObjectBrowser для DOS и Windows в данной книге
рассказывается ниже.
* Выделение синтаксиса. Во всех интегрированных средах в
программах используется цветовое выделение элементов кода,
благодаря чему вы можете быстро идентифицировать фрагменты
исходного кода. В IDE для Windows вы можете также исполь-
зовать синтаксические элементы, выделяемые жирным, наклон-
ным шрифтом или подчеркиванием. Во всех IDE вы можете пе-
чатать синтаксически выделенный код. О выделении синтакси-
са рассказывается в Главе 4 "Программирование в интегриро-
ванной интерактивной среде для DOS" и в Главе 5 "Програм-
мирование в интегрированной интерактивной среде для
Windows".
* Оперативная полоса SpeedBar в IDE для Windows. Эта опера-
тивная полоса предоставляет быстрый способ выбора команд
меню и других действий с помощью "мыши". Вы можете по сво-
ему выбору выводить ее горизонтально, вертикально или в
виде свободной палитры, либо даже выключить ее полностью.
* В редакторах для DOS и Windows имеются средства Undo (От-
мена) и Redo (Повтор). Если вы сделаете в процессе редак-
тирования ошибку, нажмите Undo, и ваша ошибка исчезнет.
Нажмите Redo - и она появится вновь.
* Меню инструментальных средств Tools. Инструментальные
средства и утилиты, поставляемые с Borland Pascal, вы мо-
жете запускать непосредственно из IDE. В IDE для DOS в ме-
ню Tools вы можете добавить свои собственные утилиты и из-
менить по своему усмотрению оперативные клавиши. О меню
Tools IDE для DOS и о меню Tools IDE для Windows рассказы-
вается в Главе 4.
* Окно сообщений Messages в IDE для DOS. Окно Messages вы
можете использовать для вывода сообщений из таких утилит
как GREP. Вы можете выбрать редактирование программной
строки со ссылкой на сообщение или отслеживать сообщения в
исходном коде при просмотре сообщений.
* Локальные меню во всех интегрированных средах. Простым на-
жатием правой кнопки "мыши" или клавиш Alt+F10 вы можете
вывести локальное меню со списком команд, относящихся к
активному окну.
* Информация об идентификаторах сохраняется от одного сеанса
к другому. Это позволяет после выхода и перезапуска IDE
вам просматривать, отлаживать или выполнять программы без
перекомпиляции.
* Информация об идентификаторах сохраняется от одной до дру-
гой компиляции. Если вы успешно скомпилируете программу,
измените исходный код, перекомпилируете ее, и компиляция
завершится неудачно, информация об идентификаторах сохра-
нится с момента последней компиляции. Ее просмотр может
помочь вам выявить ошибку в исходном коде.
* В интегрированных средах для DOS поддерживаются множест-
венные устанавливаемые пользователем справочные файлы. В
справочную систему Borland Pascal вы можете загрузить до-
полнительные справочные файлы. IDE объединяет тематические
указатели вновь загруженных справочных файлов и стандарт-
ного системного тематического указателя Help.
Компилятор командной строки, работающий в защищенном режиме
Компилятор командной строки BPC.EXE, работает в защищенном
режиме, благодаря чему очень большие программы имеют достаточно
памяти для успешной компиляции. Аналогично IDE для DOS, работаю-
щей в защищенном режиме, BPC.EXE может создавать прикладные прог-
раммы реального режима DOS, Windows и защищенного режима DOS. О
компиляторе, работающем в режиме командной строки, рассказывается
в Главе 3 "Компиляторы, работающие в режиме командной строки"
"Справочного руководства программиста".
Среда разработки программ защищенного режима DOS
С помощью компиляторов командной строки BP.EXE и BPC.EXE вы
можете создавать программы, работающие в защищенном режиме DOS
без использования оверлеев. Ваши программы смогут, наконец, пре-
высить барьер реального режима DOS в 640К.
Для многих ваших программ все, что нужно сделать для созда-
ния приложения DOS защищенного режима, это выбор защищенного ре-
жима DOS в качестве целевой платформы и установка соответствующих
параметров компилятора (см. Главу 4). Возможно, вы захотите про-
честь также Главу 17 "Руководства по языку" ("Программирование в
защищенном режиме DOS"), которой вопросы, касающиеся защищенного
режима, рассматриваются более углубленно.
Динамически компонуемые библиотеки DOS
Динамически компонуемые библиотеки (DLL) традиционно были
частью разработки программ Windows. С помощью Borland Pascal вы
сможете создавать DLL для DOS.
Библиотеки DLL загружаются на этапе выполнения отдельно от
ваших файлов .EXE и могут совместно использоваться несколькими
прикладными программами. DLL для DOS работают в защищенном режиме
DOS и полностью совместимы с DLL для Windows, что позволяет вам
совместно использовать DLL для прикладных программ DOS и Windows.
О динамически компонуемых библиотеках рассказывается в Главе 11
"Динамически компонуемые библиотеки" в "Руководстве по языку".
Добавления к языку Паскаль
Borland Pascal имеет несколько новых расширения языка, об-
легчающих написание программ:
* Открытые параметры. Открытые параметры позволяют переда-
вать в процедуру или функцию строки и массивы переменных
размеров. Об этих параметрах рассказывается в Главе 9
"Процедуры и функции", в разделе "Открытые параметры" кни-
ги "Руководство по языку".
* Стандартная директива public. В Turbo Pascal 6.0 и Turbo
Pascal for Windows допускаются секции компонентов объектов
private. Borland Pascal вводит секции компонентов объектов
public, не имеющие ограничений по области действия описан-
ных в них полей и методов. Если вы находите это удобным, в
объектах можно чередовать секции компонентов public и
private. Подробнее о новой стандартной директиве public
рассказывается в разделе "Компоненты и область действия"
Главы 4 "Типы" в "Руководстве программиста".
* Зарезервированное слово inherited. Зарезервированное слово
inherited может использоваться внутри метода для ссылки на
предка объектного типа метода. См. раздел "Активизация
уточненного метода" Главы 4 "Типы" книги "Руководство по
языку".
* Параметры-константы. Процедуры и формулы могут использо-
вать параметры-константы: группе параметров предшествует
зарезервированное слово const, за которым следует тип. Па-
раметры-константы защищают от случайных присваиваний фор-
мальному параметру, и в некоторых случаях это позволяет
компилятору генерировать более эффективный код. См. раздел
"Параметры" в Главе 9 "Процедуры и функции" в "Руководстве
по языку".
* Динамические методы и таблицы динамических методов (DMT).
Если вы работали с Turbo Pascal for Windows, то уже знаете
о динамических методах и таблицах динамических методов
DMT. В Borland Pascal их могут также использовать програм-
мы для DOS.
Динамические методы отличаются от виртуальных методов спо-
собом диспетчеризации динамических методов на этапе выпол-
нения. Вместо построения для динамических методов таблицы
виртуальных методов (VMT) компилятор строит DMT. Использо-
вание DMT уменьшает потребности вашей прикладной программы
в памяти при программировании с объектами. Более подробно
о динамических методах рассказывается в разделе "Динами-
ческие методы" в Главе 4 ("Типы") "Руководства по языку".
Чтобы узнать подробности о таблицах динамических методов,
см. раздел "Таблицы динамических методов" в Главе 21
("Вопросы использования памяти") "Руководства по языку".
Улучшения в библиотеке исполняющей системы
Borland Pascal имеет три библиотеки исполняющей системы:
TURBO.TPL для программ DOS реального режима, TPW.TPL для программ
Windows и TPP.TPL для программ DOS защищенного режима.
Улучшения библиотек исполняющей системы касаются следующих
элементов:
* более быстрого ввода-вывода текстового файла;
* более быстрой функции Pos;
* оптимизации 80386 для операций умножения, деления, сдвига
влево и вправо со значениями типа Longint.
Новые подпрограммы модуля System
Модуль System содержит семь новых процедур и функций. Вы мо-
жете найти их в Главе 1 ("Справочник по библиотеке") "Справочного
руководства программиста".
* Процедура Assigned выполняет проверку и анализ того, со-
держит ли указатель или процедурная переменная nil.
* Процедура Break завершает оператор for, while или repeat.
* Процедура Continue продолжает следующие итерации оператора
for, while или repeat.
* Процедура Include включает элемент в множество.
* Процедура Exclude исключает элемент из множества.
* Функция High возвращает наивысшее значение в диапазоне ар-
гумента.
* Функция Low возвращает низшее значение в диапазоне аргу-
мента.
Новые модули
Благодаря модулю Strings программисты, использующие Turbo
Pascal for Windows, могли работать со строками с завершающим ну-
лем (в стиле Си). Теперь модуль Strings могут использовать как
программисты, работающие в Windows, так и работающие в DOS. Под-
робнее о строках с завершающим нулем рассказывается в Главе 18
"Использование строк с завершающим нулем" в "Руководстве по язы-
ку". Полную информацию о строках с завершающим нулем вы можете
получить, прочитав Главу 1 ("Справочник по библиотеке") "Справоч-
ного руководства программиста".
Программисты, работающие с Turbo Pascal for Windows, уже
знакомы с модулем WinDos. Программисты, работающие в DOS, также
могут использовать модуль WinDos для реализации операционных сис-
тем и подпрограмм обработки файлов. Чтобы выяснить, следует вам
использовать модуль WinDos или Dos, прочитайте Главу 16 "Интер-
фейс с DOS" "Руководства по языку". Все процедуры и функции под-
робно поясняются в Главе 1 ("Справочник по библиотеке") "Справоч-
ного руководства программиста".
Модуль WinAPI дает вам возможность прямого доступа к расши-
рениям DOS защищенного режима. Интерфейс WinAPI разработан как
подмножество API (интерфейс прикладных программ) Windows, чтобы
облегчить написание переносимых приложений и двоично-совместимых
DLL. О модуле WinAPI рассказывается в Главе 17 "Программирование
в DOS в защищенном режиме" "Руководства по языку". Более полную
информацию о процедурах и функциях модуля WinAPI можно найти в
Главе 1 ("Справочник по библиотеке") "Справочного руководства
программиста".
Модуль WinPrn позволяет послать информацию, выводимую вашей
программой Windows, на выбранный принтер. О печати в программах
Windows рассказывается в Главе 14 ("Ввод и вывод") "Руководства
по языку". См. также расширенные пояснения по процедурам WinPrn в
Главе 1 ("Справочник по библиотеке") "Справочного руководства
программиста".
Модуль Win31 обеспечивает интерфейс с дополнительными прог-
раммами API, которые можно найти в DLL KERNEL и USER Windows 3.1.
Приложения, использующие модуль Win31, не будут работать под
Windows 3.0. Подробности о модуле Win31 вы можете узнать в спра-
вочной системе Borland Pascal.
Остальные расширения API Windows 3.1 Borland Pascal поддер-
живает в нескольких модулях (информацию о них вы можете получить
в справочной системе Borland Pascal):
ColorDlg LZExpand ShellAPI
CommDlg MMSystem Stress
Cpl OLE TooHelp
DDEML PenWin Ver
Dlgs Print WinMem32
Новые директивы компилятора
Borland Pascal имеет пять новых директив компилятора. Под-
робнее о них рассказывается в Главе 2 ("Директивы компилятора")
"Справочного руководства программиста":
* Директива $P (открытые строковые параметры) управляет
смыслом параметров-переменных, описанных с помощью ключе-
вого слова string.
* Директива $T (указатели с проверкой типа) управляет типами
значений указателей, генерируемых операцией @.
* Директива $Q (проверка переполнения) управляет генерацией
кода проверки переполнения для отдельных арифметических
операций.
* Директива $K (эффективные вызовы) управляет генерацией эф-
фективных вызовов процедур и функций, экспортируемых при-
ложением Windows. Подробнее об обработке в Borland Pascal
эффективных вызовов рассказывается в разделе "Код входа и
выхода" Главы 22 ("Вопросы управления") "Руководства по
языку".
* Директива $Y (информация об идентификаторе) генерирует
в компилируемой программе или модуле ссылочную информацию
идентификатора, благодаря чему ObjectBrowser может выво-
дить на экран определение идентификатора и ссылочную ин-
формацию для данного программного модуля.
Усовершенствования компилятора
Кроме расширений языка Borland Pascal и добавления новых ди-
ректив компилятора, в сам компилятор также внесены улучшения:
* Компилятор позволяет выполнять более простую компоновку с
Си и ассемблером путем передачи в ваш выполняемый файл ин-
формации о номерах строк .OBJ. Таким образом, вы можете
использовать встроенные отладчик для выполнения по шагам
кода языка Си и ассемблера. См. в данной книге Главу 6
"Отладка в интегрированной среде".
* Когда правым операндом операции in является константа мно-
жественного типа, компилятор генерирует более эффективный
код. См. раздел "Встраивание констант множественного типа"
в Главе 23 ("Оптимизация кода") в "Руководстве по языку".
* Компилятор генерирует более эффективный код для малых мно-
жеств. О малых множествах подробнее рассказывается в Главе
23 ("Оптимизация кода") в "Руководстве по языку".
* Компилятор допускает неограниченную вложенность модулей.
* Оператор uses в разделе implementation модуля не вызывает
теперь циклической ссылки на модуль.
* В определенных ситуациях компилятор подавляет операции из-
быточной загрузки указателей. См. Главу 23 ("Оптимизация
кода") "Руководства по языку".
Улучшения в Turbo Vision
В Turbo Vision 2.0 в иерархию добавлены новые объекты, а к
существующим объектам добавлены некоторые новые возможности. Из-
менения существующий объектов имеют обратную совместимость, поэ-
тому существующий код Turbo Vision следует компилировать без из-
менений, а существующие потоки и ресурсы загружаются без ошибок.
В Turbo Vision 2.0 имеются некоторые новые средства. О них
рассказывается в "Руководстве по программированию с Turbo
Vision":
* Поддержка проверки допустимости данных. Ваши приложения
Turbo Vision могут обеспечить получения для обработки до-
пустимых данных.
* Кнопки с независимой фиксацией с множеством состояний.
Кнопки с независимой фиксацией могут иметь состояния, от-
личные от "выбрана" и "не выбрана". IDE защищенного режима
DOS (BP.EXE) использует кнопки с независимой фиксацией с
множеством состояний в своем диалоговом окне параметров
компилятора Compiler Options.
* Средство просмотра схемы объектов. Для вывода схем ваши
приложения могут использовать два объекта - TOutlineViewer
и TOutline. Эти объекты использует средство DOS
ObjectBrowser.
* Поддержка версий объектов в потоках. Даже если ваши объек-
ты были созданы с помощью Turbo Vision 1.0, ваши программы
все равно смогут считывать их как объекты, совместимые с
Turbo Vision 2.0.
* Новое учебное руководство и пересмотренная документация.
Вы увидите, что можно быстро изучить и освоить Turbo
Vision.
Улучшения ObjectWindows
В иерархию ObjectWindows добавлены новые объекты. К сущест-
вующим объектам также добавлены некоторые новые возможности.
Модуль WObjects больше не существует. Существующий у вас ис-
ходный код можно будет успешно перекомпилировать, если вы замени-
те каждую ссылку на WObjects модулями OWindows, ODialogs, OMemory
и Objects.
ObjectWindows содержит новые средства. Узнать о них можно,
прочитав "Руководство по программированию с использованием
ObjectWindows":
* Поддержка проверки допустимости данных. Ваши приложения
ObjectWindows могут обеспечить получение для обработки до-
пустимых данных.
* Печать объектов. Благодаря новым объектам печати выводить
данные на печать в программах ObjectWindows стало проще.
* Поддержка специализированных управляющих элементов Windows
фирмы Borland. Ваши программы Windows могут иметь вид, со-
ответствующий стандарту Borland.
Новые средства и утилиты
Если вашей целевой платформой является Windows, помочь про-
цессу разработки могут два новых средства. Прочесть о них можно в
"Руководстве по инструментальным средствам и утилитам".
* Утилита WinSight. WinSight - это инструментальное средство
отладки, которое дает вам информацию об окнах, классах и
сообщениях. Используйте ее для изучения новых приложений
Windows (ваших или чужих), чтобы увидеть как создаются и
используются окна и классы окон, и какие сообщения получа-
ют окна во время выполнения программы.
* Утилита WinSpector. С помощью WinSpector вы можете прове-
рить приложение Windows после завершения его с невосста-
навливаемой ошибкой (Unrecoverable Application Error -
UAE). Это поможет вам понять причину ошибки.
Borland Pascal также включает в себя обновленные версии сле-
дующих инструментальных средств:
* Turbo Debugger (Турбо отладчик) включает отладчик TDW, ко-
торый может отлаживать прикладные программы Windows, и
TDX, который может отлаживать прикладные программы защи-
щенного режима DOS.
* Turbo Profiler (Турбо профилировщик), который включает в
себя два профилировщика - один для программ DOS, а другой
для программ Windows.
* Turbo Assembler (Турбо ассемблер), добавляющий к коду ас-
семблера объектно-ориентированное программирование.
* Resource Workshop (Пакет разработчика ресурсов), работаю-
щий в среде Windows и способный создавать для приложений
Windows все ресурсы (диалоговые окна, курсоры, битовые
массивы, пиктограммы и т.д.).
Назад | Содержание | Вперед