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 и TurboPascal 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 программисты, использующие TurboPascal 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 ShellAPICommDlg MMSystem StressCpl OLE TooHelpDDEML PenWin VerDlgs 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 имеются некоторые новые средства. О нихрассказывается в "Руководстве по программированию с TurboVision":
* Поддержка проверки допустимости данных. Ваши приложенияTurbo Vision могут обеспечить получения для обработки до-пустимых данных.
* Кнопки с независимой фиксацией с множеством состояний.Кнопки с независимой фиксацией могут иметь состояния, от-личные от "выбрана" и "не выбрана". IDE защищенного режимаDOS (BP.EXE) использует кнопки с независимой фиксацией смножеством состояний в своем диалоговом окне параметровкомпилятора Compiler Options.
* Средство просмотра схемы объектов. Для вывода схем вашиприложения могут использовать два объекта - TOutlineViewerи TOutline. Эти объекты использует средство DOSObjectBrowser.
* Поддержка версий объектов в потоках. Даже если ваши объек-ты были созданы с помощью Turbo Vision 1.0, ваши программывсе равно смогут считывать их как объекты, совместимые сTurbo Vision 2.0.
* Новое учебное руководство и пересмотренная документация.Вы увидите, что можно быстро изучить и освоить TurboVision.
Улучшения 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 все ресурсы (диалоговые окна, курсоры, битовыемассивы, пиктограммы и т.д.).

