122______________________________________________Глава 2

Если вы используете формальную замену символов при переводе с языка Ob-
ject Pascal в C++, то сначала надо заменить фигурные скобки комментариев, и то-
лько потом заменять операторные скобки begin ... end. Если выполнять операции
в обратной последовательности, то операторные скобки превратятся в коммента-
рии. Необходимо также в диалоговом окне замены включить опцию Whole word
only. В противном случае вы рискуете исказить многие идентификаторы, содержа-
щие, например, символы if или do.

Конечно, различие языков Object Pascal и C++ не ограничивается указанным
выше. Это только легко формализуемая часть работы по переводу с одного языка
на другой. Остается еще различие, связанное с чувствительностью C++ к регистру
и нечувствительностью к нему Object Pascal, различия во многих операторах, в
описаниях классов, структур, множеств, различие в наборе библиотечных функ-
ций и многое другое. Так что указанные выше приемы позволяют легко перевести
с одного языка на другой небольшие фрагменты кодов, но перевод большой про-
граммы осуществить сложно и нередко проще написать ее заново или просто испо-
льзовать в C++Builder код на Object Pascal.

Кстати, целесообразность перевода модулей с Object Pascal на C++ вызывает
некоторое сомнение. Я, конечно, не проводил полноценного тестирования, но не-
которые собственные тесты прогонял на приложении Delphi 4, на приложении
C++Builder 4 с использованием модуля Delphi и на приложении C++Builder 4 с
предварительным полноценным переводом модуля Object Pascal на C++. Разитель-
ной разницы в эффективности этих тестов я не заметил. Программы на C++ вы-
полнялись быстрее, но выигрыш лежал в пределах 15 — 20 %. Так что решайте
сами, стоит ли из-за такого выигрыша переводить с Object Pascal на C++.

2.4.10 Справочная система C++Builder и программа
ее конфигурирования OpenHelp

Справка в C++Builder может вызываться из меню Help или с помощью контек-
стно-зависимого поиска практически из любого окна C++Builder. Вы можете выде-
лить на форме какой-то компонент, нажать F1 и вам будет показана тема справки,
связанная с этим компонентом. Если вы в окне Редактора Кода установите курсор
на имени какой-то функции, на имени свойства или метода какого-то компонента
и нажмете F1, то вам также будет показана справка по интересующему вас вопросу.
Аналогично можно получить контекстную справку о свойстве компонента из окна
Инспектора Объектов, выделив соответствующее свойство.

Правда, к сожалению, не всегда такой контекстный поиск дает правильный
результат. Иногда вы в ответ получаете сообщение, что такой темы нет, и совет об-
ратиться к разработчикам программы. А иногда просто вы попадаете совсем не на
ту тему.

В подобных случаях можно посоветовать выходить на требуемую тему через
страницу справки Содержание. Если вам требуется информация о компоненте,
свойстве, методе, событии, то наиболее удобно раскрыть на этой странице книжку
«Visual Component Library Reference» (Обзор библиотеки визуальных компонентов),
затем раскрыть «Alphabetical Object and Component Listing» (Алфавитный список
объектов и компонентов) и в этом списке отыскать по алфавиту требуемый компо-
нент. А из окна справки компонента всегда можно найти все его свойства, методы
и события.

Если вам нужно найти справку по функциям, объявленным в библиотеке ком-
понентов, и обычный контекстный поиск не помогает, то удобно на странице
справки Содержание открыть книжку «Visual Component Library Reference» (Обзор
библиотеки визуальных компонентов), затем раскрыть «Alphabetical Routines Lis-
ting» (Алфавитный список функций) или «Categorical Routines Listing» (Список функ-
ций по категориям), а затем найти нужную функцию в соответствующем разделе.