Anzeigen: Delphi C++
Anzeigeeinstellungen

Unit-Gültigkeitsbereichsnamen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Einführung in RAD Studio


Unit-Gültigkeitsbereichsnamen sind Präfixe, die Unit-Namen in den VCL-FMX-RTL-Bibliotheken vorangestellt werden. Das heißt, Namen von Units, Funktionen, Klassen und Membern enthalten nun einen Unit-Gültigkeitsbereichsnamen vor dem Unit-Namen:

Inhaltsverzeichnis

Syntax und Beschreibung

<unitscope>.<unitname>. ...

Beispielsweise ist die Unit SysUtils jetzt Teil des Unit-Gültigkeitsbereichs System:

System.SysUtils

und die Unit Controls ist jetzt Teil des Unit-Gültigkeitsbereichs Vcl:

Vcl.Controls 

Unit-Gültigkeitsbereichsnamen:

  • Ordnen Units in Basisgruppen, wie Vcl, System, Fmx usw., ein (Unit-Gültigkeitsbereiche sind in Unit-Gültigkeitsbereiche klassifiziert).
  • Stellen die Kompatibilität des in der IDE geschriebenen Codes sicher.
  • Differenzieren Member, deren Namen mehrdeutig sind (d.h. stellen eine korrekte Namensauflösung sicher, wenn der Name eines Member mit dem Namen eines Member einer anderen Unit übereinstimmt).
  • Beginnen normalerweise mit einem einzelnen Großbuchstaben gefolgt von Kleinbuchstaben (wie Vcl und Fmx).
  • Bestehen normalerweise aus einem Element (wie z.B. Winapi); es sind aber auch zwei Elemente möglich (wie System.Win).

Produkte von Fremdherstellern, wie Indy und TeeChart, sind nicht von Unit-Gültigkeitsbereichen abhängig. Beim Entwickeln von neuem Code mit Komponenten von Fremdherstellern ist das Hinzufügen von Unit-Gültigkeitsbereichsnamen nicht erforderlich, weil hinzugefügte uses-Einträge automatisch bereichsabhängig sind.

Komponentenentwickler können Unit-Gültigkeitsbereichsnamen hinzufügen (siehe Hinzufügen von Unit-Gültigkeitsbereichsnamen für eigene Komponenten).

Voll qualifizierte Namen müssen den Unit-Gültigkeitsbereichsnamen enthalten

Mit einer besonderen Ausnahme sollte alter Code weiterhin ohne Änderungen funktionsfähig sein. Die eine Ausnahme bezieht sich auf bereichsabhängige oder qualifizierte Bezeichner im Code selbst. Für voll qualifizierte Bezeichnernamen sind jetzt Unit-Gültigkeitsbereiche erforderlich. Das bedeutet, dass bei Verwendung von qualifizierten Bezeichnern in Ihrem vorhandenen Code (der nicht von Unit-Gültigkeitsbereichen abhängig war) für die Compilierung Änderungen erforderlich sind. Sie müssen dem Unit-Namen den Unit-Gültigkeitsbereichsnamen hinzufügen.

Im Folgenden finden Sie zum Beispiel den voll qualifizierten Bezeichner der Klasse TStream, den Sie in früheren Produkt-Releases so angegeben hätten:

Classes.TStream

Der Name Classes.TStream gilt nun nicht mehr als voll qualifizierter Klassenname, weil ein voll qualifizierter Klassenname jetzt einen Unit-Gültigkeitsbereich enthalten muss, das heißt, der Unit-Gültigkeitsbereichsname muss angegeben sein. In diesem Fall muss dem Unit-Namen Classes der Unit-Gültigkeitsbereichsname System hinzugefügt werden, damit ein Unit-gültigkeitsbereichsabhängiger oder voll qualifizierter Name erzielt wird und zwar folgendermaßen:

  • In Delphi lautet der voll qualifizierte Bezeichnername für TStream:
    System.Classes.TStream
  • In C++ verwenden Unit-Gültigkeitsbereichsnamen den C++-Gültigkeitsbereichsoperator (::). Der voll qualifizierte Name für die Klasse TStream lautet in C++-Code:
    System::Classes::TStream

Mögliche Codeänderungen: Wenn Ihr vorhandener Code qualifizierte Bezeichner (wie Classes.TStream.Seek) enthält, müssen Sie die Namen korrigieren, damit die Bezeichner die Unit-Gültigkeitsbereiche angeben und voll qualifiziert sind (wie System.Classes.TStream.Seek).

