表示: Delphi C++
表示設定

ユニット スコープ名

提供:RAD Studio
移動: 案内, 検索

RAD Studio 入門 への移動


ユニット スコープ名は、VCL-FMX-RTL ライブラリ群に含まれているユニット名の先頭に付けられる接頭辞です。 つまり、ユニット、関数、クラス、メンバの名前では、以下のように、ユニット名の先頭にユニット スコープ名が付くようになりました。

目次

構文と説明

<unitscope>.<unitname>. ...

たとえば、以下のように、SysUtils ユニットは System ユニット スコープの一部となりました。

System.SysUtils

また、以下のように、Controls ユニットは Vcl ユニット スコープの一部となりました。

Vcl.Controls 

ユニット スコープ名の特徴は以下のとおりです。

  • ユニットを、Vcl、System、Fmx などの基本グループに分類します(ユニット スコープはこの後の「ユニット スコープ」セクションで分類されています)。
  • IDE を使って作成するコードの互換性を確保します。
  • あいまい(複数の解釈が可能)な名前のメンバを識別します(つまり、メンバの名前が別のユニットのメンバの名前と一致したときでも、名前の解決を必ず正しく行えるようにします)。
  • 通常、大文字の 1 文字で始まり、その後に小文字の文字列が続きます(たとえば、VclFmx)。
  • 通常は 1 つの要素(たとえば Winapi など)で構成されますが、2 つの要素で構成されるものもあります(たとえば System.Win など)。

Indy や TeeChart などのサードパーティ製品には、ユニット スコープが設定されていません。 サードパーティ コンポーネントで新しいコードを開発する際には、ユニット スコープ名を付ける必要はありません。uses 句に追加されるエントリには自動的にスコープが設定されるからです。

独自作成したコンポーネントへのユニット スコープ名の追加」のセクションで説明しているように、コンポーネント開発者はユニット スコープ名を追加できます。

完全修飾名にはユニット スコープ名が必要

1 つの注目すべき例外を除き、従来のコードは変更せずに引き続き動作するはずです。 1 つの例外というのは、コードそのものに含まれているスコープ付き識別子つまり修飾識別子です。 完全修飾識別子名には、ユニット スコープ設定が必要になりました。 つまり、既存のコード(ユニット スコープを設定していない)で修飾識別子を使用した場合は、コンパイルするのに変更が必要です。 ユニット名にユニット スコープ名を付加する必要があります。

たとえば、TStream クラスの完全修飾識別子は、以前の製品リリースであれば以下のように指定しました。

Classes.TStream

Classes.TStream という名前はもう完全修飾クラス名とは見なされません。完全修飾名はユニット スコープ設定されていなければならなくなった、つまり、ユニット スコープ名を含んでいる必要があるからです。 この場合、ユニット スコープ設定された名前つまり完全修飾名にするには、以下のように、ユニット スコープ名 SystemClasses ユニット名に付加する必要があります。

  • Delphi では、 TStream の完全修飾識別子名は次のようになります。
    System.Classes.TStream
  • C++ では、C++ スコープ演算子(::)がユニット スコープ名で使用されます。 TStream クラスの完全修飾名は、C++ コードでは次のようになります。
    System::Classes::TStream

考え得るコードの変更: 既存のコードに修飾識別子(たとえば Classes.TStream.Seek など)が含まれている場合は、識別子がユニット スコープ設定され完全修飾されたもの(たとえば System.Classes.TStream.Seek など)になるように、名前を修正する必要があります。

ユニット スコープ設定されたユニット名をコードで指定する方法

新規開発の場合は、アプリケーション内のユニットにユニット スコープを指定する必要があります。 それには、以下のいずれかの方法を選択します。

  • あらゆる場所で: コード全体を通して、すべてのメンバの名前を完全修飾します。 アプリケーション全体を通して完全修飾名を使用しユニット スコープ名を名前に含めることで、コンパイル時間は確実に短縮されます。
  • uses 句または #include 指令で:uses 句または #include 指令で、(ユニット スコープ名とユニット名を使って)ユニット名を完全修飾します。 そうすれば、コードでは、uses 句または #include 指令で(ユニット スコープを使って)完全修飾したユニットのメンバの名前については、部分修飾で済ませることができます。
  • [プロジェクト オプション]ダイアログ ボックスで: [プロジェクト オプション]ダイアログ ボックスの [Delphi コンパイラ] ページの[ユニット スコープ名]オプションにユニット スコープ名を追加します。
