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

               массивы, пиктограммы и т.д.).