Angeben von Unit-Gültigkeitsbereichsnamen für Units im Quellcode

Beim Entwickeln neuer Anwendungen müssen Sie den Unit-Gültigkeitsbereich für Units angeben. Dazu stehen Ihnen verschiedene Möglichkeiten zur Verfügung:

  • Überall: Verwenden Sie voll qualifizierte Namen für alle Member in Ihrem gesamten Code. Die Verwendung einer vollständigen Qualifizierung, einschließlich von Unit-Gültigkeitsbereichsnamen, in Ihrer gesamten Anwendung gewährleistet die schnellste Compilierung.
  • Uses-Klausel oder #includes: Verwenden Sie in der uses-Klausel oder der #include-Anweisung voll qualifizierte Namen (mit dem Unit-Gültigkeitsbereich und den Unit-Namen). In Ihrem Code können Sie dann die Namen von Membern derjenigen Units teilweise qualifizieren, für die sie in der uses-Klausel oder der #include-Anweisung voll qualifizierte Unit-Namen (mit dem Unit-Gültigkeitsbereich) verwendet haben.
  • In Projektoptionen: Fügen Sie der Option Unit-Gültigkeitsbereichsnamen auf der Seite Delphi-Compiler des Dialogfeldes Projektoptionen die Unit-Gültigkeitsbereichsnamen hinzu.
Achtung: Die Verwendung von teilweise qualifizierten Namen kann die Compilierung signifikant verlangsamen, weil die Compiler alle teilweise qualifizierten Namen während der Compilierung auflösen müssen.

RAD Studio verwendet Unit-Gültigkeitsbereiche und die Hilfe verwendet auch Unit-Gültigkeitsbereichsnamen

Die Experten und Vorlagen in RAD Studio wurden aktualisiert, damit sie Unit-Gültigkeitsbereichsnamen verwenden und korrekt einbeziehen. In der Hilfe werden bei einigen Vorkommen von Unit-, Klassen- und Member-Namen noch keine Unit-Gültigkeitsbereichsnamen verwendet. Die Dokumentation der FMX-VCL-RTL-Bibliotheken hat vollständige Unit-Gültigkeitsbereichsnamen in den Seitentiteln.


Beispiel

Wenn Ihr Code Folgendes enthält:

 uses
    System.SysUtils, System.Types, System.Classes, FMX.Controls;

oder:

 #include <System.SysUtils.hpp>
 #include <System.Types.hpp>
 #include <System.Classes.hpp>
 #include <FMX.Controls.hpp>

Können Sie in Ihrem Code unqualifizierte Member-Namen wie folgt angeben:

  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-Gültigkeitsbereiche

Es gibt eine Vielzahl von Unit-Gültigkeitsbereichen, aber die meisten können in ein paar allgemeine Kategorien, wie z.B. Vcl, Datenbank und System, gruppiert werden. Die folgende Tabelle führt die allgemeinen Kategorien und die Unit-Gültigkeitsbereichsnamen in jeder Kategorie auf:

Allgemeine Kategorie Unit-Gültigkeitsbereichsnamen in dieser Kategorie

Datenbankbezogen

Bde, Data, Data.Bind, Data.Cloud, Datasnap, Datasnap.Win, IB (System.Bindings auch)

FireMonkey

FMX, FMX.ASE, FMX.Bind, FMX.Canvas, FMX.DAE, FMX.Filter, FMX.Platform, FMX.Printer

Mac OS X

Macapi, Posix, System.Mac

Systembezogen (Laufzeitbibliothek)

System, System.Bindings, System.Internal, System.Win

VCL (Visuelle Komponentenbibliothek)

Vcl, Vcl.Imaging, Vcl.Samples, Vcl.Shell, Vcl.Touch

SOAP, COM

Soap

Web-bezogen

Web, Web.Win

Windows-API

Winapi

XML-Verarbeitung

