XE7 Unit scope names
2015-06-04 12:59
561 查看
今天编译RM报表 7.0 for XE7 ,build设计时包,提示
{$IFDEF JPEG}, JPEG{$ENDIF}
没有找到 JPEG.DCU,这个应该是XE7自带。
后来 在项目选项里,编译器,加个 VCL.IMAGING。
给Delhi.命名空间 指定单元范围名称 前缀,使你可以在代码中和uses子句或者 包含子句里,使用 部分匹配的名称。
Specifies the unit scope names (prefixes) for Delphi dotted namespaces, to allow you to use partially qualified names in your code and in your
有2种方式
There are two ways to add a unit scope name for a Delphi unit:
Specify the fully unit-scoped name in your
Add the unit scope name (
The
pop-up button opens an <ordered-list> dialog box for selecting and adding unit scope names, as described in Common Items on Project Options Pages and Ordered list dialog box.
Go Up to Getting Started with RAD Studio
Unit scope names are prefixes that are prepended to unit names in
the RAD Studio libraries (VCL-FMX-RTL). That is, names of units, functions,
classes, and members have a unit scope name prepended to the unit name, as
follows:
Syntax and Description
The unit scope name precedes the unit name:
For example, the SysUtils unit is now part of the System unit scope, as follows:
and the Controls unit is part of the Vcl or the FMX unit scope: Vcl.Controls
Classify units into basic groups such as Vcl, System, FMX, and so forth (unit scopes are classified in Unit Scopes).
Ensure compatibility of the code that you write using the IDE.
Differentiate members whose names are ambiguous (that is, ensure correct name resolution when a member's name matches the name of a member of another unit).
Typically begin with a single uppercase letter followed by lowercase letters (such as Data).
Are typically made up of one element(such as DataSnap), although some are made up of two elements (such as System.Generics).
Third party products, such as Indy and TeeChart, are not unit-scoped. When developing new code with third party components, adding unit scope names is not necessary because added
Component developers can add unit scope names as described in Adding Unit Scope Names for Your Own Components.
For example, here is the fully qualified identifier of the TStream classthat you might have specified in previous product releases:
The name Classes.TStream is not considered to be a fully qualified class name because fully qualified names must be unit-scoped, that is, they must include the unit scope name. In this case, the unit scope name System must be added to the Classes unit name in order to yield a unit-scoped or fully qualified name, as follows:
In Delphi, the fully qualified identifier name for TStream is:
In C++, unit scope names use the C++ scope operator (
Possible code changes: If your existing code contains qualified identifiers (such as
Everywhere:Fully qualify all names of all members throughout your code. Using full qualification, including unit scope names, throughout your application ensures the fastest compile time.
Uses clause or #includes:Fully qualify unit names (with the unit scope and unit names) in the
In Project Options:Add the unit scope names in the Unit scope names option on the Delphi Compiler page in Project Options.
Caution: Using partially qualified names can significantly slow your compile time because the compilers must resolve all partially qualified names during a compile.
or:
You can specify unqualified member names in your code, such as:
Ten unit scopes are FireMonkey related (FMX, FMX.ASE, FMX.Bind, FMX.Canvas, FMX.DAE, FMX.DateTimeControls, FMX.EmbeddedControls, FMX.Filter, FMX.ListView, FMX.MediaLibrary).
The Soap unit scope contains COM-related units.
The System unit scope has several unit scopes, including System.Bindings, System.Generics, System.Math, System.Sensors, System.Tether).
Four unit scopes are VCL related (Vcl, Vcl.Imaging, Vcl.Samples, Vcl.Touch).
The Xml unit scope contains the four units related to XML processing, such as Xml.Win.msxmldom.
For units that are documented in the help, a hyperlink is given to the unit scope, where you will see the units that belong in the unit scope.
For external units, which are not documented in the help, the units are listed that belong in the unit scope.
Unit Names in Alphabetical Order with Their Unit Scopes
For a reference list of unit names with their associated unit scope name, see
Unit Names
Alphabetical List with Unit Scopes.
Alphabetical List with Unit Scopes
Adding Unit Scope
Names for Your Own Components
C++
namespaces
Unit List (Libraries Reference)
Retrieved from "http://localhost/RADStudio/XE7/e/index.php?title=Unit_Scope_Names&oldid=233410"
Categories:
XE2
Delphi
C++
Hidden category:
AMMigrate
{$IFDEF JPEG}, JPEG{$ENDIF}
没有找到 JPEG.DCU,这个应该是XE7自带。
后来 在项目选项里,编译器,加个 VCL.IMAGING。
给Delhi.命名空间 指定单元范围名称 前缀,使你可以在代码中和uses子句或者 包含子句里,使用 部分匹配的名称。
Specifies the unit scope names (prefixes) for Delphi dotted namespaces, to allow you to use partially qualified names in your code and in your
usesclause or
#include.
有2种方式
There are two ways to add a unit scope name for a Delphi unit:
Specify the fully unit-scoped name in your
usesclause. For example: 指定完整的全部
uses FMX.Graphics;(Delphi)
#include FMX.Graphics(C++)
Add the unit scope name (
FMX) to the Unit scope names field. Then the unit scope name
FMXis automatically applied to unit names that belong to that unit scope, and you can simply specify:
uses Graphics;(Delphi)
#include Graphics(C++)
The
pop-up button opens an <ordered-list> dialog box for selecting and adding unit scope names, as described in Common Items on Project Options Pages and Ordered list dialog box.
Unit Scope Names
From RAD StudioGo Up to Getting Started with RAD Studio
Unit scope names are prefixes that are prepended to unit names in
the RAD Studio libraries (VCL-FMX-RTL). That is, names of units, functions,
classes, and members have a unit scope name prepended to the unit name, as
follows:
Syntax and Description
The unit scope name precedes the unit name:<unitscope>.<unitname>. ...
For example, the SysUtils unit is now part of the System unit scope, as follows:
System.SysUtils
and the Controls unit is part of the Vcl or the FMX unit scope: Vcl.Controls
FMX.Controls
Classify units into basic groups such as Vcl, System, FMX, and so forth (unit scopes are classified in Unit Scopes).
Ensure compatibility of the code that you write using the IDE.
Differentiate members whose names are ambiguous (that is, ensure correct name resolution when a member's name matches the name of a member of another unit).
Typically begin with a single uppercase letter followed by lowercase letters (such as Data).
Are typically made up of one element(such as DataSnap), although some are made up of two elements (such as System.Generics).
Third party products, such as Indy and TeeChart, are not unit-scoped. When developing new code with third party components, adding unit scope names is not necessary because added
usesentries are automatically scoped.
Component developers can add unit scope names as described in Adding Unit Scope Names for Your Own Components.
Fully Qualified Names Must Include the Unit Scope Name
With one notable exception, legacy code should continue to work without changes. The one exception is scoped or qualified identifiers in the code itself. Fully qualified identifier names now require unit scoping. This means that if you used qualified identifiers in your existing code (which was not unit-scoped), changes are required in order to compile. You need to add the unit scope name to the unit name.For example, here is the fully qualified identifier of the TStream classthat you might have specified in previous product releases:
Classes.TStream
The name Classes.TStream is not considered to be a fully qualified class name because fully qualified names must be unit-scoped, that is, they must include the unit scope name. In this case, the unit scope name System must be added to the Classes unit name in order to yield a unit-scoped or fully qualified name, as follows:
In Delphi, the fully qualified identifier name for TStream is:
System.Classes.TStream
In C++, unit scope names use the C++ scope operator (
::). The fully qualified name for the TStream class in C++ code is:
System::Classes::TStream
Possible code changes: If your existing code contains qualified identifiers (such as
Classes.TStream.Seek), you must correct the name so that the identifier is unit-scoped and fully qualified (such as
System.Classes.TStream.Seek).
How to Specify Unit-Scoped Unit Names in Your Code
For new development, you must specify the unit scope for units in your application. Choose any of the following ways to do this:Everywhere:Fully qualify all names of all members throughout your code. Using full qualification, including unit scope names, throughout your application ensures the fastest compile time.
Uses clause or #includes:Fully qualify unit names (with the unit scope and unit names) in the
usesclause or
#include. Then in your code, you can partially qualify the names of members of those units that you fully qualified (with unit scope) in the
usesclause or
#include.
In Project Options:Add the unit scope names in the Unit scope names option on the Delphi Compiler page in Project Options.
Caution: Using partially qualified names can significantly slow your compile time because the compilers must resolve all partially qualified names during a compile.
RAD Studio Uses Unit Scopes, and the Help Also Uses Unit Scope Names
The wizards and templates in RAD Studio use and include properly unit-scoped unit names. In the help, some instances of unit, class, and member names do not include the unit scope names. However, the Libraries documentation has full unit scope names in the page titles.Example
If your code contains:uses System.SysUtils, System.Types, System.Classes, FMX.Controls;
or:
#include <System.SysUtils.hpp> #include <System.Types.hpp> #include <System.Classes.hpp> #include <FMX.Controls.hpp>
You can specify unqualified member names in your code, such as:
GetPackageInfo // referring to System.SysUtils.GetPackageInfo TRect // referring to System.Types.TRect TNotifyEvent // referring to System.Classes.TNotifyEvent TTrackBar // referring to FMX.Controls.TTrackBar
Unit Scopes
There are more than a few unit scopes, but most of the unit scopes can be grouped into a few general categories. The following table lists the general categories and the unit scope names in each category:General Category | Unit Scope Names in this Category |
---|---|
Database-related | Bde,Data, Data.Bind, Data.Cloud, Datasnap, Datasnap.Win,IB (also System.Bindings) |
FireMonkey | FMX, FMX.ASE, FMX.Bind, FMX.Canvas, FMX.DAE, FMX.Filter, FMX.Platform, FMX.Printer |
iOS | iOSapi (RTL) |
Mac OS X | Macapi, Posix, System.Mac (RTL) |
System-related (Run-Time Library) | System, System.Bindings, System.Generics, System.Math, System.Sensors, System.Tether, System.Win |
Vcl (Visual Component Library) | Vcl, Vcl.Imaging, Vcl.Samples, Vcl.Shell, Vcl.Touch |
SOAP, COM | Soap |
Web-related | Web, Web.Win |
Windows API | Winapi (RTL) |
XML processing | Xml, Xml.Internal, Xml.Win |
The Soap unit scope contains COM-related units.
The System unit scope has several unit scopes, including System.Bindings, System.Generics, System.Math, System.Sensors, System.Tether).
Four unit scopes are VCL related (Vcl, Vcl.Imaging, Vcl.Samples, Vcl.Touch).
The Xml unit scope contains the four units related to XML processing, such as Xml.Win.msxmldom.
Unit Scopes and the Units in Each Unit Scope
The following table gives the following information:For units that are documented in the help, a hyperlink is given to the unit scope, where you will see the units that belong in the unit scope.
For external units, which are not documented in the help, the units are listed that belong in the unit scope.
Unit Scope Name | Units |
---|---|
Androidapi (RTL) | AppGlue, AssetManager, AssetManagaerIni, Bitmap, Configuration, Consts, Egl, Eglext, EglPlatform Gles, Gles2, Gles2ext, Glesext, Input, IOUtils, JNI.Analytics, JNI.ApkExpansion, JNI.App, JNI.Dalvik, JNI.Embarcadero, JNI.GraphicsContentViewText, JNI.Hardware, JNI.InputMethodService, JNI.JavaTypes, JNI.Licensing, JNI.Location, JNI.Media, JNI.Net, JNI.OpenGL, JNI.Os, Jni, JNI.PlayServices, JNI.Provider, JNI.Support, JNI.Telephony, JNI.Util, JNI.VideoView, JNI.WebKit, JNI.Widget, JNIBridge, JNIMarshal, Keycodes, KhrPlatform, Log, Looper, NativeActivity, NativeWindow, NativeWindowJni, Obb, OpenSles, Rect, Sensor, StorageManager |
Data | See Data |
Data.Bind | See Data.Bind |
Data.Cloud | See Data.Cloud |
Datasnap | See Datasnap |
FMX (FireMonkey application platform) | See FMX |
IBX | See IBX |
iOSapi (RTL) | AssetsLibrary, AVFoundation, CocoaTypes, CoreAudio, CoreData, CoreGraphics, CoreImage, CoreLocation, CoreMedia, CoreMotion, CoreTelephony, CoreText, CoreVideo, Foundation, GLKit, MediaPlayer, OpenGLES, QuartzCore, UIKit |
Macapi (RTL) (Mac Objective-C Frameworks) | AppKit, CocoaTypes, CoreFoundation, CoreServices, Foundation, Mach, ObjCRuntime, ObjectiveC, OCMarshal, OpenGL, QuartzCore, Security, SystemConfiguration, VarObjC |
Posix (Mac OS X) (RTL) | ArpaInet, Base, Dirent, Dlfcn, Errno, Fcntl, Fnmatch, Grp, Iconv, Langinfo, Limits, Locale, NetDB, NetIf, NetinetIcmp6, NetinetIn, NetinetIp6, Posix, Pthread, Pwd, Sched, Semaphore, Signal, StdDef, Stdio, Stdlib, String_, StrOpts, SysMman, SysSelect, SysSocket, SysStat, SysStatvfs, SysSysctl, SysTime, SysTimes, Systypes, SysUio, SysWait, Termios, Time, Unistd, Utime, Wchar, Wctype, Wordexp |
Soap | See Soap |
SysInit | See SysInit |
System | See System |
System.Win | See System.Win |
Vcl (Visual Component Library) | See Vcl |
Web | See Web |
Winapi | See Winapi |
Xml | See Xml |
Unit Names in Alphabetical Order with Their Unit Scopes
For a reference list of unit names with their associated unit scope name, seeUnit Names
Alphabetical List with Unit Scopes.
Topics
Unit NamesAlphabetical List with Unit Scopes
Adding Unit Scope
Names for Your Own Components
See Also
Using Namespaces with DelphiC++
namespaces
Unit List (Libraries Reference)
Retrieved from "http://localhost/RADStudio/XE7/e/index.php?title=Unit_Scope_Names&oldid=233410"
Categories:
XE2
Delphi
C++
Hidden category:
AMMigrate
相关文章推荐
- linux grep命令
- 《自己动手写框架2》:用200行的DBF解析器来展示良好架构设计
- opencv仿射变换GetAffineTransform的总结
- JDeveloper 11g 安装 & 开发环境设置
- Nginx配置文件nginx.conf中文详解(总结)
- Ubuntu如何从user用户切换到root用户
- IIS部署网站
- Client Dimensions , offsetHeight , scrollTop 属性详解
- nginxのerror_logはformat指定できない.
- centos rm回收站
- shell获取mac地址
- Windows Socket和Linux Socket编程的区别
- 实战-----使用crond 在linux中定时执行任务
- "Invalid bound statement (not found): com.sitech.admin.dao.TbOpenAbilityInfoDao.findAbilityReadyUp"mybatis配置文件bug
- scope参数错误或没有scope权限
- HDU1905 Pseudoprime numbers(搜索)
- [DB2]linux下安装db2 v9.7
- Linux 内核内存泄露工具使用
- openssl详解
- 基于nginx的tomcat负载均衡和集群(超简单)