Пожалуйста, объясните использование пакета - PullRequest
1 голос
/ 08 января 2012

Пожалуйста, объясните использование пакета (в коротких предложениях маленькими словами (для чайников)).

Я только что перешел с D7 на XE2, и пакеты кажутся гораздо более распространенными, и мне, похоже, нужно квалифицировать гораздо больше вещей.

В D7 я бы сказал uses windows, а теперь я должен сказать uses winapi.windows.

Я обнаружил, что когда я звоню MessageDlg(), я не могу передать mtError, мне нужно его квалифицировать.

Прежде чем я пойду слишком далеко по неправильному пути - какое простое решение?

Могу ли я как-то продолжать использовать свой старый код с именами пакетов, которые, как я подозреваю, являются терминальными (то есть для пакетов A.B.C у меня есть предложение uses C).

Могу ли я добавить одно заявление куда-нибудь, чтобы сделать это? Или настройте проект.

Извините, что звучит так глупо: - (

Ответы [ 2 ]

5 голосов
/ 08 января 2012

Использование пакета в XE2 ничем не отличается от более ранних версий.Отличие состоит в том, что все имена модулей Embarcadero теперь имеют префикс новых имен областей применения («Система», «Vcl», «Winapi» и т. Д.), Чтобы помочь определить, какие модули принадлежат RTL, VCL, FireMonkey, конкретным платформам.и т. д.

Вы можете обновить свой код сейчас, чтобы полностью уточнить все, если хотите, но вам не нужно .Вместо этого вы можете указать конкретные имена областей в настройках «Имена областей применения» в параметрах проекта, а затем без кода изменения не требуются (кроме обычных изменений при переходе с одной версии на другую).

3 голосов
/ 08 января 2012

Это так называемые единицы измерения . Из-за новых библиотек FireMonkey и кроссплатформенной поддержки требуется, чтобы вы объявили, на какой модуль ссылаетесь, для типов и объявлений функций.

Вы можете установить значения по умолчанию, используя Project->Options->Compiler->Unit Scope Names. Это задокументировано .

...