<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Adriana.mercado</id>
	<title>RAD Studio - Contributions [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Adriana.mercado"/>
	<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/fr/Sp%C3%A9cial:Contributions/Adriana.mercado"/>
	<updated>2026-09-25T05:56:16Z</updated>
	<subtitle>Contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Accueil&amp;diff=213849</id>
		<title>Accueil</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Accueil&amp;diff=213849"/>
		<updated>2022-02-07T14:03:03Z</updated>

		<summary type="html">&lt;p&gt;Adriana.mercado : Added 10.3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Aide en ligne de {{Product}} 10.3 {{MarketingVersion}}}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;floatleft&amp;quot; style=&amp;quot;width: 49%&amp;quot;&amp;gt;&lt;br /&gt;
==[[Présentation de RAD Studio|Présentation]]==&lt;br /&gt;
* [[Présentation de RAD Studio|Présentation des fonctionnalités]]&lt;br /&gt;
* [[Nouveautés|Nouveautés]]&lt;br /&gt;
* [[Notes de release|Notes de release]]&lt;br /&gt;
* [[10.3 Rio - Release 1]]&lt;br /&gt;
* [[10.3 Rio - Release 2]]&lt;br /&gt;
* [[10.3 Rio - Release 3]]&lt;br /&gt;
&lt;br /&gt;
==[[Installation|Installation]]==&lt;br /&gt;
* [[Notes d&#039;installation|Notes d&#039;installation]]&lt;br /&gt;
* [[Plat_fr:Accueil#{{Product}} {{MarketingVersion}}|Correctifs et solutions de contournement]]&lt;br /&gt;
&lt;br /&gt;
==[[Introduction à RAD Studio|Introduction]]==&lt;br /&gt;
* [[Tutoriels|Tutoriels]] | [[Tutoriel : Utilisation de l&#039;EDI|Création de votre première application]]&lt;br /&gt;
* [[Ressources utiles pour les nouveaux utilisateurs#Exemples de code et exemples d&#039;application|Exemples de code et exemples d&#039;application]]&lt;br /&gt;
* [[Ressources utiles pour les nouveaux utilisateurs#Principes de base|Lectures]]&lt;br /&gt;
* [[Ressources utiles pour les nouveaux utilisateurs#Démos vidéo|Vidéos]]&lt;br /&gt;
* [[Ressources utiles pour les nouveaux utilisateurs#Séminaires CodeRage|Séminaires]]&lt;br /&gt;
==Développement de projets==&lt;br /&gt;
* [[Types d&#039;applications principaux|Types d&#039;applications principaux]]&lt;br /&gt;
* [[Etapes du développement d&#039;un projet|Etapes du développement d&#039;un projet]]&lt;br /&gt;
==Référence==&lt;br /&gt;
* [[Plates-formes cible prises en charge|Plates-formes cible]]&lt;br /&gt;
* [[Frameworks et bibliothèques|Frameworks et bibliothèques]]&lt;br /&gt;
* [[Langages de programmation|Langages de programmation]]&lt;br /&gt;
* [[Référence EDI et utilitaires|Référence EDI et utilitaires]]&lt;br /&gt;
* [[Index|Index]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;floatright&amp;quot; style=&amp;quot;width: 49%&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{f|winguide|&lt;br /&gt;
&lt;br /&gt;
==[[Guide du développeur Windows - Index|Développement Windows]]==&lt;br /&gt;
* [[VCL|Application Fiches VCL Windows]]&lt;br /&gt;
* [[Développement des applications Metropolis UI|Applications Metropolis UI pour la VCL et {{FM}} (Style Windows 8)]]&lt;br /&gt;
* [[Guide du concepteur de composants - Index|Guide du concepteur de composants]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==[[Applications multi-périphériques - Index|Développement multi-périphérique]]==&lt;br /&gt;
* [[Développement des applications multi-périphériques|Développement des applications multi-périphériques]]&lt;br /&gt;
* [[Etapes de la création d&#039;applications multi-périphériques|Etapes de la création d&#039;applications multi-périphériques]]&lt;br /&gt;
* [[Développement d&#039;applications de bases de données|Développement d&#039;applications de bases de données]]&lt;br /&gt;
* [[Développement d&#039;applications RAD Server, Cloud et REST|Développement d&#039;applications EMS, Cloud et REST]] {{f|datasnap|&lt;br /&gt;
* [[Développement d&#039;applications DataSnap|Développement d&#039;applications DataSnap]] }}&lt;br /&gt;
==Développement mobile==&lt;br /&gt;
* [[Développement d&#039;applications mobiles Android|Développement d&#039;applications mobiles Android]]&lt;br /&gt;
* [[Développement d&#039;applications mobiles iOS|Développement d&#039;applications mobiles iOS]]&lt;br /&gt;
* [[Tutoriels mobiles : Développement d&#039;applications mobiles (iOS et Android)|Tutoriels mobiles : Développement d&#039;applications mobiles (iOS et Android)]]&lt;br /&gt;
&lt;br /&gt;
{{f|radstudio|&lt;br /&gt;
&lt;br /&gt;
==[[Ecriture d&#039;applications Internet - Index|Développement Web]]==&lt;br /&gt;
* [[Utilisation de WebBroker - Index|Utilisation de WebBroker]]&lt;br /&gt;
==[[Modélisation UML|Modélisation UML]]==&lt;br /&gt;
* [[Concepts de modélisation|Concepts de modélisation]]&lt;br /&gt;
* [[Procédures de modélisation|Procédures de modélisation]]&lt;br /&gt;
* [[Référence de la modélisation - Index|Référence de la modélisation]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Delphi]]&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Main Page]]&lt;br /&gt;
[[de:Hauptseite]]&lt;br /&gt;
[[ja:メインページ]]&lt;/div&gt;</summary>
		<author><name>Adriana.mercado</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Types_simples_(Delphi)&amp;diff=213433</id>
		<title>Types simples (Delphi)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Types_simples_(Delphi)&amp;diff=213433"/>
		<updated>2020-04-02T21:19:45Z</updated>

		<summary type="html">&lt;p&gt;Adriana.mercado : /* Types réels */ Erased (-(263+1)/10000.. 263/10000)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
{{Parent|Types de données, variables et constantes - Index}}&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;ordinal&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;real&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Ingeger&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Character&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Boolean&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Enumerated&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Real&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Ordinal&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Subrange&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Ord&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Pred&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Succ&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;High&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Low&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Cardinal&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;cardinal&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Int32&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;UInt32&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Shortint&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Smallint&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;SByte&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Int16&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Longint&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Byte&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Word&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Longword&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;UInt16&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;UInt64&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Inc&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Dec&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;IntToStr&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;IntToHex&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Round&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Trunc&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;StrToInt64&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;StrToInt65Def&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;AnsiChar&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;WideChar&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Char&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;SizeOf&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Chr&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;False&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;True&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;&amp;amp;lt;&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;&amp;amp;gt;&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;&amp;amp;lt;&amp;amp;gt;&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;=&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;ByteBool&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;WordBool&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;LongBool&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Ord(False)&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Ord(True)&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Succ(False)&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Pred(True)&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Real48&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Single&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Double&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Extended&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Comp&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;Currency&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;($REALCOMPATIBILITY ON)&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
Les types simples, qui comportent les types ordinaux et les types réels, définissent des ensembles ordonnés de valeurs.&lt;br /&gt;
&lt;br /&gt;
==Types ordinaux==&lt;br /&gt;
&lt;br /&gt;
Les types ordinaux incluent les types entier, caractère, booléen, énuméré et intervalle. Un type ordinal définit un ensemble ordonné de valeurs dans lequel chaque valeur, sauf la première, a un prédécesseur unique et chaque valeur, sauf la dernière, a un successeur unique. En outre, chaque valeur a un rang qui détermine l&#039;ordre du type. Dans la plupart des cas, si une valeur a le rang &#039;&#039;n&#039;&#039;, son prédécesseur a le rang &#039;&#039;n-1&#039;&#039; et son successeur a le rang &#039;&#039;n+1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Pour les types entiers, le rang d&#039;une valeur est la valeur elle-même. Les types sous-intervalle conservent les rangs de leurs types de base. Pour les autres types ordinaux, la première valeur a par défaut le rang 0, la suivante a le rang 1, et ainsi de suite. La déclaration d&#039;un type énuméré peut explicitement redéfinir cette valeur par défaut.&lt;br /&gt;
&lt;br /&gt;
Plusieurs fonctions prédéfinies opèrent sur les valeurs ordinales et les identificateurs de type. Les plus importantes sont résumées ci-dessous.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039; Fonction &#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039; Paramètre &#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039; Valeur de retour &#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039; Remarques &#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_fr:System.Ord|Ord]]&lt;br /&gt;
|&lt;br /&gt;
Expression ordinale&lt;br /&gt;
|&lt;br /&gt;
Rang de la valeur de l&#039;expression&lt;br /&gt;
|&lt;br /&gt;
Ne prend pas d&#039;arguments Int64.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_fr:System.Pred|Pred]]&lt;br /&gt;
|&lt;br /&gt;
Expression ordinale&lt;br /&gt;
|&lt;br /&gt;
Prédécesseur de la valeur de l&#039;expression&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
      [[lib_fr:System.Succ|Succ]]&lt;br /&gt;
|&lt;br /&gt;
Expression ordinale&lt;br /&gt;
|&lt;br /&gt;
Successeur de la valeur de l&#039;expression&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
      [[lib_fr:System.High|High]]&lt;br /&gt;
|&lt;br /&gt;
Identificateur de type ordinal ou variable de type ordinal&lt;br /&gt;
|&lt;br /&gt;
Plus grande valeur du type&lt;br /&gt;
|&lt;br /&gt;
Opère également sur les types chaîne courte et les tableaux.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_fr:System.Low|Low]]&lt;br /&gt;
|&lt;br /&gt;
Identificateur de type ordinal ou variable de type ordinal&lt;br /&gt;
|&lt;br /&gt;
Plus petite valeur du type&lt;br /&gt;
|&lt;br /&gt;
Opère également sur les types chaîne courte et les tableaux.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Par exemple, &#039;&#039;&#039;High(Byte)&#039;&#039;&#039; renvoie 255 car la plus grande valeur du type [[lib_fr:System.Byte|Byte]] est 255, et &#039;&#039;&#039;Succ(2)&#039;&#039;&#039; renvoie 3 car 3 est le successeur de 2.&lt;br /&gt;
&lt;br /&gt;
Les procédures standard &#039;&#039;&#039;Inc&#039;&#039;&#039; et &#039;&#039;&#039;Dec&#039;&#039;&#039; incrémentent et décrémentent la valeur d&#039;une variable ordinale. Par exemple, &#039;&#039;&#039;Inc(I)&#039;&#039;&#039; est équivalent à &amp;lt;code&amp;gt;I&amp;amp;nbsp;:= Succ(I)&amp;lt;/code&amp;gt; et, si &amp;lt;code&amp;gt;I&amp;lt;/code&amp;gt; est une variable entière, c&#039;est également équivalent à &amp;lt;code&amp;gt;I&amp;amp;nbsp;:= I + 1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Types entiers===&lt;br /&gt;
&lt;br /&gt;
Un type entier représente un sous-ensemble des nombres intégraux.&lt;br /&gt;
&lt;br /&gt;
Les types entiers peuvent être &#039;&#039;dépendants de la plate-forme&#039;&#039; et &#039;&#039;indépendants de la plate-forme&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====Types entiers dépendants de la plate-forme====&lt;br /&gt;
&lt;br /&gt;
Les types entiers dépendants de la plate-forme sont transformés pour s&#039;ajuster à la taille en bits de la plate-forme du compilateur en cours. Les types entiers dépendants de la plate-forme sont &lt;br /&gt;
[[lib_fr:System.NativeInt|NativeInt]], [[lib_fr:System.NativeUInt|NativeUInt]], [[lib_fr:System.Longint|LongInt]] et [[lib_fr:System.LongWord|LongWord]]. L&#039;utilisation de ces types est souhaitable dans la mesure du possible, puisqu&#039;ils donnent de meilleures performances pour le système d&#039;exploitation et la CPU sous-jacente. Le tableau suivant illustre leurs intervalles et les formats de stockage pour le compilateur {{Delphi}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Types entiers dépendants de la plate-forme&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039; Type &#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039; Intervalle &#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039; Format &#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039; Alias &#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_fr:System.NativeInt|NativeInt]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;-2147483648..2147483647&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;-2^63..2^63-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
Signé sur 32 bits sur les plates-formes 32 bits ou&amp;lt;br /&amp;gt;&lt;br /&gt;
Signé sur 64 bits sur les plates-formes 64 bits &lt;br /&gt;
|&lt;br /&gt;
[[lib_fr:System.Integer|Integer]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[lib_fr:System.Int64|Int64]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_fr:System.NativeUInt|NativeUInt]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;0..4294967295&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;0..2^64-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
Non signé sur 32 bits sur les plates-formes 32 bits ou&amp;lt;br /&amp;gt;&lt;br /&gt;
Non signé sur 64 bits sur les plates-formes 64 bits &lt;br /&gt;
|&lt;br /&gt;
[[lib_fr:System.Cardinal|Cardinal]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[lib_fr:System.UInt64|UInt64]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_fr:System.Longint|LongInt]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;-2147483648..2147483647&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;-2&amp;lt;sup&amp;gt;63&amp;lt;/sup&amp;gt;..2&amp;lt;sup&amp;gt;63&amp;lt;/sup&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
Plates-formes Windows 32 bits et 64 bits&amp;lt;br /&amp;gt;&lt;br /&gt;
Plates-formes iOS 64 bits&lt;br /&gt;
|&lt;br /&gt;
[[lib_fr:System.Integer|Integer]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[lib_fr:System.Int64|Int64]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_fr:System.LongWord|LongWord]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;0..4294967295&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;0..2&amp;lt;sup&amp;gt;64&amp;lt;/sup&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
Plates-formes Windows 32 bits et 64 bits&amp;lt;br /&amp;gt;&lt;br /&gt;
Plates-formes iOS 64 bits&lt;br /&gt;
|&lt;br /&gt;
[[lib_fr:System.Cardinal|Cardinal]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[lib_fr:System.UInt64|UInt64]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Remarque :&#039;&#039;&#039; Les plates-formes 32 bits incluent Windows 32 bits, OSX32, iOS 32 bits et Android.&lt;br /&gt;
&lt;br /&gt;
====Types entiers indépendants de la plate-forme====&lt;br /&gt;
&lt;br /&gt;
Les types entiers indépendants de la plate-forme ont toujours la même taille, quelle que soit la plate-forme utilisée. Les types entiers indépendants de la plate-forme incluent [[lib_fr:System.Shortint|ShortInt]], [[lib_fr:System.Smallint|SmallInt]], [[lib_fr:System.Longint|LongInt]], [[lib_fr:System.Integer|Integer]], [[lib_fr:System.Int64|Int64]], [[lib_fr:System.Byte|Byte]], [[lib_fr:System.Word|Word]], [[lib_fr:System.LongWord|LongWord]], [[lib_fr:System.Cardinal|Cardinal]] et [[lib_fr:System.UInt64|UInt64]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Types entiers indépendants de la plate-forme&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039; Type &#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039; Intervalle &#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039; Format &#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039; Alias &#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_fr:System.Shortint|ShortInt]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;-128..127&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
Signé sur 8 bits&lt;br /&gt;
|&lt;br /&gt;
[[lib_fr:System.Int8|Int8]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_fr:System.Smallint|SmallInt]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;-32768..32767&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
Signé sur 16 bits&lt;br /&gt;
|&lt;br /&gt;
[[lib_fr:System.Int16|Int16]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_fr:System.FixedInt|FixedInt]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;-2147483648..2147483647&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
Signé sur 32 bits&lt;br /&gt;
|&lt;br /&gt;
[[lib_fr:System.Int32|Int32]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_fr:System.Integer|Integer]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;-2147483648..2147483647&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
Signé sur 32 bits&lt;br /&gt;
|&lt;br /&gt;
[[lib_fr:System.Int32|Int32]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_fr:System.Int64|Int64]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;-2^63..2^63-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
Signé sur 64 bits&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
      [[lib_fr:System.Byte|Byte]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;0..255&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
Non signé sur 8 bits&lt;br /&gt;
|&lt;br /&gt;
[[lib_fr:System.UInt8|UInt8]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_fr:System.Word|Word]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;0..65535&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
Non signé sur 16 bits&lt;br /&gt;
|&lt;br /&gt;
[[lib_fr:System.UInt16|UInt16]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_fr:System.FixedUInt|FixedUInt]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;0..4294967295&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
Non signé sur 32 bits&lt;br /&gt;
|&lt;br /&gt;
[[lib_fr:System.UInt32|UInt32]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_fr:System.Cardinal|Cardinal]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;0..4294967295&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
Non signé sur 32 bits&lt;br /&gt;
|&lt;br /&gt;
[[lib_fr:System.UInt32|UInt32]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_fr:System.UInt64|UInt64]]&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code&amp;gt;0..2^64-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
Non signé sur 64 bits&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En général, les opérations arithmétiques sur les entiers renvoient une valeur de type [[lib_fr:System.Integer|Integer]], qui est équivalente au type [[lib_fr:System.Longint|LongInt]] sur 32 bits. Les opérations ne renvoient une valeur de type [[lib_fr:System.Int64|Int64]] que si elles portent sur un ou plusieurs opérandes [[lib_fr:System.Int64|Int64]]. Par conséquent, le code suivant produit des résultats incorrects :&lt;br /&gt;
&lt;br /&gt;
 var&lt;br /&gt;
 I: Integer;&lt;br /&gt;
 J: Int64;&lt;br /&gt;
 ... &lt;br /&gt;
 I := High(Integer);&lt;br /&gt;
 J := I + 1;&lt;br /&gt;
&lt;br /&gt;
Pour obtenir une valeur de retour [[lib_fr:System.Int64|Int64]] dans cette situation, transtypez &amp;lt;code&amp;gt;I&amp;lt;/code&amp;gt; en [[lib_fr:System.Int64|Int64]] :&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
 J := Int64(I) + 1;&lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations, voir [[Opérateurs arithmétiques|Opérateurs arithmétiques]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Remarque :&#039;&#039;&#039; Certaines routines standard qui attendent des arguments entiers tronquent les valeurs [[lib_fr:System.Int64|Int64]] à 32 bits. Toutefois, les routines &#039;&#039;&#039;High&#039;&#039;&#039;, &#039;&#039;&#039;Low&#039;&#039;&#039;, &#039;&#039;&#039;Succ&#039;&#039;&#039;, &#039;&#039;&#039;Pred&#039;&#039;&#039;, &#039;&#039;&#039;Inc&#039;&#039;&#039;, &#039;&#039;&#039;Dec&#039;&#039;&#039;, &#039;&#039;&#039;IntToStr&#039;&#039;&#039; et &#039;&#039;&#039;IntToHex&#039;&#039;&#039; supportent complètement les arguments [[lib_fr:System.Int64|Int64]]. De même, les fonctions &#039;&#039;&#039;Round&#039;&#039;&#039;, &#039;&#039;&#039;Trunc&#039;&#039;&#039;, &#039;&#039;&#039;StrToInt64&#039;&#039;&#039; et &#039;&#039;&#039;StrToInt64Def&#039;&#039;&#039; renvoient des valeurs [[lib_fr:System.Int64|Int64]]. Quelques routines n&#039;acceptent pas les valeurs [[lib_fr:System.Int64|Int64]].&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quand vous incrémentez la dernière valeur ou décrémentez la première valeur d&#039;un type entier, le résultat boucle sur le début ou la fin de l&#039;intervalle. Par exemple, le type [[lib_fr:System.Shortint|ShortInt]] a l&#039;étendue -128..127 ; donc après l&#039;exécution du code suivant :&lt;br /&gt;
&lt;br /&gt;
 var&lt;br /&gt;
 I: Shortint;&lt;br /&gt;
 ...&lt;br /&gt;
 I := High(Shortint);&lt;br /&gt;
 I := I + 1;&lt;br /&gt;
&lt;br /&gt;
la valeur de &amp;lt;code&amp;gt;I&amp;lt;/code&amp;gt; est -128. Si la vérification des limites de compilation est activée, ce code génère néanmoins une erreur d&#039;exécution.&lt;br /&gt;
&lt;br /&gt;
===Types caractères===&lt;br /&gt;
&lt;br /&gt;
Les types caractères sont [[lib_fr:System.Char|Char]], [[lib_fr:System.AnsiChar|AnsiChar]], [[lib_fr:System.WideChar|WideChar]], [[lib_fr:System.UCS2Char|UCS2Char]] et [[lib_fr:System.UCS4Char|UCS4Char]] :&lt;br /&gt;
&lt;br /&gt;
* [[lib_fr:System.Char|Char]] dans l&#039;implémentation en cours est équivalent à [[lib_fr:System.WideChar|WideChar]], puisque le type de chaîne par défaut est maintenant [[lib_fr:System.UnicodeString|UnicodeString]]. Puisque l&#039;implémentation de [[lib_fr:System.Char|Char]] peut changer dans les futures releases, il est judicieux d&#039;utiliser la fonction standard [[lib_fr:System.SizeOf|SizeOf]] plutôt qu&#039;une constante codée en dur lors de l&#039;écriture de programmes qui doivent gérer des caractères de tailles différentes.&lt;br /&gt;
* Les valeurs [[lib_fr:System.AnsiChar|AnsiChar]] sont des caractères sur un octet (8 bits) ordonnés selon le jeu de caractères local éventuellement multi-octets.&lt;br /&gt;
* Les caractères [[lib_fr:System.WideChar|WideChar]] utilisent plus d&#039;un octet pour représenter chaque caractère. Dans les implémentations en cours, les valeurs [[lib_fr:System.WideChar|WideChar]] sont des caractères sur un mot (16 bits) ordonnés selon le jeu de caractères Unicode (ils pourraient être plus longs dans de futures implémentations). Les 256 premiers caractères Unicode correspondent aux caractères ANSI.&lt;br /&gt;
* [[lib_fr:System.UCS2Char|UCS2Char]] est un alias pour [[lib_fr:System.WideChar|WideChar]].&lt;br /&gt;
* [[lib_fr:System.UCS4Char|UCS4Char]] est utilisé pour fonctionner avec des caractères Unicode sur 4 octets.&lt;br /&gt;
&lt;br /&gt;
Une constante chaîne de longueur 1, comme &#039;A&#039;, peut désigner une valeur caractère. La fonction prédéfinie &#039;&#039;&#039;Chr&#039;&#039;&#039; renvoie la valeur caractère pour tout entier de l&#039;étendue de [[lib_fr:System.WideChar|WideChar]] ; par exemple &#039;&#039;&#039;Chr(65)&#039;&#039;&#039; renvoie la lettre A.&lt;br /&gt;
&lt;br /&gt;
Les valeurs [[lib_fr:System.AnsiChar|AnsiChar]] et [[lib_fr:System.WideChar|WideChar]], comme les entiers, bouclent quand elles sont décrémentées ou incrémentées au-delà du début ou de la fin de leur étendue (à moins que la vérification des limites ne soit activée). Ainsi, une fois le code suivant exécuté :&lt;br /&gt;
&lt;br /&gt;
 var Letter: AnsiChar;&lt;br /&gt;
 I: Integer;&lt;br /&gt;
 begin&lt;br /&gt;
   Letter := High(Letter);&lt;br /&gt;
   for I := 1 to 66 do Inc(Letter);&lt;br /&gt;
 end;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Letter&amp;lt;/code&amp;gt; a la valeur A (ASCII 65).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt; &#039;&#039;&#039;Remarque :&#039;&#039;&#039; Le type [[lib_fr:System.AnsiChar|AnsiChar]] n&#039;est pas pris en charge par les compilateurs mobiles {{Delphi}}, mais il est utilisé par les compilateurs de bureau {{Delphi}}. Pour davantage d&#039;informations, voir [[Migration du code Delphi en mobile depuis le bureau|Migration du code Delphi en mobile depuis le bureau]].&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Types booléens===&lt;br /&gt;
&lt;br /&gt;
Les 4 types booléens prédéfinis sont [[lib_fr:System.Boolean|Boolean]], [[lib_fr:System.ByteBool|ByteBool]], [[lib_fr:System.WordBool|WordBool]] et [[lib_fr:System.LongBool|LongBool]]. [[lib_fr:System.Boolean|Boolean]] est le type de prédilection. Les autres types existent pour fournir la compatibilité avec les bibliothèques des autres langages et systèmes d&#039;exploitation.&lt;br /&gt;
&lt;br /&gt;
Une variable [[lib_fr:System.Boolean|Boolean]] occupe un octet de mémoire, une variable [[lib_fr:System.ByteBool|ByteBool]] occupe également un octet, une variable [[lib_fr:System.WordBool|WordBool]] occupe 2 octets (un mot), et une variable [[lib_fr:System.LongBool|LongBool]] occupe 4 octets (2 mots).&lt;br /&gt;
&lt;br /&gt;
Les valeurs booléennes sont désignées par les constantes prédéfinies &#039;&#039;&#039;True&#039;&#039;&#039; et &#039;&#039;&#039;False&#039;&#039;&#039;. Les relations suivantes s&#039;appliquent :&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039; Boolean &#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039; ByteBool, WordBool, LongBool &#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&amp;lt;code&amp;gt;False &amp;amp;lt; True&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&amp;lt;code&amp;gt;False &amp;amp;lt;&amp;amp;gt; True&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&amp;lt;code&amp;gt;Ord(False) = 0&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&amp;lt;code&amp;gt;Ord(False) = 0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&amp;lt;code&amp;gt;Ord(True) = 1&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&amp;lt;code&amp;gt;Ord(True) &amp;amp;lt;&amp;amp;gt; 0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&amp;lt;code&amp;gt;Succ(False) = True&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&amp;lt;code&amp;gt;Succ(False) = True&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&amp;lt;code&amp;gt;Pred(True) = False&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&amp;lt;code&amp;gt;Pred(False) = True&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une valeur de type [[lib_fr:System.ByteBool|ByteBool]], [[lib_fr:System.LongBool|LongBool]] ou [[lib_fr:System.WordBool|WordBool]] est considérée comme &#039;&#039;&#039;True&#039;&#039;&#039; quand son rang est non nul. Si une telle valeur apparaît dans un contexte où un [[lib_fr:System.Boolean|Boolean]] est attendu, le compilateur convertit automatiquement toute valeur de rang non nul en &#039;&#039;&#039;True&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Les remarques précédentes portent sur le rang des valeurs booléennes, non pas sur les valeurs mêmes. Dans {{Delphi}}, les expressions booléennes ne peuvent être comparées avec des entiers ou des réels. Par exemple, si X est une variable entière, l&#039;instruction :&lt;br /&gt;
&lt;br /&gt;
 if X then ...;&lt;br /&gt;
&lt;br /&gt;
génère une erreur de compilation. Le transtypage de la variable en un type booléen n&#039;est pas fiable, mais les deux alternatives suivantes fonctionnent.&lt;br /&gt;
&lt;br /&gt;
  if X &amp;amp;lt;&amp;amp;gt; 0 then ...;    { use an expression that returns a Boolean value }&lt;br /&gt;
   ...&lt;br /&gt;
  var OK: Boolean;       { use a Boolean variable }&lt;br /&gt;
    ... &lt;br /&gt;
  if X &amp;amp;lt;&amp;amp;gt; 0 then&lt;br /&gt;
    OK := True;&lt;br /&gt;
  if OK then ...;&lt;br /&gt;
&lt;br /&gt;
===Types énumérés===&lt;br /&gt;
&lt;br /&gt;
Un type énuméré définit un ensemble ordonné de valeurs en énumérant simplement les identificateurs désignant ces valeurs. Les valeurs n&#039;ont pas de signification propre. Pour déclarer un type énuméré, utilisez la syntaxe suivante :&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;type&#039;&#039;&#039; &#039;&#039;typeName&#039;&#039; = (&#039;&#039;val1&#039;&#039;, ...,&#039;&#039;valn&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
où &amp;lt;code&amp;gt;typeName&amp;lt;/code&amp;gt; et chaque &amp;lt;code&amp;gt;val&amp;lt;/code&amp;gt; sont des identificateurs valides. Par exemple, la déclaration :&lt;br /&gt;
&lt;br /&gt;
 type Suit = (Club, Diamond, Heart, Spade);&lt;br /&gt;
&lt;br /&gt;
définit une suite énumérée appelée &amp;lt;code&amp;gt;Suit&amp;lt;/code&amp;gt; dont les valeurs possibles sont &amp;lt;code&amp;gt;Club&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Diamond&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Heart&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;Spade&amp;lt;/code&amp;gt;, où &#039;&#039;&#039;Ord(Club)&#039;&#039;&#039; renvoie 0, &#039;&#039;&#039;Ord(Diamond)&#039;&#039;&#039; renvoie 1, et ainsi de suite.&lt;br /&gt;
&lt;br /&gt;
Quand vous déclarez un type énuméré, vous déclarez chaque &amp;lt;code&amp;gt;val&amp;lt;/code&amp;gt; comme une constante de type &amp;lt;code&amp;gt;typeName&amp;lt;/code&amp;gt;. Si les identificateurs &amp;lt;code&amp;gt;val&amp;lt;/code&amp;gt; sont utilisés dans un autre but dans la même portée, il y a un conflit de nom. Si, par exemple vous déclarez le type :&lt;br /&gt;
&lt;br /&gt;
 type TSound = (Click, Clack, Clock)&lt;br /&gt;
&lt;br /&gt;
Malheureusement, &#039;&#039;&#039;Click&#039;&#039;&#039; est aussi le nom d&#039;une méthode définie pour TControl et tous les objets de la VCL qui en descendent. Donc, si vous écrivez une application et créez un gestionnaire d&#039;événement tel que :&lt;br /&gt;
&lt;br /&gt;
  procedure TForm1.DBGridEnter(Sender: TObject);&lt;br /&gt;
   var&lt;br /&gt;
      Thing: TSound;&lt;br /&gt;
      begin &lt;br /&gt;
        ... &lt;br /&gt;
        Thing := Click;&lt;br /&gt;
      end;&lt;br /&gt;
&lt;br /&gt;
vous obtiendrez une erreur de compilation ; le compilateur interprète &#039;&#039;&#039;Click&#039;&#039;&#039; dans la portée de la procédure comme une référence à la méthode &#039;&#039;&#039;Click&#039;&#039;&#039; d&#039;un TForm. Vous pouvez contourner ce problème en qualifiant l&#039;identificateur ; si &#039;&#039;&#039;TSound&#039;&#039;&#039; est déclarée dans &#039;&#039;&#039;MyUnit&#039;&#039;&#039;, vous devez utiliser :&lt;br /&gt;
&lt;br /&gt;
 Thing := MyUnit.Click;&lt;br /&gt;
&lt;br /&gt;
Une meilleure solution consiste néanmoins à choisir des noms de constantes qui ne rentrent pas en conflit avec d&#039;autres identificateurs. Exemples :&lt;br /&gt;
&lt;br /&gt;
 type&lt;br /&gt;
   TSound = (tsClick, tsClack, tsClock);&lt;br /&gt;
   TMyColor = (mcRed, mcBlue, mcGreen, mcYellow, mcOrange);&lt;br /&gt;
   Answer = (ansYes, ansNo, ansMaybe)&lt;br /&gt;
&lt;br /&gt;
Vous pouvez utiliser directement la construction &amp;lt;code&amp;gt;(val1, ..., valn)&amp;lt;/code&amp;gt; dans les déclarations des variables, comme nom de type :&lt;br /&gt;
&lt;br /&gt;
 var MyCard: (Club, Diamond, Heart, Spade);&lt;br /&gt;
&lt;br /&gt;
Mais si vous déclarez &amp;lt;code&amp;gt;MyCard&amp;lt;/code&amp;gt; de cette manière, vous ne pouvez pas déclarer une autre variable dans la même portée en utilisant ces identificateurs de constantes. Ainsi :&lt;br /&gt;
&lt;br /&gt;
  var Card1: (Club, Diamond, Heart, Spade);&lt;br /&gt;
  var Card2: (Club, Diamond, Heart, Spade);&lt;br /&gt;
&lt;br /&gt;
génère une erreur de compilation. Mais :&lt;br /&gt;
&lt;br /&gt;
 var Card1, Card2: (Club, Diamond, Heart, Spade);&lt;br /&gt;
&lt;br /&gt;
se compile sans problème, tout comme :&lt;br /&gt;
&lt;br /&gt;
 type &lt;br /&gt;
   Suit = (Club, Diamond, Heart, Spade); &lt;br /&gt;
   var &lt;br /&gt;
     Card1: Suit;&lt;br /&gt;
     Card2: Suit;&lt;br /&gt;
&lt;br /&gt;
====Types énumérés avec les rangs explicitement assignés====&lt;br /&gt;
&lt;br /&gt;
Par défaut, le rang des valeurs énumérées commence à 0 et suit la séquence dans laquelle leurs identificateurs sont listés dans la déclaration de type. Vous pouvez redéfinir cela en assignant explicitement les rangs de certaines ou de toutes les valeurs de la déclaration. Pour assigner un rang à une valeur, faites suivre son identificateur de &#039;&#039;= constantExpression&#039;&#039;, où &#039;&#039;constantExpression&#039;&#039; est une [[Constantes déclarées|expression constante]] dont le résultat est un entier. Par exemple :&lt;br /&gt;
&lt;br /&gt;
 type Size = (Small = 5, Medium = 10, Large = Small + Medium);&lt;br /&gt;
&lt;br /&gt;
définit un type appelé &amp;lt;code&amp;gt;Size&amp;lt;/code&amp;gt; dont les valeurs possibles sont &amp;lt;code&amp;gt;Small&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Medium&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;Large&amp;lt;/code&amp;gt;, où &#039;&#039;&#039;Ord(Small)&#039;&#039;&#039; renvoie 5, &#039;&#039;&#039;Ord(Medium)&#039;&#039;&#039; renvoie 10 et &#039;&#039;&#039;Ord(Large)&#039;&#039;&#039; renvoie 15.&lt;br /&gt;
&lt;br /&gt;
Un type énuméré est en effet un intervalle dont les valeurs inférieure et supérieure correspondent aux rangs inférieur et supérieur des constantes de la déclaration. Dans l&#039;exemple précédent, le type &amp;lt;code&amp;gt;Size&amp;lt;/code&amp;gt; a 11 valeurs possibles dont le rang va de 5 à 15. (Ici, le type &amp;lt;code&amp;gt;array[Size] of Char&amp;lt;/code&amp;gt; représente un tableau de 11 caractères.) Seules trois de ces valeurs ont un nom, mais les autres sont accessibles par le biais de transtypages et de routines comme &#039;&#039;&#039;Pred&#039;&#039;&#039;, &#039;&#039;&#039;Succ&#039;&#039;&#039;, &#039;&#039;&#039;Inc&#039;&#039;&#039; et &#039;&#039;&#039;Dec&#039;&#039;&#039;. Dans l&#039;exemple suivant, des valeurs &amp;quot;anonymes&amp;quot; dans l&#039;étendue de &amp;lt;code&amp;gt;Size&amp;lt;/code&amp;gt; sont assignées à la variable &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 var &lt;br /&gt;
   X: Size; &lt;br /&gt;
   X := Small;   // Ord(X) = 5 &lt;br /&gt;
   X := Size(6); // Ord(X) = 6 &lt;br /&gt;
   Inc(X);       // Ord(X) = 7&lt;br /&gt;
&lt;br /&gt;
Toute valeur à laquelle un rang n&#039;a pas été explicitement assigné a pour rang un de plus que celui de la valeur précédente de la liste. Si aucun rang n&#039;est assigné à la première valeur, son rang est 0. Ici, étant donné la déclaration :&lt;br /&gt;
&lt;br /&gt;
 type SomeEnum = (e1, e2, e3 = 1);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;SomeEnum&amp;lt;/code&amp;gt; a seulement deux valeurs possibles : &#039;&#039;&#039;Ord(e1)&#039;&#039;&#039; renvoie 0, &#039;&#039;&#039;Ord(e2)&#039;&#039;&#039; renvoie 1, et &#039;&#039;&#039;Ord(e3)&#039;&#039;&#039; renvoie également 1 ; comme &amp;lt;code&amp;gt;e2&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;e3&amp;lt;/code&amp;gt; ont le même rang, ils représentent la même valeur.&lt;br /&gt;
&lt;br /&gt;
Les constantes énumérées sans valeur spécifique ont des informations RTTI :&lt;br /&gt;
&lt;br /&gt;
 type SomeEnum = (e1, e2, e3);&lt;br /&gt;
&lt;br /&gt;
alors que les constantes énumérées avec une valeur spécifique (comme dans l&#039;exemple ci-dessous) n&#039;en ont pas :&lt;br /&gt;
&lt;br /&gt;
 type SomeEnum = (e1 = 1, e2 = 2, e3 = 3);&lt;br /&gt;
&lt;br /&gt;
====Enumérations de portée====&lt;br /&gt;
&lt;br /&gt;
Vous pouvez utiliser les énumérations de portée dans le code {{Delphi}} si vous activez la directive [[Enumérations de portée (Delphi)|{$SCOPEDENUMS ON}]] du compilateur.&lt;br /&gt;
&lt;br /&gt;
La directive [[Enumérations de portée (Delphi)|{$SCOPEDENUMS ON ou OFF}]] du compilateur active ou désactive l&#039;utilisation des énumérations de portée dans le code Delphi. &#039;&#039;&#039;{$SCOPEDENUMS ON}&#039;&#039;&#039; définit que les énumérations sont des énumérations de portée. &#039;&#039;&#039;{$SCOPEDENUMS ON}&#039;&#039;&#039; affecte des déclarations de types énumération jusqu&#039;à la directive &#039;&#039;&#039;{$SCOPEDENUMS OFF}&#039;&#039;&#039; la plus proche. Les identificateurs de l&#039;énumération introduite dans les types énumération déclarés après la directive [[Enumérations de portée (Delphi)|{$SCOPEDENUMS ON}]] ne sont pas ajoutés à la portée globale. Pour utiliser un identificateur d&#039;énumération de portée, vous devez le qualifier avec le nom du type énumération introduisant cet identificateur.   &lt;br /&gt;
&lt;br /&gt;
Par exemple, définissons l&#039;unité suivante dans le fichier Unit1.pas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
unit Unit1;&lt;br /&gt;
interface&lt;br /&gt;
// {$SCOPEDENUMS ON} // clear comment from this directive&lt;br /&gt;
 type&lt;br /&gt;
   TMyEnum = (First, Second, Third);&lt;br /&gt;
implementation&lt;br /&gt;
 &lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et le programme suivant en utilisant cette unité&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
program Project1;&lt;br /&gt;
{$APPTYPE CONSOLE}&lt;br /&gt;
&lt;br /&gt;
uses&lt;br /&gt;
  SysUtils, Unit1 in &#039;Unit1.pas&#039;;&lt;br /&gt;
 &lt;br /&gt;
var&lt;br /&gt;
  // First: Integer;  // clear comment from this variable&lt;br /&gt;
  Value: TMyEnum;&lt;br /&gt;
begin&lt;br /&gt;
  try&lt;br /&gt;
    Value := First;   &lt;br /&gt;
//  Value := TMyEnum.First; &lt;br /&gt;
//  Value := unit1.First; &lt;br /&gt;
  except&lt;br /&gt;
    on E:Exception do&lt;br /&gt;
      Writeln(E.Classname, &#039;: &#039;, E.Message);&lt;br /&gt;
  end;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons maintenant étudier les effets de la directive [[Enumérations de portée (Delphi)|{$SCOPEDENUMS}]] du compilateur sur les portées dans lesquelles les identificateurs &amp;lt;code&amp;gt;First&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Second&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;Third&amp;lt;/code&amp;gt;, définis dans l&#039;énumération &amp;lt;code&amp;gt;TMyEnum&amp;lt;/code&amp;gt;, sont visibles.&lt;br /&gt;
&lt;br /&gt;
Commencez par &#039;&#039;&#039;exécuter (F9)&#039;&#039;&#039; ce code. Le code s&#039;exécute correctement. Cela signifie que l&#039;identificateur &amp;lt;code&amp;gt;First&amp;lt;/code&amp;gt;, utilisé dans la variable &lt;br /&gt;
&lt;br /&gt;
 Value := First;&lt;br /&gt;
&lt;br /&gt;
est l&#039;identificateur de porté globale introduit dans le type énumération &lt;br /&gt;
&lt;br /&gt;
 TMyEnum = (First, Second, Third);&lt;br /&gt;
&lt;br /&gt;
A présent, effacez le commentaire de la directive&lt;br /&gt;
&lt;br /&gt;
 {$SCOPEDENUMS ON}&lt;br /&gt;
&lt;br /&gt;
du compilateur dans l&#039;unité &amp;lt;code&amp;gt;unit1&amp;lt;/code&amp;gt;. Cette directive applique l&#039;énumération &amp;lt;code&amp;gt;TMyEnum&amp;lt;/code&amp;gt; à générer. Lancez la commande &#039;&#039;&#039;Exécuter&#039;&#039;&#039;. L&#039;erreur [[E2003 Identificateur non déclaré : &#039;%s&#039; (Delphi)|E2003 Identificateur non déclaré : &#039;First&#039;]] est générée sur la ligne&lt;br /&gt;
&lt;br /&gt;
 Value := First;&lt;br /&gt;
&lt;br /&gt;
Elle vous informe que la directive &amp;lt;code&amp;gt;{$SCOPEDENUMS ON}&amp;lt;/code&amp;gt; du compilateur empêche l&#039;ajout de l&#039;identificateur &amp;lt;code&amp;gt;First&amp;lt;/code&amp;gt;, introduit dans l&#039;énumération &amp;lt;code&amp;gt;TMyEnum&amp;lt;/code&amp;gt; de portée, à la portée globale.&lt;br /&gt;
&lt;br /&gt;
Pour utiliser les identificateurs introduits dans les énumérations de portée, préfixez une référence à un élément d&#039;énumération avec son nom de type. Par exemple, effacez le commentaire dans la seconde version  &lt;br /&gt;
&lt;br /&gt;
 Value := TMyEnum.First;&lt;br /&gt;
&lt;br /&gt;
de la variable &amp;lt;code&amp;gt;Value&amp;lt;/code&amp;gt; (et commentez la première version de &amp;lt;code&amp;gt;Value&amp;lt;/code&amp;gt;). Lancez la commande &#039;&#039;&#039;Exécuter&#039;&#039;&#039;. Le programme s&#039;exécute correctement. Cela signifie que l&#039;identificateur &amp;lt;code&amp;gt;First&amp;lt;/code&amp;gt; est connu dans la portée &amp;lt;code&amp;gt;TMyEnum&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Maintenant, commentez la directive&lt;br /&gt;
&lt;br /&gt;
 // {$SCOPEDENUMS ON}&lt;br /&gt;
&lt;br /&gt;
du compilateur dans &amp;lt;code&amp;gt;unit1&amp;lt;/code&amp;gt;. Puis effacez le commentaire de la déclaration de la variable &amp;lt;code&amp;gt;First&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 First: Integer; &lt;br /&gt;
&lt;br /&gt;
et utilisez à nouveau la variable &lt;br /&gt;
&lt;br /&gt;
 Value := First;&lt;br /&gt;
&lt;br /&gt;
A présent, le code dans &amp;lt;code&amp;gt;program Project1&amp;lt;/code&amp;gt; ressemble à :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
var&lt;br /&gt;
  First: Integer;   &lt;br /&gt;
  Value: TMyEnum;&lt;br /&gt;
begin&lt;br /&gt;
  try&lt;br /&gt;
    Value := First; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lancez la commande &#039;&#039;&#039;Exécuter&#039;&#039;&#039;. La ligne &lt;br /&gt;
&lt;br /&gt;
  First: Integer;   &lt;br /&gt;
&lt;br /&gt;
provoque l&#039;erreur [[E2010 Types incompatibles - &#039;%s&#039; et &#039;%s&#039; (Delphi)|E2010 Types incompatibles - &#039;TMyEnum&#039; et &#039;Integer&#039;]]. Cela signifie que le conflit de nommage se produit entre l&#039;identificateur &amp;lt;code&amp;gt;First&amp;lt;/code&amp;gt; de portée globale introduit dans l&#039;énumération &amp;lt;code&amp;gt;TMyEnum&amp;lt;/code&amp;gt; et la variable &amp;lt;code&amp;gt;First&amp;lt;/code&amp;gt;. Vous pouvez contourner ce conflit en qualifiant l&#039;identificateur &amp;lt;code&amp;gt;First&amp;lt;/code&amp;gt; avec l&#039;unité &amp;lt;code&amp;gt;unit1&amp;lt;/code&amp;gt; dans laquelle il est défini. Pour cela, commentez à nouveau la première version de la variable &amp;lt;code&amp;gt;Value&amp;lt;/code&amp;gt; et effacez le commentaire de la troisième :&lt;br /&gt;
&lt;br /&gt;
 Value := unit1.First;&lt;br /&gt;
&lt;br /&gt;
Lancez la commande &#039;&#039;&#039;Exécuter&#039;&#039;&#039;. Le programme s&#039;exécute correctement. Cela signifie qu&#039;à présent l&#039;identificateur &amp;lt;code&amp;gt;First&amp;lt;/code&amp;gt; peut être qualifié avec la portée d&#039;unité &amp;lt;code&amp;gt;unit1&amp;lt;/code&amp;gt;. Voyons ce qui se passe si nous activons à nouveau la directive &lt;br /&gt;
&lt;br /&gt;
 {$SCOPEDENUMS ON}&lt;br /&gt;
&lt;br /&gt;
du compilateur dans &amp;lt;code&amp;gt;unit1&amp;lt;/code&amp;gt;. L&#039;erreur [[E2003 Identificateur non déclaré : &#039;%s&#039; (Delphi)|E2003 Identificateur non déclaré : &#039;First&#039;]] est générée sur la ligne &lt;br /&gt;
&lt;br /&gt;
 Value := unit1.First;&lt;br /&gt;
&lt;br /&gt;
Cela signifie que &#039;&#039;&#039;{$SCOPEDENUMS ON}&#039;&#039;&#039; empêche l&#039;ajout de l&#039;identificateur &amp;lt;code&amp;gt;First&amp;lt;/code&amp;gt; de l&#039;énumération dans la portée &amp;lt;code&amp;gt;unit1&amp;lt;/code&amp;gt;. A présent l&#039;identificateur &amp;lt;code&amp;gt;First&amp;lt;/code&amp;gt; est ajouté seulement dans la portée &amp;lt;code&amp;gt;TMyEnum&amp;lt;/code&amp;gt; de l&#039;énumération. Pour vérifier cela, utilisons à nouveau la version  &lt;br /&gt;
&lt;br /&gt;
 Value := TMyEnum.First;&lt;br /&gt;
&lt;br /&gt;
de la variable &amp;lt;code&amp;gt;Value&amp;lt;/code&amp;gt;. Lancez la commande &#039;&#039;&#039;Exécuter&#039;&#039;&#039;. Le code s&#039;exécute correctement.&lt;br /&gt;
&lt;br /&gt;
===Types sous-intervalle===&lt;br /&gt;
&lt;br /&gt;
Un type sous-intervalle représente un sous-ensemble de valeurs d&#039;un autre type ordinal (appelé le type de base). Toute construction de la forme &amp;lt;code&amp;gt;Low..High&amp;lt;/code&amp;gt;, où &amp;lt;code&amp;gt;Low&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;High&amp;lt;/code&amp;gt; sont des expressions constantes du même type ordinal, &amp;lt;code&amp;gt;Low&amp;lt;/code&amp;gt; étant inférieur à &amp;lt;code&amp;gt;High&amp;lt;/code&amp;gt;, identifie un type sous-intervalle qui inclut toutes les valeurs comprises entre &amp;lt;code&amp;gt;Low&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;High&amp;lt;/code&amp;gt;. Si par exemple, vous déclarez le type énuméré :&lt;br /&gt;
&lt;br /&gt;
 type &lt;br /&gt;
   TColors = (Red, Blue, Green, Yellow, Orange, Purple, White, Black);&lt;br /&gt;
&lt;br /&gt;
vous pouvez définir le type sous-intervalle suivant :&lt;br /&gt;
&lt;br /&gt;
 type &lt;br /&gt;
   TMyColors = Green..White;&lt;br /&gt;
&lt;br /&gt;
Ici &#039;&#039;&#039;TMyColors&#039;&#039;&#039; inclut les valeurs &amp;lt;code&amp;gt;Green&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Yellow&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Orange&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Purple&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;White&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez utiliser des constantes numériques ou des caractères (constantes chaîne de longueur 1) pour définir des types sous-intervalle :&lt;br /&gt;
&lt;br /&gt;
 type &lt;br /&gt;
  SomeNumbers = -128..127;&lt;br /&gt;
  Caps = &#039;A&#039;..&#039;Z&#039;;&lt;br /&gt;
&lt;br /&gt;
Quand vous utilisez des constantes numérique ou caractère pour définir un sous-intervalle, le type de base est le plus petit type entier ou caractère contenant l&#039;intervalle spécifié.&lt;br /&gt;
&lt;br /&gt;
La construction &amp;lt;code&amp;gt;LowerBound..UpperBound&amp;lt;/code&amp;gt; fonctionne directement comme nom de type, vous pouvez donc l&#039;utiliser directement dans des déclarations de variables. Par exemple :&lt;br /&gt;
&lt;br /&gt;
 var SomeNum: 1..500;&lt;br /&gt;
&lt;br /&gt;
déclare une variable entière dont la valeur est dans l&#039;intervalle allant de 1 à 500.&lt;br /&gt;
&lt;br /&gt;
Le rang de chaque valeur d&#039;un sous-intervalle est préservé depuis le type de base. (Dans le premier exemple, si &amp;lt;code&amp;gt;Color&amp;lt;/code&amp;gt; est une variable contenant la valeur &amp;lt;code&amp;gt;Green&amp;lt;/code&amp;gt;, &#039;&#039;&#039;Ord(Color)&#039;&#039;&#039; renvoie 2, que &amp;lt;code&amp;gt;Color&amp;lt;/code&amp;gt; soit de type &#039;&#039;&#039;TColors&#039;&#039;&#039; ou &#039;&#039;&#039;TMyColors&#039;&#039;&#039;.) Les valeurs ne bouclent pas au début ou à la fin du sous-intervalle même si le type de base est de type entier ou caractère ; l&#039;incrémentation ou la décrémention au-delà des limites d&#039;un sous-intervalle convertit simplement la valeur dans le type de base. Ainsi, tandis que :&lt;br /&gt;
&lt;br /&gt;
  type Percentile = 0..99;&lt;br /&gt;
  var I: Percentile;&lt;br /&gt;
    ... &lt;br /&gt;
    I := 100;&lt;br /&gt;
&lt;br /&gt;
produit une erreur, le code suivant :&lt;br /&gt;
&lt;br /&gt;
  ...&lt;br /&gt;
  I := 99;&lt;br /&gt;
  Inc(I);&lt;br /&gt;
&lt;br /&gt;
assigne la valeur 100 à &amp;lt;code&amp;gt;I&amp;lt;/code&amp;gt; (à moins que la vérification des limites de compilation ne soit activée).&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisation d&#039;expressions constantes dans les définitions des sous-intervalles introduit une difficulté syntaxique. Dans toute déclaration de type, quand le premier caractère significatif après &#039;&#039;&#039;=&#039;&#039;&#039; est une parenthèse gauche, le compilateur suppose qu&#039;un type énuméré est défini. Ainsi, le code :&lt;br /&gt;
&lt;br /&gt;
  const X = 50; Y = 10;&lt;br /&gt;
  type Scale = (X - Y) * 2..(X + Y) * 2;&lt;br /&gt;
&lt;br /&gt;
produit une erreur. Pour contourner ce problème, il faut réécrire la déclaration de type afin d&#039;éviter la parenthèse de début :&lt;br /&gt;
&lt;br /&gt;
  type Scale = 2 * (X - Y)..(X + Y) * 2;&lt;br /&gt;
&lt;br /&gt;
==Types réels==&lt;br /&gt;
&lt;br /&gt;
Un type réel définit un ensemble de nombres pouvant être représentés avec la notation à virgule flottante. Le tableau ci-dessous donne les intervalles et les formats de stockage des types réels sur les plates-formes 32 bits et 64 bits.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Types réels&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type&lt;br /&gt;
! Intervalle positif approximatif&lt;br /&gt;
! Chiffres significatifs&lt;br /&gt;
! Taille en octets&lt;br /&gt;
|-&lt;br /&gt;
| [[lib_fr:System.Real48|Real48]]&lt;br /&gt;
| &amp;lt;code&amp;gt;2.9e-39 .. 1.7e+38&amp;lt;/code&amp;gt;&lt;br /&gt;
| 11-12&lt;br /&gt;
| 6&lt;br /&gt;
|-&lt;br /&gt;
| [[lib_fr:System.Single|Single]]&lt;br /&gt;
| &amp;lt;code&amp;gt;1.5e-45 .. 3.4e+38&amp;lt;/code&amp;gt;&lt;br /&gt;
| 7-8&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| [[lib_fr:System.Double|Double]]&lt;br /&gt;
| &amp;lt;code&amp;gt;5.0e-324 .. 1.7e+308&amp;lt;/code&amp;gt;&lt;br /&gt;
| 15-16&lt;br /&gt;
| 8&lt;br /&gt;
|-&lt;br /&gt;
| [[lib_fr:System.Real|Real]]&lt;br /&gt;
| &amp;lt;code&amp;gt;5.0e-324 .. 1.7e+308&amp;lt;/code&amp;gt;&lt;br /&gt;
| 15-16&lt;br /&gt;
| 8&lt;br /&gt;
|-&lt;br /&gt;
| [[lib_fr:System.Extended|Extended]]&lt;br /&gt;
|&lt;br /&gt;
* Plates-formes &#039;&#039;&#039;32&#039;&#039;&#039; bits : &amp;lt;code&amp;gt;3.4e-4932 .. 1.1e+4932&amp;lt;/code&amp;gt;&lt;br /&gt;
* Plates-formes &#039;&#039;&#039;64&#039;&#039;&#039; bits : &amp;lt;code&amp;gt;5.0e-324 .. 1.7e+308&amp;lt;/code&amp;gt;&lt;br /&gt;
| 10-20&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
15-16&lt;br /&gt;
| 10&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
|-&lt;br /&gt;
| [[lib_fr:System.Comp|Comp]]&lt;br /&gt;
| &amp;lt;code&amp;gt;-9223372036854775808.. 9223372036854775807&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;(-2&amp;lt;sup&amp;gt;63&amp;lt;/sup&amp;gt;.. 2&amp;lt;sup&amp;gt;63&amp;lt;/sup&amp;gt;-1)&amp;lt;/code&amp;gt;&lt;br /&gt;
| 10-20&lt;br /&gt;
| 8&lt;br /&gt;
|-&lt;br /&gt;
| [[lib_fr:System.Currency|Currency]]&lt;br /&gt;
| &amp;lt;code&amp;gt;-922337203685477.5808.. 922337203685477.5807&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
| 10-20&lt;br /&gt;
| 8&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Les remarques suivantes s&#039;appliquent aux types réels :&lt;br /&gt;
&lt;br /&gt;
* [[lib_fr:System.Real|Real]] est équivalent à [[lib_fr:System.Double|Double]], dans l&#039;implémentation en cours.&lt;br /&gt;
&lt;br /&gt;
* [[lib_fr:System.Real48|Real48]] est conservé pour la compatibilité descendante. Comme son format de stockage n&#039;est pas natif à l&#039;architecture des processeurs Intel, ce type produit des performances plus mauvaises que les autres types à virgule flottante.&lt;br /&gt;
&lt;br /&gt;
: Le type [[lib_fr:System.Real48|Real48]] sur 6 octets s&#039;appelait [[lib_fr:System.Real|Real]] dans les versions précédentes de Object Pascal. Si vous recompilez du code utilisant l&#039;ancien type [[lib_fr:System.Real|Real]] sur 6 octets dans {{Delphi}}, vous pouvez le changer en [[lib_fr:System.Real48|Real48]]. Vous pouvez également utiliser la directive &amp;lt;code&amp;gt;[[Compatibilité Real48 (Delphi)|{$REALCOMPATIBILITY ON}]]&amp;lt;/code&amp;gt; du compilateur qui revient à l&#039;interprétation de [[lib_fr:System.Real|Real]] comme un type sur 6 octets.&lt;br /&gt;
&lt;br /&gt;
* [[lib_fr:System.Extended|Extended]] offre une plus grande précision sur les plates-formes &#039;&#039;&#039;32&#039;&#039;&#039; bits que les autres types réels. &lt;br /&gt;
&lt;br /&gt;
: Sur les plates-formes &#039;&#039;&#039;64&#039;&#039;&#039; bits, [[lib_fr:System.Extended|Extended]] est l&#039;alias d&#039;un [[lib_fr:System.Double|Double]] ; c&#039;est-à-dire que la taille du type de données [[lib_fr:System.Extended|Extended]] est de 8 octets. Vous avez ainsi moins de précision en utilisant un type [[lib_fr:System.Extended|Extended]] sur les plates-formes &#039;&#039;&#039;64&#039;&#039;&#039; bits que sur les plates-formes &#039;&#039;&#039;32&#039;&#039;&#039; bits, où la taille du type [[lib_fr:System.Extended|Extended]] est de 10 octets. Par conséquent, si vos applications utilisent le type de données [[lib_fr:System.Extended|Extended]] et que vous comptez sur la précision pour les opérations à virgule flottante, cette différence de taille peut affecter vos données. Soyez prudent en utilisant [[lib_fr:System.Extended|Extended]] si vous créez des fichiers de données qui doivent être partagés sur plusieurs plates-formes. Pour de plus amples informations, voir [[Considérations Delphi pour les applications multi-périphériques#Le type de données Extended est de 2 octets plus petit sur les systèmes Windows 64 bits|Le type de données Extended est de 2 octets plus petit sur les systèmes Windows 64 bits]].&lt;br /&gt;
&lt;br /&gt;
* Le type [[lib_fr:System.Comp|Comp]] est un type natif de l&#039;architecture des processeurs Intel et représente un entier sur 64 bits. Il est néanmoins classé parmi les réels car il ne se comporte pas comme un type ordinal. (Par exemple, il n&#039;est pas possible d&#039;incrémenter ou de décrémenter une valeur [[lib_fr:System.Comp|Comp]].) [[lib_fr:System.Comp|Comp]] est conservé uniquement pour la compatibilité descendante. Utilisez le type [[lib_fr:System.Int64|Int64]] pour de meilleures performances.&lt;br /&gt;
* [[lib_fr:System.Currency|Currency]] est un type de données à virgule fixe qui minimise les erreurs d&#039;arrondi dans les calculs monétaires. Il est stocké dans un entier sur 64 bits, les 4 chiffres les moins significatifs représentant implicitement les positions décimales. Lorsqu&#039;il est combiné à d&#039;autres types réels dans des affectations et des expressions, les valeurs [[lib_fr:System.Currency|Currency]] sont automatiquement divisées ou multipliées par 10000.&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Types de données Delphi|Types de données Delphi]]&lt;br /&gt;
*[[A propos des types de données (Delphi)|A propos des types de données (Delphi)]]&lt;br /&gt;
*[[Types chaîne (Delphi)|Types chaîne (Delphi)]]&lt;br /&gt;
*[[Types structurés (Delphi)|Types structurés (Delphi)]]&lt;br /&gt;
*[[Pointeurs et types pointeur (Delphi)|Pointeurs et types pointeur (Delphi)]]&lt;br /&gt;
*[[Types procéduraux (Delphi)|Types procéduraux (Delphi)]]&lt;br /&gt;
*[[Types variants (Delphi)|Types variants (Delphi)]]&lt;br /&gt;
*[[Compatibilité et identité de types (Delphi)|Compatibilité et identité de types (Delphi)]]&lt;br /&gt;
*[[Déclaration de types|Types de données, variables et constantes - Index (Delphi)]]&lt;br /&gt;
*[[Variables (Delphi)|Variables ({{Delphi}})]]&lt;br /&gt;
*[[Constantes déclarées|Constantes déclarées]]&lt;br /&gt;
*[[Formats de données internes (Delphi)|Formats de données internes (Delphi)]]&lt;br /&gt;
* [[Types de données Windows 64 bits comparés aux types de données Windows 32 bits|Types de données Windows 64 bits comparés aux types de données Windows 32 bits]]&lt;br /&gt;
* [[Problèmes d&#039;arrondi des nombres à virgule flottante|Problèmes d&#039;arrondi des nombres à virgule flottante]]&lt;br /&gt;
* [[Routines de comparaison des nombres à virgule flottante|Routines de comparaison des nombres à virgule flottante]]&lt;br /&gt;
* [[Routines d&#039;arrondi des nombres à virgule flottante|Routines d&#039;arrondi des nombres à virgule flottante]]&lt;br /&gt;
* [[Routines de contrôle des nombres à virgule flottante|Routines de contrôle des nombres à virgule flottante]] &lt;br /&gt;
* [[Routines intrinsèques de Delphi|Routines intrinsèques de Delphi]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Delphi]]&lt;br /&gt;
[[Category:Guide du langage Delphi]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Simple Types (Delphi)]]&lt;br /&gt;
[[de:Einfache Typen (Delphi)]]&lt;br /&gt;
[[ja:単純型（Delphi）]]&lt;/div&gt;</summary>
		<author><name>Adriana.mercado</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Bo%C3%AEte_de_dialogue_Options_de_projet&amp;diff=212562</id>
		<title>Boîte de dialogue Options de projet</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Bo%C3%AEte_de_dialogue_Options_de_projet&amp;diff=212562"/>
		<updated>2019-04-30T12:37:05Z</updated>

		<summary type="html">&lt;p&gt;Adriana.mercado : RS-93374 (erased paragraph about default option)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Menu Projet}}&lt;br /&gt;
&lt;br /&gt;
{{Menu|Projet &amp;amp;gt; Options}}&amp;lt;br /&amp;gt;&lt;br /&gt;
Double-cliquez sur une saisie de projet dans le &#039;&#039;&#039;[[Gestionnaire de projets|Gestionnaire de projets]]&#039;&#039;&#039; | &#039;&#039;&#039;Options&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ouvre le dialogue &#039;&#039;&#039;Options de projet&#039;&#039;&#039; qui gère les options du compilateur et des applications relatives à votre projet. Les modifications que vous apportez à votre projet affectent uniquement le projet en cours. Vous pouvez toutefois également enregistrer vos sélections en tant que paramètres par défaut pour les nouveaux projets.&lt;br /&gt;
&lt;br /&gt;
Une valeur d&#039;option apparaît en &#039;&#039;&#039;gras&#039;&#039;&#039; si la valeur diffère de la valeur de la configuration parent. Pour revenir à la valeur de la configuration parent, cliquez avec le bouton droit sur le texte de l&#039;option et sélectionnez la commande &#039;&#039;&#039;Rétablir&#039;&#039;&#039; du menu contextuel. Si vous modifiez les valeurs des options, vous pouvez enregistrer votre jeu de modifications dans une nouvelle configuration ou un nouveau jeu d&#039;options nommé. Vous pouvez permuter sur une autre configuration ou charger un jeu d&#039;options dans la configuration active.&lt;br /&gt;
&lt;br /&gt;
Les &#039;&#039;&#039;[[Options de la cible|options de la cible]]&#039;&#039;&#039; (c&#039;est-à-dire, la plate-forme et la configuration de construction, et les boutons &#039;&#039;&#039;[[Appliquer le jeu d&#039;options|Appliquer]]&#039;&#039;&#039; et &#039;&#039;&#039;Enregistrer&#039;&#039;&#039;) sont situées en haut des pages d&#039;options associées au compilateur. Voir également [[Eléments communs des pages Options de projet|Eléments communs des pages Options de projet]]:&lt;br /&gt;
&lt;br /&gt;
==Arborescence des catégories d&#039;options==&lt;br /&gt;
&lt;br /&gt;
Dans l&#039;arborescence des catégories d&#039;options du volet de gauche, cliquez sur un élément pour afficher sa page associée. &lt;br /&gt;
&lt;br /&gt;
La liste suivante présente tous les noeuds de l&#039;arborescence des catégories d&#039;options. Certaines catégories d&#039;options sont uniquement disponibles pour certains langages de programmation et types de projets.&lt;br /&gt;
&lt;br /&gt;
* [[C++ (options partagées)|C++ (options partagées)]]&lt;br /&gt;
*[[Compilateur C++|Compilateur C++]]&lt;br /&gt;
** [[Options avancées du compilateur C++|Options avancées]]&lt;br /&gt;
** [[Compatibilité du compilateur C++|Compatibilité]]&lt;br /&gt;
** [[Compilateur C++ - Débogage|Débogage]]&lt;br /&gt;
** [[Répertoires et Conditions du compilateur C++|Répertoires et Conditions]]&lt;br /&gt;
** [[Compilateur C++ - Optimisations|Optimisations]]&lt;br /&gt;
** [[Compilateur C++ - Sortie|Sortie]]&lt;br /&gt;
** [[En-têtes précompilés du compilateur C++|En-têtes précompilés]]&lt;br /&gt;
** [[Compilateur C++ - Avertissements|Avertissements]]&lt;br /&gt;
*[[Lieur C++|Lieur C++]]&lt;br /&gt;
** [[Sortie du lieur C++|Sortie]]&lt;br /&gt;
** [[Avertissements du lieur C++|Avertissements]]&lt;br /&gt;
* [[Bibliothécaire (TLib)|TLib]]&lt;br /&gt;
*[[Compilateur Delphi|Compilateur Delphi]]&lt;br /&gt;
** [[Compilation|Compilation]]&lt;br /&gt;
** [[Conseils et avertissements|Conseils et avertissements]]&lt;br /&gt;
** [[Liaison|Liaison]]&lt;br /&gt;
** [[Sortie - C/C++|Sortie - C/C++]]&lt;br /&gt;
*[[Options du compilateur de ressources|Compilateur de ressources]]&lt;br /&gt;
** [[Répertoires et Conditions du compilateur de ressources|Répertoires et Conditions]]&lt;br /&gt;
*[[Options Turbo Assembleur|Turbo Assembleur]]&lt;br /&gt;
** [[Répertoires et Conditions Turbo Assembleur|Répertoires et Conditions]]&lt;br /&gt;
** [[Turbo Assembleur - Avertissements|Avertissements]]&lt;br /&gt;
* [[Evénements de construction|Evénements de construction]] {{f|radstudio|&lt;br /&gt;
* [[ATL|ATL]] }}&lt;br /&gt;
* [[Liste des droits|Liste des droits]]&lt;br /&gt;
* [[Permissions d&#039;utilisation|Permissions d&#039;utilisation]]&lt;br /&gt;
* [[Fiches (boîte de dialogue)|Fiches]]&lt;br /&gt;
* [[Ordre de construction|Ordre de construction]]&lt;br /&gt;
*[[Options de l&#039;application|Application]] {{f|vcl|&lt;br /&gt;
**[[Apparence de l&#039;application|Apparence]]&lt;br /&gt;
*** [[Fichier d&#039;aide de l&#039;application|Boîte de dialogue Fichier d&#039;aide de l&#039;application]] }}&lt;br /&gt;
** [[Orientation de l&#039;application|Orientation]]&lt;br /&gt;
* [[Description|Description]]&lt;br /&gt;
* [[Informations de version|Informations de version]]&lt;br /&gt;
*[[Packages (Options)|Packages]]&lt;br /&gt;
** [[Packages d&#039;exécution (Options)|Packages d&#039;exécution]]&lt;br /&gt;
*[[Débogueur|Débogueur]]&lt;br /&gt;
** [[Tables de symboles du débogueur|Tables de symboles]]&lt;br /&gt;
** [[Bloc d&#039;environnement du débogueur|Bloc d&#039;environnement]]&lt;br /&gt;
* [[Propriétés de projet|Propriétés de projet]]&lt;br /&gt;
* [[Page Approvisionnement|Approvisionnement]]&lt;br /&gt;
* [[Dépendances GetIt|Dépendances GetIt]]&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[Boîte de dialogue Options des outils|Boîte de dialogue Options des outils]]&lt;br /&gt;
* [[Gestionnaire de projets|Gestionnaire de projets]]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Boite de dialogue Options de projet}}&lt;br /&gt;
[[Category:Référence RAD Studio]]&lt;br /&gt;
[[Category:Index des rubriques]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Project Options Dialog Box]]&lt;br /&gt;
[[de:Projektoptionen (Dialogfeld)]]&lt;br /&gt;
[[ja:［プロジェクト オプション］ダイアログ ボックス]]&lt;/div&gt;</summary>
		<author><name>Adriana.mercado</name></author>
	</entry>
</feed>