Использовать "System.SysUtils" или "SysUtils" в Delphi? - PullRequest
6 голосов
/ 09 октября 2019

В Delphi XE3 кажется, что можно использовать «System.SysUtils» или «SysUtils», «Vcl.FileCtrl» или «FileCtrl».

Я читал статью в http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/usingnamespaces_xml.html кажется, что первое называется полным определенным пространством имен, а второе - общим именем. Но если я правильно понимаю, нужно добавить такие выражения, как:

«Использует систему, Vcl», прежде чем можно будет использовать единицы в этих пространствах имен. Но я проверяю коды, но не могу найти "Uses System" или "Uses vcl". Почему?

1 Ответ

15 голосов
/ 09 октября 2019

Вы читаете старую документацию и все равно читаете не ту тему.

System и Vcl в этом контексте на самом деле Имена областей применения , которые похожи до, но весьма отличается от Пространства имен . Имена областей применения были введены в XE2, чтобы позволить VCL и FMX совместно использовать общие имена устройств в различных областях (Vcl.Forms против FMX.Forms и т. Д.). Существующий код VCL, перенесенный в FMX, (в основном) не нужно переписывать, он может use просто Forms и т. Д. И волшебным образом подобрать правильную область действия в зависимости от типа проекта. То же самое не работает с пространствами имен.

Причина, по которой вам не нужно явно указывать имена областей применения в операторах uses в коде, заключается в том, что они настроены на уровне проекта, а по умолчанию большинство VCLПроекты имеют предварительно настроенные имена областей действия System и Vcl.

Итак, когда вы use просто SysUtils, FileCtrl и т. д. в своем коде, компилятор проверяет их по модулю проектаИмена областей и в конечном итоге находит System.SysUtils, Vcl.FileCtrl и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...