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 вы можете найти следующие новые средства:
* Два средства просмотра объектов 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 "Компиляторы, работающие в режиме командной строки" "Справочного руководства программиста". С помощью компиляторов командной строки BP.EXE и BPC.EXE вы можете создавать программы, работающие в защищенном режиме DOS без использования оверлеев. Ваши программы смогут, наконец, превысить барьер реального режима DOS в 640К. Для многих ваших программ все, что нужно сделать для создания приложения DOS защищенного режима, это выбор защищенного режима DOS в качестве целевой платформы и установка соответствующих параметров компилятора (см. Главу 4). Возможно, вы захотите прочесть также Главу 17 "Руководства по языку" ("Программирование в защищенном режиме 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 содержит семь новых процедур и функций. Вы можете найти их в Главе 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 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 добавлены новые объекты. К существующим объектам также добавлены некоторые новые возможности.
Модуль 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 всересурсы (диалоговые окна,курсоры, битовые массивы, пиктограммы и т.д.).