Noms de portées d'unités

De Appmethod Topics
Aller à : navigation, rechercher

Remonter à Introduction à la bibliothèque FireMonkey

Les noms de portées d'unités sont des préfixes qui sont ajoutés devant les noms d'unités dans les bibliothèques de Appmethod (FMX-RTL). C'est-à-dire que les noms des unités, fonctions, classes et membres ont un nom de portée d'unité ajouté devant le nom de l'unité, comme suit :

Syntaxe et description

Le nom de portée d'unité précède le nom d'unité :

<unitscope>.<unitname>. ...

Par exemple, l'unité SysUtils fait partie de la portée d'unité System, comme suit :

System.SysUtils

et l'unité Controls fait partie de la portée d'unité FMX :

FMX.Controls

Les noms de portées d'unités :

  • Classifient les unités en groupes élémentaires tels que System, FMX, et ainsi de suite (les portées d'unités sont classifiées dans Portées d'unités).
  • Garantissent la compatibilité du code que vous écrivez en utilisant l'EDI.
  • Différencient les membres dont les noms sont ambigus (c'est-à-dire, garantissent une résolution correcte des noms quand le nom d'un membre correspond au nom d'un membre d'une autre unité).
  • Commencent typiquement par une lettre majuscule unique suivie de lettres minuscules (par exemple, Data).
  • Sont typiquement constitués d'un élément, bien que certains soient constitués de deux éléments (par exemple System.Generics).


Les noms entièrement qualifiés doivent inclure le nom de portée d'unité

Par exemple, voici l'identificateur partiellement qualifié de la classe TStream :

Classes.TStream

Le nom Classes.TStream n'est pas considéré comme étant un nom de classe entièrement qualifié car les noms entièrement qualifiés doivent être préfixés par une portée d'unité, c'est-à-dire qu'ils doivent inclure le nom de la portée d'unité. Dans ce cas, le nom de portée d'unité System doit être ajouté au nom d'unité Classes afin de générer un nom entièrement qualifié ou préfixé par une portée d'unité, comme suit :

  • Dans Object Pascal, le nom d'identificateur entièrement qualifié pour TStream est :
    System.Classes.TStream
  • Dans C++, les noms de portées d'unités utilisent l'opérateur de portée C++ (::). Le nom entièrement qualifié pour la classe TStream dans du code C++ est :
    System::Classes::TStream


Comment spécifier des noms d'unités préfixés par une portée d'unité dans votre code

Pour tout nouveau développement, vous devez spécifier la portée d'unité pour les unités de votre application. Choisissez l'une des méthodes suivantes :

  • Partout :
    Qualifiez entièrement le nom de tous les membres partout dans votre code. L'utilisation d'une qualification complète partout dans votre application, y compris les noms de portées d'unités, garantit les temps de compilation les plus rapides.
  • Clause Uses ou #includes :
    Qualifiez entièrement les noms des unités (avec la portée d'unité et les noms d'unités) dans la clause uses ou dans #include. Vous pouvez ensuite, dans votre code, qualifier partiellement les noms des membres de ces unités que vous avez qualifiées entièrement (y compris la portée d'unité) dans la clause uses ou dans #include.
  • Dans Options de projet :
    Ajoutez les noms de portée d'unité dans l'option Noms de portées d'unités sur la page Compilateur Object Pascal de la boîte de dialogue Options de projet.

YellowBang.pngAttention : L'utilisation de noms partiellement qualifiés peut ralentir de manière significative le temps de compilation car les compilateurs doivent résoudre tous les noms partiellement qualifiés pendant la compilation.

Appmethod utilise les portées d'unités, et l'aide utilise aussi les noms des portées d'unités

Les experts et les templates de Appmethod utilisent et incluent correctement les noms d'unités préfixés par une portée d'unité. Dans l'aide, certaines instances de noms d'unités, de classes et de membres n'incluent pas les noms de portées d'unités. Cependant, la documentation des bibliothèques contient les noms de portées d'unités complets dans les titres des pages.


Exemple

Si votre code contient :

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

ou :

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

Dans votre code, vous pouvez spécifier des noms de membres non qualifiés, tels que :

  GetPackageInfo  // referring to System.SysUtils.GetPackageInfo
  TRect           // referring to System.Types.TRect
  TNotifyEvent    // referring to System.Classes.TNotifyEvent
  TTrackBar       // referring to FMX.Controls.TTrackBar

Portées d'unités

Il y a beaucoup plus que quelques portées d'unités, mais la plupart des portées d'unités peuvent être regroupées dans des catégories générales. Le tableau suivant liste les catégories générales et les noms de portées d'unités de chaque catégorie :

Catégorie générale Noms des portées d'unités de cette catégorie

Associée aux bases de données

Data, Data.Bind, Data.Cloud, IB (System.Bindings aussi)

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)

Associée au système (bibliothèque d'exécution)

System, System.Bindings, System.Generics, System.Math, System.Sensors, System.Tether

Vcl (bibliothèque de composants visuels)

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

SOAP, COM

Soap

Associée au Web

Web, Web.Win

API Windows

Winapi (RTL)

Traitement XML

Xml, Xml.Internal, Xml.Win

  • Dix portées d'unités sont assocciées à FireMonkey (FMX, FMX.ASE, FMX.Bind, FMX.Canvas, FMX.DAE, FMX.DateTimeControls, FMX.EmbeddedControls, FMX.Filter, FMX.ListView, FMX.MediaLibrary).
  • La portée d'unité Soap contient des unités associées à COM.
  • La portée d'unité System a plusieurs portées d'unités, parmi lesquelles System.Bindings, System.Generics, System.Math, System.Sensors, System.Tether.
  • La portée d'unité Xml contient quatre unités associées au traitement XML, comme Xml.Win.msxmldom.

Les portées d'unités et les unités de chaque portée d'unité

Le tableau ci-après fournit les informations suivantes :

  • Pour les unités documentées dans l'aide, un lien vers la portée d'unité vous permettant de voir les unités qui appartiennent à cette portée d'unité.
  • Pour les unités externes non documentées dans l'aide, une liste des unités qui appartiennent à la portée d'unité.
Nom de portée d'unité Unités

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

Voir Data

Data.Bind

Voir Data.Bind

Data.Cloud

Voir Data.Cloud

DataSnap

Voir Datasnap

FMX
(plate-forme d'application FireMonkey)

Voir FMX

IBX

Voir IBX

iOSapi (RTL)

AssetsLibrary, AVFoundation, CocoaTypes, CoreAudio, CoreData, CoreGraphics, CoreImage, CoreLocation, CoreMedia, CoreMotion, CoreTelephony, CoreText, CoreVideo, Foundation, GLKit, MediaPlayer, OpenGLES, QuartzCore, UIKit

Macapi (RTL) (Frameworks Mac Objective-C)

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

Voir Soap

SysInit

Voir SysInit

System

Voir System

System.Win

Voir System.Win

Vcl

(bibliothèque de composants visuels)

Voir Vcl

Web featurerow="radstudio"

Voir Web

Winapi

Voir Winapi

Xml

Voir Xml


Rubriques

Voir aussi