Xml, Xml.Internal, Xml.Win


  • Neun Unit-Gültigkeitsbereiche beziehen sich auf Datenbanken (Bde, Data, Data.Bind, Data.Cloud, Data.Win, DataSnap, DataSnap.Win, Db, IB).
  • Zwei Unit-Gültigkeitsbereiche beziehen sich auf FireMonkey (Fmx, Fmx.Bind).
  • Drei Unit-Gültigkeitsbereiche beziehen sich auf den Mac (Macapi, Posix, System.Mac).
  • Der SOAP-Unit-Gültigkeitsbereich enthält COM-bezogene Units.
  • Der Unit-Gültigkeitsbereich "System" hat vier Untergültigkeitsbereiche (System.Bindings, System.Internal, System.Mac, System.Win).
  • Die VCL hat fünf zugehörige Unit-Gültigkeitsbereiche (Vcl, Vcl.Bind, Vcl.Imaging, Vcl.Samples, Vcl.Touch).
  • Xml.Win enthält die Unit Xml.Win.msxmldom, die sich auf die XML-Verarbeitung bezieht.

Unit-Gültigkeitsbereiche und die Units in jedem Unit-Gültigkeitsbereich

Die folgende Tabelle enthält die Unit-Gültigkeitsbereichsnamen und die Units, die jeweils zu diesem Unit-Gültigkeitsbereich gehören:

Unit-Gültigkeitsbereichsname Units

Bde

BDE, Bdeconst, DBBdeWeb, DbTables, DrTable, SMINTF

Data

DB, DBByteBuffer, DBCommon, DBCommonTypes, DBConnAdmin, DBConsts, DBPlatform, DBXClassRegistry, DBXClient, DBXClientResStrs, DBXCommon, DBXCommonIndy, DBXCommonResStrs, DBXCommonTable, DbxCompressionFilter, DBXDataExpressMetaDataProvider, DbxDatasnap, DBXDBReaders, DBXDelegate, DBXDynalink, DBXDynalinkNative, DBXEncryption, DBXJSON, DBXJSONCommon, DBXJSONReflect, DBXMemoryRow, DBXMessageHandlerCommon, DBXMessageHandlerJSonClient, DBXMessageHandlerJSonCommon, DBXMessageHandlerJSonServer, DBXMessageHandlerServer, DBXMetaDataCommand, DBXMetaDataCommandFactory, DBXMetadataCommon, DBXMetaDataError, DBXMetaDataNames, DBXMetaDataProvider, DBXMetaDataReader, DBXMetaDataUtil, DBXMetaDataWriter, DBXMetaDataWriterFactory, DBXOpenSSL, DBXOpenSSLRes, DBXPlatform, DBXPool, DBXReaderTableStorage, DBXRSAFilter, DbxSocketChannelNative, DBXSqlScanner, DBXStream, DBXStreamer, DBXStreamPlatform, DBXTableFactory, DBXTrace, DBXTransport, DBXTransportFilter, DBXTypedTableStorage, DSUtil, FMTBcd, SqlConst, SqlExpr, SqlTimSt

Data.Win

ADOConst, ADODB

Data.Bind

Components, Consts, DBLinks, DBScope, Editors, EngExt

Data.Cloud

AmazonAPI, AzureAPI, Azure, AzureBlob, AzureMessageDialog, AzureQueueMetadataDialog, AzureQueue, AzureTableDialog, AzureTableRowDialog, AzureTable, AzureUI

Datasnap

DataBkr, DBClient, DSAuth, DSAzure, DSClientMetadata, DSClientResStrs, DSClientRest, DSCommonProxy, DSCommonServer, DSCommonTable, DSConnect, DSHTTP, DSHTTPCommon, DSHTTPLayer, DSHTTPServiceProxyDispatcher, DSHTTPWebBroker, DSLoginDlg, DSIntf, DSNames, DSPlatform, DSProxy, DSProxyCpp, DSProxyCppRest, DSProxyDelphi, DSProxyDelphiRest, DSProxyDispatcher, DSProxyRest, DSProxyWriter, DSProxyWriterRegistry, DSReflect, DSServer, DSServerResStrs, DSService, DSTCPServerTransport, DSTransport, Midas, MidConst, Provider

Datasnap.Win

MConnect, MidasCon, MtsRdm, ObjBrkr, SConnect, TConnect

Fmx

(FireMonkey-Anwendungsplattform)

Ani, Canvas.D2D, Colors, Context.DX9, Controls, Dialogs, Edit, Effects, ExtCtrls, Filter, Filter.Effects, FilterCatBlur, FilterCatColor, FilterCatColorAdjust, FilterCatComposite, FilterCatDistortion, FilterCatGenerator, FilterCatGeometry, FilterCatStyle, FilterCatTiles, FilterCatTransition, Forms, Grid, Layers3D, Layouts, ListBox, Memo, Menus, Objects, Objects3D, Platform, Platform.Win, Printer, Printer.Win, TabControl, TreeView, Types, Types3D, Video

