* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна!
Пространства имен в Delphi
15 апреля 2009
В Delphi 8 файлы проекта (программы, библиотеки или пакеты) неявно входят в про- странство имен, называемое пространством имен проекта по умолчанию. Модуль может быть или членом пространства имен по умолчанию, или для него можно явно объявить пространство имен. Во втором случае пространство имен объявляется в заголовке модуля. uni t MyCompany.MyWidgets.MyUni t; Обратите внимание, что отдельные пространства имен разделяются точками. Но в данном случае точки не являются разделителями между именами, а являют- ся частью имени модуля. Имя исходного файла для данного модуля должно быть MyCompany .MyWidgets .MyUnit .pas, а имя выходного файла, созданного компилято- ром, будет MyCompany.MyWidgets.MyUnit.dcuil. Точки в данном случае показыва- ют вложенность пространств имен, а модуль MyUnit является членом пространства имен MyWidgets, которое само включено в пространство имен MyCompany. По умолчанию всегда создаются пространства имен для всех модулей проекта. Рас- смотрим следующие объявления.
Program MyCompany.Programs.MyProgram; Library MyCompany.Libs.MyLibrary; Package MyCompany.Packages.MyPackage; Таким образом создается пространство имен по умолчанию для проекта. Имя про- странства имен получается при удалении имени модуля (правая часть) вместе с точ- кой. Модуль, в котором нет явного объявления пространства имен, называется группо- вым модулем, он автоматически становится членом пространства имен (членом груп- пы) проекта. Например, если создать модуль как unit MyUnit; то компилятор автоматически включит его в пространство имен MyCompany. Programs. При этом пространство имен по умолчанию не влияет на имена исходных файлов групповых модулей. В предыдущем примере имя файла может быть MyUnit.pas, но при создании файла с расширением .dcuil компилятор будет использовать пространство имен по умолчанию и будет создан файл с именем MyCompany.Programs.MyUnit.dcuil. Все имена не чувствительны к регистру клавиатуры, но компилятор сохранит имя в его оригинальном виде и будет использовать это имя при создании выходных фай- лов, сообщений об ошибках и при предоставлении информации о типах времени ис- полнения. В информацию о типах времени исполнения будут включены полные оп- ределения пространства имен.