注意: 部分修飾名を使用すると、コンパイル中にコンパイラがすべての部分修飾名を解決する必要があるため、コンパイルが著しく遅くなるおそれがあります。

RAD Studio はユニット スコープを使用し、ヘルプもまたユニット スコープ名を使用するように

RAD Studio に用意されているウィザードやテンプレートは、ユニット スコープ設定されたユニット名を適切に使用し組み込むように既に更新されています。 ヘルプでは、一部のユニット名、クラス名、メンバ名に、まだユニット スコープ名が付加されていません。 ただし、VCL-FMX-RTL Libraries documentation では、ユニット スコープの完全名がページ タイトルに追加されています。


コードに以下が記述されている場合

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

または

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

コードでは、たとえば以下のような修飾されていないメンバ名を指定することができます。

  GetPackageInfo  // System.SysUtils.GetPackageInfo を参照
  TRect           // System.Types.TRect を参照
  TNotifyEvent    // System.Classes.TNotifyEvent 参照
  TTrackBar       // FMX.Controls.TTrackBar を参照

ユニット スコープ

かなりの数のユニット スコープがありますが、それらの大半は、Vcl、Database、System などのいくつかの一般的なカテゴリに分類できます。 これらの一般的なカテゴリと各カテゴリに属するユニット スコープ名の一覧を以下の表に示します。

一般的なカテゴリ そのカテゴリに属するユニット スコープ名

データベース関連

Bde, Data, Data.Bind, Data.Cloud, Datasnap, Datasnap.Win, IB (また System.Bindings

FireMonkey

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

Mac OS X

Macapi, Posix, System.Mac

システム関連(ランタイム ライブラリ)

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

VCL(ビジュアル コンポーネント ライブラリ)

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

SOAP、COM

Soap

Web 関連

Web, Web.Win

Windows API

Winapi

XML 処理

Xml, Xml.Internal, Xml.Win


  • データベース関連のユニット スコープは 9 個(Bde、Data、Data.Bind、Data.Cloud、Data.Win、DataSnap、DataSnap.Win、Db、IB)です。
  • FireMonkey 関連のユニット スコープは 2 個(Fmx、Fmx.Bind)です。
  • Mac 関連のユニット スコープは 3 個(Macapi、Posix、System.Mac)です。
  • SOAP 関連のユニット スコープには COM 関連のユニットが含まれています。
  • System ユニット スコープには 4 個のサブスコープ(System.Bindings、System.Internal、System.Mac、System.Win)があります。
  • VCL 関連のユニット スコープは 5 個(Vcl、Vcl.Bind、Vcl.Imaging、Vcl.Samples、Vcl.Touch)です。
  • Xml.Win には、XML 処理に関連する Xml.Win.msxmldom ユニットが含まれています。

ユニット スコープおよび各ユニット スコープに属するユニット

ユニット スコープ名と各ユニット スコープに属するユニットの一覧を以下の表に示します。

ユニット スコープ名 ユニット

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 アプリケーション プラットフォーム)

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

ユニット スコープ名のないユニット

以下のユニットは、ユニット スコープ設定されずに存在しています。 これらのユニットを使用する場合は、uses 句や #include 指令でユニット スコープ名を指定する必要はありません。


  • ActnRes
  • AdaptReq
  • AutoAdap
  • ComApp
  • CompProd
  • CtlPanel
  • DBAdapt
  • DBAdaptImg
  • DesignEditors
  • DesignIntf
  • DSAzure
  • IB、IBBlob、および、他のすべての IB (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

ユニット名とそれに対応するユニット スコープ名のアルファベット順一覧

ユニット名とそれに関連するユニット スコープ名の一覧については、「ユニット名とユニット スコープ名の対応(アルファベット順一覧)」を参照してください。

トピック

関連項目

他言語版