Fmx.Bind

Consts, DBEngExt, Editors, Handlers

Macapi

AppKit, CocoaTypes, CoreFoundation, CoreServices, Foundation, Mach, ObjCRuntime, ObjectiveC, OCMarshal, OpenGL, QuartzCore, Security, SystemConfiguration, VarObjC

Posix
(Mac OS X)

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

EncdDecd, HTTPSOAPTBind, HTTPUtil, inquire_vcl, IntfInfo, InvConst, Invoker, InvokeRegistry, OPConvert, OPConvertOptions, OPToSOAPDomConv, OPToSOAPDomCustom, Rio, SOAInv, SOAPAttach, SOAPAttachIntf, SOAPConn, SOAPConst, SOAPDm, SOAPDomConv, SOAPHTTPClient, SOAPHTTPPasInv, SOAPHTTPTrans, SOAPLinked, SOAPMidas, TypeTrans, UDDIHelper, WebBrokerSOAP, WebNode, WebServerExp, WSDLBind, WSDLIntf, WSDLItems, WSDLLookup, WSDLNode, WSDLPub, WSDLSOAP, WSILIntf, XSBuiltIns

Soap.Win unit scope

CertHelper

System

AnsiStrings, Character, Classes, Contnrs, ConvUtils, DateUtils, DebugUtils, Diagnostics, Generics.Collections, Generics.Defaults, HelpIntfs, Inifiles, IOUtils, Masks, MaskUtils, Math, ObjAuto, RegularExpressions, RegularExpressionsCore, RTLConsts, Rtti, ShareMem, SimpleShareMem, StdConvs, StrUtils, SyncObjs, SysConst, SysUtils, TimeSpan, Types, TypInfo, UITypes, VarCmplx, VarConv, Variants, VarUtils, WideStrings, WideStrUtils, ZLib, ZLibConst

System.Bindings

CustomScope, CustomWrapper, Consts, EvalProtocol, EvalSys, Evaluator, Expression, ExpressionDefaults, Factories, Graph, Helper, Manager, ManagerDefaults, Methods, NotifierContracts, NotifierDefaults, ObjEval, Outputs, Search

System.Internal

MachExceptions, Unwinder, VarHlpr, StrHlpr

System.Mac

CFUtils

System.Win

ComConsts, ComObj, ComObjWrapper, Comserv, Mtsobj, ObjComAuto, Registry, ScktComp, StdVCL, VCLCom

Vcl

(Visual Component Library)

ABAccessibility, ActnColorMaps, ActnCtrls, ActnList, ActnMan, ActnMenus, ActnPopup, ActnRes, AdaptReq, ADODB, AnsiStrings, AppEvnts, AutoAdap, AutoDisp, AxCtrls, BandActn, ButtonGroup, Buttons, Calendar, CaptionedDockTree, CategoryButtons, CGIApp, CGIHTTP, Character, CheckLst, Clipbrd, CmAdmCtl, ColorGrid, ComCtrls, ComStrs, Consts, Controls, ConvUtils, CtlPanel, CustomizeDlg, DBActns, DBCGrids, DBCtrls, DBGrids, DBLogDlg, DBLookup, DBOleCtl, DBPWDlg, DdeMan, Dialogs, Direct2D, DockTabSet, ExtActns, ExtCtrls, ExtDlgs, ExtThemes, FileCtrl, Forms, Graphics, GraphUtil, Grids, HTMLHelpViewer, ImgList, IMouse, LibHelp, ListActns, Mask, Menus, MPlayer, OleAuto, OleConst, OleCntnrs, OleCtrls, OleServer, Outline, PlatformDefaultStyleActnCtrls, Printers, recerror, Ribbon, RibbonActnCtrls, RibbonActnMenus, RibbonConsts, RibbonGalleryBar, RibbonLunaStyleActnCtrls, RibbonObsidianStyleActnCtrls, RibbonSilverStyleActnCtrls, RibbonStyleActnCtrls, ScreenTips, ShadowWnd, Shell.ShellConsts, Shell.ShellCtrls, ShellAnimations, StdActnMenus, StdActns, StdCtrls, StdStyleActnCtrls, SvcMgr, TabNotBk, Tabs, ThemedActnCtrls, Themes, TimeSpan, ToolWin, ValEdit, VDBConsts, WinHelpViewer, XPActnCtrls, XPMan, XPStyleActnCtrls

Vcl.Bind

Consts, DBEngExt, Editors, Handlers

Vcl.Imaging

GIFConsts, GIFImg, JConsts, jpeg, pngextra, pngimage, pnglang

Vcl.Samples

Calendar, DirOutln, Gauges, Spin

Vcl.Shell

ShellConsts, ShellCtrls

Vcl.Touch

GestureConsts, GetureCtrls, GestureMgr, Gestures, Keyboard, KeyboardTypes

Web

ApacheApp, ApacheHTTP, ApacheTwoApp, ApacheTwoHTTP, AutoDisp, BrkrConst, CGIApp, CGIHTTP, DBWeb, DBXpressWeb, DSProd, HTTPApp, HTTPD, HTTPD2, HTTPProd, HTTPUtil, WebBroker, WebCntxt, WebConst, WebFileDispatcher, WebReq

Web.Win

ISAPIApp, IsapiHTTP, Sockets

Winapi

AccCtrl, AclAPI, ActiveX, ADOInt, AspTlb, COMAdmin, CommCtrl, CommDlg, ComSvcs, Cor, CorError, CorHdr, Cpl, D2D1, D3DX8, D3DX9, DDEml, Direct3D, Direct3D8, Direct3D9, DirectDraw, DirectInput, DirectMusic, DirectPlay8, DirectSetup, DirectShow9, DirectSound, Dlgs, DwmApi, DX7toDX8, DxDiag, DXErr8, dXErr9, DXFile, DxgiFormat, DXTypes, FlatSB, GDIAPI, GDIOBJ, GDIPUTIL, ImageHlp, Imm, IpExport, IpHlpApi, IpRtrMib, IpTypes, Isapi, Isapi2, KnownFolders, LZExpand, Manipulations, Mapi, Messages, MMSystem, MSInkAut, MsInkAut15, msxml, Mtx, MultiMon, Nb30, ObjectArray, Ole2, oleacc, OleCtl, OleDlg, OpenGL, Penwin, PenWinapi, PropKey, PropSys, PsAPI, Qos, RegStr, RichEdit, RtsCom, ShellAPI, SHFolder, ShlObj, ShLwApi, StructuredQuery, StructuredQueryCondition, THelp32, TpcShrd, UrlMon, UxTheme, Wincodec, WinCtrl, Windows, WinInet, Winsafer, WinSock, WinSock2, WinSpool, WinSvc, WMF9

Xml

adomxmldom, DTDSchema, XDRSchema, XMLConst, XMLDataToSchema, XMLDoc, xmldom, XMLIniFile, XMLIntf, XMLSchema, XMLSchema99, XMLSchemaTags

Xml.Internal

AbnfUtils, AdomCore_4_3, CodecUtilsWin32, EncodingUtils, LangUtils, ParserUtilsWin32, TreeUtils, UriUtils, WideStringUtils, XmlRulesUtils

Xml.Win

msxmldom

Units ohne Unit-Gültigkeitsbereichsnamen

Die folgenden Units gehören keinem Unit-Gültigkeitsbereich an. Für diese Units müssen Sie in der uses-Klausel oder der #include-Anweisung keine Unit-Gültigkeitsbereichsnamen angeben.

  • ActnRes
  • AdaptReq
  • AutoAdap
  • ComApp
  • CompProd
  • CtlPanel
  • DBAdapt
  • DBAdaptImg
  • DesignEditors
  • DesignIntf
  • DSAzure
  • IB, IBBlob, und alle anderen IB-Units (InterBase)
  • MidItems
  • MidProd
  • PagItems
  • PlatformAPI
  • ReqFiles
  • ReqMulti
  • SessColn
  • SHDocVw
  • SimpleDS
  • SiteComp
  • SiteProd
  • WebAdapt
  • WebComp
  • WebContnrs
  • WebDisp
  • WebFact
  • WebForm
  • WebModu
  • WebScript
  • WebSess
  • WebUsers
  • XMLBrokr
  • Xmlxform
  • XSLProd

Unit-Namen in alphabetischer Reihenfolge mit ihren Unit-Gültigkeitsbereichen

Eine Referenzliste der Unit-Namen mit den zugehörigen Unit-Gültigkeitsbereichsnamen finden Sie unter Alphabetische Liste der Unit-Namen mit Unit-Gültigkeitsbereichen.

Themen

Siehe auch

In anderen Sprachen