<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Yukikoi</id>
	<title>RAD Studio - Contributions [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Yukikoi"/>
	<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/fr/Sp%C3%A9cial:Contributions/Yukikoi"/>
	<updated>2026-08-17T16:43:49Z</updated>
	<subtitle>Contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Routines_intrins%C3%A8ques_de_Delphi&amp;diff=218930</id>
		<title>Routines intrinsèques de Delphi</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Routines_intrins%C3%A8ques_de_Delphi&amp;diff=218930"/>
		<updated>2026-05-09T03:34:58Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : 1 révision importée : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Catégories de l&#039;API - Index}}&lt;br /&gt;
Cette rubrique liste les routines intrinsèques de Delphi uniquement, exposées par l&#039;unité &amp;lt;code&amp;gt;System&amp;lt;/code&amp;gt;. Ces routines intrinsèques sont réellement gérées par le compilateur, au lieu de la bibliothèque d&#039;exécution. Le tableau spécifie également quel compilateur prend en charge chaque fonction&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; Routine &#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
![[DCC32.EXE, le compilateur en ligne de commande Delphi|DCC32]]&lt;br /&gt;
![[DCC64.EXE, le compilateur en ligne de commande Delphi 64 bits|DCC64]]&lt;br /&gt;
![[DCCOSX64.EXE, le compilateur Delphi pour macOS 64 bits|DCCOSX64]]&lt;br /&gt;
![[DCCAARM.EXE, le compilateur Delphi pour Android|DCCAARM]]&lt;br /&gt;
![[DCCIOSARM64.EXE, le compilateur Delphi pour le périphérique iOS 64 bits|DCCIOSARM64]]&lt;br /&gt;
![[DCCLINUX64.EXE, le compilateur Delphi pour Linux|DCCLINUX64]]&lt;br /&gt;
![[DCCAARM64.EXE, le compilateur Delphi pour Android 64 bits|DCCAARM64]]&lt;br /&gt;
![[DCCOSXARM64.EXE, le compilateur Delphi pour le périphérique macOS 64 bits|DCCOSXARM64]]&lt;br /&gt;
![[DCCIOSSIMARM64.EXE, le compilateur Delphi pour le simulateur iOS 64 bits ARM|DCCIOSSIMARM64]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Abs|System.Abs]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie une valeur absolue.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Addr|System.Addr]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie un pointeur sur un objet spécifié.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Append|System.Append]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Prépare un fichier existant pour l&#039;ajout de texte.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Assert|System.Assert]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Teste si une expression booléenne vaut true.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Assign|System.Assign]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Associe le nom d&#039;un fichier externe à une variable fichier.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Assigned|System.Assigned]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Teste un pointeur nil (non assigné) ou une variable procédurale.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.AssignFile|System.AssignFile]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Associe le nom d&#039;un fichier externe à une variable fichier.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.AtomicCmpExchange|System.AtomicCmpExchange]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
AtomicCmpExchange est utilisé pour comparer et échanger des valeurs en mémoire.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.AtomicDecrement|System.AtomicDecrement]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
AtomicDecrement est utilisé pour décrémenter les valeurs en mémoire.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.AtomicExchange|System.AtomicExchange]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
AtomicExchange est utilisé pour échanger les valeurs en mémoire.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.AtomicIncrement|System.AtomicIncrement]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
AtomicDecrement est utilisé pour incrémenter les valeurs en mémoire. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.BlockRead|System.BlockRead]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Lit un ou plusieurs enregistrements d&#039;un fichier ouvert et les place dans une variable.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.BlockWrite|System.BlockWrite]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Ecrit un ou plusieurs enregistrements d&#039;une variable mémoire dans un fichier ouvert.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Break|System.Break]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Provoque l&#039;interruption d&#039;une boucle for, while ou repeat.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.BuiltInArcTan|System.BuiltInArcTan]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Calcule l&#039;arc-tangente de la valeur donnée. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|  &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
      [[lib_fr:System.BuiltInArcTan2|System.BuiltInArcTan2]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Calcule l&#039;angle et le quadrant d&#039;arc-tangente de la valeur donnée. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
      [[lib_fr:System.BuiltInCos|System.BuiltInCos]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Calcule le cosinus d&#039;un angle. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
      [[lib_fr:System.BuiltInLn|System.BuiltInLn]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Calcule le logarithme naturel d&#039;une expression réelle. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
      [[lib_fr:System.BuiltInLnXPlus1|System.BuiltInLnXPlus1]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Calcule le logarithme naturel de (X+1). &lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
      [[lib_fr:System.BuiltInLog10|System.BuiltInLog10]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Calcule le logarithme en base 10. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
      [[lib_fr:System.BuiltInLog2|System.BuiltInLog2]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Calcule le logarithme en base 2. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
      [[lib_fr:System.BuiltInSin|System.BuiltInSin]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Calcule le sinus de l&#039;angle. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
      [[lib_fr:System.BuiltInSqrt|System.BuiltInSqrt]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Calcule la racine carrée de X. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
      [[lib_fr:System.BuiltInTan|System.BuiltInTan]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Calcule la tangente de X. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
      [[lib_fr:System.Chr|System.Chr]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie le caractère correspondant à une valeur ASCII.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Close|System.Close]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Ferme l&#039;association entre une variable fichier et un fichier externe.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.CloseFile|System.CloseFile]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Ferme l&#039;association entre une variable fichier et un fichier disque externe.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Concat|System.Concat]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Concatène deux chaînes ou plus.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Continue|System.Continue]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Provoque le passage du contrôle de l&#039;exécution à l&#039;itération suivante dans une instruction for, while ou repeat.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Copy|System.Copy]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie une sous-chaîne d&#039;une chaîne ou un segment d&#039;un tableau dynamique.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Dec|System.Dec]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Décrémente une variable de 1 ou de N.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Default|System.Default]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie la représentation zéro de l&#039;identificateur de type &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Delete|System.Delete]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Retire une sous-chaîne d&#039;une chaîne.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Dispose|System.Dispose]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Libère la mémoire allouée à une variable dynamique.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Eof|System.Eof]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Détermine si la position en cours du pointeur se trouve en fin de fichier.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Eoln|System.Eoln]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Détermine si le pointeur de fichier se trouve en fin de ligne.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Erase|System.Erase]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Supprime un fichier externe.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Exclude|System.Exclude]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Retire un élément d&#039;un ensemble {{Delphi}}. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Exit|System.Exit]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Quitte la procédure en cours.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Fail|System.Fail]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Annule la construction d&#039;un objet (modèle d&#039;objet Turbo Pascal).&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.FilePos|System.FilePos]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie la position en cours dans un fichier.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.FileSize|System.FileSize]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie le nombre d&#039;enregistrements d&#039;un fichier.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.FillChar|System.FillChar]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Remplit des octets contigus avec une valeur spécifiée.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Finalize|System.Finalize]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Désinitialise une variable allouée dynamiquement.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Flush|System.Flush]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Efface le tampon associé à un fichier texte ouvert en sortie.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.FreeMem|System.FreeMem]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
FreeMem libère un bloc de mémoire.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.GetDir|System.GetDir]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie le répertoire en cours.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.GetMem|System.GetMem]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
GetMem alloue un bloc de mémoire.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.GetTypeKind|System.GetTypeKind]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie les informations de type à l&#039;exécution (RTTI) d&#039;un type donné.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Halt|System.Halt]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Initie la terminaison anormale d&#039;un programme.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.HasWeakRef|System.HasWeakRef]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie &#039;&#039;&#039;True&#039;&#039;&#039; si le type &#039;&#039;&#039;T&#039;&#039;&#039; est de type &#039;&#039;&#039;WEAKREF&#039;&#039;&#039;.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Hi|System.Hi]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie l&#039;octet de poids fort de X comme valeur non signée.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.High|System.High]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie la plus grande valeur dans l&#039;étendue d&#039;un argument.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Inc|System.Inc]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Incrémente une valeur ordinale (X) de 1 ou de N.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Include|System.Include]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Ajoute un élément à un ensemble {{Delphi}}. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Initialize|System.Initialize]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Initialise une variable allouée dynamiquement.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Insert|System.Insert]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Insère une sous-chaîne dans une chaîne commençant au point spécifié.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.IsConstValue|System.IsConstValue]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie le type de données booléen d&#039;une &amp;lt;code&amp;gt;valeur&amp;lt;/code&amp;gt;.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.IsManagedType|System.IsManagedType]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie true si &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; est une &amp;lt;code&amp;gt;interface&amp;lt;/code&amp;gt;, une &amp;lt;code&amp;gt;chaîne&amp;lt;/code&amp;gt;, un &amp;lt;code&amp;gt;tableau dynamique&amp;lt;/code&amp;gt; ou un enregistrement contenant ces éléments. Une classe contenant un type géré renvoie false.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Length|System.Length]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie le nombre de caractères d&#039;une chaîne ou d&#039;éléments d&#039;un tableau.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Lo|System.Lo]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie l&#039;octet de poids faible de l&#039;argument X.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Low|System.Low]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie la valeur la moins élevée d&#039;une étendue.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.MemoryBarrier|System.MemoryBarrier]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Applique une contrainte de classement sur les opérations en mémoire. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.MulDivInt64|System.MulDivInt64]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie la valeur de cette expression : {{Code|Int64((Int128(AValue) * Int128(AMul)) div Int128(ADiv))}}.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.New|System.New]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Crée une nouvelle variable dynamique et initialise P de telle façon qu&#039;il pointe dessus.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Odd|System.Odd]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie true si l&#039;argument est un nombre impair.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Ord|System.Ord]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie la valeur ordinale d’une expression de type ordinal. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Pi|System.Pi]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie 3.1415926535897932385&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Pred|System.Pred]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie le prédécesseur de l&#039;argument.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Ptr|System.Ptr]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Convertit l&#039;adresse spécifiée en pointeur.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Read|System.Read]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Read lit les données d&#039;un fichier.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Readln|System.Readln]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Lit une ligne de texte dans un fichier.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.ReallocMem|System.ReallocMem]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
ReallocMem réalloue un bloc de mémoire.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Rename|System.Rename]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renomme un fichier externe.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Reset|System.Reset]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Ouvre un fichier existant.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.ReturnAddress|System.ReturnAddress]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie l&#039;adresse de retour de la fonction actuellement exécutée.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Rewrite|System.Rewrite]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Crée puis ouvre un nouveau fichier.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Round|System.Round]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie la valeur de X arrondie au plus proche entier.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.RunError|System.RunError]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Interrompt l&#039;exécution et génère une erreur d&#039;exécution.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Seek|System.Seek]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Déplace la position en cours dans un fichier vers le composant spécifié.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.SeekEof|System.SeekEof]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie le statut de fin de fichier, en ignorant les espaces.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.SeekEoln|System.SeekEoln]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie l&#039;état de fin de ligne d&#039;un fichier, en ignorant les espaces.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.SetLength|System.SetLength]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définit la longueur d&#039;une variable chaîne ou tableau dynamique.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.SetString|System.SetString]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définit le contenu et la longueur de la chaîne donnée.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.SetTextBuf|System.SetTextBuf]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Assigne un tampon d&#039;E/S à un fichier texte. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.SizeOf|System.SizeOf]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie le nombre d&#039;octets occupés par une variable ou un type.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Slice|System.Slice]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie une sous-section d&#039;un tableau.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Sqr|System.Sqr]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie le carré d&#039;un nombre.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Str|System.Str]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Formate une chaîne et la renvoie dans une variable.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Succ|System.Succ]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie le successeur de l&#039;argument.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Swap|System.Swap]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Inverse les octets de poids fort avec les octets de poids faible d&#039;un entier ou d&#039;un mot.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Trunc|System.Trunc]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Tronque un nombre réel en entier.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Truncate|System.Truncate]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Supprime tous les enregistrements situés après la position en cours dans le fichier. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.TypeHandle|System.TypeHandle]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie les informations de type à l&#039;exécution (RTTI) d&#039;un type donné.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.TypeInfo|System.TypeInfo]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie les informations de type à l&#039;exécution (RTTI) d&#039;un type donné.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.TypeOf|System.TypeOf]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Routine désapprouvée.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Val|System.Val]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Convertit une chaîne en sa représentation numérique.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.VarArrayRedim|System.VarArrayRedim]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Redimensionne un tableau de Variants.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.VarCast|System.VarCast]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Convertit un variant dans le type spécifié.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.VarClear|System.VarClear]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Vide un Variant afin qu&#039;il soit non assigné. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.VarCopy|System.VarCopy]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Copie un Variant dans un autre Variant.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Write|System.Write]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Ecrit dans un fichier typé ou dans un fichier texte.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Writeln|System.Writeln]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Ecrit dans un fichier texte et ajoute un marqueur de fin de ligne.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Catégories de l&#039;API - Index|Catégories de l&#039;API - Index]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Référence RAD Studio]]&lt;br /&gt;
[[Category:Référence RTL]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Routines_intrins%C3%A8ques_de_Delphi&amp;diff=218929</id>
		<title>Routines intrinsèques de Delphi</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Routines_intrins%C3%A8ques_de_Delphi&amp;diff=218929"/>
		<updated>2026-05-09T03:34:56Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Catégories de l&#039;API - Index}}&lt;br /&gt;
Cette rubrique liste les routines intrinsèques de Delphi uniquement, exposées par l&#039;unité &amp;lt;code&amp;gt;System&amp;lt;/code&amp;gt;. Ces routines intrinsèques sont réellement gérées par le compilateur, au lieu de la bibliothèque d&#039;exécution. Le tableau spécifie également quel compilateur prend en charge chaque fonction&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; Routine &#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
![[DCC32.EXE, le compilateur en ligne de commande Delphi|DCC32]]&lt;br /&gt;
![[DCC64.EXE, le compilateur en ligne de commande Delphi 64 bits|DCC64]]&lt;br /&gt;
![[DCCOSX64.EXE, le compilateur Delphi pour macOS 64 bits|DCCOSX64]]&lt;br /&gt;
![[DCCAARM.EXE, le compilateur Delphi pour Android|DCCAARM]]&lt;br /&gt;
![[DCCIOSARM64.EXE, le compilateur Delphi pour le périphérique iOS 64 bits|DCCIOSARM64]]&lt;br /&gt;
![[DCCLINUX64.EXE, le compilateur Delphi pour Linux|DCCLINUX64]]&lt;br /&gt;
![[DCCAARM64.EXE, le compilateur Delphi pour Android 64 bits|DCCAARM64]]&lt;br /&gt;
![[DCCOSXARM64.EXE, le compilateur Delphi pour le périphérique macOS 64 bits|DCCOSXARM64]]&lt;br /&gt;
![[DCCIOSSIMARM64.EXE, le compilateur Delphi pour le simulateur iOS 64 bits ARM|DCCIOSSIMARM64]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Abs|System.Abs]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie une valeur absolue.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Addr|System.Addr]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie un pointeur sur un objet spécifié.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Append|System.Append]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Prépare un fichier existant pour l&#039;ajout de texte.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Assert|System.Assert]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Teste si une expression booléenne vaut true.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Assign|System.Assign]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Associe le nom d&#039;un fichier externe à une variable fichier.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Assigned|System.Assigned]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Teste un pointeur nil (non assigné) ou une variable procédurale.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.AssignFile|System.AssignFile]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Associe le nom d&#039;un fichier externe à une variable fichier.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.AtomicCmpExchange|System.AtomicCmpExchange]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
AtomicCmpExchange est utilisé pour comparer et échanger des valeurs en mémoire.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.AtomicDecrement|System.AtomicDecrement]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
AtomicDecrement est utilisé pour décrémenter les valeurs en mémoire.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.AtomicExchange|System.AtomicExchange]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
AtomicExchange est utilisé pour échanger les valeurs en mémoire.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.AtomicIncrement|System.AtomicIncrement]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
AtomicDecrement est utilisé pour incrémenter les valeurs en mémoire. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.BlockRead|System.BlockRead]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Lit un ou plusieurs enregistrements d&#039;un fichier ouvert et les place dans une variable.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.BlockWrite|System.BlockWrite]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Ecrit un ou plusieurs enregistrements d&#039;une variable mémoire dans un fichier ouvert.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Break|System.Break]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Provoque l&#039;interruption d&#039;une boucle for, while ou repeat.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.BuiltInArcTan|System.BuiltInArcTan]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Calcule l&#039;arc-tangente de la valeur donnée. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|  &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
      [[lib_fr:System.BuiltInArcTan2|System.BuiltInArcTan2]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Calcule l&#039;angle et le quadrant d&#039;arc-tangente de la valeur donnée. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
      [[lib_fr:System.BuiltInCos|System.BuiltInCos]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Calcule le cosinus d&#039;un angle. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
      [[lib_fr:System.BuiltInLn|System.BuiltInLn]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Calcule le logarithme naturel d&#039;une expression réelle. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
      [[lib_fr:System.BuiltInLnXPlus1|System.BuiltInLnXPlus1]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Calcule le logarithme naturel de (X+1). &lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
      [[lib_fr:System.BuiltInLog10|System.BuiltInLog10]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Calcule le logarithme en base 10. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
      [[lib_fr:System.BuiltInLog2|System.BuiltInLog2]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Calcule le logarithme en base 2. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
      [[lib_fr:System.BuiltInSin|System.BuiltInSin]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Calcule le sinus de l&#039;angle. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
      [[lib_fr:System.BuiltInSqrt|System.BuiltInSqrt]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Calcule la racine carrée de X. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
      [[lib_fr:System.BuiltInTan|System.BuiltInTan]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Calcule la tangente de X. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
      [[lib_fr:System.Chr|System.Chr]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie le caractère correspondant à une valeur ASCII.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Close|System.Close]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Ferme l&#039;association entre une variable fichier et un fichier externe.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.CloseFile|System.CloseFile]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Ferme l&#039;association entre une variable fichier et un fichier disque externe.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Concat|System.Concat]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Concatène deux chaînes ou plus.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Continue|System.Continue]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Provoque le passage du contrôle de l&#039;exécution à l&#039;itération suivante dans une instruction for, while ou repeat.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Copy|System.Copy]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie une sous-chaîne d&#039;une chaîne ou un segment d&#039;un tableau dynamique.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Dec|System.Dec]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Décrémente une variable de 1 ou de N.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Default|System.Default]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie la représentation zéro de l&#039;identificateur de type &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Delete|System.Delete]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Retire une sous-chaîne d&#039;une chaîne.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Dispose|System.Dispose]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Libère la mémoire allouée à une variable dynamique.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Eof|System.Eof]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Détermine si la position en cours du pointeur se trouve en fin de fichier.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Eoln|System.Eoln]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Détermine si le pointeur de fichier se trouve en fin de ligne.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Erase|System.Erase]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Supprime un fichier externe.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Exclude|System.Exclude]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Retire un élément d&#039;un ensemble {{Delphi}}. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Exit|System.Exit]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Quitte la procédure en cours.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Fail|System.Fail]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Annule la construction d&#039;un objet (modèle d&#039;objet Turbo Pascal).&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.FilePos|System.FilePos]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie la position en cours dans un fichier.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.FileSize|System.FileSize]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie le nombre d&#039;enregistrements d&#039;un fichier.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.FillChar|System.FillChar]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Remplit des octets contigus avec une valeur spécifiée.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Finalize|System.Finalize]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Désinitialise une variable allouée dynamiquement.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Flush|System.Flush]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Efface le tampon associé à un fichier texte ouvert en sortie.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.FreeMem|System.FreeMem]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
FreeMem libère un bloc de mémoire.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.GetDir|System.GetDir]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie le répertoire en cours.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.GetMem|System.GetMem]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
GetMem alloue un bloc de mémoire.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.GetTypeKind|System.GetTypeKind]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie les informations de type à l&#039;exécution (RTTI) d&#039;un type donné.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Halt|System.Halt]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Initie la terminaison anormale d&#039;un programme.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.HasWeakRef|System.HasWeakRef]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie &#039;&#039;&#039;True&#039;&#039;&#039; si le type &#039;&#039;&#039;T&#039;&#039;&#039; est de type &#039;&#039;&#039;WEAKREF&#039;&#039;&#039;.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Hi|System.Hi]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie l&#039;octet de poids fort de X comme valeur non signée.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.High|System.High]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie la plus grande valeur dans l&#039;étendue d&#039;un argument.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Inc|System.Inc]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Incrémente une valeur ordinale (X) de 1 ou de N.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Include|System.Include]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Ajoute un élément à un ensemble {{Delphi}}. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Initialize|System.Initialize]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Initialise une variable allouée dynamiquement.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Insert|System.Insert]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Insère une sous-chaîne dans une chaîne commençant au point spécifié.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.IsConstValue|System.IsConstValue]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie le type de données booléen d&#039;une &amp;lt;code&amp;gt;valeur&amp;lt;/code&amp;gt;.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.IsManagedType|System.IsManagedType]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie true si &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; est une &amp;lt;code&amp;gt;interface&amp;lt;/code&amp;gt;, une &amp;lt;code&amp;gt;chaîne&amp;lt;/code&amp;gt;, un &amp;lt;code&amp;gt;tableau dynamique&amp;lt;/code&amp;gt; ou un enregistrement contenant ces éléments. Une classe contenant un type géré renvoie false.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Length|System.Length]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie le nombre de caractères d&#039;une chaîne ou d&#039;éléments d&#039;un tableau.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Lo|System.Lo]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie l&#039;octet de poids faible de l&#039;argument X.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Low|System.Low]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie la valeur la moins élevée d&#039;une étendue.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.MemoryBarrier|System.MemoryBarrier]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Applique une contrainte de classement sur les opérations en mémoire. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.MulDivInt64|System.MulDivInt64]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie la valeur de cette expression : {{Code|Int64((Int128(AValue) * Int128(AMul)) div Int128(ADiv))}}.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.New|System.New]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Crée une nouvelle variable dynamique et initialise P de telle façon qu&#039;il pointe dessus.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Odd|System.Odd]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie true si l&#039;argument est un nombre impair.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Ord|System.Ord]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie la valeur ordinale d’une expression de type ordinal. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Pi|System.Pi]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie 3.1415926535897932385&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Pred|System.Pred]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie le prédécesseur de l&#039;argument.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Ptr|System.Ptr]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Convertit l&#039;adresse spécifiée en pointeur.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Read|System.Read]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Read lit les données d&#039;un fichier.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Readln|System.Readln]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Lit une ligne de texte dans un fichier.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.ReallocMem|System.ReallocMem]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
ReallocMem réalloue un bloc de mémoire.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Rename|System.Rename]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renomme un fichier externe.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Reset|System.Reset]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Ouvre un fichier existant.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.ReturnAddress|System.ReturnAddress]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie l&#039;adresse de retour de la fonction actuellement exécutée.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Rewrite|System.Rewrite]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Crée puis ouvre un nouveau fichier.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Round|System.Round]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie la valeur de X arrondie au plus proche entier.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.RunError|System.RunError]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Interrompt l&#039;exécution et génère une erreur d&#039;exécution.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Seek|System.Seek]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Déplace la position en cours dans un fichier vers le composant spécifié.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.SeekEof|System.SeekEof]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie le statut de fin de fichier, en ignorant les espaces.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.SeekEoln|System.SeekEoln]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie l&#039;état de fin de ligne d&#039;un fichier, en ignorant les espaces.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.SetLength|System.SetLength]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définit la longueur d&#039;une variable chaîne ou tableau dynamique.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.SetString|System.SetString]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définit le contenu et la longueur de la chaîne donnée.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.SetTextBuf|System.SetTextBuf]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Assigne un tampon d&#039;E/S à un fichier texte. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.SizeOf|System.SizeOf]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie le nombre d&#039;octets occupés par une variable ou un type.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Slice|System.Slice]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie une sous-section d&#039;un tableau.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Sqr|System.Sqr]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie le carré d&#039;un nombre.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Str|System.Str]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Formate une chaîne et la renvoie dans une variable.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Succ|System.Succ]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie le successeur de l&#039;argument.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Swap|System.Swap]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Inverse les octets de poids fort avec les octets de poids faible d&#039;un entier ou d&#039;un mot.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Trunc|System.Trunc]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Tronque un nombre réel en entier.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Truncate|System.Truncate]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Supprime tous les enregistrements situés après la position en cours dans le fichier. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.TypeHandle|System.TypeHandle]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie les informations de type à l&#039;exécution (RTTI) d&#039;un type donné.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.TypeInfo|System.TypeInfo]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Renvoie les informations de type à l&#039;exécution (RTTI) d&#039;un type donné.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.TypeOf|System.TypeOf]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Routine désapprouvée.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Val|System.Val]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Convertit une chaîne en sa représentation numérique.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.VarArrayRedim|System.VarArrayRedim]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Redimensionne un tableau de Variants.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.VarCast|System.VarCast]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Convertit un variant dans le type spécifié.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.VarClear|System.VarClear]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Vide un Variant afin qu&#039;il soit non assigné. &lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.VarCopy|System.VarCopy]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Copie un Variant dans un autre Variant.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Write|System.Write]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Ecrit dans un fichier typé ou dans un fichier texte.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
[[lib_fr:System.Writeln|System.Writeln]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Ecrit dans un fichier texte et ajoute un marqueur de fin de ligne.&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Catégories de l&#039;API - Index|Catégories de l&#039;API - Index]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Référence RAD Studio]]&lt;br /&gt;
[[Category:Référence RTL]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Style_EDI&amp;diff=218928</id>
		<title>Style EDI</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Style_EDI&amp;diff=218928"/>
		<updated>2026-05-09T03:34:56Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : 1 révision importée : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Interface utilisateur}}&lt;br /&gt;
&lt;br /&gt;
{{Menu|Outils &amp;amp;gt; Options &amp;amp;gt; Interface utilisateur &amp;amp;gt; Style de l&#039;EDI}}&lt;br /&gt;
&lt;br /&gt;
La fenêtre Style de l&#039;EDI vous permet d&#039;appliquer différents thèmes à l&#039;EDI avec un schéma de couleurs spécifique à chaque thème. Vous obtenez une apparence adaptée à une utilisation prolongée ou à un environnement à faible luminosité.&lt;br /&gt;
&lt;br /&gt;
Dans la fenêtre Style de l&#039;EDI, vous pouvez choisir d&#039;appliquer l&#039;un des thèmes suivants :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Clair&#039;&#039;&#039; : style par défaut de l&#039;EDI. Applique un schéma de couleurs blanc.&lt;br /&gt;
* &#039;&#039;&#039;Foncé/Sombre&#039;&#039;&#039; : applique un schéma de couleurs avec un arrière-plan foncé, adapté à une utilisation de nuit.&lt;br /&gt;
* &#039;&#039;&#039;Mountain Mist&#039;&#039;&#039; : applique un schéma de couleurs clair, semblable au style Clair, mais avec des couleurs plus douces.&lt;br /&gt;
* &#039;&#039;&#039;Style VCL personnalisé&#039;&#039;&#039; : cette option vous permet de choisir un style VCL dans une liste déroulante. Vous disposez de nombreuses options pour personnaliser l&#039;EDI à votre convenance. Cela vous permet de combiner notamment les styles précédemment mentionnés.&lt;br /&gt;
&lt;br /&gt;
De plus, au-dessus de ces options, vous pouvez activer l&#039;option &#039;&#039;&#039;Faire correspondre au thème Windows&#039;&#039;&#039; si vous voulez que votre style de l&#039;EDI corresponde à celui de votre système d&#039;exploitation Windows. Une fois le style sélectionné, cliquez sur &#039;&#039;&#039;Enregistrer&#039;&#039;&#039; pour l&#039;appliquer et voir les modifications.&lt;br /&gt;
&lt;br /&gt;
[[File:IDE Style.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
{{Note| La case à cocher &#039;&#039;&#039;Faire correspondre au thème Windows&#039;&#039;&#039; est activée par défaut.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comme alternative, vous pouvez aussi activer l&#039;une de ces options dans le menu de la liste déroulante disponible sur la barre supérieure, à côté de la zone de liste déroulante des dispositions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:IDEstyle.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
{{Remarque|Les paramètres relatifs au thème de l&#039;EDI n&#039;affectent pas les concepteurs de fiche VCL et FireMonkey. Ils gardent leur apparence existante.}}&lt;br /&gt;
&lt;br /&gt;
==SpeedSetting de couleur pour l&#039;éditeur et l&#039;inspecteur d&#039;objets==&lt;br /&gt;
&lt;br /&gt;
Sous chaque option de style, vous pouvez sélectionner des préférences de schéma de couleurs dans les listes déroulantes &#039;&#039;&#039;Option prédéfinie de l&#039;éditeur de couleurs&#039;&#039;&#039; et &#039;&#039;&#039;Option prédéfinie de l&#039;inspecteur d&#039;objets&#039;&#039;&#039; pour le thème sélectionné. Cela vous permet de personnaliser davantage les préférences de couleurs appliquées à votre schéma de couleurs, de modifier les couleurs des fontes de l&#039;EDI, et aussi les couleurs d&#039;arrière-plan. {{Product}} {{Version}} assigne automatiquement un réglage prédéfini différent pour l&#039;éditeur et l&#039;inspecteur d&#039;objets afin qu&#039;ils correspondent au schéma de couleurs choisi.&lt;br /&gt;
&lt;br /&gt;
Quel que soit le thème sélectionné, vous pouvez sélectionner n&#039;importe quel schéma de couleurs dans les options prédéfinies de l&#039;éditeur de couleurs et de l&#039;inspecteur d&#039;objets. Vous pouvez ensuite le personnaliser davantage si vous choisissez &#039;&#039;&#039;Style VCL personnalisé&#039;&#039;&#039; comme style préféré, car il offre des combinaisons quasiment illimitées. Par ailleurs, ces options sont également accessibles via l&#039;option &#039;&#039;&#039;Editeur&#039;&#039;&#039; dans la liste déroulante de la barre supérieure, à côté de la zone de liste déroulante présentée ci-dessus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;• Le thème sombre a été développé pour Embarcadero par [http://www.delphistyles.com DelphiStyles.com]&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Style_EDI&amp;diff=218927</id>
		<title>Style EDI</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Style_EDI&amp;diff=218927"/>
		<updated>2026-05-09T03:34:56Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Interface utilisateur}}&lt;br /&gt;
&lt;br /&gt;
{{Menu|Outils &amp;amp;gt; Options &amp;amp;gt; Interface utilisateur &amp;amp;gt; Style de l&#039;EDI}}&lt;br /&gt;
&lt;br /&gt;
La fenêtre Style de l&#039;EDI vous permet d&#039;appliquer différents thèmes à l&#039;EDI avec un schéma de couleurs spécifique à chaque thème. Vous obtenez une apparence adaptée à une utilisation prolongée ou à un environnement à faible luminosité.&lt;br /&gt;
&lt;br /&gt;
Dans la fenêtre Style de l&#039;EDI, vous pouvez choisir d&#039;appliquer l&#039;un des thèmes suivants :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Clair&#039;&#039;&#039; : style par défaut de l&#039;EDI. Applique un schéma de couleurs blanc.&lt;br /&gt;
* &#039;&#039;&#039;Foncé/Sombre&#039;&#039;&#039; : applique un schéma de couleurs avec un arrière-plan foncé, adapté à une utilisation de nuit.&lt;br /&gt;
* &#039;&#039;&#039;Mountain Mist&#039;&#039;&#039; : applique un schéma de couleurs clair, semblable au style Clair, mais avec des couleurs plus douces.&lt;br /&gt;
* &#039;&#039;&#039;Style VCL personnalisé&#039;&#039;&#039; : cette option vous permet de choisir un style VCL dans une liste déroulante. Vous disposez de nombreuses options pour personnaliser l&#039;EDI à votre convenance. Cela vous permet de combiner notamment les styles précédemment mentionnés.&lt;br /&gt;
&lt;br /&gt;
De plus, au-dessus de ces options, vous pouvez activer l&#039;option &#039;&#039;&#039;Faire correspondre au thème Windows&#039;&#039;&#039; si vous voulez que votre style de l&#039;EDI corresponde à celui de votre système d&#039;exploitation Windows. Une fois le style sélectionné, cliquez sur &#039;&#039;&#039;Enregistrer&#039;&#039;&#039; pour l&#039;appliquer et voir les modifications.&lt;br /&gt;
&lt;br /&gt;
[[File:IDE Style.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
{{Note| La case à cocher &#039;&#039;&#039;Faire correspondre au thème Windows&#039;&#039;&#039; est activée par défaut.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comme alternative, vous pouvez aussi activer l&#039;une de ces options dans le menu de la liste déroulante disponible sur la barre supérieure, à côté de la zone de liste déroulante des dispositions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:IDEstyle.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
{{Remarque|Les paramètres relatifs au thème de l&#039;EDI n&#039;affectent pas les concepteurs de fiche VCL et FireMonkey. Ils gardent leur apparence existante.}}&lt;br /&gt;
&lt;br /&gt;
==SpeedSetting de couleur pour l&#039;éditeur et l&#039;inspecteur d&#039;objets==&lt;br /&gt;
&lt;br /&gt;
Sous chaque option de style, vous pouvez sélectionner des préférences de schéma de couleurs dans les listes déroulantes &#039;&#039;&#039;Option prédéfinie de l&#039;éditeur de couleurs&#039;&#039;&#039; et &#039;&#039;&#039;Option prédéfinie de l&#039;inspecteur d&#039;objets&#039;&#039;&#039; pour le thème sélectionné. Cela vous permet de personnaliser davantage les préférences de couleurs appliquées à votre schéma de couleurs, de modifier les couleurs des fontes de l&#039;EDI, et aussi les couleurs d&#039;arrière-plan. {{Product}} {{Version}} assigne automatiquement un réglage prédéfini différent pour l&#039;éditeur et l&#039;inspecteur d&#039;objets afin qu&#039;ils correspondent au schéma de couleurs choisi.&lt;br /&gt;
&lt;br /&gt;
Quel que soit le thème sélectionné, vous pouvez sélectionner n&#039;importe quel schéma de couleurs dans les options prédéfinies de l&#039;éditeur de couleurs et de l&#039;inspecteur d&#039;objets. Vous pouvez ensuite le personnaliser davantage si vous choisissez &#039;&#039;&#039;Style VCL personnalisé&#039;&#039;&#039; comme style préféré, car il offre des combinaisons quasiment illimitées. Par ailleurs, ces options sont également accessibles via l&#039;option &#039;&#039;&#039;Editeur&#039;&#039;&#039; dans la liste déroulante de la barre supérieure, à côté de la zone de liste déroulante présentée ci-dessus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;• Le thème sombre a été développé pour Embarcadero par [http://www.delphistyles.com DelphiStyles.com]&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Extensions_des_fichiers_g%C3%A9n%C3%A9r%C3%A9s_par_RAD_Studio&amp;diff=218926</id>
		<title>Extensions des fichiers générés par RAD Studio</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Extensions_des_fichiers_g%C3%A9n%C3%A9r%C3%A9s_par_RAD_Studio&amp;diff=218926"/>
		<updated>2026-05-09T03:34:56Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : 1 révision importée : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Types de fichiers - Index}}&lt;br /&gt;
&lt;br /&gt;
Le tableau suivant présente la liste des extensions de fichiers générées par {{Variables|Product}}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;{{Note| MSBuild requiert que l&#039;extension de tous les fichiers projet se termine par &#039;proj&#039; (par exemple, MSBuild utilise le masque &amp;lt;code&amp;gt;*.*proj&amp;lt;/code&amp;gt;).}}&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le tableau suivant explique les différentes valeurs de la colonne &#039;&#039;&#039;&amp;quot;Conserver dans le VCS ?&amp;quot;&#039;&#039;&#039; du tableau ci-dessous :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Valeur&lt;br /&gt;
!Description&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|&lt;br /&gt;
Vous devez conserver ce fichier sous contrôle de version.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|&lt;br /&gt;
Vous ne devez pas conserver ce fichier sous contrôle de version.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Facultativement&lt;br /&gt;
|&lt;br /&gt;
Vous pouvez conserver ce fichier sous contrôle de version si vous souhaitez que toute votre équipe l&#039;utilise, mais vous pouvez aussi le garder pour vous.&lt;br /&gt;
Par exemple, si vous voulez que les membres de votre équipe utilisent les mêmes options CodeGuard pour votre projet, vous pouvez conserver le fichier {{Path|.cgi}} généré sous contrôle de version. Si vous voulez laisser les membres de votre équipe utiliser leurs propres paramètres CodeGuard pour votre projet, n&#039;ajoutez pas le fichier {{Path|.cgi}} à votre système de contrôle de version.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|&lt;br /&gt;
Vous ne devez conserver ce fichier sous contrôle de version que s&#039;il est requis pour construire votre application et que votre projet ne le construit pas.&lt;br /&gt;
Par exemple, vous devez conserver les fichiers binaires des bibliothèques tierces parties si vous n&#039;avez pas leurs sources ou si votre projet ne construit pas ces bibliothèques. Cependant, si votre projet construit une bibliothèque, vous n&#039;avez pas besoin de conserver le fichier binaire de cette bibliothèque dans votre système de contrôle de version.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Extension de fichier&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Conserver dans le [[Gestionnaire de l&#039;historique|VCS]] ?&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 a&lt;br /&gt;
|&lt;br /&gt;
* &#039;&#039;libname.a&#039;&#039; : fichier de bibliothèque statique (format COFF) produit par le compilateur amélioré par Clang [[BCC64X|BCC64X]]. (Cette chaîne d&#039;outils supporte aussi lib ; voir ci-dessous.)&lt;br /&gt;
* &#039;&#039;Name.a&#039;&#039; : fichier bibliothèque statique (format ELF) produit par les [[Compilateurs C++ améliorés par Clang|compilateurs C++ améliorés par Clang]] tels que les [[Fichier de bibliothèque statique de package|fichiers de bibliothèque statique de package]].&lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations, voir :&lt;br /&gt;
*[[Compilation et construction des applications multi-périphériques|Compilation et construction des applications multi-périphériques]]&lt;br /&gt;
*[[Construction de packages statiques|Construction de packages statiques]]&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 apk&lt;br /&gt;
|&lt;br /&gt;
Fichier package d&#039;application Android. Voir [[Déploiement de votre application Android signée|Déploiement de votre application Android signée]].&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
 bdsproj&lt;br /&gt;
|&lt;br /&gt;
Fichier des options de projet pour BDS 2006 et version antérieure (remplacé par &amp;lt;code&amp;gt;.dproj&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;.cbproj&amp;lt;/code&amp;gt;).&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
 bdsgroup&lt;br /&gt;
|&lt;br /&gt;
Groupe de projets pour BDS 2006 et les produits antérieurs.&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 bpi&lt;br /&gt;
|&lt;br /&gt;
[[Fichier de bibliothèque d&#039;importation de package|Fichier de bibliothèque d&#039;importation de package]].&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 bpl&lt;br /&gt;
|&lt;br /&gt;
[[Fichier de bibliothèque partagée de package|Fichier de bibliothèque partagée de package]].&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 cbproj&lt;br /&gt;
|&lt;br /&gt;
Fichier projet C++. Contient les paramètres en cours des options de projet, tels que les paramètres du compilateur et du lieur, les répertoires, les directives conditionnelles et les paramètres de la ligne de commande. (Définissez ces options à l&#039;aide de &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Projet &amp;amp;gt; Options&#039;&#039;&#039;&amp;lt;/font&amp;gt;.) A la compilation, produit un fichier &amp;lt;code&amp;gt;.exe&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.dll&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;.ocx&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|cmd}}&lt;br /&gt;
|&lt;br /&gt;
 cfg&lt;br /&gt;
|&lt;br /&gt;
Fichier de configuration de projet utilisé pour les compilations en ligne de commande, comme suit :&lt;br /&gt;
*dcc32.cfg pour {{f|radstudio|dcc32.exe}}{{f|appmethod|Windows 32 bits }}&lt;br /&gt;
*dcc64.cfg pour {{f|radstudio|dcc64.exe}}{{f|appmethod|Windows 64 bits }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour Windows 32 bits, par exemple, le compilateur {{Delphi}} recherche un fichier &amp;lt;code&amp;gt;dcc32.cfg&amp;lt;/code&amp;gt; dans le répertoire de l&#039;exécutable du compilateur, puis un fichier &amp;lt;code&amp;gt;dcc32.cfg&amp;lt;/code&amp;gt; dans le répertoire en cours, et enfin un fichier &amp;lt;code&amp;gt;nomprojet.cfg&amp;lt;/code&amp;gt; dans le répertoire du projet. {{f|cmd|Vous pouvez taper &amp;lt;code&amp;gt;dcc32 nomprojet&amp;lt;/code&amp;gt; sur la ligne de commande et compiler le projet avec les options spécifiées dans l&#039;EDI. }}&lt;br /&gt;
|&lt;br /&gt;
Facultativement&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 cgi&lt;br /&gt;
|&lt;br /&gt;
Le fichier CG32.cgi contient les informations de configuration pour CodeGuard, un utilitaire utilisé pour le suivi des redéfinitions en mémoire dans des exécutables C++ liés statiquement. Voir [[Utilisation de CodeGuard|Utilisation de CodeGuard]].&lt;br /&gt;
|&lt;br /&gt;
Facultativement&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 cgl&lt;br /&gt;
|&lt;br /&gt;
CodeGuard génère un fichier journal, &amp;lt;code&amp;gt;&amp;amp;lt;nom_projet&amp;amp;gt;.cgl&amp;lt;/code&amp;gt;. Voir [[Présentation de CodeGuard|Présentation de CodeGuard]].&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 cpp&lt;br /&gt;
|&lt;br /&gt;
[[Fichier d&#039;implémentation C++|Fichier d&#039;implémentation C++]].&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 csm&lt;br /&gt;
|&lt;br /&gt;
[[Fichier d&#039;en-tête précompilé C++ (*.pch)|Fichier d&#039;en-tête précompilé C++]] dans les versions antérieures de {{CBuilder}}, comme C++Builder 5.&lt;br /&gt;
|&lt;br /&gt;
Facultativement&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 d&lt;br /&gt;
|&lt;br /&gt;
[[Fichier de dépendance C++|Fichier de dépendance C++]].&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 dcp&lt;br /&gt;
|&lt;br /&gt;
[[Fichier package compilé Delphi (*.dcp)|Fichier package compilé Delphi]].&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 dcu&lt;br /&gt;
|&lt;br /&gt;
[[Fichier unité compilé Delphi (*.dcu)|Fichier unité compilé Delphi]].&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 dct&lt;br /&gt;
|&lt;br /&gt;
Tous les changements de [[Création et utilisation des modèles de composants|modèles de composants]] que vous effectuez dans {{Product}} sont stockés dans {{Path|{{AppDataPath}}\bds.dct}}.&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 deployproj&lt;br /&gt;
|&lt;br /&gt;
Le fichier de configuration du [[Gestionnaire de déploiement|Gestionnaire de déploiement]] pour votre projet.&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
 dfm&lt;br /&gt;
|&lt;br /&gt;
Un fichier fiche VCL Windows.&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 dll&lt;br /&gt;
|&lt;br /&gt;
Un fichier bibliothèque de liaison dynamique. Pour de plus amples informations, voir [[Création de packages et de DLL|Création de packages et de DLL]].&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 dpk&lt;br /&gt;
|&lt;br /&gt;
[[Fichier source de package Delphi|Fichier source de package Delphi]].&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 dpr&lt;br /&gt;
|&lt;br /&gt;
Source de projet {{Delphi}}. A la compilation, produit un fichier &amp;lt;code&amp;gt;.exe&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.dll&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;.ocx&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 dproj&lt;br /&gt;
|&lt;br /&gt;
Fichier projet {{Delphi}} créé par l&#039;EDI. Contient les paramètres en cours des options de projet, tels que les paramètres du compilateur et du lieur, les répertoires, les directives conditionnelles et les paramètres de la ligne de commande. Définissez ces options avec &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt; &#039;&#039;&#039;Projet &amp;amp;gt; Options&#039;&#039;&#039;&amp;lt;/font&amp;gt;. Ce fichier n&#039;est pas utilisé lors de la compilation d&#039;un projet depuis la ligne de commande, avec le compilateur en ligne de commande.&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 drc&lt;br /&gt;
|&lt;br /&gt;
[[Fichier de chaînes de ressources Delphi (*.drc)|Fichier de chaînes de ressources Delphi]].&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 dres&lt;br /&gt;
|&lt;br /&gt;
Fichier de ressources compilé {{Delphi}}. Cette extension est utilisée quand vous ajoutez une ressource à un projet, telle qu&#039;une icône ou une image. Le fichier &amp;lt;code&amp;gt;.dres&amp;lt;/code&amp;gt; est seulement utilisé lors de la liaison.&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 dsk&lt;br /&gt;
|&lt;br /&gt;
Fichier utilisé pour enregistrer le bureau du projet quand l&#039;option &#039;&#039;&#039;d&#039;auto-enregistrement Bureau du projet&#039;&#039;&#039; est activée sur &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Outils &amp;amp;gt; Options &amp;amp;gt; [[Options d&#039;environnement|Options d&#039;environnement]]&#039;&#039;&#039;&amp;lt;/font&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 dst&lt;br /&gt;
|&lt;br /&gt;
Fichier utilisé pour enregistrer le paramètre de vitesse du bureau, comme défini dans la zone de liste déroulante bureau de la barre d&#039;outils de l&#039;EDI.&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 dsv&lt;br /&gt;
|&lt;br /&gt;
Fichier utilisé pour enregistrer l&#039;état des vues avant de fermer un projet lorsque l&#039;option &#039;&#039;&#039;Enregistrer l&#039;état de l&#039;éditeur à la fermeture d&#039;un onglet&#039;&#039;&#039; est activée {{Menu|Outils &amp;amp;gt; Options &amp;amp;gt; EDI &amp;amp;gt; [[Enregistrement et récupération#Auto-enregistrement|Enregistrement et récupération]]}}.&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 dwo&lt;br /&gt;
|&lt;br /&gt;
Fichier objet Split DWARF contenant des informations de débogage produites par le compilateur amélioré par Clang Windows 64 bits. Pour de plus amples informations, voir, [[Débogage des applications C++ Builder Windows 64 bits#Réduction de la consommation mémoire du lieur grâce à Split Dwarf|Split DWARF]]. &lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 dSYM&lt;br /&gt;
|&lt;br /&gt;
[[Fichier de débogage DSYM|Fichier de débogage dSYM]].&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 dylib&lt;br /&gt;
|&lt;br /&gt;
Une bibliothèque dynamique (&amp;lt;code&amp;gt;.dll&amp;lt;/code&amp;gt;) ou un package (&amp;lt;code&amp;gt;.bpl&amp;lt;/code&amp;gt;) compilé pour la plate-forme macOS. Voir [[Applications multi-périphériques - Index|Applications multi-périphériques - Index]] et [[Compilation et construction des applications multi-périphériques#Fichiers de sortie pour les cibles multi-périphériques|Fichiers de sortie pour les cibles multi-périphériques]].&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 dylib.rsm&lt;br /&gt;
|&lt;br /&gt;
Fichier de symboles de débogage distant pour {{Delphi}} pour macOS. Voir &amp;lt;code&amp;gt;.rsm&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 entitlements&lt;br /&gt;
|&lt;br /&gt;
[[Fichier des droits d&#039;application Apple (*.entitlements)|Fichier des droits d&#039;une application Apple]].&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 exe&lt;br /&gt;
|&lt;br /&gt;
Fichier exécutable Windows.&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 exe.incr&lt;br /&gt;
|&lt;br /&gt;
Informations de construction incrémentielle.&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&amp;lt;br /&amp;gt;&lt;br /&gt;
Facultativement&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 fmx&lt;br /&gt;
|&lt;br /&gt;
Fichier fiche multi-périphérique Voir [[Création d&#039;une application FireMonkey|Création d&#039;une application FireMonkey]].&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 fsf&lt;br /&gt;
|&lt;br /&gt;
Fichier de styles binaire {{FM}}. Similaire au fichier &amp;lt;code&amp;gt;.style&amp;lt;/code&amp;gt;. Voir [[Personnalisation des applications FireMonkey avec les styles|Personnalisation des applications FireMonkey avec les styles]].&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 groupproj&lt;br /&gt;
|&lt;br /&gt;
Groupe de projets.&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 h&lt;br /&gt;
|&lt;br /&gt;
[[Fichier d&#039;en-tête C++|Fichier d&#039;en-tête C++]].&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 hpp&lt;br /&gt;
|&lt;br /&gt;
[[Fichier d&#039;en-tête C++|Fichier d&#039;en-tête C++]].&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 i&lt;br /&gt;
|&lt;br /&gt;
Sortie du préprocesseur C++ (non enregistrée par défaut). Chaque [[Fichier d&#039;implémentation C++|fichier d&#039;implémentation C++]] et tous ses [[Fichier d&#039;en-tête C++|fichiers en-tête C++]] sont prétraités dans un fichier  &amp;lt;code&amp;gt;.i&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 identcache&lt;br /&gt;
|&lt;br /&gt;
Informations utilisées pour le refactoring.&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 ilc&lt;br /&gt;
 ild&lt;br /&gt;
 ilf&lt;br /&gt;
 ilr&lt;br /&gt;
 ils&lt;br /&gt;
|&lt;br /&gt;
[[Fichier d&#039;état du lieur C++ (*.ilc, *.ild, *.ilf, *.ilr, *.ils)|Fichier d&#039;état de la liaison incrémentielle C++]].&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 info.plist&lt;br /&gt;
|&lt;br /&gt;
[[Fichier des informations d&#039;application Apple (*.info.plist)|Fichier des informations d&#039;application Apple]].&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 ipa&lt;br /&gt;
|&lt;br /&gt;
Fichier archive d&#039;application pour une app iOS.  Généré pour les configurations de plate-forme Ad hoc et Magasin d&#039;applications.  Voir [[Déploiement de votre application iOS pour une distribution Ad-hoc|Déploiement de votre application iOS pour une distribution Ad-hoc]] et [[Déploiement de votre application iOS pour soumission à l&#039;App Store|Déploiement de votre application iOS pour soumission à l&#039;App Store]].&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 lib&lt;br /&gt;
|&lt;br /&gt;
Cela peut être l&#039;un quelconque des éléments suivants :&lt;br /&gt;
*Un fichier bibliothèque statique, tel qu&#039;un [[Fichier de bibliothèque statique de package|fichier bibliothèque statique de package]].&lt;br /&gt;
*Une bibliothèque d&#039;importation pour les plates-formes Win32 et Win64 {{f|radstudio|(créée par [[IMPLIB.EXE, l&#039;outil bibliothèque d&#039;importation pour Win32|IMPLIB.EXE, l&#039;outil bibliothèque d&#039;importation pour Win32]] ou [[Utilisation de ILINK32 et ILINK64 en ligne de commande|Utilisation de ILINK32 et ILINK64 en ligne de commande]])}}&lt;br /&gt;
*Les deux éléments ci-dessus (comme les bibliothèques d&#039;importation rtldll, qui sont des bibliothèques d&#039;importation avec certains modules d&#039;objet supplémentaires)&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 local&lt;br /&gt;
|&lt;br /&gt;
Options de projet spécifiques à l&#039;utilisateur.&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 map&lt;br /&gt;
|&lt;br /&gt;
[[Fichier de débogage map|Fichier de débogage map]].&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 nfn&lt;br /&gt;
|&lt;br /&gt;
Un fichier maintenu par les outils de traduction, contenant les chaînes traduites et d&#039;autres données affichées dans le gestionnaire de traductions. Il existe un fichier &amp;lt;code&amp;gt;.nfn&amp;lt;/code&amp;gt; distinct pour chaque fiche de votre application et chaque langue cible.&lt;br /&gt;
|&lt;br /&gt;
Facultativement&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 o&lt;br /&gt;
|&lt;br /&gt;
[[Fichier objet C++ (*.obj, *.o)|Fichier objet C++]] ou une unité de traduction compilée.&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 obj&lt;br /&gt;
|&lt;br /&gt;
[[Fichier objet C++ (*.obj, *.o)|Fichier objet C++]] ou une unité de traduction compilée.&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|activex}}&lt;br /&gt;
|&lt;br /&gt;
 ocx&lt;br /&gt;
|&lt;br /&gt;
OCX (OLE Control eXtension), créé par [[Expert Contrôle ActiveX ou Fiche Active|l&#039;expert Fiche Active]].&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 optset&lt;br /&gt;
|&lt;br /&gt;
Fichier jeu d&#039;options nommé stockant les options de configuration, séparément des projets. Voir [[Présentation des jeux d&#039;options|Présentation des jeux d&#039;options]].&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|radstudio}}&lt;br /&gt;
|&lt;br /&gt;
 otares&lt;br /&gt;
|&lt;br /&gt;
Fichier avec des ressources inconnues générées pendant la mise à niveau du projet pré XE2. Des ressources inconnues sont des ressources qui ne sont pas incluses dans la configuration de construction, comme les informations de version, les icônes, les manifestes ou les styles.&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 pas&lt;br /&gt;
|&lt;br /&gt;
[[Fichier source Delphi|Fichier source {{Delphi}}]].&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 pch&lt;br /&gt;
|&lt;br /&gt;
[[Fichier d&#039;en-tête précompilé C++ (*.pch)|Fichier d&#039;en-tête précompilé C++]].&lt;br /&gt;
|&lt;br /&gt;
Facultativement&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 pdi&lt;br /&gt;
|&lt;br /&gt;
[[Fichier d&#039;informations de dépendance de package C++ (*.pdi)|Fichier d&#039;informations de dépendance de package C++]].&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 plist&lt;br /&gt;
|&lt;br /&gt;
Fichier liste de propriétés. Les listes de propriétés sont générées pour les plates-formes cibles macOS ARM 64 bits, macOS 64 bits et Périphérique iOS 64 bits. Voir [[Compilation et construction des applications multi-périphériques|Compilation et construction des applications multi-périphériques]].&lt;br /&gt;
&#039;&#039;&#039;{{Product}}&#039;&#039;&#039; génère les fichiers de listes de propriétés suivants :&lt;br /&gt;
*[[Fichier des droits d&#039;application Apple (*.entitlements)|{{Placeholder|project}}.entitlements]]&lt;br /&gt;
*[[Fichier des informations d&#039;application Apple (*.info.plist)|{{Placeholder|project}}.info.plist]]&lt;br /&gt;
*[[Fichier des règles de ressources d&#039;application Apple|ResourceRules.plist]]&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 profile&lt;br /&gt;
|&lt;br /&gt;
Un [[Gestionnaire de profils de connexion|profil de connexion]] qui décrit la connexion au Platform Assistant s&#039;exécutant sur un système distant, pour le développement d&#039;applications multi-périphériques ciblant la plate-forme macOS ou iOS.&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 res, rc&lt;br /&gt;
|&lt;br /&gt;
Fichiers de ressources compilés et non compilés.&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 ridl&lt;br /&gt;
|&lt;br /&gt;
Langage de définition d&#039;interface restreinte. Fichier texte utilisé par [[Editeur de bibliothèques de types|l&#039;éditeur de bibliothèques de types]].&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 rps&lt;br /&gt;
|&lt;br /&gt;
Ancienne extension pour un [[Référentiel de traductions|référentiel de traductions]] ITE/ETM ; prise en charge pour l&#039;accès en lecture seule. Les référentiels de traductions sont à présent enregistrés dans les fichiers &amp;lt;code&amp;gt;.tmx&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
Facultativement&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 rsp&lt;br /&gt;
|&lt;br /&gt;
Fichier de réponse utilisé par le lieur C++.&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 rsm&lt;br /&gt;
|&lt;br /&gt;
[[Fichier de débogage RSM|Fichier de débogage RSM]], utilisé pour le [[Présentation du débogage distant|débogage distant]] dans les projets {{Delphi}}. Activé par l&#039;option &#039;&#039;&#039;Inclure les symboles de débogage distant&#039;&#039;&#039; sur {{Menu|Projet &amp;amp;gt; Options &amp;amp;gt; Compilateur {{Delphi}} &amp;amp;gt; [[Liaison (Delphi)|Liaison]]}}.&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 sdk&lt;br /&gt;
|&lt;br /&gt;
Un [[Gestionnaire de SDK|SDK]] qui décrit une plate-forme cible, et une combinaison des fichiers nécessaires à la construction d&#039;applications pour cette plate-forme.&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 so&lt;br /&gt;
|&lt;br /&gt;
C&#039;est l&#039;extension de fichier des bibliothèques partagées dans des systèmes comme Unix, tels que macOS et Linux.&lt;br /&gt;
Lorsque vous construisez une [[Application multi-périphérique|application multi-périphérique]] pour [[Développement d&#039;applications mobiles Android|Android]], {{Variables|Product}} génère une bibliothèque partagée avec cette extension de fichier qui implémente la logique du projet, étant donné qu&#039;Android est basé sur Linux.&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 stat&lt;br /&gt;
|&lt;br /&gt;
Lorsque vous fermez le projet, {{Product}} enregistre les [[Statistiques du projet|statistiques du projet]] dans le fichier &#039;&#039;&amp;amp;lt;NomProjet&amp;amp;gt;.stat&#039;&#039;. Si vous le souhaitez, vous pouvez conserver ce fichier dans le contrôle de version.&lt;br /&gt;
|&lt;br /&gt;
Facultativement&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 style&lt;br /&gt;
|&lt;br /&gt;
Fichier de styles {{FM}}. Voir [[Personnalisation des applications FireMonkey avec les styles|Personnalisation des applications FireMonkey avec les styles]].&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 sym&lt;br /&gt;
|&lt;br /&gt;
Fichier de symboles. {{CBuilder}} utilise &amp;lt;code&amp;gt;tlibimp.sym&amp;lt;/code&amp;gt; pour mapper les noms de symboles dans les bibliothèques de types. Pour de plus amples informations, voir [[Mappage des noms de symboles dans une bibliothèque de types|Mappage des noms de symboles dans une bibliothèque de types]].&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 targets&lt;br /&gt;
|&lt;br /&gt;
Fichier targets, un fichier XML compatible MSBuild que vous ajoutez à votre projet afin de permettre la personnalisation du processus de construction. Il contient des scripts MSBuild ainsi que d&#039;autres informations.&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 tds&lt;br /&gt;
|&lt;br /&gt;
[[Fichier de débogage TDS|Fichier de débogage TDS]].&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 tgproj&lt;br /&gt;
|&lt;br /&gt;
Projet de conception de la modélisation.&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 tlb&lt;br /&gt;
|&lt;br /&gt;
Bibliothèque de types.&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 tmx&lt;br /&gt;
|&lt;br /&gt;
Le [[Référentiel de traductions|référentiel de traductions]] stocke les données dans un fichier &amp;lt;code&amp;gt;.tmx&amp;lt;/code&amp;gt; au format XML. Vous pouvez maintenir plusieurs référentiels en enregistrant plusieurs fichiers &amp;lt;code&amp;gt;.tmx&amp;lt;/code&amp;gt;. Voir [[Gestionnaire de traductions dans l&#039;EDI|Gestionnaire de traductions dans l&#039;EDI]].&lt;br /&gt;
|&lt;br /&gt;
Facultativement&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 todo&lt;br /&gt;
|&lt;br /&gt;
Liste A faire du projet.&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|radstudio}}&lt;br /&gt;
|&lt;br /&gt;
 tvsconfig&lt;br /&gt;
|&lt;br /&gt;
Fichier de configuration de la modélisation.&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|radstudio}}&lt;br /&gt;
|&lt;br /&gt;
 txvpck, txvcls&lt;br /&gt;
|&lt;br /&gt;
Informations pour un diagramme de modèle.&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
 vsf&lt;br /&gt;
|&lt;br /&gt;
Fichier de style VCL, activé dans la page [[Apparence de l&#039;application|Apparence de l&#039;application]].&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 vlb&lt;br /&gt;
|&lt;br /&gt;
Fichier LiveBindings visuel.  Voir [[Concepteur LiveBindings|Concepteur LiveBindings]].&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 xml&lt;br /&gt;
|&lt;br /&gt;
[https://en.wikipedia.org/wiki/XML XML] est un langage de balisage pour les fichiers de données. La liste suivante contient des exemples de fichiers XML générés par &#039;&#039;&#039;{{Product}}&#039;&#039;&#039; :&lt;br /&gt;
*[[Déclarations globales de sortie XML du compilateur|{{Placeholder|projet}}.xml, {{Placeholder|unité}}.xml]]&lt;br /&gt;
*[[Fichier manifest d&#039;application Android (AndroidManifest.xml)|AndroidManifest.xml]]&lt;br /&gt;
*[[Personnalisation de votre fichier info.plist|info.plist.TemplateOSX.xml]]&lt;br /&gt;
*[[Personnalisation de votre fichier info.plist|info.plist.TemplateiOS.xml]]&lt;br /&gt;
|&lt;br /&gt;
Facultativement&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 #nn&lt;br /&gt;
|&lt;br /&gt;
Ici #nn = #00, #01, #02, et ainsi de suite. [[Fichier de type de débogage C++|Fichier de type de débogage C++]].&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Packages et DLL standard|Packages et DLL standard]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Référence EDI]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Extensions_des_fichiers_g%C3%A9n%C3%A9r%C3%A9s_par_RAD_Studio&amp;diff=218925</id>
		<title>Extensions des fichiers générés par RAD Studio</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Extensions_des_fichiers_g%C3%A9n%C3%A9r%C3%A9s_par_RAD_Studio&amp;diff=218925"/>
		<updated>2026-05-09T03:34:55Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Types de fichiers - Index}}&lt;br /&gt;
&lt;br /&gt;
Le tableau suivant présente la liste des extensions de fichiers générées par {{Variables|Product}}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;{{Note| MSBuild requiert que l&#039;extension de tous les fichiers projet se termine par &#039;proj&#039; (par exemple, MSBuild utilise le masque &amp;lt;code&amp;gt;*.*proj&amp;lt;/code&amp;gt;).}}&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le tableau suivant explique les différentes valeurs de la colonne &#039;&#039;&#039;&amp;quot;Conserver dans le VCS ?&amp;quot;&#039;&#039;&#039; du tableau ci-dessous :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Valeur&lt;br /&gt;
!Description&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|&lt;br /&gt;
Vous devez conserver ce fichier sous contrôle de version.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|&lt;br /&gt;
Vous ne devez pas conserver ce fichier sous contrôle de version.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Facultativement&lt;br /&gt;
|&lt;br /&gt;
Vous pouvez conserver ce fichier sous contrôle de version si vous souhaitez que toute votre équipe l&#039;utilise, mais vous pouvez aussi le garder pour vous.&lt;br /&gt;
Par exemple, si vous voulez que les membres de votre équipe utilisent les mêmes options CodeGuard pour votre projet, vous pouvez conserver le fichier {{Path|.cgi}} généré sous contrôle de version. Si vous voulez laisser les membres de votre équipe utiliser leurs propres paramètres CodeGuard pour votre projet, n&#039;ajoutez pas le fichier {{Path|.cgi}} à votre système de contrôle de version.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|&lt;br /&gt;
Vous ne devez conserver ce fichier sous contrôle de version que s&#039;il est requis pour construire votre application et que votre projet ne le construit pas.&lt;br /&gt;
Par exemple, vous devez conserver les fichiers binaires des bibliothèques tierces parties si vous n&#039;avez pas leurs sources ou si votre projet ne construit pas ces bibliothèques. Cependant, si votre projet construit une bibliothèque, vous n&#039;avez pas besoin de conserver le fichier binaire de cette bibliothèque dans votre système de contrôle de version.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Extension de fichier&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Conserver dans le [[Gestionnaire de l&#039;historique|VCS]] ?&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 a&lt;br /&gt;
|&lt;br /&gt;
* &#039;&#039;libname.a&#039;&#039; : fichier de bibliothèque statique (format COFF) produit par le compilateur amélioré par Clang [[BCC64X|BCC64X]]. (Cette chaîne d&#039;outils supporte aussi lib ; voir ci-dessous.)&lt;br /&gt;
* &#039;&#039;Name.a&#039;&#039; : fichier bibliothèque statique (format ELF) produit par les [[Compilateurs C++ améliorés par Clang|compilateurs C++ améliorés par Clang]] tels que les [[Fichier de bibliothèque statique de package|fichiers de bibliothèque statique de package]].&lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations, voir :&lt;br /&gt;
*[[Compilation et construction des applications multi-périphériques|Compilation et construction des applications multi-périphériques]]&lt;br /&gt;
*[[Construction de packages statiques|Construction de packages statiques]]&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 apk&lt;br /&gt;
|&lt;br /&gt;
Fichier package d&#039;application Android. Voir [[Déploiement de votre application Android signée|Déploiement de votre application Android signée]].&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
 bdsproj&lt;br /&gt;
|&lt;br /&gt;
Fichier des options de projet pour BDS 2006 et version antérieure (remplacé par &amp;lt;code&amp;gt;.dproj&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;.cbproj&amp;lt;/code&amp;gt;).&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
 bdsgroup&lt;br /&gt;
|&lt;br /&gt;
Groupe de projets pour BDS 2006 et les produits antérieurs.&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 bpi&lt;br /&gt;
|&lt;br /&gt;
[[Fichier de bibliothèque d&#039;importation de package|Fichier de bibliothèque d&#039;importation de package]].&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 bpl&lt;br /&gt;
|&lt;br /&gt;
[[Fichier de bibliothèque partagée de package|Fichier de bibliothèque partagée de package]].&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 cbproj&lt;br /&gt;
|&lt;br /&gt;
Fichier projet C++. Contient les paramètres en cours des options de projet, tels que les paramètres du compilateur et du lieur, les répertoires, les directives conditionnelles et les paramètres de la ligne de commande. (Définissez ces options à l&#039;aide de &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Projet &amp;amp;gt; Options&#039;&#039;&#039;&amp;lt;/font&amp;gt;.) A la compilation, produit un fichier &amp;lt;code&amp;gt;.exe&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.dll&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;.ocx&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|cmd}}&lt;br /&gt;
|&lt;br /&gt;
 cfg&lt;br /&gt;
|&lt;br /&gt;
Fichier de configuration de projet utilisé pour les compilations en ligne de commande, comme suit :&lt;br /&gt;
*dcc32.cfg pour {{f|radstudio|dcc32.exe}}{{f|appmethod|Windows 32 bits }}&lt;br /&gt;
*dcc64.cfg pour {{f|radstudio|dcc64.exe}}{{f|appmethod|Windows 64 bits }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour Windows 32 bits, par exemple, le compilateur {{Delphi}} recherche un fichier &amp;lt;code&amp;gt;dcc32.cfg&amp;lt;/code&amp;gt; dans le répertoire de l&#039;exécutable du compilateur, puis un fichier &amp;lt;code&amp;gt;dcc32.cfg&amp;lt;/code&amp;gt; dans le répertoire en cours, et enfin un fichier &amp;lt;code&amp;gt;nomprojet.cfg&amp;lt;/code&amp;gt; dans le répertoire du projet. {{f|cmd|Vous pouvez taper &amp;lt;code&amp;gt;dcc32 nomprojet&amp;lt;/code&amp;gt; sur la ligne de commande et compiler le projet avec les options spécifiées dans l&#039;EDI. }}&lt;br /&gt;
|&lt;br /&gt;
Facultativement&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 cgi&lt;br /&gt;
|&lt;br /&gt;
Le fichier CG32.cgi contient les informations de configuration pour CodeGuard, un utilitaire utilisé pour le suivi des redéfinitions en mémoire dans des exécutables C++ liés statiquement. Voir [[Utilisation de CodeGuard|Utilisation de CodeGuard]].&lt;br /&gt;
|&lt;br /&gt;
Facultativement&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 cgl&lt;br /&gt;
|&lt;br /&gt;
CodeGuard génère un fichier journal, &amp;lt;code&amp;gt;&amp;amp;lt;nom_projet&amp;amp;gt;.cgl&amp;lt;/code&amp;gt;. Voir [[Présentation de CodeGuard|Présentation de CodeGuard]].&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 cpp&lt;br /&gt;
|&lt;br /&gt;
[[Fichier d&#039;implémentation C++|Fichier d&#039;implémentation C++]].&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 csm&lt;br /&gt;
|&lt;br /&gt;
[[Fichier d&#039;en-tête précompilé C++ (*.pch)|Fichier d&#039;en-tête précompilé C++]] dans les versions antérieures de {{CBuilder}}, comme C++Builder 5.&lt;br /&gt;
|&lt;br /&gt;
Facultativement&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 d&lt;br /&gt;
|&lt;br /&gt;
[[Fichier de dépendance C++|Fichier de dépendance C++]].&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 dcp&lt;br /&gt;
|&lt;br /&gt;
[[Fichier package compilé Delphi (*.dcp)|Fichier package compilé Delphi]].&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 dcu&lt;br /&gt;
|&lt;br /&gt;
[[Fichier unité compilé Delphi (*.dcu)|Fichier unité compilé Delphi]].&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 dct&lt;br /&gt;
|&lt;br /&gt;
Tous les changements de [[Création et utilisation des modèles de composants|modèles de composants]] que vous effectuez dans {{Product}} sont stockés dans {{Path|{{AppDataPath}}\bds.dct}}.&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 deployproj&lt;br /&gt;
|&lt;br /&gt;
Le fichier de configuration du [[Gestionnaire de déploiement|Gestionnaire de déploiement]] pour votre projet.&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
 dfm&lt;br /&gt;
|&lt;br /&gt;
Un fichier fiche VCL Windows.&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 dll&lt;br /&gt;
|&lt;br /&gt;
Un fichier bibliothèque de liaison dynamique. Pour de plus amples informations, voir [[Création de packages et de DLL|Création de packages et de DLL]].&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 dpk&lt;br /&gt;
|&lt;br /&gt;
[[Fichier source de package Delphi|Fichier source de package Delphi]].&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 dpr&lt;br /&gt;
|&lt;br /&gt;
Source de projet {{Delphi}}. A la compilation, produit un fichier &amp;lt;code&amp;gt;.exe&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.dll&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;.ocx&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 dproj&lt;br /&gt;
|&lt;br /&gt;
Fichier projet {{Delphi}} créé par l&#039;EDI. Contient les paramètres en cours des options de projet, tels que les paramètres du compilateur et du lieur, les répertoires, les directives conditionnelles et les paramètres de la ligne de commande. Définissez ces options avec &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt; &#039;&#039;&#039;Projet &amp;amp;gt; Options&#039;&#039;&#039;&amp;lt;/font&amp;gt;. Ce fichier n&#039;est pas utilisé lors de la compilation d&#039;un projet depuis la ligne de commande, avec le compilateur en ligne de commande.&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 drc&lt;br /&gt;
|&lt;br /&gt;
[[Fichier de chaînes de ressources Delphi (*.drc)|Fichier de chaînes de ressources Delphi]].&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 dres&lt;br /&gt;
|&lt;br /&gt;
Fichier de ressources compilé {{Delphi}}. Cette extension est utilisée quand vous ajoutez une ressource à un projet, telle qu&#039;une icône ou une image. Le fichier &amp;lt;code&amp;gt;.dres&amp;lt;/code&amp;gt; est seulement utilisé lors de la liaison.&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 dsk&lt;br /&gt;
|&lt;br /&gt;
Fichier utilisé pour enregistrer le bureau du projet quand l&#039;option &#039;&#039;&#039;d&#039;auto-enregistrement Bureau du projet&#039;&#039;&#039; est activée sur &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Outils &amp;amp;gt; Options &amp;amp;gt; [[Options d&#039;environnement|Options d&#039;environnement]]&#039;&#039;&#039;&amp;lt;/font&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 dst&lt;br /&gt;
|&lt;br /&gt;
Fichier utilisé pour enregistrer le paramètre de vitesse du bureau, comme défini dans la zone de liste déroulante bureau de la barre d&#039;outils de l&#039;EDI.&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 dsv&lt;br /&gt;
|&lt;br /&gt;
Fichier utilisé pour enregistrer l&#039;état des vues avant de fermer un projet lorsque l&#039;option &#039;&#039;&#039;Enregistrer l&#039;état de l&#039;éditeur à la fermeture d&#039;un onglet&#039;&#039;&#039; est activée {{Menu|Outils &amp;amp;gt; Options &amp;amp;gt; EDI &amp;amp;gt; [[Enregistrement et récupération#Auto-enregistrement|Enregistrement et récupération]]}}.&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 dwo&lt;br /&gt;
|&lt;br /&gt;
Fichier objet Split DWARF contenant des informations de débogage produites par le compilateur amélioré par Clang Windows 64 bits. Pour de plus amples informations, voir, [[Débogage des applications C++ Builder Windows 64 bits#Réduction de la consommation mémoire du lieur grâce à Split Dwarf|Split DWARF]]. &lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 dSYM&lt;br /&gt;
|&lt;br /&gt;
[[Fichier de débogage DSYM|Fichier de débogage dSYM]].&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 dylib&lt;br /&gt;
|&lt;br /&gt;
Une bibliothèque dynamique (&amp;lt;code&amp;gt;.dll&amp;lt;/code&amp;gt;) ou un package (&amp;lt;code&amp;gt;.bpl&amp;lt;/code&amp;gt;) compilé pour la plate-forme macOS. Voir [[Applications multi-périphériques - Index|Applications multi-périphériques - Index]] et [[Compilation et construction des applications multi-périphériques#Fichiers de sortie pour les cibles multi-périphériques|Fichiers de sortie pour les cibles multi-périphériques]].&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 dylib.rsm&lt;br /&gt;
|&lt;br /&gt;
Fichier de symboles de débogage distant pour {{Delphi}} pour macOS. Voir &amp;lt;code&amp;gt;.rsm&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 entitlements&lt;br /&gt;
|&lt;br /&gt;
[[Fichier des droits d&#039;application Apple (*.entitlements)|Fichier des droits d&#039;une application Apple]].&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 exe&lt;br /&gt;
|&lt;br /&gt;
Fichier exécutable Windows.&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 exe.incr&lt;br /&gt;
|&lt;br /&gt;
Informations de construction incrémentielle.&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&amp;lt;br /&amp;gt;&lt;br /&gt;
Facultativement&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 fmx&lt;br /&gt;
|&lt;br /&gt;
Fichier fiche multi-périphérique Voir [[Création d&#039;une application FireMonkey|Création d&#039;une application FireMonkey]].&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 fsf&lt;br /&gt;
|&lt;br /&gt;
Fichier de styles binaire {{FM}}. Similaire au fichier &amp;lt;code&amp;gt;.style&amp;lt;/code&amp;gt;. Voir [[Personnalisation des applications FireMonkey avec les styles|Personnalisation des applications FireMonkey avec les styles]].&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 groupproj&lt;br /&gt;
|&lt;br /&gt;
Groupe de projets.&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 h&lt;br /&gt;
|&lt;br /&gt;
[[Fichier d&#039;en-tête C++|Fichier d&#039;en-tête C++]].&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 hpp&lt;br /&gt;
|&lt;br /&gt;
[[Fichier d&#039;en-tête C++|Fichier d&#039;en-tête C++]].&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 i&lt;br /&gt;
|&lt;br /&gt;
Sortie du préprocesseur C++ (non enregistrée par défaut). Chaque [[Fichier d&#039;implémentation C++|fichier d&#039;implémentation C++]] et tous ses [[Fichier d&#039;en-tête C++|fichiers en-tête C++]] sont prétraités dans un fichier  &amp;lt;code&amp;gt;.i&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 identcache&lt;br /&gt;
|&lt;br /&gt;
Informations utilisées pour le refactoring.&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 ilc&lt;br /&gt;
 ild&lt;br /&gt;
 ilf&lt;br /&gt;
 ilr&lt;br /&gt;
 ils&lt;br /&gt;
|&lt;br /&gt;
[[Fichier d&#039;état du lieur C++ (*.ilc, *.ild, *.ilf, *.ilr, *.ils)|Fichier d&#039;état de la liaison incrémentielle C++]].&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 info.plist&lt;br /&gt;
|&lt;br /&gt;
[[Fichier des informations d&#039;application Apple (*.info.plist)|Fichier des informations d&#039;application Apple]].&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 ipa&lt;br /&gt;
|&lt;br /&gt;
Fichier archive d&#039;application pour une app iOS.  Généré pour les configurations de plate-forme Ad hoc et Magasin d&#039;applications.  Voir [[Déploiement de votre application iOS pour une distribution Ad-hoc|Déploiement de votre application iOS pour une distribution Ad-hoc]] et [[Déploiement de votre application iOS pour soumission à l&#039;App Store|Déploiement de votre application iOS pour soumission à l&#039;App Store]].&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 lib&lt;br /&gt;
|&lt;br /&gt;
Cela peut être l&#039;un quelconque des éléments suivants :&lt;br /&gt;
*Un fichier bibliothèque statique, tel qu&#039;un [[Fichier de bibliothèque statique de package|fichier bibliothèque statique de package]].&lt;br /&gt;
*Une bibliothèque d&#039;importation pour les plates-formes Win32 et Win64 {{f|radstudio|(créée par [[IMPLIB.EXE, l&#039;outil bibliothèque d&#039;importation pour Win32|IMPLIB.EXE, l&#039;outil bibliothèque d&#039;importation pour Win32]] ou [[Utilisation de ILINK32 et ILINK64 en ligne de commande|Utilisation de ILINK32 et ILINK64 en ligne de commande]])}}&lt;br /&gt;
*Les deux éléments ci-dessus (comme les bibliothèques d&#039;importation rtldll, qui sont des bibliothèques d&#039;importation avec certains modules d&#039;objet supplémentaires)&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 local&lt;br /&gt;
|&lt;br /&gt;
Options de projet spécifiques à l&#039;utilisateur.&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 map&lt;br /&gt;
|&lt;br /&gt;
[[Fichier de débogage map|Fichier de débogage map]].&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 nfn&lt;br /&gt;
|&lt;br /&gt;
Un fichier maintenu par les outils de traduction, contenant les chaînes traduites et d&#039;autres données affichées dans le gestionnaire de traductions. Il existe un fichier &amp;lt;code&amp;gt;.nfn&amp;lt;/code&amp;gt; distinct pour chaque fiche de votre application et chaque langue cible.&lt;br /&gt;
|&lt;br /&gt;
Facultativement&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 o&lt;br /&gt;
|&lt;br /&gt;
[[Fichier objet C++ (*.obj, *.o)|Fichier objet C++]] ou une unité de traduction compilée.&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 obj&lt;br /&gt;
|&lt;br /&gt;
[[Fichier objet C++ (*.obj, *.o)|Fichier objet C++]] ou une unité de traduction compilée.&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|activex}}&lt;br /&gt;
|&lt;br /&gt;
 ocx&lt;br /&gt;
|&lt;br /&gt;
OCX (OLE Control eXtension), créé par [[Expert Contrôle ActiveX ou Fiche Active|l&#039;expert Fiche Active]].&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 optset&lt;br /&gt;
|&lt;br /&gt;
Fichier jeu d&#039;options nommé stockant les options de configuration, séparément des projets. Voir [[Présentation des jeux d&#039;options|Présentation des jeux d&#039;options]].&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|radstudio}}&lt;br /&gt;
|&lt;br /&gt;
 otares&lt;br /&gt;
|&lt;br /&gt;
Fichier avec des ressources inconnues générées pendant la mise à niveau du projet pré XE2. Des ressources inconnues sont des ressources qui ne sont pas incluses dans la configuration de construction, comme les informations de version, les icônes, les manifestes ou les styles.&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 pas&lt;br /&gt;
|&lt;br /&gt;
[[Fichier source Delphi|Fichier source {{Delphi}}]].&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 pch&lt;br /&gt;
|&lt;br /&gt;
[[Fichier d&#039;en-tête précompilé C++ (*.pch)|Fichier d&#039;en-tête précompilé C++]].&lt;br /&gt;
|&lt;br /&gt;
Facultativement&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 pdi&lt;br /&gt;
|&lt;br /&gt;
[[Fichier d&#039;informations de dépendance de package C++ (*.pdi)|Fichier d&#039;informations de dépendance de package C++]].&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 plist&lt;br /&gt;
|&lt;br /&gt;
Fichier liste de propriétés. Les listes de propriétés sont générées pour les plates-formes cibles macOS ARM 64 bits, macOS 64 bits et Périphérique iOS 64 bits. Voir [[Compilation et construction des applications multi-périphériques|Compilation et construction des applications multi-périphériques]].&lt;br /&gt;
&#039;&#039;&#039;{{Product}}&#039;&#039;&#039; génère les fichiers de listes de propriétés suivants :&lt;br /&gt;
*[[Fichier des droits d&#039;application Apple (*.entitlements)|{{Placeholder|project}}.entitlements]]&lt;br /&gt;
*[[Fichier des informations d&#039;application Apple (*.info.plist)|{{Placeholder|project}}.info.plist]]&lt;br /&gt;
*[[Fichier des règles de ressources d&#039;application Apple|ResourceRules.plist]]&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 profile&lt;br /&gt;
|&lt;br /&gt;
Un [[Gestionnaire de profils de connexion|profil de connexion]] qui décrit la connexion au Platform Assistant s&#039;exécutant sur un système distant, pour le développement d&#039;applications multi-périphériques ciblant la plate-forme macOS ou iOS.&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 res, rc&lt;br /&gt;
|&lt;br /&gt;
Fichiers de ressources compilés et non compilés.&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 ridl&lt;br /&gt;
|&lt;br /&gt;
Langage de définition d&#039;interface restreinte. Fichier texte utilisé par [[Editeur de bibliothèques de types|l&#039;éditeur de bibliothèques de types]].&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 rps&lt;br /&gt;
|&lt;br /&gt;
Ancienne extension pour un [[Référentiel de traductions|référentiel de traductions]] ITE/ETM ; prise en charge pour l&#039;accès en lecture seule. Les référentiels de traductions sont à présent enregistrés dans les fichiers &amp;lt;code&amp;gt;.tmx&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
Facultativement&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 rsp&lt;br /&gt;
|&lt;br /&gt;
Fichier de réponse utilisé par le lieur C++.&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 rsm&lt;br /&gt;
|&lt;br /&gt;
[[Fichier de débogage RSM|Fichier de débogage RSM]], utilisé pour le [[Présentation du débogage distant|débogage distant]] dans les projets {{Delphi}}. Activé par l&#039;option &#039;&#039;&#039;Inclure les symboles de débogage distant&#039;&#039;&#039; sur {{Menu|Projet &amp;amp;gt; Options &amp;amp;gt; Compilateur {{Delphi}} &amp;amp;gt; [[Liaison (Delphi)|Liaison]]}}.&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 sdk&lt;br /&gt;
|&lt;br /&gt;
Un [[Gestionnaire de SDK|SDK]] qui décrit une plate-forme cible, et une combinaison des fichiers nécessaires à la construction d&#039;applications pour cette plate-forme.&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 so&lt;br /&gt;
|&lt;br /&gt;
C&#039;est l&#039;extension de fichier des bibliothèques partagées dans des systèmes comme Unix, tels que macOS et Linux.&lt;br /&gt;
Lorsque vous construisez une [[Application multi-périphérique|application multi-périphérique]] pour [[Développement d&#039;applications mobiles Android|Android]], {{Variables|Product}} génère une bibliothèque partagée avec cette extension de fichier qui implémente la logique du projet, étant donné qu&#039;Android est basé sur Linux.&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 stat&lt;br /&gt;
|&lt;br /&gt;
Lorsque vous fermez le projet, {{Product}} enregistre les [[Statistiques du projet|statistiques du projet]] dans le fichier &#039;&#039;&amp;amp;lt;NomProjet&amp;amp;gt;.stat&#039;&#039;. Si vous le souhaitez, vous pouvez conserver ce fichier dans le contrôle de version.&lt;br /&gt;
|&lt;br /&gt;
Facultativement&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 style&lt;br /&gt;
|&lt;br /&gt;
Fichier de styles {{FM}}. Voir [[Personnalisation des applications FireMonkey avec les styles|Personnalisation des applications FireMonkey avec les styles]].&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 sym&lt;br /&gt;
|&lt;br /&gt;
Fichier de symboles. {{CBuilder}} utilise &amp;lt;code&amp;gt;tlibimp.sym&amp;lt;/code&amp;gt; pour mapper les noms de symboles dans les bibliothèques de types. Pour de plus amples informations, voir [[Mappage des noms de symboles dans une bibliothèque de types|Mappage des noms de symboles dans une bibliothèque de types]].&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 targets&lt;br /&gt;
|&lt;br /&gt;
Fichier targets, un fichier XML compatible MSBuild que vous ajoutez à votre projet afin de permettre la personnalisation du processus de construction. Il contient des scripts MSBuild ainsi que d&#039;autres informations.&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 tds&lt;br /&gt;
|&lt;br /&gt;
[[Fichier de débogage TDS|Fichier de débogage TDS]].&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 tgproj&lt;br /&gt;
|&lt;br /&gt;
Projet de conception de la modélisation.&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 tlb&lt;br /&gt;
|&lt;br /&gt;
Bibliothèque de types.&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 tmx&lt;br /&gt;
|&lt;br /&gt;
Le [[Référentiel de traductions|référentiel de traductions]] stocke les données dans un fichier &amp;lt;code&amp;gt;.tmx&amp;lt;/code&amp;gt; au format XML. Vous pouvez maintenir plusieurs référentiels en enregistrant plusieurs fichiers &amp;lt;code&amp;gt;.tmx&amp;lt;/code&amp;gt;. Voir [[Gestionnaire de traductions dans l&#039;EDI|Gestionnaire de traductions dans l&#039;EDI]].&lt;br /&gt;
|&lt;br /&gt;
Facultativement&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 todo&lt;br /&gt;
|&lt;br /&gt;
Liste A faire du projet.&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|radstudio}}&lt;br /&gt;
|&lt;br /&gt;
 tvsconfig&lt;br /&gt;
|&lt;br /&gt;
Fichier de configuration de la modélisation.&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|radstudio}}&lt;br /&gt;
|&lt;br /&gt;
 txvpck, txvcls&lt;br /&gt;
|&lt;br /&gt;
Informations pour un diagramme de modèle.&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
 vsf&lt;br /&gt;
|&lt;br /&gt;
Fichier de style VCL, activé dans la page [[Apparence de l&#039;application|Apparence de l&#039;application]].&lt;br /&gt;
|&lt;br /&gt;
Oui&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 vlb&lt;br /&gt;
|&lt;br /&gt;
Fichier LiveBindings visuel.  Voir [[Concepteur LiveBindings|Concepteur LiveBindings]].&lt;br /&gt;
|&lt;br /&gt;
Non&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 xml&lt;br /&gt;
|&lt;br /&gt;
[https://en.wikipedia.org/wiki/XML XML] est un langage de balisage pour les fichiers de données. La liste suivante contient des exemples de fichiers XML générés par &#039;&#039;&#039;{{Product}}&#039;&#039;&#039; :&lt;br /&gt;
*[[Déclarations globales de sortie XML du compilateur|{{Placeholder|projet}}.xml, {{Placeholder|unité}}.xml]]&lt;br /&gt;
*[[Fichier manifest d&#039;application Android (AndroidManifest.xml)|AndroidManifest.xml]]&lt;br /&gt;
*[[Personnalisation de votre fichier info.plist|info.plist.TemplateOSX.xml]]&lt;br /&gt;
*[[Personnalisation de votre fichier info.plist|info.plist.TemplateiOS.xml]]&lt;br /&gt;
|&lt;br /&gt;
Facultativement&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
 #nn&lt;br /&gt;
|&lt;br /&gt;
Ici #nn = #00, #01, #02, et ainsi de suite. [[Fichier de type de débogage C++|Fichier de type de débogage C++]].&lt;br /&gt;
|&lt;br /&gt;
Sauf si constructible&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Packages et DLL standard|Packages et DLL standard]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Référence EDI]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Nouveaut%C3%A9s&amp;diff=218924</id>
		<title>Nouveautés</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Nouveaut%C3%A9s&amp;diff=218924"/>
		<updated>2026-05-09T03:34:55Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : 1 révision importée : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Accueil}} &lt;br /&gt;
{{Parent|Nouveautés des releases précédentes}}&lt;br /&gt;
&lt;br /&gt;
La release {{Product}} 13.0 {{Version}} contient les nouvelles fonctionnalités et améliorations suivantes :&lt;br /&gt;
&lt;br /&gt;
==Améliorations relatives à l&#039;installation et au Gestionnaire de packages GetIt==&lt;br /&gt;
&lt;br /&gt;
Les sections suivantes décrivent les améliorations relatives à l&#039;installation et au Gestionnaire de packages GetIt.&lt;br /&gt;
&lt;br /&gt;
===Modification du processus d&#039;installation===&lt;br /&gt;
&lt;br /&gt;
Depuis RAD Studio Florence 13.0, le programme d&#039;installation n&#039;installe plus automatiquement le Windows SDK. Il vérifie si la version actuelle du SDK est installée sur l&#039;ordinateur et, dans le cas contraire, fournit un lien de téléchargement lors du processus d&#039;installation. Le téléchargement et l&#039;installation du Windows SDK sont des pré-requis à l&#039;installation de RAD Studio, c&#039;est pourquoi il est recommandé de le faire avant l&#039;installation de RAD Studio 13.0. Pour plus de détails, consultez les [[Notes d&#039;installation|Notes d&#039;installation]].&lt;br /&gt;
&lt;br /&gt;
Lors de l&#039;installation du Windows SDK, il est recommandé d&#039;activer les options suivantes :&lt;br /&gt;
&lt;br /&gt;
*Windows SDK for Desktop C++ x86 Apps&lt;br /&gt;
*Windows SDK for Desktop C++ amd64 Apps&lt;br /&gt;
&lt;br /&gt;
Les éléments suivants seront automatiquement activés :&lt;br /&gt;
&lt;br /&gt;
*Windows SDK Signing Tools for Desktop Apps&lt;br /&gt;
*Windows SDK for UWP Managed Apps&lt;br /&gt;
*Windows SDK for UWP C++ Apps.&lt;br /&gt;
&lt;br /&gt;
Cette release supprime la possibilité d&#039;installer les fonctionnalités de “&#039;&#039;&#039;Modélisation&#039;&#039;&#039;” dans l&#039;interface de RAD Studio, dans les versions 32 bits et 64 bits. La fonctionnalité ne figure donc plus dans les options d&#039;installation du [[Gestionnaire de fonctionnalités|Gestionnaire de fonctionnalités]]. Cela affecte également le formatage dans Delphi.&lt;br /&gt;
&lt;br /&gt;
===Versionage des packages dans le Gestionnaire de packages===&lt;br /&gt;
&lt;br /&gt;
Depuis RAD Studio Florence 13.0, plusieurs versions d&#039;un même [[Fenêtre du Gestionnaire de packages GetIt|package GetIt]] peuvent être disponibles. Vous pouvez donc choisir d&#039;installer une version spécifique plutôt que la dernière version. Lorsque plusieurs versions d&#039;un package existent, un menu déroulant apparaît à côté du bouton Installer.&lt;br /&gt;
&lt;br /&gt;
[[File:Version install getit.png|=link|border|300px]]&lt;br /&gt;
&lt;br /&gt;
Les dépendances de packages présentes dans une configuration de projet peuvent maintenant faire référence à une version spécifique d&#039;un package, ce qui permet de définir des règles de filtrage.&lt;br /&gt;
&lt;br /&gt;
De plus, l&#039;interface de GetIt contient désormais un bouton à utilisation générale ainsi qu&#039;un menu déroulant proposant des options supplémentaires de désinstallation ou de mise à jour. Il est également possible d&#039;exporter la liste des packages installés. Pour plus d&#039;informations, voir [[Fenêtre du Gestionnaire de packages GetIt|Fenêtre du Gestionnaire de packages GetIt]].&lt;br /&gt;
&lt;br /&gt;
===Numéros de version interne unifiés à la valeur 37===&lt;br /&gt;
&lt;br /&gt;
Dans cette release de RAD Studio, les numéros de version interne sont unifiés à la valeur 37 pour la RTL, les packages, et les éléments suivants :&lt;br /&gt;
&lt;br /&gt;
*L&#039;entrée principale du registre :&lt;br /&gt;
&lt;br /&gt;
 HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BDS\37.0&lt;br /&gt;
&lt;br /&gt;
*La version de package et la version de RTL.&lt;br /&gt;
*La version FMX : FMX.Types.FireMonkeyVersion&lt;br /&gt;
*La version de PA Server.&lt;br /&gt;
*Le dossier dans le lequel le produit est installé par défaut : &lt;br /&gt;
&lt;br /&gt;
{{code|C:\Program Files (x86)\Embarcadero\Studio\37.0}}&lt;br /&gt;
&lt;br /&gt;
{{Note| Dans cette release, le dossier d&#039;installation de l&#039;EDI et les packages d&#039;exécution passent directement à la version 37 (en sautant plusieurs numéros intermédiaires) alors que le compilateur suit l&#039;incrément habituel (+1).}}&lt;br /&gt;
&lt;br /&gt;
==Améliorations de l&#039;EDI 64 bits==&lt;br /&gt;
&lt;br /&gt;
RAD Studio 13.0 inclut notre première EDI totalement 64 bits pour la plate-forme Windows 64 bits. Elle étend et complète les fonctionnalités de [[64-bit IDE|l&#039;EDI 64 bits]] introduites initialement dans RAD Studio version 12.3. Par rapport à cette &amp;quot;release initiale&amp;quot; de l&#039;EDI 64 bits de 12.3, l&#039;EDI 64 bits de 13.0 offre une grande nouveauté : la prise en charge de la construction et du débogage d&#039;applications 64 bits dans Delphi et C++.&lt;br /&gt;
&lt;br /&gt;
Voici les principales améliorations :&lt;br /&gt;
&lt;br /&gt;
*Prise en charge des templates de code (Ctrl-J), incluant notamment le menu Encadrement.&lt;br /&gt;
*Prise en charge des bibliothèques de types, ActiveX, et COM.&lt;br /&gt;
*Intégration VA pour C++Builder dans l&#039;EDI 64 bits.&lt;br /&gt;
*Implémentation d&#039;un nouveau moteur de débogage pour déboguer les applications C++ et Delphi.&lt;br /&gt;
*Améliorations majeures des performances du débogueur Delphi.&lt;br /&gt;
*Modification des adresses de pointeur pour les faire apparaître dans un style Delphi.&lt;br /&gt;
*Suppression des fonctionnalités &amp;quot;Together&amp;quot;, incluant notamment la Modélisation, les Audits, et les Métriques.&lt;br /&gt;
&lt;br /&gt;
==Modifications et améliorations de l&#039;EDI==&lt;br /&gt;
&lt;br /&gt;
Cette release améliore et modernise l&#039;EDI de RAD Studio avec l&#039;introduction de fonctionnalités de recherche étendues et configurables dans plusieurs volets de l&#039;EDI. Voici les principales modifications et améliorations :&lt;br /&gt;
&lt;br /&gt;
===Améliorations relatives aux fonctions de recherche===&lt;br /&gt;
&lt;br /&gt;
RAD Studio Florence 13.0 introduit de nouvelles fonctionnalités de recherche dans plusieurs volets de l&#039;EDI, ce qui facilite l&#039;accès à l&#039;information dans les projets, unités et scénarios volumineux. L&#039;expérience de recherche est unifiée dans l&#039;ensemble des volets qui prennent en charge cette fonction via la combinaison de touches {{code|Ctrl+F}}. La touche {{code|Echap}} permet de fermer la fenêtre de résultats et de revenir au contrôle original.&lt;br /&gt;
&lt;br /&gt;
Des fonctionnalités de recherche ont été ajoutées aux sections suivantes :&lt;br /&gt;
&lt;br /&gt;
*[[Vue Structure#Menus contextuels de la vue Structure et de l&#039;explorateur de code|Vue Structure]] : ajout d&#039;une fonction de recherche incrémentale utilisable aussi bien dans la vue de conception que dans la vue du code source, avec en plus la mise en surbrillance de la syntaxe dans les résultats de recherche du code source.&lt;br /&gt;
*[[Fenêtre Projets#Barre d&#039;outils de la fenêtre Projets|Gestionnaire de projets]] : ajout d&#039;une fonction de recherche incrémentale prenant en charge des requêtes rapides et optimisées pour les projets volumineux (plus de 20 000 fichiers).&lt;br /&gt;
*[[Vue Messages|Volet Message]] et [[Fenêtre Journal d&#039;événements|Journal d&#039;événements]] : ajout d&#039;une fonction de recherche incrémentale facilitant la navigation dans de grandes structures de données.&lt;br /&gt;
*[[Inspecteur d&#039;objets|Inspecteur d&#039;objets]] : ajout d&#039;une icône de recherche pour faciliter la navigation.&lt;br /&gt;
*[[Palette d&#039;outils|Palette d&#039;outils]] : ajout d&#039;une icône de recherche pour faciliter la navigation.&lt;br /&gt;
&lt;br /&gt;
De plus, la fonction de recherche implémentée dans les recherches des vues Messages et Evénements, mais aussi dans les vues Projets et Structure, offre une configuration de recherche spécifique, disponible depuis une liste déroulante :&lt;br /&gt;
&lt;br /&gt;
[[File:Structure search.png|=link|border]]&lt;br /&gt;
&lt;br /&gt;
===Ajouts au journal des messages===&lt;br /&gt;
&lt;br /&gt;
RAD Studio Florence 13.0 introduit de nouvelles options sous {{Menu| EDI &amp;amp;gt; Compilation et exécution &amp;amp;gt; [[Journal de construction|Journal de construction]]}} :&lt;br /&gt;
&lt;br /&gt;
*Activation de la mise en surbrillance dans le journal du compilateur.&lt;br /&gt;
*Regroupement des conseils et avertissements dans le volet Messages. Cela facilite la navigation lorsque les messages sont nombreux et accélère le processus de build.&lt;br /&gt;
&lt;br /&gt;
[[File:Messages search.png|=link|border]]&lt;br /&gt;
&lt;br /&gt;
===Mises à jour de ToolsAPI===&lt;br /&gt;
&lt;br /&gt;
La release RAD Studio Florence 13.0 apporte les mises à jour suivantes à ToolsAPI :&lt;br /&gt;
&lt;br /&gt;
*Ajout d&#039;une nouvelle méthode pour mettre à jour l&#039;interface utilisateur dans la page d&#039;accueil.&lt;br /&gt;
&lt;br /&gt;
 INTAWelcomePageDataPluginListView370.Invalidate&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
 Ajout de la prise en charge des événements de souris interceptés comme clics.&lt;br /&gt;
**[[Prise en charge de ToolsAPI pour l&#039;éditeur de code#Evénement curseur déplacé|Evénement curseur déplacé]]&lt;br /&gt;
**[[Prise en charge de ToolsAPI pour l&#039;éditeur de code#Evénement appui de touche|Evénement appui de touche]]&lt;br /&gt;
&lt;br /&gt;
Pour plus de détails sur ces mises à jour, voir la page [[Prise en charge de ToolsAPI pour l&#039;éditeur de code|ToolsAPI]].&lt;br /&gt;
&lt;br /&gt;
===Améliorations relatives à l&#039;audit de code intelligent===&lt;br /&gt;
&lt;br /&gt;
RAD Studio Florence 13.0 introduit &amp;quot;RAD AI Companion”, un chat et générateur de code, spécifiquement entraîné sur du contenu en lien avec RAD Studio. Dans l&#039;EDI, ouvrez {{Menu| Menu Aide &amp;amp;gt; [http://www.embarcadero.com/radaicompanion RAD AI Companion]}}.&lt;br /&gt;
&lt;br /&gt;
[[File:AI companion.png|=link]]&lt;br /&gt;
&lt;br /&gt;
Cette release introduit également le nouveau bouton Tester la connexion dans la page [[Smart CodeInsight Options|Options de l&#039;audit de code intelligent]]. Désormais, les utilisateurs peuvent directement tester la configuration sans qu&#039;il soit nécessaire de lancer le chat.&lt;br /&gt;
&lt;br /&gt;
Parmi les autres améliorations :&lt;br /&gt;
&lt;br /&gt;
*Pour les modèles qui renvoient {{code|“&amp;amp;lt;think&amp;amp;gt;”}} avant de renvoyer l&#039;information, l&#039;EDI a supprimé les balises “thinking”.&lt;br /&gt;
*Les conseils des boutons affichés dans la [[Smart CodeInsight#Fenêtre de chat IA|Fenêtre de chat de l&#039;audit de code intelligent]] ont été améliorés et indiquent désormais les raccourcis.&lt;br /&gt;
&lt;br /&gt;
===Modifications supplémentaires de l&#039;EDI===&lt;br /&gt;
&lt;br /&gt;
Les sections suivantes présentent les mises à jour et améliorations apportées à l&#039;EDI :&lt;br /&gt;
&lt;br /&gt;
*La nouvelle option de l&#039;EDI [[Onglets|Onglets]] a été ajoutée pour permettre aux utilisateurs d&#039;utiliser la couleur de fond de l&#039;éditeur pour les tabulations de l&#039;éditeur.&lt;br /&gt;
*Une nouvelle option de l&#039;EDI permet d&#039;utiliser le thème actif de l&#039;EDI pour les couleurs de [[Mise en surbrillance structurelle|mise en surbrillance structurelle]]. Utilisez-la pour sélectionner le style de couleur pour la mise en surbrillance structurelle.&lt;br /&gt;
*La [[Mise en mémoire tampon double et connexions distantes|mise en mémoire tampon double]] et la suppression du &amp;quot;sautillement&amp;quot; ont été activées par défaut. Vous pouvez aussi utiliser le nouveau paramètre du registre ({{code|Globals\SingleBufferingInRemoteSessions}}) pour désactiver la mise en mémoire tampon double.&lt;br /&gt;
*Le menu Refactoring est grisé lorsqu&#039;aucune option de refactoring n&#039;est active (ce comportement remplace l&#039;élément de menu “Aucun refactoring”).&lt;br /&gt;
*La boîte de dialogue Exception EDI affiche maintenant directement la trace de la pile d&#039;appels, fournissant ainsi des informations utiles pour comprendre le flux du code.&lt;br /&gt;
*Il est désormais possible de copier des messages d&#039;erreur depuis le volet Structure.&lt;br /&gt;
*La boîte de dialogue [[Attacher au processus|Attacher au processus]] a été modifiée de façon à inclure des colonnes supplémentaires pour afficher les informations sur les processus, et contient aussi des contrôles supplémentaires.&lt;br /&gt;
*L&#039;intégration du contrôle de source Git a été améliorée : l&#039;interface a été changée pour indiquer que vous pouvez utiliser le Token Name GitHub ou le Token Key à la place de votre nom d&#039;utilisateur et mot de passe.&lt;br /&gt;
*Lors de l&#039;ajout d&#039;une fiche à une application FireMonkey, il n&#039;est plus nécessaire de choisir entre une fiche HD et une fiche 3D. L&#039;ajout d&#039;une fiche 3D reste possible via une option distincte.&lt;br /&gt;
*Les icônes de gouttière ont été améliorées dans le mode Thème foncé, évitant ainsi l&#039;affichage d&#039;une bordure blanche autour des images.&lt;br /&gt;
&lt;br /&gt;
==Améliorations relatives aux outils EDI==&lt;br /&gt;
&lt;br /&gt;
RAD Studio comprend de puissants outils conçus pour faciliter l&#039;écriture de code Delphi et C++. La section suivante présente les améliorations et les mises à jour apportées aux différents outils EDI.&lt;br /&gt;
&lt;br /&gt;
===DelphiLSP===&lt;br /&gt;
&lt;br /&gt;
Cette release s&#039;inscrit dans la continuité des efforts destinés à améliorer l&#039;architecture de DelphiLSP. En &#039;&#039;&#039;réponse à certaines demandes de nos clients Delphi&#039;&#039;&#039;, nous avons choisi de rétablir l&#039;ancien moteur Audit de code Delphi. Il est à nouveau disponible dans RAD Studio 13.0 sous forme d&#039;alternative à la version DelphiLSP disponible dans l&#039;EDI, et accessible à toute personne souhaitant l&#039;utiliser.&lt;br /&gt;
&lt;br /&gt;
{{Note|L&#039;activation du [[Référence de l&#039;Audit de code#Modification du Gestionnaire d&#039;audit de code/LSP|Gestionnaire d&#039;audit de code classique]] affecte certaines fonctionnalités ayant été déplacées dans DelphiLSP,comme le volet Structure, la fonction Audit d&#039;erreur, et la barre de navigation de l&#039;éditeur (la barre d&#039;outils affichée en haut de l&#039;éditeur qui permet de se déplacer dans le code). Ces fonctionnalités ne fonctionnent plus lorsque vous activez le Gestionnaire d&#039;audit de code classique, et nous ne sommes pas en mesure d&#039;annuler ces changements.}}&lt;br /&gt;
&lt;br /&gt;
Le gestionnaire {{code|Audit de code classique}} peut être activé depuis {{Menu|Outils &amp;amp;gt; Options &amp;amp;gt; Editeur &amp;amp;gt; Langage &amp;amp;gt; [[Options du source#Onglet Audit de code|Onglet Audit de code]]}} comme indiqué sur l&#039;image ci-dessous :&lt;br /&gt;
&lt;br /&gt;
[[File:Delphilsp classic codeInsight.png|850px]]&lt;br /&gt;
&lt;br /&gt;
===Expert Delphi Upgrade Advisor===&lt;br /&gt;
&lt;br /&gt;
RAD Studio 13.0 introduit un nouvel Expert, le [[Delphi Upgrade Advisor Wizard|Delphi Upgrade Advisor]], qui permet d&#039;identifier d&#039;importants changements dans la configuration d&#039;un projet et dans le code, permettant ainsi d&#039;améliorer la vitesse de compilation et l&#039;expérience des développeurs avec les outils. Cet expert est disponible sous forme de package GetIt. Une fois installé, un nouveau menu apparaît dans l&#039;EDI.&lt;br /&gt;
&lt;br /&gt;
En plus de fournir des suggestions intéressantes, [[Delphi Upgrade Advisor Wizard|l&#039;Expert Delphi Upgrade Advisor]] propose des scripts reFind qui permettent de nettoyer les instructions uses du projet.&lt;br /&gt;
&lt;br /&gt;
===Visual Assist pour C++===&lt;br /&gt;
&lt;br /&gt;
Dans RAD Studio Florence 13.0, l&#039;intégration VA a été améliorée pour une plus grande cohérence avec la façon dont RAD Studio gère les chaînes d&#039;outils et les configurations de projet.&lt;br /&gt;
&lt;br /&gt;
VA se recharge maintenant automatiquement à chaque fois que vous modifiez la configuration d&#039;un projet, la plate-forme cible, ou la chaîne d&#039;outils. Cela garantit l&#039;exactitude des chemins d&#039;inclusion et de la résolution des symboles même lorsque vous travaillez avec plusieurs projets qui utilisent des paramètres différents au sein d&#039;un même groupe de projets. Pour plus d&#039;informations, voir la page [[Visual Assist for C++|Visual Assist pour C++]].&lt;br /&gt;
&lt;br /&gt;
===Mises à jour du débogueur===&lt;br /&gt;
&lt;br /&gt;
Dans cette release, le débogueur a été mis à jour en LLDB version 20. Le compilateur Clang pour la plate-forme Windows 64 bits (Moderne) a aussi été mis à jour en version 20.&lt;br /&gt;
&lt;br /&gt;
Voici la liste des améliorations relatives au débogueur :&lt;br /&gt;
&lt;br /&gt;
Pour &#039;&#039;&#039;C++&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Amélioration de la façon dont OutputDebugStringW gère les sorties Unicode.&lt;br /&gt;
*Les valeurs caractères étendus non imprimables sont désormais affichées dans le format correct dans la sortie du débogueur.&lt;br /&gt;
*argc et argv gèrent maintenant correctement les arguments contenant des espaces lorsqu&#039;ils sont exécutés sous le débogueur.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pour Delphi&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Les valeurs d&#039;énumération de portée restent désormais correctement contenues dans leur type déclaré, évitant les conflits dans l&#039;espace de nommage global. De plus, ces valeurs sont maintenant restituées correctement dans les vues de débogage.&lt;br /&gt;
*Les valeurs des membres d’objet sont maintenant correctement affichées lors du débogage.&lt;br /&gt;
*Les noms de variables de classe sont correctement résolus, avec une gestion améliorée du substantypage.&lt;br /&gt;
*La gestion de la variable Unicode a été améliorée ; le débogueur accepte maintenant un intervalle plus large d&#039;identificateurs Unicode.&lt;br /&gt;
&lt;br /&gt;
De plus, dans les options de l&#039;EDI, vous pouvez activer [[Options du débogueur|Code en surbrillance]] dans les fenêtres de débogage.&lt;br /&gt;
&lt;br /&gt;
===Compilateur de ressources===&lt;br /&gt;
&lt;br /&gt;
Dans cette release, des ajustements ont été apportés à l&#039;intégration du [[Options du compilateur de ressources|Compilateur de ressources]] dans RAD Studio.&lt;br /&gt;
&lt;br /&gt;
Depuis Florence 13.0, RAD Studio distribue un compilateur de ressources open-source supplémentaire, appelé &#039;&#039;&#039;resinator&#039;&#039;&#039;. Il est désormais utilisé par défaut dans le système pour générer le code. Pour plus d&#039;informations sur resinator, voir [https://github.com/squeek502/resinator GitHub resinator].&lt;br /&gt;
&lt;br /&gt;
{{Note|Le compilateur de ressources &#039;&#039;&#039;resinator&#039;&#039;&#039; est uniquement disponible pour le compilateur bcc64x.}}&lt;br /&gt;
&lt;br /&gt;
De nouvelles options ont aussi été ajoutées pour faciliter la sélection d&#039;un autre compilateur de ressources, incluant notamment le compilateur de ressources classique du Windows SDK.&lt;br /&gt;
&lt;br /&gt;
==Mises à jour relatives au compilateur Delphi==&lt;br /&gt;
&lt;br /&gt;
RAD Studio 13.0 intègre des améliorations du langage Delphi, allant d&#039;un nouvel opérateur ternaire à de nouvelles directives de compilation, etc.&lt;br /&gt;
&lt;br /&gt;
===Opérateur conditionnel If===&lt;br /&gt;
&lt;br /&gt;
La release RAD Studio Florence 13.0 introduit un opérateur conditionnel (opérateur ternaire) dans le langage Pascal Objet. Alors que son comportement est similaire à l&#039;opérateur {{code|?:}}, communément trouvé dans d&#039;autres langages de programmation, sa syntaxe ressemble au Pascal Objet, et est similaire à la structure if-then-else.&lt;br /&gt;
&lt;br /&gt;
Pour des exemples et des informations supplémentaires, voir la page [[Conditional Operators (Delphi)|Opérateurs conditionnels (Delphi)]].&lt;br /&gt;
&lt;br /&gt;
===Nouveaux opérateurs “is not” et “not in”===&lt;br /&gt;
&lt;br /&gt;
Le compilateur autorise les opérateurs {{code|“is not”}} et {{code|“not in”}}, ce qui constitue une alternative plus courte et plus lisible aux opérateurs combinés. Pour des exemples, voir la page [[Expressions (Delphi)#Les opérateurs is not et not in|Expressions Delphi]].&lt;br /&gt;
&lt;br /&gt;
===Nouvelle directive “noreturn”===&lt;br /&gt;
&lt;br /&gt;
La directive “noreturn” est un attribut associé aux procédures, indiquant que l&#039;appel va déclencher une exception et ne peut pas poursuivre son exécution normalement. Cela permet au compilateur d&#039;ignorer un avertissement sur des résultats non définis et d&#039;activer l&#039;optimisation et l&#039;élimination de code. Pour des exemples, voir la page [[Déclarations et instructions (Delphi)#La directive noreturn|Déclarations et instructions Delphi]].&lt;br /&gt;
&lt;br /&gt;
La nouvelle directive peut être utilisée pour éliminer les [[W1035 La valeur de retour de la fonction &#039;%s&#039; peut être indéfinie (Delphi)|avertissements W1035]] lorsque des exceptions sont déclenchées, empêchant potentiellement l&#039;affectation d&#039;une valeur correcte. Pour des exemples, voir la page [[W1035 La valeur de retour de la fonction &#039;%s&#039; peut être indéfinie (Delphi)|W1035 La valeur de retour de la fonction &#039;%s&#039; peut être indéfinie]].&lt;br /&gt;
&lt;br /&gt;
===Directives {$PUSHOPT} et {$POPOPT}===&lt;br /&gt;
&lt;br /&gt;
Ces nouvelles directives du compilateur Delphi enregistrent et restaurent l&#039;ensemble actuel de configurations d&#039;avertissement et d&#039;options.&lt;br /&gt;
&lt;br /&gt;
Cette release émet les avertissements suivants sur les directives déséquilibrées.&lt;br /&gt;
&lt;br /&gt;
*[[W1078 $POPOPT with no matching $PUSHOPT in &#039;%s&#039;|W1078]]&lt;br /&gt;
*[[W1079 Previous $PUSHOPT on line %Id not restored|W1079]]&lt;br /&gt;
&lt;br /&gt;
Le même avertissement sera émis à la fin du fichier source s&#039;il y a plus de [[Option OPT (Delphi)#.7B.24PUSHOPT.7D|$PUSHOPT]] que de [[Option OPT (Delphi)#.7B.24POPOPT.7D|$POPOPT]] dans un fichier. Ces nouvelles directives ne peuvent pas être appliquées à toutes les options et à tous les paramètres. Voir la liste des [[Option OPT (Delphi)#Liste des options éligibles|Options éligibles]].&lt;br /&gt;
&lt;br /&gt;
===Prise en charge des directives longues pour la directive {$IFOPT}===&lt;br /&gt;
&lt;br /&gt;
Depuis RAD Studio Florence 13.0, la directive {{code|{$IFOPT}}} prend en charge les directives longues. Voici comment :&lt;br /&gt;
&lt;br /&gt;
 {$IFOPT SCOPEDENUMS ON}&lt;br /&gt;
&lt;br /&gt;
Pour la liste complète des directives prises en charge, voir la page [[Directive IFOPT (Delphi)|$IFOPT]].&lt;br /&gt;
&lt;br /&gt;
===Nouvelles contraintes pour les types génériques===&lt;br /&gt;
&lt;br /&gt;
De nouvelles contraintes ”&#039;&#039;&#039;interface&#039;&#039;&#039;” et “&#039;&#039;&#039;unmanaged&#039;&#039;&#039;” existent pour les types génériques. Les contraintes &amp;quot;unmanaged&amp;quot; remplacent partiellement la contrainte existante sur les enregistrements.&lt;br /&gt;
&lt;br /&gt;
De plus, grâce à ces nouvelles contraintes, il est possible d&#039;autoriser le transtypage L-Value pour une variable de type valeur déclarée avec un type générique. Dans la méthode d&#039;une classe générique, il est désormais possible de transtyper le résultat d&#039;une méthode générique renvoyant le type générique lui-même, selon le type concret utilisé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple&#039;&#039;&#039; :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
class function TMyData&amp;lt;T&amp;gt;.OperateSubtract(const L, R: T): T;&lt;br /&gt;
begin&lt;br /&gt;
  if (GetTypeKind(T) = tkInteger) and (SizeOf(T) = 1) then&lt;br /&gt;
    Byte(Result) := Byte(L) - Byte(R) // New cast!&lt;br /&gt;
  else if (GetTypeKind(T) = tkInteger) and (SizeOf(T) = 2) then&lt;br /&gt;
    Word(Result) := Word(L) - Word(R) // New cast!&lt;br /&gt;
  // ...&lt;br /&gt;
  else if (GetTypeKind(T) = tkFloat) and (SizeOf(T) = 10) then&lt;br /&gt;
    Extended(Result) := Extended(L) - Extended(R); // New cast!&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Fonction NameOf Instrict===&lt;br /&gt;
&lt;br /&gt;
Il y a une nouvelle procédure standard NameOf(Identificateur), dont le fonctionnement correspond à la façon dont la fonction C# de même nom fonctionne. Elle peut être transmise à n&#039;importe quel identificateur. La valeur retournée est la représentation chaîne correspondante:&lt;br /&gt;
&lt;br /&gt;
  Memo1.Lines.Add (NameOf (Sender));&lt;br /&gt;
  Memo1.Lines.Add (NameOf (self));&lt;br /&gt;
  Memo1.Lines.Add (NameOf (TForm31));&lt;br /&gt;
  Memo1.Lines.Add (NameOf (X));&lt;br /&gt;
  Memo1.Lines.Add (NameOf (Integer));&lt;br /&gt;
&lt;br /&gt;
===Déclaration de paramètre “Self” implicite dans les opérateurs de classe d&#039;enregistrement Initialize et Finalize===&lt;br /&gt;
&lt;br /&gt;
Les deux opérateurs de classe pour les enregistrements managés personnalisés permettent désormais d&#039;utiliser une syntaxe de déclaration plus concise. Il est en effet possible d&#039;ignorer le paramètre {{code|self}} (qui reste implicitement disponible). Cela n&#039;entraîne aucun changement, que ce soit dans le code généré ou le comportement. Seule la syntaxe est simplifiée.&lt;br /&gt;
&lt;br /&gt;
Pour des exemples, voir la page [[Enregistrements managés personnalisés#Déclaration de paramètre self implicite|Enregistrements managés personnalisés]].&lt;br /&gt;
&lt;br /&gt;
===Améliorations supplémentaires du compilateur Delphi===&lt;br /&gt;
&lt;br /&gt;
La section suivante présente les améliorations supplémentaires du compilateur Delphi.&lt;br /&gt;
&lt;br /&gt;
* La directive [[Packaging faible|$WEAKPACKAGEUNIT]] génère maintenant une erreur ([[E2203 $WEAKPACKAGEUNIT &#039;%s&#039; contient des données globales (Delphi)|E2203]] ou [[E2221 $WEAKPACKAGEUNIT &#039;%s&#039; ne peut avoir de code d&#039;initialisation ou de finalisation (Delphi)|E2221]]) si l&#039;unité contient des variables globales dans les sections interface, des blocs d&#039;initialisation ou de finalisation, ou encore des constructeurs ou destructeurs de classes. &amp;amp;lt;/br&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note| Cette modification peut empêcher la compilation du code existant.}}&lt;br /&gt;
&lt;br /&gt;
*L&#039;erreur de compilation &#039;&#039;&#039;‘E2033’&#039;&#039;&#039; (Les types des paramètres var originaux et formels doivent être identiques) inclut maintenant les noms des types impliqués.&lt;br /&gt;
* Deux nouveaux avertissements, [[W1076 Typecasting between pointer and narrower integer types: from &#039;%s&#039; to &#039;%s&#039;|W1076]] et [[W1077 Typecasting between pointer and 32-bit integer types can cause problems on 64-bit targets: from &#039;%s&#039; to &#039;%s&#039;|W1077]], ont été ajoutés pour le transtypage de données.&lt;br /&gt;
&lt;br /&gt;
==Plate-forme C++ Moderne Win64 mise à jour vers Clang 20==&lt;br /&gt;
&lt;br /&gt;
La release RAD Studio Florence 13.0 intègre la mise à jour du [[BCC64X|Compilateur C++ Moderne Win64]] depuis Clang 15 (version fournie avec 12.x) vers Clang version 20. Le nouveau compilateur basé sur Clang prend en charge C++23. De plus, cette release intègre la mise à jour de tous les autres éléments de la chaîne d&#039;outils C++ Moderne Win64.&lt;br /&gt;
&lt;br /&gt;
Cette release offre de nombreuses améliorations axées sur les standards C++ modernes, la compatibilité et la stabilité. Vous trouverez ci-dessous les principales améliorations incluses dans cette release :&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Mise à niveau de la chaîne d&#039;outils LLVM (v20)&#039;&#039;&#039; : la chaîne d&#039;outils a été mise à niveau depuis LLVM v15 vers LLVM v20. Cette mise à niveau prend en charge les derniers standards C++ et les optimisations du compilateur.&lt;br /&gt;
*&#039;&#039;&#039;Prise en charge améliorée d&#039;ASAN&#039;&#039;&#039; : le runtime [[Safety|AddressSanitizer (ASAN)]] est maintenant compatible avec Windows 11.&lt;br /&gt;
*&#039;&#039;&#039;Nouvelle option Standard C++&#039;&#039;&#039; : [[BCC64X|BCC64X]] utilise maintenant C++23 par défaut, mais les utilisateurs peuvent choisir de cibler C++20 ou C++17 si nécessaire.&lt;br /&gt;
*&#039;&#039;&#039;Bibliothèques partagées RTL/STL versionnées&#039;&#039;&#039; : les bibliothèques d&#039;exécution partagées (comme {{code|libc++.dll}}) ont maintenant un suffixe indiquant le numéro de version de BDS (par exemple, {{code|libc++-370.dll}}). Cela empêche les conflits d&#039;exécution lorsque plusieurs versions de RAD Studio sont installées.&lt;br /&gt;
*&#039;&#039;&#039;Résolution de problèmes des anciennes versions&#039;&#039;&#039; : de nombreux bogues et incohérences présents dans LLVM v15 et les versions précédentes de la chaîne d&#039;outils ont été résolus dans cette release.&lt;br /&gt;
&lt;br /&gt;
==Améliorations relatives à la RTL Delphi==&lt;br /&gt;
&lt;br /&gt;
Cette release améliore la RTL JSON pour permettre la suppression d&#039;un champ lorsqu&#039;il a une valeur particulière en ajoutant un nouvel attribut. Vous trouverez ci-dessous d&#039;autres améliorations relatives à JSON, ainsi que d&#039;autres mises à jour de la RTL Delphi.&lt;br /&gt;
&lt;br /&gt;
===Pack de composants SmartCore AI===&lt;br /&gt;
&lt;br /&gt;
RAD Studio 13.0 introduit un nouvel ensemble de composants IA conçu pour les clients qui souhaitent ajouter des fonctionnalités d&#039;IA à leurs applications et concevoir avec Delphi ou C++Builder de nouvelles applications centrées sur l&#039;IA. Cette architecture sera un élément central et fondamental à l&#039;avenir. Nos clients et les éditeurs tiers pourront s&#039;appuyer sur cette architecture et l&#039;étendre afin qu&#039;elle s&#039;intègre à de nouveaux contrôles d&#039;interface utilisateur et à d&#039;autres moteurs d&#039;IA.&lt;br /&gt;
&lt;br /&gt;
Le pack de composants SmartCore AI est disponible dans [[Gestionnaire de packages GetIt|GetIt]]. Le nouveau composant Connexion AI s&#039;utilise comme un composant Connexion de base de données dans FireDAC. Ce composant unique indépendant du moteur d&#039;IA utilisera des pilotes spécifiques pour communiquer via REST avec différents moteurs d&#039;IA (y compris OpenAI, Claude, Gemini et Ollama). Le moteur d&#039;IA SmartCore permet d&#039;ajouter des pilotes supplémentaires pour que les fournisseurs d&#039;IA puissent étendre les capacités de votre projet au fur et à mesure que le marché se développe. La configuration est gérée via un expert de connexion IA facile d&#039;emploi.&lt;br /&gt;
&lt;br /&gt;
Ce pack de composants comprend un ensemble de composants permettant d&#039;effectuer des requêtes ou interrogations IA pour différents types de données comme du texte, des images et des données structurées. Ils peuvent être associés à des prompts et être directement liés à des contrôles d&#039;interface utilisateur qui affichent les résultats. Ce modèle basé sur des composants facilite grandement l&#039;utilisation des composants SmartCore AI dans RAD Studio 13.0.&lt;br /&gt;
&lt;br /&gt;
===Traitement JSON===&lt;br /&gt;
&lt;br /&gt;
Cette section répertorie les mises à jour relatives à JSON :&lt;br /&gt;
&lt;br /&gt;
*Les attributs [[lib_fr:REST.Json.TJsonOption|TJsonOption]] {{code|joIgnoreDefault}} et {{code|joIgnoreSpecial}} ont été ajoutés.&lt;br /&gt;
*[[lib_fr:REST.JsonReflect.TMarshalUnmarshalBase.ValueSerialization|TMarshalUnmarshalBase.ValueSerialization]] : utilisation de TJsonValueSerialization avec jvExcludeSpecial  activée par défaut.&lt;br /&gt;
*Le comportement de [[lib_fr:System.JSON.TJSONValue.GetValue|TJSONValue.GetValue]]&amp;amp;lt;T&amp;amp;gt;(const APath: string; ADefaultValue: T): T a changé : la propriété recherche une valeur JSON. Si la valeur JSON est trouvée, elle est convertie dans le type spécifié. Si la valeur n&#039;est pas trouvée, si elle ne peut pas être restaurée, ou si elle est null, une valeur par défaut est renvoyée.&lt;br /&gt;
* La classe [[lib_fr:System.JSON.TJSONNumber|TJSONNumber]] est maintenant directement héritée de la classe {{code|TJSONValue}}.&lt;br /&gt;
* La classe [[lib_fr:System.JSON.TJSONObject|TJSONObject]] est marquée comme &amp;quot;sealed&amp;quot;.&lt;br /&gt;
*TJsonReader a maintenant ReadAsUInt64.&lt;br /&gt;
&lt;br /&gt;
Le sérialiseur JSON offre la possibilité d&#039;ignorer les propriétés avec des valeurs par défaut :&lt;br /&gt;
&lt;br /&gt;
*Nouvelle méthode surchargée TJsonConverter.CanWrite(AValue).&lt;br /&gt;
*La propriété [[lib_fr:System.JSON.Serializers.TJsonSerializer.MemberSerialization|TJsonSerializer.MemberSerialization]]: TJsonMemberSerialization a par défaut la valeur TJsonMemberSerialization.Fields.&lt;br /&gt;
&lt;br /&gt;
===Autres modifications relatives à la RTL Delphi===&lt;br /&gt;
&lt;br /&gt;
La section suivante indique les autres modifications relatives à la RTL Delphi pour la release RAD Studio Florence 13.0.&lt;br /&gt;
&lt;br /&gt;
*Actualisation des API WinRT, capture externe des en-têtes WinAPI à partir de la définition WinMD (dans GetIt), et nettoyage des déclarations WinAPI dans les fichiers RTL.&lt;br /&gt;
*Mise à jour de la version intégrée de DUnitX vers la version 0.4.1 (dernière modification en date du 26 juin 2025).&lt;br /&gt;
*Ajout d&#039;une version sensible à la casse de la fonction [[lib_fr:System.SysUtils.TStringHelper.Contains|TStringHelper.Contains]].&lt;br /&gt;
*Ajout de l&#039;unité System.StrUtils.LiteralToInt qui fournit des fonctions prenant en charge les littéraux entiers contenant &amp;quot;_&amp;quot; et des notations binaires contenant &amp;quot;%&amp;quot;. Par conséquent, les classes TIntegerProperty et TInt64Property utilisent maintenant TryLiteralToInt.&lt;br /&gt;
*Ajout d&#039;une nouvelle propriété [[lib_fr:System.IOUtils.TPath.Exists|TPath.Exists]].&lt;br /&gt;
*Ajout de [[lib_fr:System.Win.Registry.TRegistry.ReadUInt64|ReadUInt64]] et [[lib_fr:System.Win.Registry.TRegistry.WriteUInt64|WriteUInt64]] à la classe TRegistry.&lt;br /&gt;
*TThreadedQueue a maintenant une propriété Count pour assurer la cohérence des noms.&lt;br /&gt;
*Mise à jour de TDictionary&amp;amp;lt;K,V&amp;amp;gt; et TOrderedDictionary&amp;amp;lt;K,V&amp;amp;gt;. Le transtypage de TOrderedDictionary en TDictionary préserve le comportement de TOrderedDictionary.&lt;br /&gt;
*Les constructeurs des classes de synchronisation TMutex, TSemaphore et TEvent définissent maintenant la propriété THandleObject.LastError avant de revenir à l&#039;appelant.&lt;br /&gt;
*Mise à disposition d&#039;un constructeur TStringList avec la signature:&amp;amp;lt;/br&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 constructor Create(Options: TStringsOptions; Duplicates: TDuplicates = dupIgnore); overload;&lt;br /&gt;
&lt;br /&gt;
*L&#039;unité System.RTTI a une nouvelle fonction GetStorageSize pour lire le nombre d&#039;octets requis pour stocker une valeur de ce type dans la mémoire.&lt;br /&gt;
*Ajout d&#039;une nouvelle méthode TSizeF.Zero.&lt;br /&gt;
*Pour le débogage des scénarios de verrou mortel, nous avons ajouté la propriété WriterID à IReadWrite/TMultiReadExclusiveWriteSync.&lt;br /&gt;
*&lt;br /&gt;
 Restructuration de TRttiDataMember en introduisant une nouvelle classe intermédiaire :&lt;br /&gt;
**TRttiPlaceMember&lt;br /&gt;
**TRttiDataMember&lt;br /&gt;
**TRttiIndexedProperty&lt;br /&gt;
&lt;br /&gt;
==Améliorations relatives à la VCL==&lt;br /&gt;
&lt;br /&gt;
Dans 13.0, RAD Studio introduit de nouvelles fonctionnalités et de nombreuses améliorations de qualité pour les puissantes bibliothèques d&#039;interface utilisateur intégrées. La VCL inclut une intégration des interfaces Microsoft UIAutomation, des styles TitleBar, etc.&lt;br /&gt;
&lt;br /&gt;
===Prise en charge d&#039;UIAutomation===&lt;br /&gt;
&lt;br /&gt;
Pour améliorer l&#039;accessibilité et l&#039;intégration des applications VCL avec les outils de test d&#039;interface utilisateur, la prise en charge de UIAutomation dans la bibliothèque VCL est maintenant intégrée à la version 13.0.&lt;br /&gt;
&lt;br /&gt;
===Améliorations relatives à barre de titre===&lt;br /&gt;
&lt;br /&gt;
Dans cette release, TitleBarPanel prend en charge les styles VCL personnalisés. Cela permet de dessiner des contrôles stylés dans la zone de barre de titre.&lt;br /&gt;
&lt;br /&gt;
De plus, cette release apporte les mises à jour suivantes :&lt;br /&gt;
&lt;br /&gt;
*Ajout d&#039;une nouvelle propriété TTitleBar.StyleColors pour permettre l&#039;utilisation automatique des couleurs des styles VCL pour l&#039;arrière-plan et les boutons sur la barre de titre. La prise en charge inclut l&#039;utilisation des contrôles suivants : TButton, TSpeedButton, TCheckBox, TRadioButton, TToolBar, TEdit, TComboBox, TFormTabsBar, TActionToolBar et TActionMainMenuBar.&lt;br /&gt;
*Amélioration de l&#039;utilisation de la barre de titre dans les applications MDI.&lt;br /&gt;
*Ajout de la prise en charge des conseils pour les boutons des clients sur la barre de titre.&lt;br /&gt;
*Améliorations relatives à la prise en charge HighDPI&lt;br /&gt;
&lt;br /&gt;
===Améliorations relatives au composant ControlList===&lt;br /&gt;
&lt;br /&gt;
Dans RAD Studio Florence 13.0, les améliorations suivantes ont été apportées au composant ControlList :&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
 Le composant ControlList prend en charge un nouveau type de contrôle hébergé : SplitButton. Cette implémentation implique les changements suivants :&lt;br /&gt;
**Les styles clbkSplitPushButton et clbkSplitToolButton pour le contrôle TControlListButton.&lt;br /&gt;
**Un nouvel aspect pour la zone de menu déroulant d&#039;un bouton fractionné avec une flèche.&lt;br /&gt;
**Propriété DropDownMenu pour le contrôle TControlListButton.&lt;br /&gt;
*Ajout d&#039;un nouvel événement OnGetItemHint et d&#039;une nouvelle propriété ShowItemHint pour offrir des conseils par élément, plutôt que des conseils globaux pour les contrôles.&lt;br /&gt;
&lt;br /&gt;
===Améliorations relatives au composant FormsTabsBar===&lt;br /&gt;
&lt;br /&gt;
RAD Studio Florence 13.0 comporte les améliorations suivantes pour le composant FormsTabsBar, introduit dans RAD Studio 12 :&lt;br /&gt;
&lt;br /&gt;
*Ajout de la prise en charge de la transparence avec deux nouvelles propriétés : Transparent et ShowBottomLine.&lt;br /&gt;
*Ajout d&#039;un nouvel événement OnGetTabCaption qui rend le TFormTabsBar plus flexible.&lt;br /&gt;
*Les méthodes TabFromPoint et TabIndexFromPoint sont maintenant publiques.&lt;br /&gt;
*Ajout d&#039;une nouvelle propriété MouseMiddleButtonClose pour fermer un onglet avec le bouton central de la souris.&lt;br /&gt;
&lt;br /&gt;
===Mise à jour de EdgeBrowser===&lt;br /&gt;
&lt;br /&gt;
Cette release intègre une mise à jour des interfaces au contrôle Microsoft WebView 2 (Edge basé sur Chromium) vers la version 1.0.3296.44 du SDK WebView2.&lt;br /&gt;
&lt;br /&gt;
De plus, elle intègre également des mises à jour du composant TEdgeBrowser (et la démo correspondante) pour prendre en charge AddWebResourceRequestedFilterWithRequestSourceKinds à la place de AddWebResourceRequestedFilter.&lt;br /&gt;
&lt;br /&gt;
===Démo WinUI 3===&lt;br /&gt;
&lt;br /&gt;
Cette release intègre la mise à jour des en-têtes WinUI 3 et la démo WinUI 3 autonome, précédemment téléchargeables de façon individuelle via GetIt, et maintenant intégrées dans les démos du produit principal.&lt;br /&gt;
&lt;br /&gt;
===Défilement ActionMainMenuBar===&lt;br /&gt;
&lt;br /&gt;
Cette release intègre une nouvelle fonctionnalité de défilement pour le contrôle TActionMainMenuBar, qui est activée lorsque la hauteur verticale dépasse la hauteur de l&#039;écran.&lt;br /&gt;
&lt;br /&gt;
Vous trouverez ci-dessous un exemple de cette fonctionnalité en action. Veuillez noter qu&#039;elle peut également être utilisée par l&#039;EDI de RAD Studio, lorsqu&#039;il est exécuté sur un écran basse résolution.&lt;br /&gt;
&lt;br /&gt;
[[File:Actionmenus scrollintest.png|=link|border]]&lt;br /&gt;
&lt;br /&gt;
===Autres améliorations de la VCL===&lt;br /&gt;
&lt;br /&gt;
Voici des mises à jour et modifications supplémentaires intégrées dans la VCL.&lt;br /&gt;
&lt;br /&gt;
*Suppression de la prise en charge spécifique à Win98 dans le code VCL.&lt;br /&gt;
*Amélioration du contrôle TToggleSwitch pour qu&#039;il ressemble à un commutateur à bascule Windows 10 / Windows 11, mettant à jour la &amp;quot;famille de styles VCL Windows 10&amp;quot;.&lt;br /&gt;
*Mise à jour de la classe TDragDockObject pour que DropAlign soit une propriété en lecture-écriture.&lt;br /&gt;
*Ajout d&#039;un nouvel événement TActionMainMenuBar.OnSelectMenuItem pour permettre l&#039;affichage de conseils pour les éléments de menu dans le composant ActionMainMenuBar.&lt;br /&gt;
* Le contrôle TCategoryButtons comporte maintenant les propriétés [[lib_fr:Vcl.CategoryButtons.TBaseButtonItem.Enabled|Enabled]] et [[lib_fr:Vcl.CategoryButtons.TButtonCategory.CanCollapse|CanCollapse]] de TBaseButtonItem et TButtonCategory.&lt;br /&gt;
*Nouvelle propriété TStyleManager.FormBorderSize.&lt;br /&gt;
*Nouvel événement TMonthCalendar.OnChange.&lt;br /&gt;
*Nouveaux événements OnBeforeResize et OnAfterResize ajoutés pour TSplitter.&lt;br /&gt;
*Ajout d&#039;une nouvelle fonction publique, VCLEditors.GetFormDPIForVCLEditors, pour simplifier le développement d&#039;éditeurs VCL sous l&#039;EDI HiDPI.&lt;br /&gt;
*TCanvas offre de nouvelles méthodes surchargées avec des paramètres TPoint pour les méthodes suivantes : AngleArc, Draw, LineTo, MoveTo, FloodFill et TextOut.&lt;br /&gt;
&lt;br /&gt;
==Mises à jour de FireMonkey==&lt;br /&gt;
&lt;br /&gt;
Dans RAD Studio 13.0, FireMonkey intègre une nouvelle fonctionnalité Display Link Service qui améliore sensiblement la stabilité et la fluidité des animations. Le framework offre également des gains de performances lors de la copie des bitmaps grâce à l&#039;unité GPU, un tout nouveau composant MaskEdit.&lt;br /&gt;
&lt;br /&gt;
Cette section répertorie les mises à jour et les améliorations apportées à [[FireMonkey|FireMonkey]].&lt;br /&gt;
&lt;br /&gt;
===API pour les plates-formes Apple===&lt;br /&gt;
&lt;br /&gt;
La release RAD Studio Florence 13.0 offre une mise à jour et une extension importantes des API des plates-formes iOS et macOS disponibles dans les fichiers d&#039;en-tête Delphi. Cette release intègre également la mise à jour de tous les en-têtes des API iOS de la RTL vers &#039;&#039;&#039;iOS 18.4&#039;&#039;&#039;. Les extensions spécifiques incluent :&lt;br /&gt;
&lt;br /&gt;
*Ajout des fonctions NSWindow manquantes.&lt;br /&gt;
*Support étendu des liens universels (dans [[Création d&#039;une app iOS#iOS Objective-C Frameworks .28iOSapi.29|iOSapi.Foundation]]).&lt;br /&gt;
*Ajout de fonctions constantes CoreText supplémentaires dans [[Création d&#039;une app iOS#iOS Objective-C Frameworks .28iOSapi.29|iOSapi.CoreText.pas]].&lt;br /&gt;
*Ajout de {{code|coalescedTouchesForTouch}}(touch: UITouch): NSArray; cdecl; à l&#039;interface UIEvent dans [[Création d&#039;une app iOS#iOS Objective-C Frameworks .28iOSapi.29|iOSapi.UIKit]].&lt;br /&gt;
*Ajout de déclarations de méthode manquantes dans les interfaces {{code|UITextView}} et {{code|UITextField}} dans [[Création d&#039;une app iOS#iOS Objective-C Frameworks .28iOSapi.29|iOSapi.UIKit.pas]].&lt;br /&gt;
*Ajout de la méthode {{code|&amp;amp;amp;string}} dans l&#039;interface {{code|NSAttributedString}} dans [[Création d&#039;une app iOS#iOS Objective-C Frameworks .28iOSapi.29|iOSapi.Foundation.pas]].&lt;br /&gt;
*Ajout des déclarations {{code|CVMetalTexture}} et {{code|CVMetalTextureCache}} dans [[Création d&#039;une app iOS#iOS Objective-C Frameworks .28iOSapi.29|iOSapi.CoreVideo.pas]].&lt;br /&gt;
*Ajout de fonctions manquantes dans [[Développement d&#039;applications macOS#Mac Objective-C Frameworks .28Macapi.29|Macapi.QuartzCore.pas]].&lt;br /&gt;
*Ajout d&#039;interfaces et de méthodes dans [[Développement d&#039;applications macOS#Mac Objective-C Frameworks .28Macapi.29|Macapi.AppKit.pas]].&lt;br /&gt;
*Ajout de la déclaration de {{code|CTFontManagerRegisterGraphicsFont}} dans [[Développement d&#039;applications macOS#Mac Objective-C Frameworks .28Macapi.29|Macapi.CoreText.pas]].&lt;br /&gt;
*Mise à jour de [[Création d&#039;une app iOS#iOS Objective-C Frameworks .28iOSapi.29|iosapi.CoreLocation]] dans iOS 18.4, y compris la prise en charge de {{code|CLVisit}}.&lt;br /&gt;
*Ajout des nouveaux fichiers [[Création d&#039;une app iOS#iOS Objective-C Frameworks .28iOSapi.29|iOSapi.CoreMIDI]], [[Création d&#039;une app iOS#iOS Objective-C Frameworks .28iOSapi.29|iOSapi.CoreAudioTypes]].&lt;br /&gt;
*L&#039;unité iOSapi.AudioToolbox a été mise à jour vers iOS 18.4. Le framework {{code|AudioUnit}} a été supprimé car il est obsolète. AudioToolbox doit être utilisé à la place.&lt;br /&gt;
*Extension de l&#039;objet {{code|AVAudioSession}} importé dans [[Création d&#039;une app iOS#iOS Objective-C Frameworks .28iOSapi.29|iOSapi.AVFoundation]].&lt;br /&gt;
*Nouvel en-tête [[Création d&#039;une app iOS#iOS Objective-C Frameworks .28iOSapi.29|iOSapi.ImageIO]].&lt;br /&gt;
&lt;br /&gt;
===API de la plate-forme Android===&lt;br /&gt;
&lt;br /&gt;
RAD Studio Florence 13.0 cible l&#039;API Android niveau 35 par défaut, et inclut des outils pour prendre en charge les nouveaux niveaux de l&#039;API dans le futur.&lt;br /&gt;
&lt;br /&gt;
Voici des modifications supplémentaires :&lt;br /&gt;
&lt;br /&gt;
*Amélioration de la classe TTexture pour prendre en charge la cible {{code|GL_TEXTURE_EXTERNAL_OES}}.&lt;br /&gt;
*Remaniement de l&#039;outil en ligne de commande {{code|Java2OP}}, en remplaçant {{code|Doclava}} par le nouvel outil en ligne de commande {{code|jparser}}. Cela élimine les problèmes associés à la réimplémentation des API déclarées dans les packages exportés par les modules de la plate-forme.&lt;br /&gt;
*Ajout de getEventTimeNanos et getHistoricalEventTimeNanos à JMotionEvent dans Androidapi.JNI.GraphicsContentViewText.pas.&lt;br /&gt;
*Mise à jour de l&#039;outil en ligne de commande {{code|manifestmerger}} vers la version 31.10.1.&lt;br /&gt;
*Mise à jour de l&#039;outil en ligne de commande {{code|AAPT2}} vers la version 8.10.1.&lt;br /&gt;
*Mise à jour de l&#039;utilitaire en ligne de commande {{code|dexter}} vers la version 1.0.1.&lt;br /&gt;
*Mise à jour de l&#039;utilitaire en ligne de commande {{code|rclasser}} vers la version 1.0.1.&lt;br /&gt;
*Mise à jour de l&#039;utilitaire en ligne de commande {{code|bundletool}} vers la version 1.18.1.&lt;br /&gt;
*Mise à jour de l&#039;utilitaire en ligne de commande {{code|packager}} vers la version 1.2.1.&lt;br /&gt;
&lt;br /&gt;
===Contrôle MaskEdit===&lt;br /&gt;
&lt;br /&gt;
RAD Studio Florence 13.0 introduit un nouveau contrôle MaskEdit pour FireMonkey qui inclut un concepteur spécifique pour les masques de saisie.&lt;br /&gt;
&lt;br /&gt;
[[File:Maskedit.png|=link|border]]&lt;br /&gt;
&lt;br /&gt;
Contrairement à son équivalent VCL, dans l&#039;implémentation FMX TMaskEdit, une exception n&#039;est pas déclenchée si la valeur en cours dans l&#039;éditeur de masque de saisie n&#039;est pas valide. A la place, il est recommandé d&#039;utiliser l&#039;événement OnValidateError. Cet événement permet au développeur de fournir à l&#039;utilisateur un retour visuel à propos d&#039;une valeur non valide. Si la valeur est toujours incorrecte après la réinitialisation de la focalisation, elle reste dans un état non valide, et l&#039;événement OnChange n&#039;est pas déclenché jusqu&#039;à ce que la valeur devienne valide.&lt;br /&gt;
&lt;br /&gt;
===Nouvelle fonctionnalité Display Link Service===&lt;br /&gt;
&lt;br /&gt;
La nouvelle fonctionnalité Display Link Service pour FMX est maintenant le moteur central pour toutes les animations de l&#039;application, remplaçant entièrement l&#039;ancien moteur basé sur des timers.&lt;br /&gt;
&lt;br /&gt;
Ce système précis exploite le taux de rafraîchissement réel de l&#039;écran pour synchroniser et lancer toutes les mises à jour et animations de l&#039;interface utilisateur. En utilisant les API natives de la plate-forme comme JChoreographer (Android) et CADisplayLink (iOS), le service garantit que le traitement des animations est étroitement aligné sur les événements VSync, ce qui se traduit par des visuels plus fluides et plus cohérents sur toutes les plates-formes.&lt;br /&gt;
&lt;br /&gt;
{{Note|Vous remarquerez que cette modification fondamentale et structurelle implique des changements et des incompatibilités avec le code existant. Par exemple, la propriété {{code|Interval}} dans [[lib_fr:FMX.InertialMovement.TAniCalculations|TAniCalculations]] a été supprimée&amp;lt;ref name=&amp;quot;”TAniCalculations”&amp;quot; /&amp;gt;, alors que d&#039;autres propriétés ont été modifiées de TDateTime en Double.}}&lt;br /&gt;
&lt;br /&gt;
===FMX Linux===&lt;br /&gt;
&lt;br /&gt;
Pour la release RAD Studio Florence 13.0, une nouvelle version de FMX Linux est disponible dans les packages [[Gestionnaire de packages GetIt|GetIt]]. De même, l&#039;intégration de la bibliothèque à l&#039;EDI est maintenant plus fluide.&lt;br /&gt;
&lt;br /&gt;
===Mises à jour de Skia===&lt;br /&gt;
&lt;br /&gt;
La release RAD Studio Florence 13.0 intègre la mise à jour de la dernière version 7.0.0 de la bibliothèque Skia ([[Skia4Delphi|Skia4Delphi - RAD Studio]]). Cette mise à jour résout plusieurs problèmes et permet une meilleure intégration de Skia.&lt;br /&gt;
&lt;br /&gt;
Voir [https://github.com/skia4delphi/skia4delphi/releases Releases - skia4delphi/skia4delphi]&lt;br /&gt;
&lt;br /&gt;
===Améliorations supplémentaires relatives aux contrôles et composants FireMonkey===&lt;br /&gt;
&lt;br /&gt;
Voici des mises à jour et modifications supplémentaires apportées aux contrôles et composants FireMonkey.&lt;br /&gt;
&lt;br /&gt;
*Le composant TComboEdit prend maintenant en charge le remplissage automatique de la saisie avec une configuration de texte modifiable.&lt;br /&gt;
*Ajout d&#039;un nouvel ensemble de propriétés au [[lib_fr:FMX.ScrollBox.TPresentedScrollBox|TPresentedScrollBox]] pour que l&#039;utilisateur puisse contrôler les animations de défilement, les rebonds et les interactions tactiles. Voici les nouvelles propriétés : [[lib_fr:FMX.ScrollBox.TCustomPresentedScrollBox.AutoHide|AutoHide]], [[lib_fr:FMX.ScrollBox.TCustomPresentedScrollBox.Bounces|Bounces]], [[lib_fr:FMX.ScrollBox.TCustomPresentedScrollBox.ScrollAnimation|ScrollAnimation]], [[lib_fr:FMX.ScrollBox.TCustomPresentedScrollBox.ScrollDirections|ScrollDirections]], et [[lib_fr:FMX.ScrollBox.TCustomPresentedScrollBox.TouchTracking|TouchTracking]].&lt;br /&gt;
*Ajout du nouveau composant TApplicationEvents.&lt;br /&gt;
*Changement de TDateTime en Double car l&#039;API fonctionne maintenant avec des intervalles mesurés en seconde. Le DisplayLink d&#039;iOS fonctionne en secondes, alors que le JChoreographer d&#039;Android fonctionne en nanosecondes.&lt;br /&gt;
*Conversion des méthodes de FMX.Text.TextEditor et FMX.Text.SpellingManager pour qu&#039;elles soient virtuelles.&lt;br /&gt;
* Remaniement de {{code|IFMXSpellCheckerService}} avec la nouvelle interface {{code|IFMXSpellCheckerServiceEx}}, qui permet de travailler avec différentes langues et phrases.&lt;br /&gt;
*Publication de la propriété HitTest pour le composant TGlyph.&lt;br /&gt;
*Ajout d&#039;une propriété [[lib_fr:FMX.Memo.TCustomMemo.TextPrompt|TextPrompt]] à TMemo, utilisée comme texte indicatif lorsqu&#039;aucun texte n&#039;est présent. Fonctionne comme un TEdit.&lt;br /&gt;
*Ajout d&#039;un nouvel événement OnCheckedChange pour TListBoxItem.&lt;br /&gt;
*Ajout de la prise en charge de l&#039;orientation pour la poignée dans le style TSplitter.&lt;br /&gt;
*Publication de la propriété de TouchTargetExpansion pour TShape et d&#039;autres contrôles visuels.&lt;br /&gt;
*Les icônes de boutons TBindNavigator peuvent maintenant être modifiés via les styles.&lt;br /&gt;
*Ajout d&#039;une nouvelle propriété Reverse à TTrackBar , qui permet d&#039;inverser la barre graduée. De plus, TTrackBar prend maintenant en charge le défilement avec la molette de la souris.&lt;br /&gt;
*La hauteur de MenuItem était auparavant une constante. Maintenant, l&#039;utilisateur peut ajouter un objet TStyleTag avec StyleName=“height“ au style TMenuItem et spécifier la hauteur de l&#039;élément de menu dans la propriété Value.&lt;br /&gt;
*TGlyph a de nouvelles propriétés, ImageRect et Bitmap, qui autorisent des tailles et coordonnées de dessin réelles.&lt;br /&gt;
*La valeur FContentHeight du composant TExpander est maintenant accessible dans la propriété ContentHeight.&lt;br /&gt;
*Amélioration de la saisie dans TStringGrid TPopupColumn.&lt;br /&gt;
*Introduction des méthodes virtuelles DoStateChanged pour TRadioButton, TCheckBox et TArcDial.&lt;br /&gt;
*Une nouvelle assistance de propriété de classe de type TCanvasHelper dans TCustomCanvasGpu a été conçue pour les développeurs souhaitant étendre la bibliothèque FMX.&lt;br /&gt;
*Le FMX.TListBoxGroupHeader a maintenant la propriété TextSetting.Trimming.&lt;br /&gt;
*Ajout de la propriété AutoTranslate à TMainMenu et TPopupMenu.&lt;br /&gt;
*Ajout d&#039;une version surchargée de la méthode EvaluateJavaScript à TWebBrowser, avec un paramètre TJavaScriptResultCallback.&lt;br /&gt;
*Ajout d&#039;un nouveau composant, TApplicationEvents, similaire à l&#039;équivalent VCL.&lt;br /&gt;
*Mise à jour de [[lib_fr:FMX.Types.TAlignLayout|TAlignLayout]] de façon à intégrer de nouvelles options d&#039;alignement pour le centrage des contrôles. Les nouvelles méthodes d&#039;alignement incluent : {{code|TopCenter}}, {{code|TopLeft}}, {{code|TopRight}}, {{code|LeftCenter}}, {{code|LeftTop}}, {{code|LeftBottom}}, {{code|RightCenter}}, {{code|RightTop}}, {{code|RightBottom}}, {{code|BottomCenter}}, {{code|BottomLeft}} et {{code|BottomRight}}.&lt;br /&gt;
*Ajout de la prise en charge de la version 16.0 des symboles des emojis.&lt;br /&gt;
*TBindNavigator permet maintenant de configurer des conseils et des styles spécifiques pour chaque bouton, en utilisant les sous-propriétés de la propriété [[lib_fr:Fmx.Bind.Navigator.TCustomBindNavigator.ButtonsOptions|ButtonsOptions]].&lt;br /&gt;
&lt;br /&gt;
====Autres améliorations relatives aux applications mobiles====&lt;br /&gt;
&lt;br /&gt;
*Prise en charge du mode plein écran pour iOS.&lt;br /&gt;
*RAD Studio transmet maintenant les paramètres de démarrage iOS, qui peuvent être utilisés pour les interactions avec d&#039;autres frameworks et applications (voir [[lib_fr:FMX.Platform.TApplicationEvent|TApplicationEvent]]; {{code|FinishedLaunching}}).&lt;br /&gt;
*Problème de dictée vocale résolu sur iOS.&lt;br /&gt;
*Ajout de la possibilité de désactiver le rebond dans une vue liste sur iOS, à l&#039;aide de la nouvelle propriété [[lib_fr:FMX.ListView.TListViewBase.Bounces|TListView.Bounces]]. Cette propriété permet à un développeur de contrôler la possibilité de faire défiler le contenu au-delà de ses limites. Cela concerne uniquement l&#039;écran tactile.&lt;br /&gt;
&lt;br /&gt;
==Base de données et FireDAC==&lt;br /&gt;
&lt;br /&gt;
Cette partie du produit englobe de nombreuses améliorations allant de la prise en charge étendue des champs de base de données Unsigned Big Integer (grand entier non signé) à une plus grande flexibilité lors du déplacement d&#039;un champ depuis l&#039;éditeur de champs vers une fiche visuelle.&lt;br /&gt;
&lt;br /&gt;
Cette section répertorie les mises à jour et les améliorations apportées aux composants Database et [[FireDAC|FireDAC]].&lt;br /&gt;
&lt;br /&gt;
===RTL des bases de données===&lt;br /&gt;
&lt;br /&gt;
Cette section répertorie les mises à jour et les améliorations apportées à la RTL des bases de données :&lt;br /&gt;
&lt;br /&gt;
*Ajout d&#039;un nouveau type de champ à [[lib_fr:Data.DB.TFieldType|TFieldType]] pour prendre en charge les champs Unsigned Big Integer (grand entier non signé). FireDAC prend maintenant en charge le nouveau type {{code|TFieldType.ftLargeUint}} via les pilotes Oracle et MySQL, ainsi que le [[lib_fr:FireDAC.Comp.Client.TFDMemTable|TFDMemTable]].&lt;br /&gt;
*Ajout d&#039;une nouvelle propriété [[lib_fr:Vcl.DBCtrls.TDBText.EllipsisPosition|EllipsisPosition]] au composant TDBText VCL, qui fonctionne de la même façon qu&#039;avec TLabel.&lt;br /&gt;
*&lt;br /&gt;
 Ajout de nouvelles propriétés DataSet pour accéder aux objets DataSource attachés :&lt;br /&gt;
**Propriété [[lib_fr:Data.DB.TDataSet.DataSourceCount|TDataSet.DataSourceCount]].&lt;br /&gt;
**Propriété  [[lib_fr:Data.DB.TDataSet.DataSources|TDataSet.DataSources]].&lt;br /&gt;
*Ajout d&#039;une procédure {{code|DrpCtrls.RegisterFieldControl}} surchargée qui permet une configuration personnalisée du contrôle personnalisé créé. Voir l&#039;exemple ci-dessous :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
uses DrpCtrls;&lt;br /&gt;
  RegisterFieldControl(TIntegerField, &#039;TDBLabeledEdit&#039;,&lt;br /&gt;
    procedure (Control: TControl; DataSource: TDataSource; Field: TField)&lt;br /&gt;
    var&lt;br /&gt;
      LEdit: TDBLabeledEdit;&lt;br /&gt;
    begin&lt;br /&gt;
      LEdit := Control as TDBLabeledEdit;&lt;br /&gt;
      LEdit.DataSource := DataSource;&lt;br /&gt;
      LEdit.DataField := Field.FullName;&lt;br /&gt;
      LEdit.EditLabel.Caption := Field.DisplayLabel;&lt;br /&gt;
    end);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===FireDAC===&lt;br /&gt;
&lt;br /&gt;
Cette release intègre les mises à jour et améliorations suivantes de [[FireDAC|FireDAC]] :&lt;br /&gt;
&lt;br /&gt;
*Ajout de la prise en charge des opérations parallèles dans {{code|TFDFBBackup}} pour Firebird 5.0+. ParallelWorkers ([[lib_fr:FireDAC.Phys.IBBase.TFDIBBackup.ParallelWorkers|TFDIBBackup]], [[lib_fr:FireDAC.Phys.IBBase.TFDIBRestore.ParallelWorkers|TFDIBRestore]], et [[lib_fr:FireDAC.Phys.IBBase.TFDIBValidate.ParallelWorkers|TFDIBValidate]]) spécifie le nombre de processus de travail parallèles utilisés par un gestionnaire de service pour exécuter les tâches requises.&lt;br /&gt;
*[[lib_fr:FireDAC.Comp.Client.TFDMemTable|TFDMemTable]] prend en charge {{code|RecsSkip}} et {{code|RecsMax}}. Les paramètres RecsSkip et RecsMax sont appliqués quand la propriété [[lib_fr:FireDAC.Comp.Client.TFDMemTable.Filter|Filter]] a la valeur {{code|True}}.&lt;br /&gt;
*&lt;br /&gt;
 Ajout d&#039;une plus grande flexibilité à FireDAC lors du renvoi de données textuelles pour les types tableau PostgreSQL. Voici deux façons d&#039;afficher les champs {{code|relacl}} sous forme de texte lisible :&lt;br /&gt;
**transtyper un champ - {{code|relacl::TEXT}}&lt;br /&gt;
**définir [[lib_fr:FireDAC.Stan.Option.TFDResourceOptions.DirectExecute|ResourceOptions.DirectExecute]] sur {{code|True}}. Ensuite, FireDAC en interne utilisera le format textuel de PostgreSQL pour les ensembles de résultats.&lt;br /&gt;
*Conversion en méthodes virtuelles de certaines méthodes en relation avec les transactions dans les classes [[lib_fr:FireDAC.Comp.Client.TFDCustomConnection|TFDCustomConnection]] et [[lib_fr:FireDAC.Comp.Client.TFDCustomTransaction|TFDCustomTransaction]] pour faciliter la personnalisation du comportement des classes dérivées.&lt;br /&gt;
*[[lib_fr:FireDAC.Comp.Client.TFDMemTable|TFDMemTable]] permet le chargement du JSON standard (non généré en enregistrant les données à partir de FireDAC) en utilisant le nouveau format [[lib_fr:FireDAC.Stan.Intf.TFDStorageFormat|TFDStorageFormat.sfFreeFormJSON]]. &amp;amp;lt;/br&amp;amp;gt; Exemples :&lt;br /&gt;
&lt;br /&gt;
 FDMemTable1.LoadFromFile(&#039;test.json&#039;, sfFreeFormJSON);&lt;br /&gt;
 FDMemTable1.SaveToFile(&#039;test2.json&#039;, sfFreeFormJSON).&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
 Pour les connexions Oracle, RAD Studio Florence 13.0 ajoute la prise en charge de l&#039;authentification OAuth 2.0 pour le composant FireDAC [[lib_fr:FireDAC.Comp.Client.TFDConnection|TFDConnection]] dans Delphi.&lt;br /&gt;
**&lt;br /&gt;
 Nouveaux paramètres de définition de connexion [[Connexion à Oracle Server (FireDAC)#Paramètres de définition de connexion]] : &lt;br /&gt;
***&#039;&#039;&#039;OAuth_Token&#039;&#039;&#039; - spécifie un token OAuth2 ou IAM. Requiert Oracle 19.13.&lt;br /&gt;
***&#039;&#039;&#039;OAuth_PrivKey&#039;&#039;&#039; - spécifie une clé privée IAM PoP. Lorsqu&#039;elle est spécifiée, l&#039;authentification basée sur un token IAM est utilisée ; sinon, l&#039;authentification Azure OAuth2 est utilisée. Requiert Oracle 19.13.&lt;br /&gt;
**Utilisez le composant [[lib_fr:REST.Authenticator.OAuth.TOAuth2Authenticator|TOAuth2Authenticator]] pour obtenir un token OAuth2. Utilisez la fonction de [[Récupération d&#039;une connexion (FireDAC)|Récupération automatique de connexion]] pour renouveler et soumettre un nouveau token.&lt;br /&gt;
&lt;br /&gt;
===DataSnap===&lt;br /&gt;
&lt;br /&gt;
Cette release ajoute des événements de validation de certificat à TFDConnection et TDSClientCallbackChannelManager, qui peuvent utiliser HTTPS comme protocole de transport :&lt;br /&gt;
&lt;br /&gt;
*[[lib_fr:FireDAC.Comp.Client.TFDConnection.ValidatePeerCertificate|TFDConnection.ValidatePeerCertificate]].&lt;br /&gt;
*[[lib_fr:Datasnap.DSCommon.TDSClientCallbackChannelManager.ValidatePeerCertificate|TDSClientCallbackChannelManager.ValidatePeerCertificate]].&lt;br /&gt;
&lt;br /&gt;
==Mises à jour des bibliothèques client Web==&lt;br /&gt;
&lt;br /&gt;
La release RAD Studio Florence 13.0 apporte les mises à jour suivantes :&lt;br /&gt;
&lt;br /&gt;
*Ajout de la prise en charge du protocole HTTP/3 vers THttpClient via [[lib_fr:REST.HttpClient.TRESTHTTP.ProtocolVersion|THTTPProtocolVersion.HTTP_3_0]].&lt;br /&gt;
*Pour les clients SOAP, une version asynchrone de [[lib_fr:Soap.SOAPHTTPTrans.THTTPReqResp.Execute|THTTPReqResp.Execute]] est désormais disponible.&lt;br /&gt;
&lt;br /&gt;
==Mises à jour relatives à WebBroker==&lt;br /&gt;
&lt;br /&gt;
La release RAD Studio 13.0 Florence offre plusieurs extensions à [[lib_fr:Web.WebBroker|WebBroker]], y compris une gestion des sessions HTTP moderne et intégrée, une intégration Apache améliorée, la prise en charge des serveurs Web Nginx, une journalisation améliorée et une intégration WebStencils facile, ce qui rend les applications Web à la fois plus simples à développer et plus puissantes.&lt;br /&gt;
&lt;br /&gt;
===Authentification et gestion des sessions===&lt;br /&gt;
&lt;br /&gt;
Cette release introduit une nouvelle classe, [[lib_fr:Web.HTTPApp.TWebSessionManager|TWebSessionManager]], qui gère une liste d&#039;objets [[lib_fr:Web.HTTPApp.TWebSession|TWebSession]]. Il s&#039;agit d&#039;un composant non visuel qui offre un ensemble de propriétés au moment de la conception.&lt;br /&gt;
&lt;br /&gt;
La propriété [[lib_fr:Web.HTTPApp.TWebRequest.Session|TWebRequest.Session]] renvoie la session de la requête. Les objets personnalisés stockés dans TWebSession.DataVars sont maintenant directement disponibles dans les scripts WebStencils.&lt;br /&gt;
&lt;br /&gt;
L&#039;authentification des sessions peut être intégrée à la gestion des sessions et peut être basée sur une logique différente.&lt;br /&gt;
&lt;br /&gt;
Un algorithme “sentinelle” est intégré à TCustomWebDispatcher.DispatchAction, et délègue le traitement à [[lib_fr:Web.HTTPApp.IWebSessionManager|IWebSessionManager]] ou [[lib_fr:Web.HTTPApp.IWebAuthenticator|IWebAuthenticator]].&lt;br /&gt;
&lt;br /&gt;
Vous trouverez ci-dessous d&#039;autres changements apportés à la prise en charge des bibliothèques :&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gestion des sessions&#039;&#039;&#039; : &lt;br /&gt;
**Ajout du TWebSessionManager qui gère une collection d&#039;objets TWebSession. Il s&#039;agit d&#039;un composant non visuel avec des propriétés de conception ayant les configurations suivantes : IdLocation, IdName, Scope (ssUnlimited, ssUser et ssUserAndIP), Timeout et SharedSecret.&lt;br /&gt;
**Ajout du TWebSession, qui représente des sessions individuelles.&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authentification&#039;&#039;&#039; :&lt;br /&gt;
**Ajout du TWebBasicAutenticator, qui implémente l&#039;authentification de base HTTP.&lt;br /&gt;
**&lt;br /&gt;
 Ajout du TWebFormsAuthenticator, qui implémente l&#039;authentification basée sur des fiches HTML. &lt;br /&gt;
***&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authorisation&#039;&#039;&#039; :&lt;br /&gt;
**TWebAuthorizer fournit un contrôle d&#039;accès basé sur les rôles via des zones d&#039;autorisation.&lt;br /&gt;
**Authorization vérifie les rôles des utilisateurs conformément aux exigences de la zone. Utilisez l&#039;événement OnAuthorize pour la logique d&#039;autorisation personnalisée. En cas d&#039;échec de l&#039;autorisation, une redirection est effectuée vers UnauthorizedURL ou l&#039;état 403 est renvoyé.&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Intégration WebStencils&#039;&#039;&#039; : &lt;br /&gt;
**&lt;br /&gt;
 Les sessions s&#039;intègrent aux modèles WebStencils suivants : &lt;br /&gt;
***{{code|@session.xxx}} : accès aux propriétés de l&#039;objet session.&lt;br /&gt;
***{{code|@session.DataVars}} : accès aux variables personnalisées des sessions.&lt;br /&gt;
***{{code|@session.UserHasRole(&amp;amp;lt;string&amp;amp;gt;)}} : vérifie si un utilisateur a un rôle spécifique.&lt;br /&gt;
***{{code|@&amp;amp;lt;n&amp;amp;gt;}} : accès direct aux objets stockés dans DataVars avec la clé {{code|&amp;amp;lt;n&amp;amp;gt;}}.&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Nouvelles propriétés de requêtes&#039;&#039;&#039; :&lt;br /&gt;
**TWebRequest.AuthUserName : nom d&#039;utilisateur authentifié.&lt;br /&gt;
**TWebRequest.AuthMethod : méthode d&#039;authentification utilisée.&lt;br /&gt;
**TWebRequest.Session : objet session de la requête en cours.&lt;br /&gt;
&lt;br /&gt;
Pour utiliser ces composants, ajoutez-les au module Web (un seul TWebSessionManager et un seul authentificateur par module). Les composants sont automatiquement détectés par la sentinelle du répartiteur. Le traitement s&#039;effectue comme suit : {{Menu| Gestion des sessions &amp;amp;gt; Authentification &amp;amp;gt; Autorisation &amp;amp;gt; Actions de répartition}}.&lt;br /&gt;
&lt;br /&gt;
Les sessions sont automatiquement créées quand TWebSessionManager est présent. L&#039;authentification est obligatoire lorsqu&#039;un composant authentificateur est ajouté (utilisez TWebAuthorizer pour contrôler ce comportement). Tous les composants fonctionnent ensemble via des interfaces (IWebSessionManager, IWebAuthenticator, IWebAuthorizer).&lt;br /&gt;
&lt;br /&gt;
===Sortie d&#039;historique===&lt;br /&gt;
&lt;br /&gt;
Une nouvelle méthode TWebApplication.Log intégrant la gravité, le message et les paramètres est prise en charge sur toutes les plates-formes et utilise le système d&#039;historique approprié du serveur Web :&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Apache&#039;&#039;&#039; : fichier journal du serveur Apache, par défaut logs\error.log.&lt;br /&gt;
*&#039;&#039;&#039;ISAPI&#039;&#039;&#039; : journal d&#039;événements Windows (eventvwr.msc) : journaux Windows.&lt;br /&gt;
*&#039;&#039;&#039;CGI&#039;&#039;&#039; : fichier ayant le nom TCGIApplication.LogFileName.&lt;br /&gt;
*&#039;&#039;&#039;FastCGI&#039;&#039;&#039; : fichier journal du serveur HTTP (Apache, nginx), par défaut logs\error.log.&lt;br /&gt;
&lt;br /&gt;
===TWebRequest étendu===&lt;br /&gt;
&lt;br /&gt;
Cette release a étendu le composant TWebRequest comme suit :&lt;br /&gt;
&lt;br /&gt;
*Méthode ExtractAllHeaders, propriété AllHeaders&lt;br /&gt;
*SessionID&lt;br /&gt;
*AuthUserName et AuthMethod&lt;br /&gt;
&lt;br /&gt;
===Apache Config===&lt;br /&gt;
&lt;br /&gt;
Cette release introduit Apache Config, un système de configuration textuel et extensible. Voici un exemple de configuration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple&#039;&#039;&#039; :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
MyEnabled On&lt;br /&gt;
MyFolder &amp;quot;c:/temp&amp;quot;&lt;br /&gt;
MyMimeTypes image/bmp text/html&lt;br /&gt;
&amp;lt;Location /qwe/asd&amp;gt;&lt;br /&gt;
  MyEnabled On&lt;br /&gt;
  MyFolder &amp;quot;c:/temp/asd&amp;quot;&lt;br /&gt;
&amp;lt;/Location&amp;gt;&lt;br /&gt;
&amp;lt;Location /qwe/asd/zxc&amp;gt;&lt;br /&gt;
  MyMimeTypes image/png image/jpeg text/html&lt;br /&gt;
  MyRole admin&lt;br /&gt;
&amp;lt;/Location&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Permet le mappage d&#039;un enregistrement Delphi sur des directives Apache (types de champs non gérés uniquement, y compris string[n]) :&lt;br /&gt;
&lt;br /&gt;
*Utilisez des attributs WebHTTPMethod pour personnaliser le mappage.&lt;br /&gt;
*Utilisez Web.ApacheApp.InitConfig pour recenser le type d&#039;enregistrement. Appelez-le juste après InitApplication.&lt;br /&gt;
*Utilisez Web.ApacheHTTP. TApacheRequest.GetConfig pour obtenir une instance d&#039;enregistrement avec des valeurs spécifiques à une URL de requête.&lt;br /&gt;
*Utilisez Web.HTTPDMethods.IHTTPDConfigAdaptor, THTTPDCustomConfigAdaptor&amp;amp;lt;T&amp;amp;gt; pour personnaliser l&#039;initialisation et la redéfinition des enregistrements.&lt;br /&gt;
&lt;br /&gt;
L&#039;expert WebBroker permet d&#039;inclure un exemple de configuration Apache.&lt;br /&gt;
&lt;br /&gt;
{{Attention| Cette fonctionnalité n&#039;est pas prise en charge dans C++ Builder.}}&lt;br /&gt;
&lt;br /&gt;
===Prise en charge de FastGCI et NGINX===&lt;br /&gt;
&lt;br /&gt;
Cette release intègre la prise en charge de FastCGI pour nginx. Cette interface permet d&#039;accéder à un module Web exécuté sous forme d&#039;application distincte.&lt;br /&gt;
&lt;br /&gt;
Plus de détails ci-dessous :&lt;br /&gt;
&lt;br /&gt;
*Ajout de nouvelles unités Web.FastCGIApp.pas, Web.FastCGIHTTP.pas et Web.FCGI_Protocol.pas.&lt;br /&gt;
*FastCGI est pris en charge par nginx et Apache.&lt;br /&gt;
*Ajout de nouvelles classes : TFastCGIApplication, TFastCGIRequest et TFastCGIResponse.&lt;br /&gt;
*Ajout de la prise en charge de FastCGI à l&#039;expert WebBroker.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour recenser une application avec nginx, ajoutez les lignes suivantes à conf\nginx.conf :&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
# 1) &amp;quot;location&amp;quot; mask, fastcgi_param directives are environment dependent&lt;br /&gt;
# 2) Update the fastcgi_pass directive when the host or port is different&lt;br /&gt;
# 3) This will redirect the request &amp;quot;GET http://localhost:8000/fcgi/&amp;quot; &lt;br /&gt;
#    to the FastCGI server.&lt;br /&gt;
&lt;br /&gt;
        location ~ ^/fcgi(.*)$ {&lt;br /&gt;
            include fastcgi_params;&lt;br /&gt;
&lt;br /&gt;
            fastcgi_param SCRIPT_NAME /fcgi;&lt;br /&gt;
            fastcgi_param PATH_INFO   $1;&lt;br /&gt;
            fastcgi_param SCRIPT_FILENAME dummy;&lt;br /&gt;
            fastcgi_param PATH_TRANSLATED $document_root$1;&lt;br /&gt;
            fastcgi_keep_conn on;&lt;br /&gt;
&lt;br /&gt;
            fastcgi_pass 127.0.0.1:9000;&lt;br /&gt;
        }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Améliorations relatives à WebStencils==&lt;br /&gt;
&lt;br /&gt;
WebStencils étend considérablement les technologies Web existantes dans RAD Studio en fournissant des scripts côté serveur et en transformant RAD Server d&#039;un moteur de service Web en un outil de site Web et de service Web.&lt;br /&gt;
&lt;br /&gt;
La section suivante décrit les mises à jour de [[WebStencils|WebStencils]] introduites dans RAD Studio Florence 13.0.&lt;br /&gt;
&lt;br /&gt;
*Implémentation de la propriété du mécanisme de liste blanche pour empêcher l&#039;exposition d&#039;informations sensibles comme les chaînes de connexion de base de données ou toute autre information sensible. Découvrez comment personnaliser la liste blanche [[WebStencils#Liste blanche de sécurité|ici]].&lt;br /&gt;
*Introduction de la possibilité d&#039;ajouter des [[WebStencils#Utilisation de variables supplémentaires|variables supplémentaires]] au moteur de script à l&#039;extérieur des modèles d&#039;objet et d&#039;ensemble de données.&lt;br /&gt;
*La notation WebStencils {{code|@}} pour un ensemble de données permet maintenant d&#039;accéder aux propriétés de l&#039;ensemble de données, en plus du champ. Le niveau d&#039;accès au champ peut être contrôlé à l&#039;aide d&#039;une propriété spécifique ([[lib_fr:Web.Stencils.TWebStencilsProcessor.Whitelist|TWebStencilsProcessor.Whitelist]]) pour empêcher l&#039;accès non autorisé aux informations internes. Vous trouverez plus d&#039;informations [[WebStencils#Accès aux propriétés de l&#039;ensemble de données|ici]].&lt;br /&gt;
*WebStencils s&#039;intègre maintenant automatiquement aux sessions Web lorsqu&#039;elles sont disponibles. Vous trouverez plus d&#039;informations [[WebStencils#Intégration automatique aux sessions|ici]].&lt;br /&gt;
*WebStencils prend maintenant en charge la propagation du contenu @ExtraHeader via des hiérarchies de dispositions imbriquées. Vous trouverez plus d&#039;informations [[WebStencils#Modèles WebStencils : disposition et corps|ici]].&lt;br /&gt;
*Ajout d&#039;améliorations relatives aux [[WebStencils#Mots clés WebStencil|mots clés WebStencils]] en donnant au mot-clé {{code|@page}} deux valeurs supplémentaires, comme {{code|@page.request_path}} et {{code|@page.request_segment}}.&lt;br /&gt;
&lt;br /&gt;
==Améliorations relatives à RAD Server==&lt;br /&gt;
&lt;br /&gt;
RAD Studio 13.0 rend l&#039;utilisation de la documentation API Swagger plus flexible, ajoute la prise en charge multi-client de RAD Server en tant qu&#039;option pour intégrer une configuration spécifique au client, et introduit un moyen simple et direct d&#039;implémenter le versionage des API.&lt;br /&gt;
&lt;br /&gt;
La section suivante répertorie les améliorations apportées à RAD Server dans RAD Studio Florence 13.0.&lt;br /&gt;
&lt;br /&gt;
*Documentation API Swagger de RAD Server : les paramètres de schémas et de références pour les définitions Swagger et OpenAPI sont maintenant facultatifs.&lt;br /&gt;
*&lt;br /&gt;
 Ajoute l&#039;option permettant de renvoyer un en-tête personnalisé dans le document de réponse Swagger en utilisant le nouvel attribut [[lib_fr:EMS.ResourceTypes.EndPointResponseHeaderAttribute|EndPointResponseHeaderAttribute]]. &lt;br /&gt;
**Nouvelles méthodes [[lib_fr:EMS.Services.IEMSApiDocumentService.SetBaseUrl|SetBaseUrl]] et [[lib_fr:EMS.Services.TEMSAPIDocumentService.GetBaseUrl|GetBaseUrl]].&lt;br /&gt;
*&lt;br /&gt;
 Cette release ajoute à la [[Support multi-client RAD Server|prise en charge multi-client (multi-tenancy) de RAD Server]] une façon d&#039;intégrer une configuration spécifique au client (comme des connexions aux bases de données), à configurer avant l&#039;exécution d&#039;une logique métier quelconque. Plus spécifiquement, les éléments suivants ont été ajoutés :&lt;br /&gt;
**Variables serveur préfixées par le client (tenant) : la spécification d&#039;une variable préfixée par le client garantit l&#039;utilisation de sa valeur. Sinon, une variable sans préfixe du client est utilisée.&lt;br /&gt;
**Une interface [[lib_fr:EMS.ResourceTypes.IEMSResourceInterceptor|IEMSResourceInterceptor]] avec des méthodes [[lib_fr:EMS.ResourceTypes.IEMSResourceInterceptor.BeforeRequest|BeforeRequest]] et [[lib_fr:EMS.ResourceTypes.IEMSResourceInterceptor.AfterRequest|AfterRequest]].&lt;br /&gt;
*&lt;br /&gt;
 RAD Server prend maintenant en charge l&#039;exportation de plusieurs versions de la même fonction de l&#039;API, ce qui permet aux clients d&#039;invoquer la version la plus récente de l&#039;API REST ou une version plus ancienne en utilisant le nouvel attribut ResourceVersion. Les nouvelles valeurs de [[lib_fr:EMS.ResourceAPI.TEMSVersionStatus|TEMSVersionStatus]] sont les suivantes :&lt;br /&gt;
**Experimental - utilise {{code|ver/myapi/…}} comme URL de base et ajoute “Experimental” à la description Swagger.&lt;br /&gt;
**Active - utilise {{code|ver/myapi/…}} comme URL de base.&lt;br /&gt;
**Default - utilise {{code|ver/myapi/…}} et {{code|myapi/…}} comme URL de base.&lt;br /&gt;
**Deprecated - utilise {{code|ver/myapi/…}} comme URL de base et ajoute “Deprecated” à la description Swagger.&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Notes d&#039;installation|Notes d&#039;installation]]&lt;br /&gt;
*[[Notes de release|Notes de release]]&lt;br /&gt;
*[[New features and customer reported issues fixed in RAD Studio 13.0|Nouvelles fonctionnalités et problèmes corrigés]]&lt;br /&gt;
*[[Nouveautés des releases précédentes|Nouveautés des releases précédentes]]&lt;br /&gt;
&lt;br /&gt;
===Références===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;références&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref name=&amp;quot;”TAniCalculations”&amp;quot;&amp;gt; L&#039;intervalle de rendu des animations a été supprimé pour qu&#039;il corresponde maintenant au taux de rafraîchissement actuel de l&#039;écran. L&#039;application peut s&#039;exécuter sur des périphériques équipés d&#039;un écran de 60 Hz, 90 Hz ou 120 Hz, et le défilement sera automatiquement plus fluide, sans ajustement manuel de l&#039;intervalle. Les animations exécutées seront constamment mises à jour (recalculées) sur chaque nouvelle trame de l&#039;écran.  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/références&amp;amp;gt;&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Nouveaut%C3%A9s&amp;diff=218923</id>
		<title>Nouveautés</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Nouveaut%C3%A9s&amp;diff=218923"/>
		<updated>2026-05-09T03:34:54Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Accueil}} &lt;br /&gt;
{{Parent|Nouveautés des releases précédentes}}&lt;br /&gt;
&lt;br /&gt;
La release {{Product}} 13.0 {{Version}} contient les nouvelles fonctionnalités et améliorations suivantes :&lt;br /&gt;
&lt;br /&gt;
==Améliorations relatives à l&#039;installation et au Gestionnaire de packages GetIt==&lt;br /&gt;
&lt;br /&gt;
Les sections suivantes décrivent les améliorations relatives à l&#039;installation et au Gestionnaire de packages GetIt.&lt;br /&gt;
&lt;br /&gt;
===Modification du processus d&#039;installation===&lt;br /&gt;
&lt;br /&gt;
Depuis RAD Studio Florence 13.0, le programme d&#039;installation n&#039;installe plus automatiquement le Windows SDK. Il vérifie si la version actuelle du SDK est installée sur l&#039;ordinateur et, dans le cas contraire, fournit un lien de téléchargement lors du processus d&#039;installation. Le téléchargement et l&#039;installation du Windows SDK sont des pré-requis à l&#039;installation de RAD Studio, c&#039;est pourquoi il est recommandé de le faire avant l&#039;installation de RAD Studio 13.0. Pour plus de détails, consultez les [[Notes d&#039;installation|Notes d&#039;installation]].&lt;br /&gt;
&lt;br /&gt;
Lors de l&#039;installation du Windows SDK, il est recommandé d&#039;activer les options suivantes :&lt;br /&gt;
&lt;br /&gt;
*Windows SDK for Desktop C++ x86 Apps&lt;br /&gt;
*Windows SDK for Desktop C++ amd64 Apps&lt;br /&gt;
&lt;br /&gt;
Les éléments suivants seront automatiquement activés :&lt;br /&gt;
&lt;br /&gt;
*Windows SDK Signing Tools for Desktop Apps&lt;br /&gt;
*Windows SDK for UWP Managed Apps&lt;br /&gt;
*Windows SDK for UWP C++ Apps.&lt;br /&gt;
&lt;br /&gt;
Cette release supprime la possibilité d&#039;installer les fonctionnalités de “&#039;&#039;&#039;Modélisation&#039;&#039;&#039;” dans l&#039;interface de RAD Studio, dans les versions 32 bits et 64 bits. La fonctionnalité ne figure donc plus dans les options d&#039;installation du [[Gestionnaire de fonctionnalités|Gestionnaire de fonctionnalités]]. Cela affecte également le formatage dans Delphi.&lt;br /&gt;
&lt;br /&gt;
===Versionage des packages dans le Gestionnaire de packages===&lt;br /&gt;
&lt;br /&gt;
Depuis RAD Studio Florence 13.0, plusieurs versions d&#039;un même [[Fenêtre du Gestionnaire de packages GetIt|package GetIt]] peuvent être disponibles. Vous pouvez donc choisir d&#039;installer une version spécifique plutôt que la dernière version. Lorsque plusieurs versions d&#039;un package existent, un menu déroulant apparaît à côté du bouton Installer.&lt;br /&gt;
&lt;br /&gt;
[[File:Version install getit.png|=link|border|300px]]&lt;br /&gt;
&lt;br /&gt;
Les dépendances de packages présentes dans une configuration de projet peuvent maintenant faire référence à une version spécifique d&#039;un package, ce qui permet de définir des règles de filtrage.&lt;br /&gt;
&lt;br /&gt;
De plus, l&#039;interface de GetIt contient désormais un bouton à utilisation générale ainsi qu&#039;un menu déroulant proposant des options supplémentaires de désinstallation ou de mise à jour. Il est également possible d&#039;exporter la liste des packages installés. Pour plus d&#039;informations, voir [[Fenêtre du Gestionnaire de packages GetIt|Fenêtre du Gestionnaire de packages GetIt]].&lt;br /&gt;
&lt;br /&gt;
===Numéros de version interne unifiés à la valeur 37===&lt;br /&gt;
&lt;br /&gt;
Dans cette release de RAD Studio, les numéros de version interne sont unifiés à la valeur 37 pour la RTL, les packages, et les éléments suivants :&lt;br /&gt;
&lt;br /&gt;
*L&#039;entrée principale du registre :&lt;br /&gt;
&lt;br /&gt;
 HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BDS\37.0&lt;br /&gt;
&lt;br /&gt;
*La version de package et la version de RTL.&lt;br /&gt;
*La version FMX : FMX.Types.FireMonkeyVersion&lt;br /&gt;
*La version de PA Server.&lt;br /&gt;
*Le dossier dans le lequel le produit est installé par défaut : &lt;br /&gt;
&lt;br /&gt;
{{code|C:\Program Files (x86)\Embarcadero\Studio\37.0}}&lt;br /&gt;
&lt;br /&gt;
{{Note| Dans cette release, le dossier d&#039;installation de l&#039;EDI et les packages d&#039;exécution passent directement à la version 37 (en sautant plusieurs numéros intermédiaires) alors que le compilateur suit l&#039;incrément habituel (+1).}}&lt;br /&gt;
&lt;br /&gt;
==Améliorations de l&#039;EDI 64 bits==&lt;br /&gt;
&lt;br /&gt;
RAD Studio 13.0 inclut notre première EDI totalement 64 bits pour la plate-forme Windows 64 bits. Elle étend et complète les fonctionnalités de [[64-bit IDE|l&#039;EDI 64 bits]] introduites initialement dans RAD Studio version 12.3. Par rapport à cette &amp;quot;release initiale&amp;quot; de l&#039;EDI 64 bits de 12.3, l&#039;EDI 64 bits de 13.0 offre une grande nouveauté : la prise en charge de la construction et du débogage d&#039;applications 64 bits dans Delphi et C++.&lt;br /&gt;
&lt;br /&gt;
Voici les principales améliorations :&lt;br /&gt;
&lt;br /&gt;
*Prise en charge des templates de code (Ctrl-J), incluant notamment le menu Encadrement.&lt;br /&gt;
*Prise en charge des bibliothèques de types, ActiveX, et COM.&lt;br /&gt;
*Intégration VA pour C++Builder dans l&#039;EDI 64 bits.&lt;br /&gt;
*Implémentation d&#039;un nouveau moteur de débogage pour déboguer les applications C++ et Delphi.&lt;br /&gt;
*Améliorations majeures des performances du débogueur Delphi.&lt;br /&gt;
*Modification des adresses de pointeur pour les faire apparaître dans un style Delphi.&lt;br /&gt;
*Suppression des fonctionnalités &amp;quot;Together&amp;quot;, incluant notamment la Modélisation, les Audits, et les Métriques.&lt;br /&gt;
&lt;br /&gt;
==Modifications et améliorations de l&#039;EDI==&lt;br /&gt;
&lt;br /&gt;
Cette release améliore et modernise l&#039;EDI de RAD Studio avec l&#039;introduction de fonctionnalités de recherche étendues et configurables dans plusieurs volets de l&#039;EDI. Voici les principales modifications et améliorations :&lt;br /&gt;
&lt;br /&gt;
===Améliorations relatives aux fonctions de recherche===&lt;br /&gt;
&lt;br /&gt;
RAD Studio Florence 13.0 introduit de nouvelles fonctionnalités de recherche dans plusieurs volets de l&#039;EDI, ce qui facilite l&#039;accès à l&#039;information dans les projets, unités et scénarios volumineux. L&#039;expérience de recherche est unifiée dans l&#039;ensemble des volets qui prennent en charge cette fonction via la combinaison de touches {{code|Ctrl+F}}. La touche {{code|Echap}} permet de fermer la fenêtre de résultats et de revenir au contrôle original.&lt;br /&gt;
&lt;br /&gt;
Des fonctionnalités de recherche ont été ajoutées aux sections suivantes :&lt;br /&gt;
&lt;br /&gt;
*[[Vue Structure#Menus contextuels de la vue Structure et de l&#039;explorateur de code|Vue Structure]] : ajout d&#039;une fonction de recherche incrémentale utilisable aussi bien dans la vue de conception que dans la vue du code source, avec en plus la mise en surbrillance de la syntaxe dans les résultats de recherche du code source.&lt;br /&gt;
*[[Fenêtre Projets#Barre d&#039;outils de la fenêtre Projets|Gestionnaire de projets]] : ajout d&#039;une fonction de recherche incrémentale prenant en charge des requêtes rapides et optimisées pour les projets volumineux (plus de 20 000 fichiers).&lt;br /&gt;
*[[Vue Messages|Volet Message]] et [[Fenêtre Journal d&#039;événements|Journal d&#039;événements]] : ajout d&#039;une fonction de recherche incrémentale facilitant la navigation dans de grandes structures de données.&lt;br /&gt;
*[[Inspecteur d&#039;objets|Inspecteur d&#039;objets]] : ajout d&#039;une icône de recherche pour faciliter la navigation.&lt;br /&gt;
*[[Palette d&#039;outils|Palette d&#039;outils]] : ajout d&#039;une icône de recherche pour faciliter la navigation.&lt;br /&gt;
&lt;br /&gt;
De plus, la fonction de recherche implémentée dans les recherches des vues Messages et Evénements, mais aussi dans les vues Projets et Structure, offre une configuration de recherche spécifique, disponible depuis une liste déroulante :&lt;br /&gt;
&lt;br /&gt;
[[File:Structure search.png|=link|border]]&lt;br /&gt;
&lt;br /&gt;
===Ajouts au journal des messages===&lt;br /&gt;
&lt;br /&gt;
RAD Studio Florence 13.0 introduit de nouvelles options sous {{Menu| EDI &amp;amp;gt; Compilation et exécution &amp;amp;gt; [[Journal de construction|Journal de construction]]}} :&lt;br /&gt;
&lt;br /&gt;
*Activation de la mise en surbrillance dans le journal du compilateur.&lt;br /&gt;
*Regroupement des conseils et avertissements dans le volet Messages. Cela facilite la navigation lorsque les messages sont nombreux et accélère le processus de build.&lt;br /&gt;
&lt;br /&gt;
[[File:Messages search.png|=link|border]]&lt;br /&gt;
&lt;br /&gt;
===Mises à jour de ToolsAPI===&lt;br /&gt;
&lt;br /&gt;
La release RAD Studio Florence 13.0 apporte les mises à jour suivantes à ToolsAPI :&lt;br /&gt;
&lt;br /&gt;
*Ajout d&#039;une nouvelle méthode pour mettre à jour l&#039;interface utilisateur dans la page d&#039;accueil.&lt;br /&gt;
&lt;br /&gt;
 INTAWelcomePageDataPluginListView370.Invalidate&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
 Ajout de la prise en charge des événements de souris interceptés comme clics.&lt;br /&gt;
**[[Prise en charge de ToolsAPI pour l&#039;éditeur de code#Evénement curseur déplacé|Evénement curseur déplacé]]&lt;br /&gt;
**[[Prise en charge de ToolsAPI pour l&#039;éditeur de code#Evénement appui de touche|Evénement appui de touche]]&lt;br /&gt;
&lt;br /&gt;
Pour plus de détails sur ces mises à jour, voir la page [[Prise en charge de ToolsAPI pour l&#039;éditeur de code|ToolsAPI]].&lt;br /&gt;
&lt;br /&gt;
===Améliorations relatives à l&#039;audit de code intelligent===&lt;br /&gt;
&lt;br /&gt;
RAD Studio Florence 13.0 introduit &amp;quot;RAD AI Companion”, un chat et générateur de code, spécifiquement entraîné sur du contenu en lien avec RAD Studio. Dans l&#039;EDI, ouvrez {{Menu| Menu Aide &amp;amp;gt; [http://www.embarcadero.com/radaicompanion RAD AI Companion]}}.&lt;br /&gt;
&lt;br /&gt;
[[File:AI companion.png|=link]]&lt;br /&gt;
&lt;br /&gt;
Cette release introduit également le nouveau bouton Tester la connexion dans la page [[Smart CodeInsight Options|Options de l&#039;audit de code intelligent]]. Désormais, les utilisateurs peuvent directement tester la configuration sans qu&#039;il soit nécessaire de lancer le chat.&lt;br /&gt;
&lt;br /&gt;
Parmi les autres améliorations :&lt;br /&gt;
&lt;br /&gt;
*Pour les modèles qui renvoient {{code|“&amp;amp;lt;think&amp;amp;gt;”}} avant de renvoyer l&#039;information, l&#039;EDI a supprimé les balises “thinking”.&lt;br /&gt;
*Les conseils des boutons affichés dans la [[Smart CodeInsight#Fenêtre de chat IA|Fenêtre de chat de l&#039;audit de code intelligent]] ont été améliorés et indiquent désormais les raccourcis.&lt;br /&gt;
&lt;br /&gt;
===Modifications supplémentaires de l&#039;EDI===&lt;br /&gt;
&lt;br /&gt;
Les sections suivantes présentent les mises à jour et améliorations apportées à l&#039;EDI :&lt;br /&gt;
&lt;br /&gt;
*La nouvelle option de l&#039;EDI [[Onglets|Onglets]] a été ajoutée pour permettre aux utilisateurs d&#039;utiliser la couleur de fond de l&#039;éditeur pour les tabulations de l&#039;éditeur.&lt;br /&gt;
*Une nouvelle option de l&#039;EDI permet d&#039;utiliser le thème actif de l&#039;EDI pour les couleurs de [[Mise en surbrillance structurelle|mise en surbrillance structurelle]]. Utilisez-la pour sélectionner le style de couleur pour la mise en surbrillance structurelle.&lt;br /&gt;
*La [[Mise en mémoire tampon double et connexions distantes|mise en mémoire tampon double]] et la suppression du &amp;quot;sautillement&amp;quot; ont été activées par défaut. Vous pouvez aussi utiliser le nouveau paramètre du registre ({{code|Globals\SingleBufferingInRemoteSessions}}) pour désactiver la mise en mémoire tampon double.&lt;br /&gt;
*Le menu Refactoring est grisé lorsqu&#039;aucune option de refactoring n&#039;est active (ce comportement remplace l&#039;élément de menu “Aucun refactoring”).&lt;br /&gt;
*La boîte de dialogue Exception EDI affiche maintenant directement la trace de la pile d&#039;appels, fournissant ainsi des informations utiles pour comprendre le flux du code.&lt;br /&gt;
*Il est désormais possible de copier des messages d&#039;erreur depuis le volet Structure.&lt;br /&gt;
*La boîte de dialogue [[Attacher au processus|Attacher au processus]] a été modifiée de façon à inclure des colonnes supplémentaires pour afficher les informations sur les processus, et contient aussi des contrôles supplémentaires.&lt;br /&gt;
*L&#039;intégration du contrôle de source Git a été améliorée : l&#039;interface a été changée pour indiquer que vous pouvez utiliser le Token Name GitHub ou le Token Key à la place de votre nom d&#039;utilisateur et mot de passe.&lt;br /&gt;
*Lors de l&#039;ajout d&#039;une fiche à une application FireMonkey, il n&#039;est plus nécessaire de choisir entre une fiche HD et une fiche 3D. L&#039;ajout d&#039;une fiche 3D reste possible via une option distincte.&lt;br /&gt;
*Les icônes de gouttière ont été améliorées dans le mode Thème foncé, évitant ainsi l&#039;affichage d&#039;une bordure blanche autour des images.&lt;br /&gt;
&lt;br /&gt;
==Améliorations relatives aux outils EDI==&lt;br /&gt;
&lt;br /&gt;
RAD Studio comprend de puissants outils conçus pour faciliter l&#039;écriture de code Delphi et C++. La section suivante présente les améliorations et les mises à jour apportées aux différents outils EDI.&lt;br /&gt;
&lt;br /&gt;
===DelphiLSP===&lt;br /&gt;
&lt;br /&gt;
Cette release s&#039;inscrit dans la continuité des efforts destinés à améliorer l&#039;architecture de DelphiLSP. En &#039;&#039;&#039;réponse à certaines demandes de nos clients Delphi&#039;&#039;&#039;, nous avons choisi de rétablir l&#039;ancien moteur Audit de code Delphi. Il est à nouveau disponible dans RAD Studio 13.0 sous forme d&#039;alternative à la version DelphiLSP disponible dans l&#039;EDI, et accessible à toute personne souhaitant l&#039;utiliser.&lt;br /&gt;
&lt;br /&gt;
{{Note|L&#039;activation du [[Référence de l&#039;Audit de code#Modification du Gestionnaire d&#039;audit de code/LSP|Gestionnaire d&#039;audit de code classique]] affecte certaines fonctionnalités ayant été déplacées dans DelphiLSP,comme le volet Structure, la fonction Audit d&#039;erreur, et la barre de navigation de l&#039;éditeur (la barre d&#039;outils affichée en haut de l&#039;éditeur qui permet de se déplacer dans le code). Ces fonctionnalités ne fonctionnent plus lorsque vous activez le Gestionnaire d&#039;audit de code classique, et nous ne sommes pas en mesure d&#039;annuler ces changements.}}&lt;br /&gt;
&lt;br /&gt;
Le gestionnaire {{code|Audit de code classique}} peut être activé depuis {{Menu|Outils &amp;amp;gt; Options &amp;amp;gt; Editeur &amp;amp;gt; Langage &amp;amp;gt; [[Options du source#Onglet Audit de code|Onglet Audit de code]]}} comme indiqué sur l&#039;image ci-dessous :&lt;br /&gt;
&lt;br /&gt;
[[File:Delphilsp classic codeInsight.png|850px]]&lt;br /&gt;
&lt;br /&gt;
===Expert Delphi Upgrade Advisor===&lt;br /&gt;
&lt;br /&gt;
RAD Studio 13.0 introduit un nouvel Expert, le [[Delphi Upgrade Advisor Wizard|Delphi Upgrade Advisor]], qui permet d&#039;identifier d&#039;importants changements dans la configuration d&#039;un projet et dans le code, permettant ainsi d&#039;améliorer la vitesse de compilation et l&#039;expérience des développeurs avec les outils. Cet expert est disponible sous forme de package GetIt. Une fois installé, un nouveau menu apparaît dans l&#039;EDI.&lt;br /&gt;
&lt;br /&gt;
En plus de fournir des suggestions intéressantes, [[Delphi Upgrade Advisor Wizard|l&#039;Expert Delphi Upgrade Advisor]] propose des scripts reFind qui permettent de nettoyer les instructions uses du projet.&lt;br /&gt;
&lt;br /&gt;
===Visual Assist pour C++===&lt;br /&gt;
&lt;br /&gt;
Dans RAD Studio Florence 13.0, l&#039;intégration VA a été améliorée pour une plus grande cohérence avec la façon dont RAD Studio gère les chaînes d&#039;outils et les configurations de projet.&lt;br /&gt;
&lt;br /&gt;
VA se recharge maintenant automatiquement à chaque fois que vous modifiez la configuration d&#039;un projet, la plate-forme cible, ou la chaîne d&#039;outils. Cela garantit l&#039;exactitude des chemins d&#039;inclusion et de la résolution des symboles même lorsque vous travaillez avec plusieurs projets qui utilisent des paramètres différents au sein d&#039;un même groupe de projets. Pour plus d&#039;informations, voir la page [[Visual Assist for C++|Visual Assist pour C++]].&lt;br /&gt;
&lt;br /&gt;
===Mises à jour du débogueur===&lt;br /&gt;
&lt;br /&gt;
Dans cette release, le débogueur a été mis à jour en LLDB version 20. Le compilateur Clang pour la plate-forme Windows 64 bits (Moderne) a aussi été mis à jour en version 20.&lt;br /&gt;
&lt;br /&gt;
Voici la liste des améliorations relatives au débogueur :&lt;br /&gt;
&lt;br /&gt;
Pour &#039;&#039;&#039;C++&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Amélioration de la façon dont OutputDebugStringW gère les sorties Unicode.&lt;br /&gt;
*Les valeurs caractères étendus non imprimables sont désormais affichées dans le format correct dans la sortie du débogueur.&lt;br /&gt;
*argc et argv gèrent maintenant correctement les arguments contenant des espaces lorsqu&#039;ils sont exécutés sous le débogueur.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pour Delphi&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Les valeurs d&#039;énumération de portée restent désormais correctement contenues dans leur type déclaré, évitant les conflits dans l&#039;espace de nommage global. De plus, ces valeurs sont maintenant restituées correctement dans les vues de débogage.&lt;br /&gt;
*Les valeurs des membres d’objet sont maintenant correctement affichées lors du débogage.&lt;br /&gt;
*Les noms de variables de classe sont correctement résolus, avec une gestion améliorée du substantypage.&lt;br /&gt;
*La gestion de la variable Unicode a été améliorée ; le débogueur accepte maintenant un intervalle plus large d&#039;identificateurs Unicode.&lt;br /&gt;
&lt;br /&gt;
De plus, dans les options de l&#039;EDI, vous pouvez activer [[Options du débogueur|Code en surbrillance]] dans les fenêtres de débogage.&lt;br /&gt;
&lt;br /&gt;
===Compilateur de ressources===&lt;br /&gt;
&lt;br /&gt;
Dans cette release, des ajustements ont été apportés à l&#039;intégration du [[Options du compilateur de ressources|Compilateur de ressources]] dans RAD Studio.&lt;br /&gt;
&lt;br /&gt;
Depuis Florence 13.0, RAD Studio distribue un compilateur de ressources open-source supplémentaire, appelé &#039;&#039;&#039;resinator&#039;&#039;&#039;. Il est désormais utilisé par défaut dans le système pour générer le code. Pour plus d&#039;informations sur resinator, voir [https://github.com/squeek502/resinator GitHub resinator].&lt;br /&gt;
&lt;br /&gt;
{{Note|Le compilateur de ressources &#039;&#039;&#039;resinator&#039;&#039;&#039; est uniquement disponible pour le compilateur bcc64x.}}&lt;br /&gt;
&lt;br /&gt;
De nouvelles options ont aussi été ajoutées pour faciliter la sélection d&#039;un autre compilateur de ressources, incluant notamment le compilateur de ressources classique du Windows SDK.&lt;br /&gt;
&lt;br /&gt;
==Mises à jour relatives au compilateur Delphi==&lt;br /&gt;
&lt;br /&gt;
RAD Studio 13.0 intègre des améliorations du langage Delphi, allant d&#039;un nouvel opérateur ternaire à de nouvelles directives de compilation, etc.&lt;br /&gt;
&lt;br /&gt;
===Opérateur conditionnel If===&lt;br /&gt;
&lt;br /&gt;
La release RAD Studio Florence 13.0 introduit un opérateur conditionnel (opérateur ternaire) dans le langage Pascal Objet. Alors que son comportement est similaire à l&#039;opérateur {{code|?:}}, communément trouvé dans d&#039;autres langages de programmation, sa syntaxe ressemble au Pascal Objet, et est similaire à la structure if-then-else.&lt;br /&gt;
&lt;br /&gt;
Pour des exemples et des informations supplémentaires, voir la page [[Conditional Operators (Delphi)|Opérateurs conditionnels (Delphi)]].&lt;br /&gt;
&lt;br /&gt;
===Nouveaux opérateurs “is not” et “not in”===&lt;br /&gt;
&lt;br /&gt;
Le compilateur autorise les opérateurs {{code|“is not”}} et {{code|“not in”}}, ce qui constitue une alternative plus courte et plus lisible aux opérateurs combinés. Pour des exemples, voir la page [[Expressions (Delphi)#Les opérateurs is not et not in|Expressions Delphi]].&lt;br /&gt;
&lt;br /&gt;
===Nouvelle directive “noreturn”===&lt;br /&gt;
&lt;br /&gt;
La directive “noreturn” est un attribut associé aux procédures, indiquant que l&#039;appel va déclencher une exception et ne peut pas poursuivre son exécution normalement. Cela permet au compilateur d&#039;ignorer un avertissement sur des résultats non définis et d&#039;activer l&#039;optimisation et l&#039;élimination de code. Pour des exemples, voir la page [[Déclarations et instructions (Delphi)#La directive noreturn|Déclarations et instructions Delphi]].&lt;br /&gt;
&lt;br /&gt;
La nouvelle directive peut être utilisée pour éliminer les [[W1035 La valeur de retour de la fonction &#039;%s&#039; peut être indéfinie (Delphi)|avertissements W1035]] lorsque des exceptions sont déclenchées, empêchant potentiellement l&#039;affectation d&#039;une valeur correcte. Pour des exemples, voir la page [[W1035 La valeur de retour de la fonction &#039;%s&#039; peut être indéfinie (Delphi)|W1035 La valeur de retour de la fonction &#039;%s&#039; peut être indéfinie]].&lt;br /&gt;
&lt;br /&gt;
===Directives {$PUSHOPT} et {$POPOPT}===&lt;br /&gt;
&lt;br /&gt;
Ces nouvelles directives du compilateur Delphi enregistrent et restaurent l&#039;ensemble actuel de configurations d&#039;avertissement et d&#039;options.&lt;br /&gt;
&lt;br /&gt;
Cette release émet les avertissements suivants sur les directives déséquilibrées.&lt;br /&gt;
&lt;br /&gt;
*[[W1078 $POPOPT with no matching $PUSHOPT in &#039;%s&#039;|W1078]]&lt;br /&gt;
*[[W1079 Previous $PUSHOPT on line %Id not restored|W1079]]&lt;br /&gt;
&lt;br /&gt;
Le même avertissement sera émis à la fin du fichier source s&#039;il y a plus de [[Option OPT (Delphi)#.7B.24PUSHOPT.7D|$PUSHOPT]] que de [[Option OPT (Delphi)#.7B.24POPOPT.7D|$POPOPT]] dans un fichier. Ces nouvelles directives ne peuvent pas être appliquées à toutes les options et à tous les paramètres. Voir la liste des [[Option OPT (Delphi)#Liste des options éligibles|Options éligibles]].&lt;br /&gt;
&lt;br /&gt;
===Prise en charge des directives longues pour la directive {$IFOPT}===&lt;br /&gt;
&lt;br /&gt;
Depuis RAD Studio Florence 13.0, la directive {{code|{$IFOPT}}} prend en charge les directives longues. Voici comment :&lt;br /&gt;
&lt;br /&gt;
 {$IFOPT SCOPEDENUMS ON}&lt;br /&gt;
&lt;br /&gt;
Pour la liste complète des directives prises en charge, voir la page [[Directive IFOPT (Delphi)|$IFOPT]].&lt;br /&gt;
&lt;br /&gt;
===Nouvelles contraintes pour les types génériques===&lt;br /&gt;
&lt;br /&gt;
De nouvelles contraintes ”&#039;&#039;&#039;interface&#039;&#039;&#039;” et “&#039;&#039;&#039;unmanaged&#039;&#039;&#039;” existent pour les types génériques. Les contraintes &amp;quot;unmanaged&amp;quot; remplacent partiellement la contrainte existante sur les enregistrements.&lt;br /&gt;
&lt;br /&gt;
De plus, grâce à ces nouvelles contraintes, il est possible d&#039;autoriser le transtypage L-Value pour une variable de type valeur déclarée avec un type générique. Dans la méthode d&#039;une classe générique, il est désormais possible de transtyper le résultat d&#039;une méthode générique renvoyant le type générique lui-même, selon le type concret utilisé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple&#039;&#039;&#039; :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
class function TMyData&amp;lt;T&amp;gt;.OperateSubtract(const L, R: T): T;&lt;br /&gt;
begin&lt;br /&gt;
  if (GetTypeKind(T) = tkInteger) and (SizeOf(T) = 1) then&lt;br /&gt;
    Byte(Result) := Byte(L) - Byte(R) // New cast!&lt;br /&gt;
  else if (GetTypeKind(T) = tkInteger) and (SizeOf(T) = 2) then&lt;br /&gt;
    Word(Result) := Word(L) - Word(R) // New cast!&lt;br /&gt;
  // ...&lt;br /&gt;
  else if (GetTypeKind(T) = tkFloat) and (SizeOf(T) = 10) then&lt;br /&gt;
    Extended(Result) := Extended(L) - Extended(R); // New cast!&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Fonction NameOf Instrict===&lt;br /&gt;
&lt;br /&gt;
Il y a une nouvelle procédure standard NameOf(Identificateur), dont le fonctionnement correspond à la façon dont la fonction C# de même nom fonctionne. Elle peut être transmise à n&#039;importe quel identificateur. La valeur retournée est la représentation chaîne correspondante:&lt;br /&gt;
&lt;br /&gt;
  Memo1.Lines.Add (NameOf (Sender));&lt;br /&gt;
  Memo1.Lines.Add (NameOf (self));&lt;br /&gt;
  Memo1.Lines.Add (NameOf (TForm31));&lt;br /&gt;
  Memo1.Lines.Add (NameOf (X));&lt;br /&gt;
  Memo1.Lines.Add (NameOf (Integer));&lt;br /&gt;
&lt;br /&gt;
===Déclaration de paramètre “Self” implicite dans les opérateurs de classe d&#039;enregistrement Initialize et Finalize===&lt;br /&gt;
&lt;br /&gt;
Les deux opérateurs de classe pour les enregistrements managés personnalisés permettent désormais d&#039;utiliser une syntaxe de déclaration plus concise. Il est en effet possible d&#039;ignorer le paramètre {{code|self}} (qui reste implicitement disponible). Cela n&#039;entraîne aucun changement, que ce soit dans le code généré ou le comportement. Seule la syntaxe est simplifiée.&lt;br /&gt;
&lt;br /&gt;
Pour des exemples, voir la page [[Enregistrements managés personnalisés#Déclaration de paramètre self implicite|Enregistrements managés personnalisés]].&lt;br /&gt;
&lt;br /&gt;
===Améliorations supplémentaires du compilateur Delphi===&lt;br /&gt;
&lt;br /&gt;
La section suivante présente les améliorations supplémentaires du compilateur Delphi.&lt;br /&gt;
&lt;br /&gt;
* La directive [[Packaging faible|$WEAKPACKAGEUNIT]] génère maintenant une erreur ([[E2203 $WEAKPACKAGEUNIT &#039;%s&#039; contient des données globales (Delphi)|E2203]] ou [[E2221 $WEAKPACKAGEUNIT &#039;%s&#039; ne peut avoir de code d&#039;initialisation ou de finalisation (Delphi)|E2221]]) si l&#039;unité contient des variables globales dans les sections interface, des blocs d&#039;initialisation ou de finalisation, ou encore des constructeurs ou destructeurs de classes. &amp;amp;lt;/br&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note| Cette modification peut empêcher la compilation du code existant.}}&lt;br /&gt;
&lt;br /&gt;
*L&#039;erreur de compilation &#039;&#039;&#039;‘E2033’&#039;&#039;&#039; (Les types des paramètres var originaux et formels doivent être identiques) inclut maintenant les noms des types impliqués.&lt;br /&gt;
* Deux nouveaux avertissements, [[W1076 Typecasting between pointer and narrower integer types: from &#039;%s&#039; to &#039;%s&#039;|W1076]] et [[W1077 Typecasting between pointer and 32-bit integer types can cause problems on 64-bit targets: from &#039;%s&#039; to &#039;%s&#039;|W1077]], ont été ajoutés pour le transtypage de données.&lt;br /&gt;
&lt;br /&gt;
==Plate-forme C++ Moderne Win64 mise à jour vers Clang 20==&lt;br /&gt;
&lt;br /&gt;
La release RAD Studio Florence 13.0 intègre la mise à jour du [[BCC64X|Compilateur C++ Moderne Win64]] depuis Clang 15 (version fournie avec 12.x) vers Clang version 20. Le nouveau compilateur basé sur Clang prend en charge C++23. De plus, cette release intègre la mise à jour de tous les autres éléments de la chaîne d&#039;outils C++ Moderne Win64.&lt;br /&gt;
&lt;br /&gt;
Cette release offre de nombreuses améliorations axées sur les standards C++ modernes, la compatibilité et la stabilité. Vous trouverez ci-dessous les principales améliorations incluses dans cette release :&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Mise à niveau de la chaîne d&#039;outils LLVM (v20)&#039;&#039;&#039; : la chaîne d&#039;outils a été mise à niveau depuis LLVM v15 vers LLVM v20. Cette mise à niveau prend en charge les derniers standards C++ et les optimisations du compilateur.&lt;br /&gt;
*&#039;&#039;&#039;Prise en charge améliorée d&#039;ASAN&#039;&#039;&#039; : le runtime [[Safety|AddressSanitizer (ASAN)]] est maintenant compatible avec Windows 11.&lt;br /&gt;
*&#039;&#039;&#039;Nouvelle option Standard C++&#039;&#039;&#039; : [[BCC64X|BCC64X]] utilise maintenant C++23 par défaut, mais les utilisateurs peuvent choisir de cibler C++20 ou C++17 si nécessaire.&lt;br /&gt;
*&#039;&#039;&#039;Bibliothèques partagées RTL/STL versionnées&#039;&#039;&#039; : les bibliothèques d&#039;exécution partagées (comme {{code|libc++.dll}}) ont maintenant un suffixe indiquant le numéro de version de BDS (par exemple, {{code|libc++-370.dll}}). Cela empêche les conflits d&#039;exécution lorsque plusieurs versions de RAD Studio sont installées.&lt;br /&gt;
*&#039;&#039;&#039;Résolution de problèmes des anciennes versions&#039;&#039;&#039; : de nombreux bogues et incohérences présents dans LLVM v15 et les versions précédentes de la chaîne d&#039;outils ont été résolus dans cette release.&lt;br /&gt;
&lt;br /&gt;
==Améliorations relatives à la RTL Delphi==&lt;br /&gt;
&lt;br /&gt;
Cette release améliore la RTL JSON pour permettre la suppression d&#039;un champ lorsqu&#039;il a une valeur particulière en ajoutant un nouvel attribut. Vous trouverez ci-dessous d&#039;autres améliorations relatives à JSON, ainsi que d&#039;autres mises à jour de la RTL Delphi.&lt;br /&gt;
&lt;br /&gt;
===Pack de composants SmartCore AI===&lt;br /&gt;
&lt;br /&gt;
RAD Studio 13.0 introduit un nouvel ensemble de composants IA conçu pour les clients qui souhaitent ajouter des fonctionnalités d&#039;IA à leurs applications et concevoir avec Delphi ou C++Builder de nouvelles applications centrées sur l&#039;IA. Cette architecture sera un élément central et fondamental à l&#039;avenir. Nos clients et les éditeurs tiers pourront s&#039;appuyer sur cette architecture et l&#039;étendre afin qu&#039;elle s&#039;intègre à de nouveaux contrôles d&#039;interface utilisateur et à d&#039;autres moteurs d&#039;IA.&lt;br /&gt;
&lt;br /&gt;
Le pack de composants SmartCore AI est disponible dans [[Gestionnaire de packages GetIt|GetIt]]. Le nouveau composant Connexion AI s&#039;utilise comme un composant Connexion de base de données dans FireDAC. Ce composant unique indépendant du moteur d&#039;IA utilisera des pilotes spécifiques pour communiquer via REST avec différents moteurs d&#039;IA (y compris OpenAI, Claude, Gemini et Ollama). Le moteur d&#039;IA SmartCore permet d&#039;ajouter des pilotes supplémentaires pour que les fournisseurs d&#039;IA puissent étendre les capacités de votre projet au fur et à mesure que le marché se développe. La configuration est gérée via un expert de connexion IA facile d&#039;emploi.&lt;br /&gt;
&lt;br /&gt;
Ce pack de composants comprend un ensemble de composants permettant d&#039;effectuer des requêtes ou interrogations IA pour différents types de données comme du texte, des images et des données structurées. Ils peuvent être associés à des prompts et être directement liés à des contrôles d&#039;interface utilisateur qui affichent les résultats. Ce modèle basé sur des composants facilite grandement l&#039;utilisation des composants SmartCore AI dans RAD Studio 13.0.&lt;br /&gt;
&lt;br /&gt;
===Traitement JSON===&lt;br /&gt;
&lt;br /&gt;
Cette section répertorie les mises à jour relatives à JSON :&lt;br /&gt;
&lt;br /&gt;
*Les attributs [[lib_fr:REST.Json.TJsonOption|TJsonOption]] {{code|joIgnoreDefault}} et {{code|joIgnoreSpecial}} ont été ajoutés.&lt;br /&gt;
*[[lib_fr:REST.JsonReflect.TMarshalUnmarshalBase.ValueSerialization|TMarshalUnmarshalBase.ValueSerialization]] : utilisation de TJsonValueSerialization avec jvExcludeSpecial  activée par défaut.&lt;br /&gt;
*Le comportement de [[lib_fr:System.JSON.TJSONValue.GetValue|TJSONValue.GetValue]]&amp;amp;lt;T&amp;amp;gt;(const APath: string; ADefaultValue: T): T a changé : la propriété recherche une valeur JSON. Si la valeur JSON est trouvée, elle est convertie dans le type spécifié. Si la valeur n&#039;est pas trouvée, si elle ne peut pas être restaurée, ou si elle est null, une valeur par défaut est renvoyée.&lt;br /&gt;
* La classe [[lib_fr:System.JSON.TJSONNumber|TJSONNumber]] est maintenant directement héritée de la classe {{code|TJSONValue}}.&lt;br /&gt;
* La classe [[lib_fr:System.JSON.TJSONObject|TJSONObject]] est marquée comme &amp;quot;sealed&amp;quot;.&lt;br /&gt;
*TJsonReader a maintenant ReadAsUInt64.&lt;br /&gt;
&lt;br /&gt;
Le sérialiseur JSON offre la possibilité d&#039;ignorer les propriétés avec des valeurs par défaut :&lt;br /&gt;
&lt;br /&gt;
*Nouvelle méthode surchargée TJsonConverter.CanWrite(AValue).&lt;br /&gt;
*La propriété [[lib_fr:System.JSON.Serializers.TJsonSerializer.MemberSerialization|TJsonSerializer.MemberSerialization]]: TJsonMemberSerialization a par défaut la valeur TJsonMemberSerialization.Fields.&lt;br /&gt;
&lt;br /&gt;
===Autres modifications relatives à la RTL Delphi===&lt;br /&gt;
&lt;br /&gt;
La section suivante indique les autres modifications relatives à la RTL Delphi pour la release RAD Studio Florence 13.0.&lt;br /&gt;
&lt;br /&gt;
*Actualisation des API WinRT, capture externe des en-têtes WinAPI à partir de la définition WinMD (dans GetIt), et nettoyage des déclarations WinAPI dans les fichiers RTL.&lt;br /&gt;
*Mise à jour de la version intégrée de DUnitX vers la version 0.4.1 (dernière modification en date du 26 juin 2025).&lt;br /&gt;
*Ajout d&#039;une version sensible à la casse de la fonction [[lib_fr:System.SysUtils.TStringHelper.Contains|TStringHelper.Contains]].&lt;br /&gt;
*Ajout de l&#039;unité System.StrUtils.LiteralToInt qui fournit des fonctions prenant en charge les littéraux entiers contenant &amp;quot;_&amp;quot; et des notations binaires contenant &amp;quot;%&amp;quot;. Par conséquent, les classes TIntegerProperty et TInt64Property utilisent maintenant TryLiteralToInt.&lt;br /&gt;
*Ajout d&#039;une nouvelle propriété [[lib_fr:System.IOUtils.TPath.Exists|TPath.Exists]].&lt;br /&gt;
*Ajout de [[lib_fr:System.Win.Registry.TRegistry.ReadUInt64|ReadUInt64]] et [[lib_fr:System.Win.Registry.TRegistry.WriteUInt64|WriteUInt64]] à la classe TRegistry.&lt;br /&gt;
*TThreadedQueue a maintenant une propriété Count pour assurer la cohérence des noms.&lt;br /&gt;
*Mise à jour de TDictionary&amp;amp;lt;K,V&amp;amp;gt; et TOrderedDictionary&amp;amp;lt;K,V&amp;amp;gt;. Le transtypage de TOrderedDictionary en TDictionary préserve le comportement de TOrderedDictionary.&lt;br /&gt;
*Les constructeurs des classes de synchronisation TMutex, TSemaphore et TEvent définissent maintenant la propriété THandleObject.LastError avant de revenir à l&#039;appelant.&lt;br /&gt;
*Mise à disposition d&#039;un constructeur TStringList avec la signature:&amp;amp;lt;/br&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 constructor Create(Options: TStringsOptions; Duplicates: TDuplicates = dupIgnore); overload;&lt;br /&gt;
&lt;br /&gt;
*L&#039;unité System.RTTI a une nouvelle fonction GetStorageSize pour lire le nombre d&#039;octets requis pour stocker une valeur de ce type dans la mémoire.&lt;br /&gt;
*Ajout d&#039;une nouvelle méthode TSizeF.Zero.&lt;br /&gt;
*Pour le débogage des scénarios de verrou mortel, nous avons ajouté la propriété WriterID à IReadWrite/TMultiReadExclusiveWriteSync.&lt;br /&gt;
*&lt;br /&gt;
 Restructuration de TRttiDataMember en introduisant une nouvelle classe intermédiaire :&lt;br /&gt;
**TRttiPlaceMember&lt;br /&gt;
**TRttiDataMember&lt;br /&gt;
**TRttiIndexedProperty&lt;br /&gt;
&lt;br /&gt;
==Améliorations relatives à la VCL==&lt;br /&gt;
&lt;br /&gt;
Dans 13.0, RAD Studio introduit de nouvelles fonctionnalités et de nombreuses améliorations de qualité pour les puissantes bibliothèques d&#039;interface utilisateur intégrées. La VCL inclut une intégration des interfaces Microsoft UIAutomation, des styles TitleBar, etc.&lt;br /&gt;
&lt;br /&gt;
===Prise en charge d&#039;UIAutomation===&lt;br /&gt;
&lt;br /&gt;
Pour améliorer l&#039;accessibilité et l&#039;intégration des applications VCL avec les outils de test d&#039;interface utilisateur, la prise en charge de UIAutomation dans la bibliothèque VCL est maintenant intégrée à la version 13.0.&lt;br /&gt;
&lt;br /&gt;
===Améliorations relatives à barre de titre===&lt;br /&gt;
&lt;br /&gt;
Dans cette release, TitleBarPanel prend en charge les styles VCL personnalisés. Cela permet de dessiner des contrôles stylés dans la zone de barre de titre.&lt;br /&gt;
&lt;br /&gt;
De plus, cette release apporte les mises à jour suivantes :&lt;br /&gt;
&lt;br /&gt;
*Ajout d&#039;une nouvelle propriété TTitleBar.StyleColors pour permettre l&#039;utilisation automatique des couleurs des styles VCL pour l&#039;arrière-plan et les boutons sur la barre de titre. La prise en charge inclut l&#039;utilisation des contrôles suivants : TButton, TSpeedButton, TCheckBox, TRadioButton, TToolBar, TEdit, TComboBox, TFormTabsBar, TActionToolBar et TActionMainMenuBar.&lt;br /&gt;
*Amélioration de l&#039;utilisation de la barre de titre dans les applications MDI.&lt;br /&gt;
*Ajout de la prise en charge des conseils pour les boutons des clients sur la barre de titre.&lt;br /&gt;
*Améliorations relatives à la prise en charge HighDPI&lt;br /&gt;
&lt;br /&gt;
===Améliorations relatives au composant ControlList===&lt;br /&gt;
&lt;br /&gt;
Dans RAD Studio Florence 13.0, les améliorations suivantes ont été apportées au composant ControlList :&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
 Le composant ControlList prend en charge un nouveau type de contrôle hébergé : SplitButton. Cette implémentation implique les changements suivants :&lt;br /&gt;
**Les styles clbkSplitPushButton et clbkSplitToolButton pour le contrôle TControlListButton.&lt;br /&gt;
**Un nouvel aspect pour la zone de menu déroulant d&#039;un bouton fractionné avec une flèche.&lt;br /&gt;
**Propriété DropDownMenu pour le contrôle TControlListButton.&lt;br /&gt;
*Ajout d&#039;un nouvel événement OnGetItemHint et d&#039;une nouvelle propriété ShowItemHint pour offrir des conseils par élément, plutôt que des conseils globaux pour les contrôles.&lt;br /&gt;
&lt;br /&gt;
===Améliorations relatives au composant FormsTabsBar===&lt;br /&gt;
&lt;br /&gt;
RAD Studio Florence 13.0 comporte les améliorations suivantes pour le composant FormsTabsBar, introduit dans RAD Studio 12 :&lt;br /&gt;
&lt;br /&gt;
*Ajout de la prise en charge de la transparence avec deux nouvelles propriétés : Transparent et ShowBottomLine.&lt;br /&gt;
*Ajout d&#039;un nouvel événement OnGetTabCaption qui rend le TFormTabsBar plus flexible.&lt;br /&gt;
*Les méthodes TabFromPoint et TabIndexFromPoint sont maintenant publiques.&lt;br /&gt;
*Ajout d&#039;une nouvelle propriété MouseMiddleButtonClose pour fermer un onglet avec le bouton central de la souris.&lt;br /&gt;
&lt;br /&gt;
===Mise à jour de EdgeBrowser===&lt;br /&gt;
&lt;br /&gt;
Cette release intègre une mise à jour des interfaces au contrôle Microsoft WebView 2 (Edge basé sur Chromium) vers la version 1.0.3296.44 du SDK WebView2.&lt;br /&gt;
&lt;br /&gt;
De plus, elle intègre également des mises à jour du composant TEdgeBrowser (et la démo correspondante) pour prendre en charge AddWebResourceRequestedFilterWithRequestSourceKinds à la place de AddWebResourceRequestedFilter.&lt;br /&gt;
&lt;br /&gt;
===Démo WinUI 3===&lt;br /&gt;
&lt;br /&gt;
Cette release intègre la mise à jour des en-têtes WinUI 3 et la démo WinUI 3 autonome, précédemment téléchargeables de façon individuelle via GetIt, et maintenant intégrées dans les démos du produit principal.&lt;br /&gt;
&lt;br /&gt;
===Défilement ActionMainMenuBar===&lt;br /&gt;
&lt;br /&gt;
Cette release intègre une nouvelle fonctionnalité de défilement pour le contrôle TActionMainMenuBar, qui est activée lorsque la hauteur verticale dépasse la hauteur de l&#039;écran.&lt;br /&gt;
&lt;br /&gt;
Vous trouverez ci-dessous un exemple de cette fonctionnalité en action. Veuillez noter qu&#039;elle peut également être utilisée par l&#039;EDI de RAD Studio, lorsqu&#039;il est exécuté sur un écran basse résolution.&lt;br /&gt;
&lt;br /&gt;
[[File:Actionmenus scrollintest.png|=link|border]]&lt;br /&gt;
&lt;br /&gt;
===Autres améliorations de la VCL===&lt;br /&gt;
&lt;br /&gt;
Voici des mises à jour et modifications supplémentaires intégrées dans la VCL.&lt;br /&gt;
&lt;br /&gt;
*Suppression de la prise en charge spécifique à Win98 dans le code VCL.&lt;br /&gt;
*Amélioration du contrôle TToggleSwitch pour qu&#039;il ressemble à un commutateur à bascule Windows 10 / Windows 11, mettant à jour la &amp;quot;famille de styles VCL Windows 10&amp;quot;.&lt;br /&gt;
*Mise à jour de la classe TDragDockObject pour que DropAlign soit une propriété en lecture-écriture.&lt;br /&gt;
*Ajout d&#039;un nouvel événement TActionMainMenuBar.OnSelectMenuItem pour permettre l&#039;affichage de conseils pour les éléments de menu dans le composant ActionMainMenuBar.&lt;br /&gt;
* Le contrôle TCategoryButtons comporte maintenant les propriétés [[lib_fr:Vcl.CategoryButtons.TBaseButtonItem.Enabled|Enabled]] et [[lib_fr:Vcl.CategoryButtons.TButtonCategory.CanCollapse|CanCollapse]] de TBaseButtonItem et TButtonCategory.&lt;br /&gt;
*Nouvelle propriété TStyleManager.FormBorderSize.&lt;br /&gt;
*Nouvel événement TMonthCalendar.OnChange.&lt;br /&gt;
*Nouveaux événements OnBeforeResize et OnAfterResize ajoutés pour TSplitter.&lt;br /&gt;
*Ajout d&#039;une nouvelle fonction publique, VCLEditors.GetFormDPIForVCLEditors, pour simplifier le développement d&#039;éditeurs VCL sous l&#039;EDI HiDPI.&lt;br /&gt;
*TCanvas offre de nouvelles méthodes surchargées avec des paramètres TPoint pour les méthodes suivantes : AngleArc, Draw, LineTo, MoveTo, FloodFill et TextOut.&lt;br /&gt;
&lt;br /&gt;
==Mises à jour de FireMonkey==&lt;br /&gt;
&lt;br /&gt;
Dans RAD Studio 13.0, FireMonkey intègre une nouvelle fonctionnalité Display Link Service qui améliore sensiblement la stabilité et la fluidité des animations. Le framework offre également des gains de performances lors de la copie des bitmaps grâce à l&#039;unité GPU, un tout nouveau composant MaskEdit.&lt;br /&gt;
&lt;br /&gt;
Cette section répertorie les mises à jour et les améliorations apportées à [[FireMonkey|FireMonkey]].&lt;br /&gt;
&lt;br /&gt;
===API pour les plates-formes Apple===&lt;br /&gt;
&lt;br /&gt;
La release RAD Studio Florence 13.0 offre une mise à jour et une extension importantes des API des plates-formes iOS et macOS disponibles dans les fichiers d&#039;en-tête Delphi. Cette release intègre également la mise à jour de tous les en-têtes des API iOS de la RTL vers &#039;&#039;&#039;iOS 18.4&#039;&#039;&#039;. Les extensions spécifiques incluent :&lt;br /&gt;
&lt;br /&gt;
*Ajout des fonctions NSWindow manquantes.&lt;br /&gt;
*Support étendu des liens universels (dans [[Création d&#039;une app iOS#iOS Objective-C Frameworks .28iOSapi.29|iOSapi.Foundation]]).&lt;br /&gt;
*Ajout de fonctions constantes CoreText supplémentaires dans [[Création d&#039;une app iOS#iOS Objective-C Frameworks .28iOSapi.29|iOSapi.CoreText.pas]].&lt;br /&gt;
*Ajout de {{code|coalescedTouchesForTouch}}(touch: UITouch): NSArray; cdecl; à l&#039;interface UIEvent dans [[Création d&#039;une app iOS#iOS Objective-C Frameworks .28iOSapi.29|iOSapi.UIKit]].&lt;br /&gt;
*Ajout de déclarations de méthode manquantes dans les interfaces {{code|UITextView}} et {{code|UITextField}} dans [[Création d&#039;une app iOS#iOS Objective-C Frameworks .28iOSapi.29|iOSapi.UIKit.pas]].&lt;br /&gt;
*Ajout de la méthode {{code|&amp;amp;amp;string}} dans l&#039;interface {{code|NSAttributedString}} dans [[Création d&#039;une app iOS#iOS Objective-C Frameworks .28iOSapi.29|iOSapi.Foundation.pas]].&lt;br /&gt;
*Ajout des déclarations {{code|CVMetalTexture}} et {{code|CVMetalTextureCache}} dans [[Création d&#039;une app iOS#iOS Objective-C Frameworks .28iOSapi.29|iOSapi.CoreVideo.pas]].&lt;br /&gt;
*Ajout de fonctions manquantes dans [[Développement d&#039;applications macOS#Mac Objective-C Frameworks .28Macapi.29|Macapi.QuartzCore.pas]].&lt;br /&gt;
*Ajout d&#039;interfaces et de méthodes dans [[Développement d&#039;applications macOS#Mac Objective-C Frameworks .28Macapi.29|Macapi.AppKit.pas]].&lt;br /&gt;
*Ajout de la déclaration de {{code|CTFontManagerRegisterGraphicsFont}} dans [[Développement d&#039;applications macOS#Mac Objective-C Frameworks .28Macapi.29|Macapi.CoreText.pas]].&lt;br /&gt;
*Mise à jour de [[Création d&#039;une app iOS#iOS Objective-C Frameworks .28iOSapi.29|iosapi.CoreLocation]] dans iOS 18.4, y compris la prise en charge de {{code|CLVisit}}.&lt;br /&gt;
*Ajout des nouveaux fichiers [[Création d&#039;une app iOS#iOS Objective-C Frameworks .28iOSapi.29|iOSapi.CoreMIDI]], [[Création d&#039;une app iOS#iOS Objective-C Frameworks .28iOSapi.29|iOSapi.CoreAudioTypes]].&lt;br /&gt;
*L&#039;unité iOSapi.AudioToolbox a été mise à jour vers iOS 18.4. Le framework {{code|AudioUnit}} a été supprimé car il est obsolète. AudioToolbox doit être utilisé à la place.&lt;br /&gt;
*Extension de l&#039;objet {{code|AVAudioSession}} importé dans [[Création d&#039;une app iOS#iOS Objective-C Frameworks .28iOSapi.29|iOSapi.AVFoundation]].&lt;br /&gt;
*Nouvel en-tête [[Création d&#039;une app iOS#iOS Objective-C Frameworks .28iOSapi.29|iOSapi.ImageIO]].&lt;br /&gt;
&lt;br /&gt;
===API de la plate-forme Android===&lt;br /&gt;
&lt;br /&gt;
RAD Studio Florence 13.0 cible l&#039;API Android niveau 35 par défaut, et inclut des outils pour prendre en charge les nouveaux niveaux de l&#039;API dans le futur.&lt;br /&gt;
&lt;br /&gt;
Voici des modifications supplémentaires :&lt;br /&gt;
&lt;br /&gt;
*Amélioration de la classe TTexture pour prendre en charge la cible {{code|GL_TEXTURE_EXTERNAL_OES}}.&lt;br /&gt;
*Remaniement de l&#039;outil en ligne de commande {{code|Java2OP}}, en remplaçant {{code|Doclava}} par le nouvel outil en ligne de commande {{code|jparser}}. Cela élimine les problèmes associés à la réimplémentation des API déclarées dans les packages exportés par les modules de la plate-forme.&lt;br /&gt;
*Ajout de getEventTimeNanos et getHistoricalEventTimeNanos à JMotionEvent dans Androidapi.JNI.GraphicsContentViewText.pas.&lt;br /&gt;
*Mise à jour de l&#039;outil en ligne de commande {{code|manifestmerger}} vers la version 31.10.1.&lt;br /&gt;
*Mise à jour de l&#039;outil en ligne de commande {{code|AAPT2}} vers la version 8.10.1.&lt;br /&gt;
*Mise à jour de l&#039;utilitaire en ligne de commande {{code|dexter}} vers la version 1.0.1.&lt;br /&gt;
*Mise à jour de l&#039;utilitaire en ligne de commande {{code|rclasser}} vers la version 1.0.1.&lt;br /&gt;
*Mise à jour de l&#039;utilitaire en ligne de commande {{code|bundletool}} vers la version 1.18.1.&lt;br /&gt;
*Mise à jour de l&#039;utilitaire en ligne de commande {{code|packager}} vers la version 1.2.1.&lt;br /&gt;
&lt;br /&gt;
===Contrôle MaskEdit===&lt;br /&gt;
&lt;br /&gt;
RAD Studio Florence 13.0 introduit un nouveau contrôle MaskEdit pour FireMonkey qui inclut un concepteur spécifique pour les masques de saisie.&lt;br /&gt;
&lt;br /&gt;
[[File:Maskedit.png|=link|border]]&lt;br /&gt;
&lt;br /&gt;
Contrairement à son équivalent VCL, dans l&#039;implémentation FMX TMaskEdit, une exception n&#039;est pas déclenchée si la valeur en cours dans l&#039;éditeur de masque de saisie n&#039;est pas valide. A la place, il est recommandé d&#039;utiliser l&#039;événement OnValidateError. Cet événement permet au développeur de fournir à l&#039;utilisateur un retour visuel à propos d&#039;une valeur non valide. Si la valeur est toujours incorrecte après la réinitialisation de la focalisation, elle reste dans un état non valide, et l&#039;événement OnChange n&#039;est pas déclenché jusqu&#039;à ce que la valeur devienne valide.&lt;br /&gt;
&lt;br /&gt;
===Nouvelle fonctionnalité Display Link Service===&lt;br /&gt;
&lt;br /&gt;
La nouvelle fonctionnalité Display Link Service pour FMX est maintenant le moteur central pour toutes les animations de l&#039;application, remplaçant entièrement l&#039;ancien moteur basé sur des timers.&lt;br /&gt;
&lt;br /&gt;
Ce système précis exploite le taux de rafraîchissement réel de l&#039;écran pour synchroniser et lancer toutes les mises à jour et animations de l&#039;interface utilisateur. En utilisant les API natives de la plate-forme comme JChoreographer (Android) et CADisplayLink (iOS), le service garantit que le traitement des animations est étroitement aligné sur les événements VSync, ce qui se traduit par des visuels plus fluides et plus cohérents sur toutes les plates-formes.&lt;br /&gt;
&lt;br /&gt;
{{Note|Vous remarquerez que cette modification fondamentale et structurelle implique des changements et des incompatibilités avec le code existant. Par exemple, la propriété {{code|Interval}} dans [[lib_fr:FMX.InertialMovement.TAniCalculations|TAniCalculations]] a été supprimée&amp;lt;ref name=&amp;quot;”TAniCalculations”&amp;quot; /&amp;gt;, alors que d&#039;autres propriétés ont été modifiées de TDateTime en Double.}}&lt;br /&gt;
&lt;br /&gt;
===FMX Linux===&lt;br /&gt;
&lt;br /&gt;
Pour la release RAD Studio Florence 13.0, une nouvelle version de FMX Linux est disponible dans les packages [[Gestionnaire de packages GetIt|GetIt]]. De même, l&#039;intégration de la bibliothèque à l&#039;EDI est maintenant plus fluide.&lt;br /&gt;
&lt;br /&gt;
===Mises à jour de Skia===&lt;br /&gt;
&lt;br /&gt;
La release RAD Studio Florence 13.0 intègre la mise à jour de la dernière version 7.0.0 de la bibliothèque Skia ([[Skia4Delphi|Skia4Delphi - RAD Studio]]). Cette mise à jour résout plusieurs problèmes et permet une meilleure intégration de Skia.&lt;br /&gt;
&lt;br /&gt;
Voir [https://github.com/skia4delphi/skia4delphi/releases Releases - skia4delphi/skia4delphi]&lt;br /&gt;
&lt;br /&gt;
===Améliorations supplémentaires relatives aux contrôles et composants FireMonkey===&lt;br /&gt;
&lt;br /&gt;
Voici des mises à jour et modifications supplémentaires apportées aux contrôles et composants FireMonkey.&lt;br /&gt;
&lt;br /&gt;
*Le composant TComboEdit prend maintenant en charge le remplissage automatique de la saisie avec une configuration de texte modifiable.&lt;br /&gt;
*Ajout d&#039;un nouvel ensemble de propriétés au [[lib_fr:FMX.ScrollBox.TPresentedScrollBox|TPresentedScrollBox]] pour que l&#039;utilisateur puisse contrôler les animations de défilement, les rebonds et les interactions tactiles. Voici les nouvelles propriétés : [[lib_fr:FMX.ScrollBox.TCustomPresentedScrollBox.AutoHide|AutoHide]], [[lib_fr:FMX.ScrollBox.TCustomPresentedScrollBox.Bounces|Bounces]], [[lib_fr:FMX.ScrollBox.TCustomPresentedScrollBox.ScrollAnimation|ScrollAnimation]], [[lib_fr:FMX.ScrollBox.TCustomPresentedScrollBox.ScrollDirections|ScrollDirections]], et [[lib_fr:FMX.ScrollBox.TCustomPresentedScrollBox.TouchTracking|TouchTracking]].&lt;br /&gt;
*Ajout du nouveau composant TApplicationEvents.&lt;br /&gt;
*Changement de TDateTime en Double car l&#039;API fonctionne maintenant avec des intervalles mesurés en seconde. Le DisplayLink d&#039;iOS fonctionne en secondes, alors que le JChoreographer d&#039;Android fonctionne en nanosecondes.&lt;br /&gt;
*Conversion des méthodes de FMX.Text.TextEditor et FMX.Text.SpellingManager pour qu&#039;elles soient virtuelles.&lt;br /&gt;
* Remaniement de {{code|IFMXSpellCheckerService}} avec la nouvelle interface {{code|IFMXSpellCheckerServiceEx}}, qui permet de travailler avec différentes langues et phrases.&lt;br /&gt;
*Publication de la propriété HitTest pour le composant TGlyph.&lt;br /&gt;
*Ajout d&#039;une propriété [[lib_fr:FMX.Memo.TCustomMemo.TextPrompt|TextPrompt]] à TMemo, utilisée comme texte indicatif lorsqu&#039;aucun texte n&#039;est présent. Fonctionne comme un TEdit.&lt;br /&gt;
*Ajout d&#039;un nouvel événement OnCheckedChange pour TListBoxItem.&lt;br /&gt;
*Ajout de la prise en charge de l&#039;orientation pour la poignée dans le style TSplitter.&lt;br /&gt;
*Publication de la propriété de TouchTargetExpansion pour TShape et d&#039;autres contrôles visuels.&lt;br /&gt;
*Les icônes de boutons TBindNavigator peuvent maintenant être modifiés via les styles.&lt;br /&gt;
*Ajout d&#039;une nouvelle propriété Reverse à TTrackBar , qui permet d&#039;inverser la barre graduée. De plus, TTrackBar prend maintenant en charge le défilement avec la molette de la souris.&lt;br /&gt;
*La hauteur de MenuItem était auparavant une constante. Maintenant, l&#039;utilisateur peut ajouter un objet TStyleTag avec StyleName=“height“ au style TMenuItem et spécifier la hauteur de l&#039;élément de menu dans la propriété Value.&lt;br /&gt;
*TGlyph a de nouvelles propriétés, ImageRect et Bitmap, qui autorisent des tailles et coordonnées de dessin réelles.&lt;br /&gt;
*La valeur FContentHeight du composant TExpander est maintenant accessible dans la propriété ContentHeight.&lt;br /&gt;
*Amélioration de la saisie dans TStringGrid TPopupColumn.&lt;br /&gt;
*Introduction des méthodes virtuelles DoStateChanged pour TRadioButton, TCheckBox et TArcDial.&lt;br /&gt;
*Une nouvelle assistance de propriété de classe de type TCanvasHelper dans TCustomCanvasGpu a été conçue pour les développeurs souhaitant étendre la bibliothèque FMX.&lt;br /&gt;
*Le FMX.TListBoxGroupHeader a maintenant la propriété TextSetting.Trimming.&lt;br /&gt;
*Ajout de la propriété AutoTranslate à TMainMenu et TPopupMenu.&lt;br /&gt;
*Ajout d&#039;une version surchargée de la méthode EvaluateJavaScript à TWebBrowser, avec un paramètre TJavaScriptResultCallback.&lt;br /&gt;
*Ajout d&#039;un nouveau composant, TApplicationEvents, similaire à l&#039;équivalent VCL.&lt;br /&gt;
*Mise à jour de [[lib_fr:FMX.Types.TAlignLayout|TAlignLayout]] de façon à intégrer de nouvelles options d&#039;alignement pour le centrage des contrôles. Les nouvelles méthodes d&#039;alignement incluent : {{code|TopCenter}}, {{code|TopLeft}}, {{code|TopRight}}, {{code|LeftCenter}}, {{code|LeftTop}}, {{code|LeftBottom}}, {{code|RightCenter}}, {{code|RightTop}}, {{code|RightBottom}}, {{code|BottomCenter}}, {{code|BottomLeft}} et {{code|BottomRight}}.&lt;br /&gt;
*Ajout de la prise en charge de la version 16.0 des symboles des emojis.&lt;br /&gt;
*TBindNavigator permet maintenant de configurer des conseils et des styles spécifiques pour chaque bouton, en utilisant les sous-propriétés de la propriété [[lib_fr:Fmx.Bind.Navigator.TCustomBindNavigator.ButtonsOptions|ButtonsOptions]].&lt;br /&gt;
&lt;br /&gt;
====Autres améliorations relatives aux applications mobiles====&lt;br /&gt;
&lt;br /&gt;
*Prise en charge du mode plein écran pour iOS.&lt;br /&gt;
*RAD Studio transmet maintenant les paramètres de démarrage iOS, qui peuvent être utilisés pour les interactions avec d&#039;autres frameworks et applications (voir [[lib_fr:FMX.Platform.TApplicationEvent|TApplicationEvent]]; {{code|FinishedLaunching}}).&lt;br /&gt;
*Problème de dictée vocale résolu sur iOS.&lt;br /&gt;
*Ajout de la possibilité de désactiver le rebond dans une vue liste sur iOS, à l&#039;aide de la nouvelle propriété [[lib_fr:FMX.ListView.TListViewBase.Bounces|TListView.Bounces]]. Cette propriété permet à un développeur de contrôler la possibilité de faire défiler le contenu au-delà de ses limites. Cela concerne uniquement l&#039;écran tactile.&lt;br /&gt;
&lt;br /&gt;
==Base de données et FireDAC==&lt;br /&gt;
&lt;br /&gt;
Cette partie du produit englobe de nombreuses améliorations allant de la prise en charge étendue des champs de base de données Unsigned Big Integer (grand entier non signé) à une plus grande flexibilité lors du déplacement d&#039;un champ depuis l&#039;éditeur de champs vers une fiche visuelle.&lt;br /&gt;
&lt;br /&gt;
Cette section répertorie les mises à jour et les améliorations apportées aux composants Database et [[FireDAC|FireDAC]].&lt;br /&gt;
&lt;br /&gt;
===RTL des bases de données===&lt;br /&gt;
&lt;br /&gt;
Cette section répertorie les mises à jour et les améliorations apportées à la RTL des bases de données :&lt;br /&gt;
&lt;br /&gt;
*Ajout d&#039;un nouveau type de champ à [[lib_fr:Data.DB.TFieldType|TFieldType]] pour prendre en charge les champs Unsigned Big Integer (grand entier non signé). FireDAC prend maintenant en charge le nouveau type {{code|TFieldType.ftLargeUint}} via les pilotes Oracle et MySQL, ainsi que le [[lib_fr:FireDAC.Comp.Client.TFDMemTable|TFDMemTable]].&lt;br /&gt;
*Ajout d&#039;une nouvelle propriété [[lib_fr:Vcl.DBCtrls.TDBText.EllipsisPosition|EllipsisPosition]] au composant TDBText VCL, qui fonctionne de la même façon qu&#039;avec TLabel.&lt;br /&gt;
*&lt;br /&gt;
 Ajout de nouvelles propriétés DataSet pour accéder aux objets DataSource attachés :&lt;br /&gt;
**Propriété [[lib_fr:Data.DB.TDataSet.DataSourceCount|TDataSet.DataSourceCount]].&lt;br /&gt;
**Propriété  [[lib_fr:Data.DB.TDataSet.DataSources|TDataSet.DataSources]].&lt;br /&gt;
*Ajout d&#039;une procédure {{code|DrpCtrls.RegisterFieldControl}} surchargée qui permet une configuration personnalisée du contrôle personnalisé créé. Voir l&#039;exemple ci-dessous :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
uses DrpCtrls;&lt;br /&gt;
  RegisterFieldControl(TIntegerField, &#039;TDBLabeledEdit&#039;,&lt;br /&gt;
    procedure (Control: TControl; DataSource: TDataSource; Field: TField)&lt;br /&gt;
    var&lt;br /&gt;
      LEdit: TDBLabeledEdit;&lt;br /&gt;
    begin&lt;br /&gt;
      LEdit := Control as TDBLabeledEdit;&lt;br /&gt;
      LEdit.DataSource := DataSource;&lt;br /&gt;
      LEdit.DataField := Field.FullName;&lt;br /&gt;
      LEdit.EditLabel.Caption := Field.DisplayLabel;&lt;br /&gt;
    end);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===FireDAC===&lt;br /&gt;
&lt;br /&gt;
Cette release intègre les mises à jour et améliorations suivantes de [[FireDAC|FireDAC]] :&lt;br /&gt;
&lt;br /&gt;
*Ajout de la prise en charge des opérations parallèles dans {{code|TFDFBBackup}} pour Firebird 5.0+. ParallelWorkers ([[lib_fr:FireDAC.Phys.IBBase.TFDIBBackup.ParallelWorkers|TFDIBBackup]], [[lib_fr:FireDAC.Phys.IBBase.TFDIBRestore.ParallelWorkers|TFDIBRestore]], et [[lib_fr:FireDAC.Phys.IBBase.TFDIBValidate.ParallelWorkers|TFDIBValidate]]) spécifie le nombre de processus de travail parallèles utilisés par un gestionnaire de service pour exécuter les tâches requises.&lt;br /&gt;
*[[lib_fr:FireDAC.Comp.Client.TFDMemTable|TFDMemTable]] prend en charge {{code|RecsSkip}} et {{code|RecsMax}}. Les paramètres RecsSkip et RecsMax sont appliqués quand la propriété [[lib_fr:FireDAC.Comp.Client.TFDMemTable.Filter|Filter]] a la valeur {{code|True}}.&lt;br /&gt;
*&lt;br /&gt;
 Ajout d&#039;une plus grande flexibilité à FireDAC lors du renvoi de données textuelles pour les types tableau PostgreSQL. Voici deux façons d&#039;afficher les champs {{code|relacl}} sous forme de texte lisible :&lt;br /&gt;
**transtyper un champ - {{code|relacl::TEXT}}&lt;br /&gt;
**définir [[lib_fr:FireDAC.Stan.Option.TFDResourceOptions.DirectExecute|ResourceOptions.DirectExecute]] sur {{code|True}}. Ensuite, FireDAC en interne utilisera le format textuel de PostgreSQL pour les ensembles de résultats.&lt;br /&gt;
*Conversion en méthodes virtuelles de certaines méthodes en relation avec les transactions dans les classes [[lib_fr:FireDAC.Comp.Client.TFDCustomConnection|TFDCustomConnection]] et [[lib_fr:FireDAC.Comp.Client.TFDCustomTransaction|TFDCustomTransaction]] pour faciliter la personnalisation du comportement des classes dérivées.&lt;br /&gt;
*[[lib_fr:FireDAC.Comp.Client.TFDMemTable|TFDMemTable]] permet le chargement du JSON standard (non généré en enregistrant les données à partir de FireDAC) en utilisant le nouveau format [[lib_fr:FireDAC.Stan.Intf.TFDStorageFormat|TFDStorageFormat.sfFreeFormJSON]]. &amp;amp;lt;/br&amp;amp;gt; Exemples :&lt;br /&gt;
&lt;br /&gt;
 FDMemTable1.LoadFromFile(&#039;test.json&#039;, sfFreeFormJSON);&lt;br /&gt;
 FDMemTable1.SaveToFile(&#039;test2.json&#039;, sfFreeFormJSON).&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
 Pour les connexions Oracle, RAD Studio Florence 13.0 ajoute la prise en charge de l&#039;authentification OAuth 2.0 pour le composant FireDAC [[lib_fr:FireDAC.Comp.Client.TFDConnection|TFDConnection]] dans Delphi.&lt;br /&gt;
**&lt;br /&gt;
 Nouveaux paramètres de définition de connexion [[Connexion à Oracle Server (FireDAC)#Paramètres de définition de connexion]] : &lt;br /&gt;
***&#039;&#039;&#039;OAuth_Token&#039;&#039;&#039; - spécifie un token OAuth2 ou IAM. Requiert Oracle 19.13.&lt;br /&gt;
***&#039;&#039;&#039;OAuth_PrivKey&#039;&#039;&#039; - spécifie une clé privée IAM PoP. Lorsqu&#039;elle est spécifiée, l&#039;authentification basée sur un token IAM est utilisée ; sinon, l&#039;authentification Azure OAuth2 est utilisée. Requiert Oracle 19.13.&lt;br /&gt;
**Utilisez le composant [[lib_fr:REST.Authenticator.OAuth.TOAuth2Authenticator|TOAuth2Authenticator]] pour obtenir un token OAuth2. Utilisez la fonction de [[Récupération d&#039;une connexion (FireDAC)|Récupération automatique de connexion]] pour renouveler et soumettre un nouveau token.&lt;br /&gt;
&lt;br /&gt;
===DataSnap===&lt;br /&gt;
&lt;br /&gt;
Cette release ajoute des événements de validation de certificat à TFDConnection et TDSClientCallbackChannelManager, qui peuvent utiliser HTTPS comme protocole de transport :&lt;br /&gt;
&lt;br /&gt;
*[[lib_fr:FireDAC.Comp.Client.TFDConnection.ValidatePeerCertificate|TFDConnection.ValidatePeerCertificate]].&lt;br /&gt;
*[[lib_fr:Datasnap.DSCommon.TDSClientCallbackChannelManager.ValidatePeerCertificate|TDSClientCallbackChannelManager.ValidatePeerCertificate]].&lt;br /&gt;
&lt;br /&gt;
==Mises à jour des bibliothèques client Web==&lt;br /&gt;
&lt;br /&gt;
La release RAD Studio Florence 13.0 apporte les mises à jour suivantes :&lt;br /&gt;
&lt;br /&gt;
*Ajout de la prise en charge du protocole HTTP/3 vers THttpClient via [[lib_fr:REST.HttpClient.TRESTHTTP.ProtocolVersion|THTTPProtocolVersion.HTTP_3_0]].&lt;br /&gt;
*Pour les clients SOAP, une version asynchrone de [[lib_fr:Soap.SOAPHTTPTrans.THTTPReqResp.Execute|THTTPReqResp.Execute]] est désormais disponible.&lt;br /&gt;
&lt;br /&gt;
==Mises à jour relatives à WebBroker==&lt;br /&gt;
&lt;br /&gt;
La release RAD Studio 13.0 Florence offre plusieurs extensions à [[lib_fr:Web.WebBroker|WebBroker]], y compris une gestion des sessions HTTP moderne et intégrée, une intégration Apache améliorée, la prise en charge des serveurs Web Nginx, une journalisation améliorée et une intégration WebStencils facile, ce qui rend les applications Web à la fois plus simples à développer et plus puissantes.&lt;br /&gt;
&lt;br /&gt;
===Authentification et gestion des sessions===&lt;br /&gt;
&lt;br /&gt;
Cette release introduit une nouvelle classe, [[lib_fr:Web.HTTPApp.TWebSessionManager|TWebSessionManager]], qui gère une liste d&#039;objets [[lib_fr:Web.HTTPApp.TWebSession|TWebSession]]. Il s&#039;agit d&#039;un composant non visuel qui offre un ensemble de propriétés au moment de la conception.&lt;br /&gt;
&lt;br /&gt;
La propriété [[lib_fr:Web.HTTPApp.TWebRequest.Session|TWebRequest.Session]] renvoie la session de la requête. Les objets personnalisés stockés dans TWebSession.DataVars sont maintenant directement disponibles dans les scripts WebStencils.&lt;br /&gt;
&lt;br /&gt;
L&#039;authentification des sessions peut être intégrée à la gestion des sessions et peut être basée sur une logique différente.&lt;br /&gt;
&lt;br /&gt;
Un algorithme “sentinelle” est intégré à TCustomWebDispatcher.DispatchAction, et délègue le traitement à [[lib_fr:Web.HTTPApp.IWebSessionManager|IWebSessionManager]] ou [[lib_fr:Web.HTTPApp.IWebAuthenticator|IWebAuthenticator]].&lt;br /&gt;
&lt;br /&gt;
Vous trouverez ci-dessous d&#039;autres changements apportés à la prise en charge des bibliothèques :&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gestion des sessions&#039;&#039;&#039; : &lt;br /&gt;
**Ajout du TWebSessionManager qui gère une collection d&#039;objets TWebSession. Il s&#039;agit d&#039;un composant non visuel avec des propriétés de conception ayant les configurations suivantes : IdLocation, IdName, Scope (ssUnlimited, ssUser et ssUserAndIP), Timeout et SharedSecret.&lt;br /&gt;
**Ajout du TWebSession, qui représente des sessions individuelles.&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authentification&#039;&#039;&#039; :&lt;br /&gt;
**Ajout du TWebBasicAutenticator, qui implémente l&#039;authentification de base HTTP.&lt;br /&gt;
**&lt;br /&gt;
 Ajout du TWebFormsAuthenticator, qui implémente l&#039;authentification basée sur des fiches HTML. &lt;br /&gt;
***&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authorisation&#039;&#039;&#039; :&lt;br /&gt;
**TWebAuthorizer fournit un contrôle d&#039;accès basé sur les rôles via des zones d&#039;autorisation.&lt;br /&gt;
**Authorization vérifie les rôles des utilisateurs conformément aux exigences de la zone. Utilisez l&#039;événement OnAuthorize pour la logique d&#039;autorisation personnalisée. En cas d&#039;échec de l&#039;autorisation, une redirection est effectuée vers UnauthorizedURL ou l&#039;état 403 est renvoyé.&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Intégration WebStencils&#039;&#039;&#039; : &lt;br /&gt;
**&lt;br /&gt;
 Les sessions s&#039;intègrent aux modèles WebStencils suivants : &lt;br /&gt;
***{{code|@session.xxx}} : accès aux propriétés de l&#039;objet session.&lt;br /&gt;
***{{code|@session.DataVars}} : accès aux variables personnalisées des sessions.&lt;br /&gt;
***{{code|@session.UserHasRole(&amp;amp;lt;string&amp;amp;gt;)}} : vérifie si un utilisateur a un rôle spécifique.&lt;br /&gt;
***{{code|@&amp;amp;lt;n&amp;amp;gt;}} : accès direct aux objets stockés dans DataVars avec la clé {{code|&amp;amp;lt;n&amp;amp;gt;}}.&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Nouvelles propriétés de requêtes&#039;&#039;&#039; :&lt;br /&gt;
**TWebRequest.AuthUserName : nom d&#039;utilisateur authentifié.&lt;br /&gt;
**TWebRequest.AuthMethod : méthode d&#039;authentification utilisée.&lt;br /&gt;
**TWebRequest.Session : objet session de la requête en cours.&lt;br /&gt;
&lt;br /&gt;
Pour utiliser ces composants, ajoutez-les au module Web (un seul TWebSessionManager et un seul authentificateur par module). Les composants sont automatiquement détectés par la sentinelle du répartiteur. Le traitement s&#039;effectue comme suit : {{Menu| Gestion des sessions &amp;amp;gt; Authentification &amp;amp;gt; Autorisation &amp;amp;gt; Actions de répartition}}.&lt;br /&gt;
&lt;br /&gt;
Les sessions sont automatiquement créées quand TWebSessionManager est présent. L&#039;authentification est obligatoire lorsqu&#039;un composant authentificateur est ajouté (utilisez TWebAuthorizer pour contrôler ce comportement). Tous les composants fonctionnent ensemble via des interfaces (IWebSessionManager, IWebAuthenticator, IWebAuthorizer).&lt;br /&gt;
&lt;br /&gt;
===Sortie d&#039;historique===&lt;br /&gt;
&lt;br /&gt;
Une nouvelle méthode TWebApplication.Log intégrant la gravité, le message et les paramètres est prise en charge sur toutes les plates-formes et utilise le système d&#039;historique approprié du serveur Web :&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Apache&#039;&#039;&#039; : fichier journal du serveur Apache, par défaut logs\error.log.&lt;br /&gt;
*&#039;&#039;&#039;ISAPI&#039;&#039;&#039; : journal d&#039;événements Windows (eventvwr.msc) : journaux Windows.&lt;br /&gt;
*&#039;&#039;&#039;CGI&#039;&#039;&#039; : fichier ayant le nom TCGIApplication.LogFileName.&lt;br /&gt;
*&#039;&#039;&#039;FastCGI&#039;&#039;&#039; : fichier journal du serveur HTTP (Apache, nginx), par défaut logs\error.log.&lt;br /&gt;
&lt;br /&gt;
===TWebRequest étendu===&lt;br /&gt;
&lt;br /&gt;
Cette release a étendu le composant TWebRequest comme suit :&lt;br /&gt;
&lt;br /&gt;
*Méthode ExtractAllHeaders, propriété AllHeaders&lt;br /&gt;
*SessionID&lt;br /&gt;
*AuthUserName et AuthMethod&lt;br /&gt;
&lt;br /&gt;
===Apache Config===&lt;br /&gt;
&lt;br /&gt;
Cette release introduit Apache Config, un système de configuration textuel et extensible. Voici un exemple de configuration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple&#039;&#039;&#039; :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
MyEnabled On&lt;br /&gt;
MyFolder &amp;quot;c:/temp&amp;quot;&lt;br /&gt;
MyMimeTypes image/bmp text/html&lt;br /&gt;
&amp;lt;Location /qwe/asd&amp;gt;&lt;br /&gt;
  MyEnabled On&lt;br /&gt;
  MyFolder &amp;quot;c:/temp/asd&amp;quot;&lt;br /&gt;
&amp;lt;/Location&amp;gt;&lt;br /&gt;
&amp;lt;Location /qwe/asd/zxc&amp;gt;&lt;br /&gt;
  MyMimeTypes image/png image/jpeg text/html&lt;br /&gt;
  MyRole admin&lt;br /&gt;
&amp;lt;/Location&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Permet le mappage d&#039;un enregistrement Delphi sur des directives Apache (types de champs non gérés uniquement, y compris string[n]) :&lt;br /&gt;
&lt;br /&gt;
*Utilisez des attributs WebHTTPMethod pour personnaliser le mappage.&lt;br /&gt;
*Utilisez Web.ApacheApp.InitConfig pour recenser le type d&#039;enregistrement. Appelez-le juste après InitApplication.&lt;br /&gt;
*Utilisez Web.ApacheHTTP. TApacheRequest.GetConfig pour obtenir une instance d&#039;enregistrement avec des valeurs spécifiques à une URL de requête.&lt;br /&gt;
*Utilisez Web.HTTPDMethods.IHTTPDConfigAdaptor, THTTPDCustomConfigAdaptor&amp;amp;lt;T&amp;amp;gt; pour personnaliser l&#039;initialisation et la redéfinition des enregistrements.&lt;br /&gt;
&lt;br /&gt;
L&#039;expert WebBroker permet d&#039;inclure un exemple de configuration Apache.&lt;br /&gt;
&lt;br /&gt;
{{Attention| Cette fonctionnalité n&#039;est pas prise en charge dans C++ Builder.}}&lt;br /&gt;
&lt;br /&gt;
===Prise en charge de FastGCI et NGINX===&lt;br /&gt;
&lt;br /&gt;
Cette release intègre la prise en charge de FastCGI pour nginx. Cette interface permet d&#039;accéder à un module Web exécuté sous forme d&#039;application distincte.&lt;br /&gt;
&lt;br /&gt;
Plus de détails ci-dessous :&lt;br /&gt;
&lt;br /&gt;
*Ajout de nouvelles unités Web.FastCGIApp.pas, Web.FastCGIHTTP.pas et Web.FCGI_Protocol.pas.&lt;br /&gt;
*FastCGI est pris en charge par nginx et Apache.&lt;br /&gt;
*Ajout de nouvelles classes : TFastCGIApplication, TFastCGIRequest et TFastCGIResponse.&lt;br /&gt;
*Ajout de la prise en charge de FastCGI à l&#039;expert WebBroker.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour recenser une application avec nginx, ajoutez les lignes suivantes à conf\nginx.conf :&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
# 1) &amp;quot;location&amp;quot; mask, fastcgi_param directives are environment dependent&lt;br /&gt;
# 2) Update the fastcgi_pass directive when the host or port is different&lt;br /&gt;
# 3) This will redirect the request &amp;quot;GET http://localhost:8000/fcgi/&amp;quot; &lt;br /&gt;
#    to the FastCGI server.&lt;br /&gt;
&lt;br /&gt;
        location ~ ^/fcgi(.*)$ {&lt;br /&gt;
            include fastcgi_params;&lt;br /&gt;
&lt;br /&gt;
            fastcgi_param SCRIPT_NAME /fcgi;&lt;br /&gt;
            fastcgi_param PATH_INFO   $1;&lt;br /&gt;
            fastcgi_param SCRIPT_FILENAME dummy;&lt;br /&gt;
            fastcgi_param PATH_TRANSLATED $document_root$1;&lt;br /&gt;
            fastcgi_keep_conn on;&lt;br /&gt;
&lt;br /&gt;
            fastcgi_pass 127.0.0.1:9000;&lt;br /&gt;
        }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Améliorations relatives à WebStencils==&lt;br /&gt;
&lt;br /&gt;
WebStencils étend considérablement les technologies Web existantes dans RAD Studio en fournissant des scripts côté serveur et en transformant RAD Server d&#039;un moteur de service Web en un outil de site Web et de service Web.&lt;br /&gt;
&lt;br /&gt;
La section suivante décrit les mises à jour de [[WebStencils|WebStencils]] introduites dans RAD Studio Florence 13.0.&lt;br /&gt;
&lt;br /&gt;
*Implémentation de la propriété du mécanisme de liste blanche pour empêcher l&#039;exposition d&#039;informations sensibles comme les chaînes de connexion de base de données ou toute autre information sensible. Découvrez comment personnaliser la liste blanche [[WebStencils#Liste blanche de sécurité|ici]].&lt;br /&gt;
*Introduction de la possibilité d&#039;ajouter des [[WebStencils#Utilisation de variables supplémentaires|variables supplémentaires]] au moteur de script à l&#039;extérieur des modèles d&#039;objet et d&#039;ensemble de données.&lt;br /&gt;
*La notation WebStencils {{code|@}} pour un ensemble de données permet maintenant d&#039;accéder aux propriétés de l&#039;ensemble de données, en plus du champ. Le niveau d&#039;accès au champ peut être contrôlé à l&#039;aide d&#039;une propriété spécifique ([[lib_fr:Web.Stencils.TWebStencilsProcessor.Whitelist|TWebStencilsProcessor.Whitelist]]) pour empêcher l&#039;accès non autorisé aux informations internes. Vous trouverez plus d&#039;informations [[WebStencils#Accès aux propriétés de l&#039;ensemble de données|ici]].&lt;br /&gt;
*WebStencils s&#039;intègre maintenant automatiquement aux sessions Web lorsqu&#039;elles sont disponibles. Vous trouverez plus d&#039;informations [[WebStencils#Intégration automatique aux sessions|ici]].&lt;br /&gt;
*WebStencils prend maintenant en charge la propagation du contenu @ExtraHeader via des hiérarchies de dispositions imbriquées. Vous trouverez plus d&#039;informations [[WebStencils#Modèles WebStencils : disposition et corps|ici]].&lt;br /&gt;
*Ajout d&#039;améliorations relatives aux [[WebStencils#Mots clés WebStencil|mots clés WebStencils]] en donnant au mot-clé {{code|@page}} deux valeurs supplémentaires, comme {{code|@page.request_path}} et {{code|@page.request_segment}}.&lt;br /&gt;
&lt;br /&gt;
==Améliorations relatives à RAD Server==&lt;br /&gt;
&lt;br /&gt;
RAD Studio 13.0 rend l&#039;utilisation de la documentation API Swagger plus flexible, ajoute la prise en charge multi-client de RAD Server en tant qu&#039;option pour intégrer une configuration spécifique au client, et introduit un moyen simple et direct d&#039;implémenter le versionage des API.&lt;br /&gt;
&lt;br /&gt;
La section suivante répertorie les améliorations apportées à RAD Server dans RAD Studio Florence 13.0.&lt;br /&gt;
&lt;br /&gt;
*Documentation API Swagger de RAD Server : les paramètres de schémas et de références pour les définitions Swagger et OpenAPI sont maintenant facultatifs.&lt;br /&gt;
*&lt;br /&gt;
 Ajoute l&#039;option permettant de renvoyer un en-tête personnalisé dans le document de réponse Swagger en utilisant le nouvel attribut [[lib_fr:EMS.ResourceTypes.EndPointResponseHeaderAttribute|EndPointResponseHeaderAttribute]]. &lt;br /&gt;
**Nouvelles méthodes [[lib_fr:EMS.Services.IEMSApiDocumentService.SetBaseUrl|SetBaseUrl]] et [[lib_fr:EMS.Services.TEMSAPIDocumentService.GetBaseUrl|GetBaseUrl]].&lt;br /&gt;
*&lt;br /&gt;
 Cette release ajoute à la [[Support multi-client RAD Server|prise en charge multi-client (multi-tenancy) de RAD Server]] une façon d&#039;intégrer une configuration spécifique au client (comme des connexions aux bases de données), à configurer avant l&#039;exécution d&#039;une logique métier quelconque. Plus spécifiquement, les éléments suivants ont été ajoutés :&lt;br /&gt;
**Variables serveur préfixées par le client (tenant) : la spécification d&#039;une variable préfixée par le client garantit l&#039;utilisation de sa valeur. Sinon, une variable sans préfixe du client est utilisée.&lt;br /&gt;
**Une interface [[lib_fr:EMS.ResourceTypes.IEMSResourceInterceptor|IEMSResourceInterceptor]] avec des méthodes [[lib_fr:EMS.ResourceTypes.IEMSResourceInterceptor.BeforeRequest|BeforeRequest]] et [[lib_fr:EMS.ResourceTypes.IEMSResourceInterceptor.AfterRequest|AfterRequest]].&lt;br /&gt;
*&lt;br /&gt;
 RAD Server prend maintenant en charge l&#039;exportation de plusieurs versions de la même fonction de l&#039;API, ce qui permet aux clients d&#039;invoquer la version la plus récente de l&#039;API REST ou une version plus ancienne en utilisant le nouvel attribut ResourceVersion. Les nouvelles valeurs de [[lib_fr:EMS.ResourceAPI.TEMSVersionStatus|TEMSVersionStatus]] sont les suivantes :&lt;br /&gt;
**Experimental - utilise {{code|ver/myapi/…}} comme URL de base et ajoute “Experimental” à la description Swagger.&lt;br /&gt;
**Active - utilise {{code|ver/myapi/…}} comme URL de base.&lt;br /&gt;
**Default - utilise {{code|ver/myapi/…}} et {{code|myapi/…}} comme URL de base.&lt;br /&gt;
**Deprecated - utilise {{code|ver/myapi/…}} comme URL de base et ajoute “Deprecated” à la description Swagger.&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Notes d&#039;installation|Notes d&#039;installation]]&lt;br /&gt;
*[[Notes de release|Notes de release]]&lt;br /&gt;
*[[New features and customer reported issues fixed in RAD Studio 13.0|Nouvelles fonctionnalités et problèmes corrigés]]&lt;br /&gt;
*[[Nouveautés des releases précédentes|Nouveautés des releases précédentes]]&lt;br /&gt;
&lt;br /&gt;
===Références===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;références&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref name=&amp;quot;”TAniCalculations”&amp;quot;&amp;gt; L&#039;intervalle de rendu des animations a été supprimé pour qu&#039;il corresponde maintenant au taux de rafraîchissement actuel de l&#039;écran. L&#039;application peut s&#039;exécuter sur des périphériques équipés d&#039;un écran de 60 Hz, 90 Hz ou 120 Hz, et le défilement sera automatiquement plus fluide, sans ajustement manuel de l&#039;intervalle. Les animations exécutées seront constamment mises à jour (recalculées) sur chaque nouvelle trame de l&#039;écran.  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/références&amp;amp;gt;&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Nouveau_(menu_Fichier)&amp;diff=218922</id>
		<title>Nouveau (menu Fichier)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Nouveau_(menu_Fichier)&amp;diff=218922"/>
		<updated>2026-05-09T03:34:54Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : 1 révision importée : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Menu Fichier}}&lt;br /&gt;
&lt;br /&gt;
{{Menu|Fichier &amp;amp;gt; Nouveau}}&lt;br /&gt;
&lt;br /&gt;
Crée un projet ou une [[Unité|unité]] du type sélectionné.&lt;br /&gt;
&lt;br /&gt;
Ce menu vous permet de choisir parmi les types de projets et d&#039;unités &#039;&#039;&#039;{{Product}}&#039;&#039;&#039; les plus courants dans une liste. Vous pouvez également sélectionner &#039;&#039;&#039;[[Nouveaux éléments|Autre…]]&#039;&#039;&#039; pour accéder à de nombreux autres types de projets et d&#039;unités, ou sur &#039;&#039;&#039;[[Personnaliser le menu Nouveau|Personnaliser…]]&#039;&#039;&#039; pour changer les types de projets et d&#039;unités listés dans ce menu.&lt;br /&gt;
&lt;br /&gt;
==Types de projets et d&#039;unités par défaut==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Types de projets et d&#039;unités {{Delphi}} par défaut===&lt;br /&gt;
&lt;br /&gt;
Le tableau suivant liste les types de projets et d&#039;unités {{Delphi}} par défaut de ce menu :&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;Elément&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
[[File:Windows VCL App.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Application VCL Windows - {{Delphi}}&lt;br /&gt;
|&lt;br /&gt;
Crée une nouvelle &#039;&#039;&#039;[[Application Fiches VCL|application VCL Windows]]&#039;&#039;&#039; {{Delphi}}, une application de bureau basée sur des fiches, en utilisant des composants VCL.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
[[File:Multi-Device App.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Application multi-périphérique - {{Delphi}}&lt;br /&gt;
|&lt;br /&gt;
Crée une nouvelle &#039;&#039;&#039;[[Application multi-périphérique|application multi-périphérique]]&#039;&#039;&#039; {{Delphi}} en utilisant [[FireMonkey|FireMonkey]]. Vous pouvez choisir entre :&lt;br /&gt;
*Application vide&lt;br /&gt;
*Application 3D&lt;br /&gt;
*Un des [[Modèles d&#039;applications multi-périphériques|modèles disponibles]].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
[[File:PackageD.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Package - {{Delphi}}&lt;br /&gt;
|&lt;br /&gt;
Crée un squelette pour un &#039;&#039;&#039;[[Packages|package]]&#039;&#039;&#039; {{Delphi}}.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
[[File:Console App.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Application console - {{Delphi}}&lt;br /&gt;
|&lt;br /&gt;
Crée de nouvelles &#039;&#039;&#039;[[Applications console|applications console]]&#039;&#039;&#039; {{Delphi}}, des programmes sans interface utilisateur.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
[[File:DLL.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Dynamic Library - {{Delphi}}&lt;br /&gt;
|&lt;br /&gt;
Crée une nouvelle &#039;&#039;&#039;[[Bibliothèques de liaison dynamique|bibliothèque dynamique]]&#039;&#039;&#039; {{Delphi}}, un ensemble de routines pouvant être chargées à l&#039;exécution.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
[[File:VCL Form.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Fiche VCL - {{Delphi}}&lt;br /&gt;
|&lt;br /&gt;
Crée un squelette pour une &#039;&#039;&#039;[[Fiche VCL|fiche VCL]]&#039;&#039;&#039; {{Delphi}}, une fiche visuelle utilisant des composants VCL. Cette fiche n&#039;est pas associée à un [[Création d&#039;un projet|projet]].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
[[File:Frame.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
VCL Frame - {{Delphi}}&lt;br /&gt;
|&lt;br /&gt;
Crée un squelette pour un &#039;&#039;&#039;[[Création de cadres|cadre VCL]]&#039;&#039;&#039; {{Delphi}}, un cadre visuel utilisant des composants VCL. Ce cadre n&#039;est pas associé à un [[Création d&#039;un projet|projet]].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
[[File:Data Module.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Module de données - {{Delphi}}&lt;br /&gt;
|&lt;br /&gt;
Crée un squelette pour un &#039;&#039;&#039;[[Utilisation des modules de données|module de données]]&#039;&#039;&#039; {{Delphi}}, une fiche spéciale utilisant des composants non visuels. Cette fiche n&#039;est pas associée à un [[Création d&#039;un projet|projet]].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
[[File:Frame.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;Cadre FireMonkey - {{Delphi}}&lt;br /&gt;
|&lt;br /&gt;
Crée un squelette pour un &#039;&#039;&#039;[[Création de cadres|cadre FireMonkey]]&#039;&#039;&#039; {{Delphi}}, un cadre visuel utilisant des composants FireMonkey. Ce cadre n&#039;est pas associé à un [[Création d&#039;un projet|projet]].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
[[File:Multi-Device Form.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Fiche multi-périphérique - {{Delphi}}&lt;br /&gt;
|&lt;br /&gt;
Crée un squelette pour une &#039;&#039;&#039;[[Fiche multi-périphérique|fiche multi-périphérique]]&#039;&#039;&#039; {{Delphi}}, une fiche visuelle utilisant [[FireMonkey|FireMonkey]]. Cette fiche n&#039;est pas associée à un [[Création d&#039;un projet|projet]].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
[[File:UnitD.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Unité - {{Delphi}}&lt;br /&gt;
|&lt;br /&gt;
Crée un squelette pour une &#039;&#039;&#039;[[Programmes et unités (Delphi)#Structure et syntaxe d&#039;unité|unité]]&#039;&#039;&#039; {{Delphi}}.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Types de projets et d&#039;unités {{CBuilderUI}} par défaut===&lt;br /&gt;
&lt;br /&gt;
Le tableau suivant liste les types de projets et d&#039;unités {{CBuilderUI}} par défaut de ce menu :&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;Elément&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
[[File:Windows VCL App.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Application VCL Windows - {{CBuilderUI}}&lt;br /&gt;
|&lt;br /&gt;
Crée une nouvelle &#039;&#039;&#039;[[Application Fiches VCL|application VCL Windows]]&#039;&#039;&#039; {{CBuilderUI}}, une application de bureau basée sur des fiches, en utilisant des composants VCL.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
[[File:Multi-Device App.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Application multi-périphérique - {{CBuilderUI}}&lt;br /&gt;
|&lt;br /&gt;
Crée une nouvelle &#039;&#039;&#039;[[Application multi-périphérique|application multi-périphérique]]&#039;&#039;&#039; C++ utilisant [[FireMonkey|FireMonkey]]. Vous pouvez choisir entre :&lt;br /&gt;
*Application vide&lt;br /&gt;
*Application 3D&lt;br /&gt;
*Un des [[Modèles d&#039;applications multi-périphériques|modèles disponibles]].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
[[File:PackageD.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Package - {{CBuilderUI}}&lt;br /&gt;
|&lt;br /&gt;
Crée un squelette pour un &#039;&#039;&#039;[[Packages|package]]&#039;&#039;&#039; {{CBuilderUI}}.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
[[File:Console App.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Application console - {{CBuilderUI}}&lt;br /&gt;
|&lt;br /&gt;
Crée de nouvelles &#039;&#039;&#039;[[Applications console|applications console]]&#039;&#039;&#039; {{CBuilderUI}}, des programmes sans interface utilisateur.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
[[File:Windows VCL App.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Application WinAPI - {{CBuilderUI}}&lt;br /&gt;
|&lt;br /&gt;
Crée une nouvelle &#039;&#039;&#039;[[WinAPI Application|application WinAPI]]&#039;&#039;&#039; {{CBuilderUI}}, une app Win32 traditionnelle pour tester Windows, se former et utiliser des exemples de code.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
[[File:DLL.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Bibliothèque dynamique - {{CBuilderUI}}&lt;br /&gt;
|&lt;br /&gt;
Crée une nouvelle &#039;&#039;&#039;[[Bibliothèques de liaison dynamique|bibliothèque dynamique]]&#039;&#039;&#039; {{CBuilderUI}}, un ensemble de routines pouvant être chargées à l&#039;exécution.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
[[File:Static Library.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Bibliothèque statique - {{CBuilderUI}}&lt;br /&gt;
|&lt;br /&gt;
Crée une nouvelle &#039;&#039;&#039;[[Construction de packages statiques|bibliothèque statique]]&#039;&#039;&#039; {{CBuilderUI}}, un ensemble de routines intégrées en programme en mode compilation.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
[[File:VCL Form.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Fiche VCL - {{CBuilderUI}}&lt;br /&gt;
|&lt;br /&gt;
Crée un squelette pour une &#039;&#039;&#039;[[Fiche VCL|fiche VCL]]&#039;&#039;&#039; {{CBuilderUI}}, une fiche visuelle utilisant des composants VCL. Cette fiche n&#039;est pas associée à un [[Création d&#039;un projet|projet]].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
[[File:Frame.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Cadre VCL - {{CBuilderUI}}&lt;br /&gt;
|&lt;br /&gt;
Crée un squelette pour un &#039;&#039;&#039;[[Création de cadres|cadre VCL]]&#039;&#039;&#039; {{CBuilderUI}}, un cadre visuel utilisant des composants FireMonkey. Ce cadre n&#039;est pas associé à un [[Création d&#039;un projet|projet]].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
[[File:Data Module.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Module de données - {{CBuilderUI}}&lt;br /&gt;
|&lt;br /&gt;
Crée un squelette pour un &#039;&#039;&#039;[[Utilisation des modules de données|module de données]]&#039;&#039;&#039; {{CBuilderUI}}, une fiche spéciale contenant des composants non visuels. Cette fiche n&#039;est pas associée à un [[Création d&#039;un projet|projet]].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
[[File:Frame.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;Cadre FireMonkey - {{CBuilderUI}}&lt;br /&gt;
|&lt;br /&gt;
Crée un squelette pour un &#039;&#039;&#039;[[Création de cadres|cadre FireMonkey]]&#039;&#039;&#039; {{CBuilderUI}}, un cadre visuel utilisant des composants FireMonkey. Ce cadre n&#039;est pas associé à un [[Création d&#039;un projet|projet]].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
[[File:Multi-Device Form.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Fiche multi-périphérique - {{CBuilderUI}}&lt;br /&gt;
|&lt;br /&gt;
Crée un squelette pour une &#039;&#039;&#039;[[Fiche multi-périphérique|fiche multi-périphérique]]&#039;&#039;&#039; C++, une fiche visuelle utilisant [[FireMonkey|FireMonkey]]. Cette fiche n&#039;est pas associée à un [[Création d&#039;un projet|projet]].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
[[File:UnitD.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Unité - {{CBuilderUI}}&lt;br /&gt;
|&lt;br /&gt;
Crée un squelette pour une &#039;&#039;&#039;[[Unité|unité]]&#039;&#039;&#039; {{CBuilderUI}}.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Toutes les personnalités==&lt;br /&gt;
&lt;br /&gt;
Ce menu fournit également les entrées suivantes :&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;Elément&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Autre&lt;br /&gt;
|&lt;br /&gt;
Ouvre la boîte de dialogue &#039;&#039;&#039;[[Nouveaux éléments|Nouveaux éléments]]&#039;&#039;&#039; qui liste chaque fichier ou projet pris en charge par l&#039;EDI. Exemples : fichiers XML, fichiers texte et projets C++.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Personnaliser&lt;br /&gt;
|&lt;br /&gt;
Ouvre la boîte de dialogue &#039;&#039;&#039;[[Personnaliser le menu Nouveau|Personnalisation du menu Nouveau]]&#039;&#039;&#039; qui vous permet de personnaliser l&#039;affichage des projets et des fichiers dans le menu &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt; &#039;&#039;&#039;Fichier &amp;amp;gt; Nouveau&#039;&#039;&#039; &amp;lt;/font&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Note|La liste des unités et des projets disponibles est mise à jour dynamiquement en fonction des projets ouverts. Seules apparaissent les options compatibles avec le projet actuellement ouvert.}}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Nouveaux éléments|Nouveaux éléments]]&lt;br /&gt;
*[[Packages|Packages ({{Delphi}})]]&lt;br /&gt;
*[[Programmes et unités (Delphi)|Programmes et unités (Delphi)]]{{f|vcl|&lt;br /&gt;
*[[Présentation de la VCL|Présentation de la VCL]]}}&lt;br /&gt;
*[[FireMonkey|FireMonkey]]&lt;br /&gt;
*[[Personnaliser le menu Nouveau|Personnaliser le menu Nouveau]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Référence EDI]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Nouveau_(menu_Fichier)&amp;diff=218921</id>
		<title>Nouveau (menu Fichier)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Nouveau_(menu_Fichier)&amp;diff=218921"/>
		<updated>2026-05-09T03:34:54Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Menu Fichier}}&lt;br /&gt;
&lt;br /&gt;
{{Menu|Fichier &amp;amp;gt; Nouveau}}&lt;br /&gt;
&lt;br /&gt;
Crée un projet ou une [[Unité|unité]] du type sélectionné.&lt;br /&gt;
&lt;br /&gt;
Ce menu vous permet de choisir parmi les types de projets et d&#039;unités &#039;&#039;&#039;{{Product}}&#039;&#039;&#039; les plus courants dans une liste. Vous pouvez également sélectionner &#039;&#039;&#039;[[Nouveaux éléments|Autre…]]&#039;&#039;&#039; pour accéder à de nombreux autres types de projets et d&#039;unités, ou sur &#039;&#039;&#039;[[Personnaliser le menu Nouveau|Personnaliser…]]&#039;&#039;&#039; pour changer les types de projets et d&#039;unités listés dans ce menu.&lt;br /&gt;
&lt;br /&gt;
==Types de projets et d&#039;unités par défaut==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Types de projets et d&#039;unités {{Delphi}} par défaut===&lt;br /&gt;
&lt;br /&gt;
Le tableau suivant liste les types de projets et d&#039;unités {{Delphi}} par défaut de ce menu :&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;Elément&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
[[File:Windows VCL App.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Application VCL Windows - {{Delphi}}&lt;br /&gt;
|&lt;br /&gt;
Crée une nouvelle &#039;&#039;&#039;[[Application Fiches VCL|application VCL Windows]]&#039;&#039;&#039; {{Delphi}}, une application de bureau basée sur des fiches, en utilisant des composants VCL.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
[[File:Multi-Device App.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Application multi-périphérique - {{Delphi}}&lt;br /&gt;
|&lt;br /&gt;
Crée une nouvelle &#039;&#039;&#039;[[Application multi-périphérique|application multi-périphérique]]&#039;&#039;&#039; {{Delphi}} en utilisant [[FireMonkey|FireMonkey]]. Vous pouvez choisir entre :&lt;br /&gt;
*Application vide&lt;br /&gt;
*Application 3D&lt;br /&gt;
*Un des [[Modèles d&#039;applications multi-périphériques|modèles disponibles]].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
[[File:PackageD.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Package - {{Delphi}}&lt;br /&gt;
|&lt;br /&gt;
Crée un squelette pour un &#039;&#039;&#039;[[Packages|package]]&#039;&#039;&#039; {{Delphi}}.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
[[File:Console App.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Application console - {{Delphi}}&lt;br /&gt;
|&lt;br /&gt;
Crée de nouvelles &#039;&#039;&#039;[[Applications console|applications console]]&#039;&#039;&#039; {{Delphi}}, des programmes sans interface utilisateur.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
[[File:DLL.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Dynamic Library - {{Delphi}}&lt;br /&gt;
|&lt;br /&gt;
Crée une nouvelle &#039;&#039;&#039;[[Bibliothèques de liaison dynamique|bibliothèque dynamique]]&#039;&#039;&#039; {{Delphi}}, un ensemble de routines pouvant être chargées à l&#039;exécution.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
[[File:VCL Form.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Fiche VCL - {{Delphi}}&lt;br /&gt;
|&lt;br /&gt;
Crée un squelette pour une &#039;&#039;&#039;[[Fiche VCL|fiche VCL]]&#039;&#039;&#039; {{Delphi}}, une fiche visuelle utilisant des composants VCL. Cette fiche n&#039;est pas associée à un [[Création d&#039;un projet|projet]].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
[[File:Frame.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
VCL Frame - {{Delphi}}&lt;br /&gt;
|&lt;br /&gt;
Crée un squelette pour un &#039;&#039;&#039;[[Création de cadres|cadre VCL]]&#039;&#039;&#039; {{Delphi}}, un cadre visuel utilisant des composants VCL. Ce cadre n&#039;est pas associé à un [[Création d&#039;un projet|projet]].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
[[File:Data Module.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Module de données - {{Delphi}}&lt;br /&gt;
|&lt;br /&gt;
Crée un squelette pour un &#039;&#039;&#039;[[Utilisation des modules de données|module de données]]&#039;&#039;&#039; {{Delphi}}, une fiche spéciale utilisant des composants non visuels. Cette fiche n&#039;est pas associée à un [[Création d&#039;un projet|projet]].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
[[File:Frame.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;Cadre FireMonkey - {{Delphi}}&lt;br /&gt;
|&lt;br /&gt;
Crée un squelette pour un &#039;&#039;&#039;[[Création de cadres|cadre FireMonkey]]&#039;&#039;&#039; {{Delphi}}, un cadre visuel utilisant des composants FireMonkey. Ce cadre n&#039;est pas associé à un [[Création d&#039;un projet|projet]].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
[[File:Multi-Device Form.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Fiche multi-périphérique - {{Delphi}}&lt;br /&gt;
|&lt;br /&gt;
Crée un squelette pour une &#039;&#039;&#039;[[Fiche multi-périphérique|fiche multi-périphérique]]&#039;&#039;&#039; {{Delphi}}, une fiche visuelle utilisant [[FireMonkey|FireMonkey]]. Cette fiche n&#039;est pas associée à un [[Création d&#039;un projet|projet]].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
[[File:UnitD.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Unité - {{Delphi}}&lt;br /&gt;
|&lt;br /&gt;
Crée un squelette pour une &#039;&#039;&#039;[[Programmes et unités (Delphi)#Structure et syntaxe d&#039;unité|unité]]&#039;&#039;&#039; {{Delphi}}.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Types de projets et d&#039;unités {{CBuilderUI}} par défaut===&lt;br /&gt;
&lt;br /&gt;
Le tableau suivant liste les types de projets et d&#039;unités {{CBuilderUI}} par défaut de ce menu :&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;Elément&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
[[File:Windows VCL App.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Application VCL Windows - {{CBuilderUI}}&lt;br /&gt;
|&lt;br /&gt;
Crée une nouvelle &#039;&#039;&#039;[[Application Fiches VCL|application VCL Windows]]&#039;&#039;&#039; {{CBuilderUI}}, une application de bureau basée sur des fiches, en utilisant des composants VCL.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
[[File:Multi-Device App.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Application multi-périphérique - {{CBuilderUI}}&lt;br /&gt;
|&lt;br /&gt;
Crée une nouvelle &#039;&#039;&#039;[[Application multi-périphérique|application multi-périphérique]]&#039;&#039;&#039; C++ utilisant [[FireMonkey|FireMonkey]]. Vous pouvez choisir entre :&lt;br /&gt;
*Application vide&lt;br /&gt;
*Application 3D&lt;br /&gt;
*Un des [[Modèles d&#039;applications multi-périphériques|modèles disponibles]].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
[[File:PackageD.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Package - {{CBuilderUI}}&lt;br /&gt;
|&lt;br /&gt;
Crée un squelette pour un &#039;&#039;&#039;[[Packages|package]]&#039;&#039;&#039; {{CBuilderUI}}.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
[[File:Console App.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Application console - {{CBuilderUI}}&lt;br /&gt;
|&lt;br /&gt;
Crée de nouvelles &#039;&#039;&#039;[[Applications console|applications console]]&#039;&#039;&#039; {{CBuilderUI}}, des programmes sans interface utilisateur.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
[[File:Windows VCL App.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Application WinAPI - {{CBuilderUI}}&lt;br /&gt;
|&lt;br /&gt;
Crée une nouvelle &#039;&#039;&#039;[[WinAPI Application|application WinAPI]]&#039;&#039;&#039; {{CBuilderUI}}, une app Win32 traditionnelle pour tester Windows, se former et utiliser des exemples de code.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
[[File:DLL.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Bibliothèque dynamique - {{CBuilderUI}}&lt;br /&gt;
|&lt;br /&gt;
Crée une nouvelle &#039;&#039;&#039;[[Bibliothèques de liaison dynamique|bibliothèque dynamique]]&#039;&#039;&#039; {{CBuilderUI}}, un ensemble de routines pouvant être chargées à l&#039;exécution.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
[[File:Static Library.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Bibliothèque statique - {{CBuilderUI}}&lt;br /&gt;
|&lt;br /&gt;
Crée une nouvelle &#039;&#039;&#039;[[Construction de packages statiques|bibliothèque statique]]&#039;&#039;&#039; {{CBuilderUI}}, un ensemble de routines intégrées en programme en mode compilation.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
[[File:VCL Form.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Fiche VCL - {{CBuilderUI}}&lt;br /&gt;
|&lt;br /&gt;
Crée un squelette pour une &#039;&#039;&#039;[[Fiche VCL|fiche VCL]]&#039;&#039;&#039; {{CBuilderUI}}, une fiche visuelle utilisant des composants VCL. Cette fiche n&#039;est pas associée à un [[Création d&#039;un projet|projet]].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
[[File:Frame.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Cadre VCL - {{CBuilderUI}}&lt;br /&gt;
|&lt;br /&gt;
Crée un squelette pour un &#039;&#039;&#039;[[Création de cadres|cadre VCL]]&#039;&#039;&#039; {{CBuilderUI}}, un cadre visuel utilisant des composants FireMonkey. Ce cadre n&#039;est pas associé à un [[Création d&#039;un projet|projet]].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
[[File:Data Module.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Module de données - {{CBuilderUI}}&lt;br /&gt;
|&lt;br /&gt;
Crée un squelette pour un &#039;&#039;&#039;[[Utilisation des modules de données|module de données]]&#039;&#039;&#039; {{CBuilderUI}}, une fiche spéciale contenant des composants non visuels. Cette fiche n&#039;est pas associée à un [[Création d&#039;un projet|projet]].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
[[File:Frame.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;Cadre FireMonkey - {{CBuilderUI}}&lt;br /&gt;
|&lt;br /&gt;
Crée un squelette pour un &#039;&#039;&#039;[[Création de cadres|cadre FireMonkey]]&#039;&#039;&#039; {{CBuilderUI}}, un cadre visuel utilisant des composants FireMonkey. Ce cadre n&#039;est pas associé à un [[Création d&#039;un projet|projet]].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
[[File:Multi-Device Form.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Fiche multi-périphérique - {{CBuilderUI}}&lt;br /&gt;
|&lt;br /&gt;
Crée un squelette pour une &#039;&#039;&#039;[[Fiche multi-périphérique|fiche multi-périphérique]]&#039;&#039;&#039; C++, une fiche visuelle utilisant [[FireMonkey|FireMonkey]]. Cette fiche n&#039;est pas associée à un [[Création d&#039;un projet|projet]].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; {{fr|vcl}}&lt;br /&gt;
|&lt;br /&gt;
[[File:UnitD.png|link=]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Unité - {{CBuilderUI}}&lt;br /&gt;
|&lt;br /&gt;
Crée un squelette pour une &#039;&#039;&#039;[[Unité|unité]]&#039;&#039;&#039; {{CBuilderUI}}.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Toutes les personnalités==&lt;br /&gt;
&lt;br /&gt;
Ce menu fournit également les entrées suivantes :&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;Elément&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Autre&lt;br /&gt;
|&lt;br /&gt;
Ouvre la boîte de dialogue &#039;&#039;&#039;[[Nouveaux éléments|Nouveaux éléments]]&#039;&#039;&#039; qui liste chaque fichier ou projet pris en charge par l&#039;EDI. Exemples : fichiers XML, fichiers texte et projets C++.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Personnaliser&lt;br /&gt;
|&lt;br /&gt;
Ouvre la boîte de dialogue &#039;&#039;&#039;[[Personnaliser le menu Nouveau|Personnalisation du menu Nouveau]]&#039;&#039;&#039; qui vous permet de personnaliser l&#039;affichage des projets et des fichiers dans le menu &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt; &#039;&#039;&#039;Fichier &amp;amp;gt; Nouveau&#039;&#039;&#039; &amp;lt;/font&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Note|La liste des unités et des projets disponibles est mise à jour dynamiquement en fonction des projets ouverts. Seules apparaissent les options compatibles avec le projet actuellement ouvert.}}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Nouveaux éléments|Nouveaux éléments]]&lt;br /&gt;
*[[Packages|Packages ({{Delphi}})]]&lt;br /&gt;
*[[Programmes et unités (Delphi)|Programmes et unités (Delphi)]]{{f|vcl|&lt;br /&gt;
*[[Présentation de la VCL|Présentation de la VCL]]}}&lt;br /&gt;
*[[FireMonkey|FireMonkey]]&lt;br /&gt;
*[[Personnaliser le menu Nouveau|Personnaliser le menu Nouveau]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Référence EDI]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Utilisation_des_styles_de_l%27EDI_dans_des_Plugins_tierces_parties&amp;diff=218920</id>
		<title>Utilisation des styles de l&#039;EDI dans des Plugins tierces parties</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Utilisation_des_styles_de_l%27EDI_dans_des_Plugins_tierces_parties&amp;diff=218920"/>
		<updated>2026-05-09T03:34:54Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : 1 révision importée : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Extension de l&#039;EDI par l&#039;utilisation de l&#039;API Tools}}&lt;br /&gt;
&lt;br /&gt;
L&#039;EDI utilise des styles VCL pour son apparence. Des plugins tierces parties fournissent des fenêtres telles que les fenêtres ancrables et des boîtes de dialogue correspondant aux styles de l&#039;EDI. En plus de suivre le thème utilisé, des contrôles spécifiques comme [[lib_fr:FMX.StdCtrls.TGroupBox|TGroupBox]] possèdent des &amp;quot;raccordements de styles&amp;quot; pour garantir qu&#039;ils sont restitués dans une apparence différente de l&#039;apparence habituelle. C&#039;est aussi le cas pour vos fenêtres.&lt;br /&gt;
&lt;br /&gt;
==Informations générales==&lt;br /&gt;
&lt;br /&gt;
L&#039;EDI fournit l&#039;API &amp;lt;code&amp;gt;IOTAIDEThemingServices&amp;lt;/code&amp;gt; qui vous permet de vérifier si les thèmes sont activés.&lt;br /&gt;
&lt;br /&gt;
Après avoir identifié le nom des thèmes de l&#039;EDI et de l&#039;éditeur, appliquez le thème de l&#039;EDI à votre fiche ou à vos contrôles et recensez votre fiche dans les raccordements de styles afin d&#039;obtenir un comportement spécial de l&#039;EDI.&lt;br /&gt;
&lt;br /&gt;
Cette interface vous permet également d&#039;accéder aux [[lib_fr:Vcl.Themes.StyleServices|StyleServices]] de l&#039;EDI. L&#039;EDI maintient un objet services de styles représentant le style de l&#039;EDI.&lt;br /&gt;
&lt;br /&gt;
Accédez à cette interface en utilisant &amp;lt;code&amp;gt;BorlandIDEServices&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
var &lt;br /&gt;
ThemingServices : IOTAIDEThemingServices;&lt;br /&gt;
&lt;br /&gt;
if Supports (BorlandIDEServices, IOTAIDEThemingServices, ThemingServices) then...&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Recensement de votre fiche pour définir l&#039;apparence de l&#039;EDI==&lt;br /&gt;
&lt;br /&gt;
Activez la fonctionnalité Apparence de l&#039;EDI dans les fiches de votre plugin, en utilisant &amp;lt;code&amp;gt;IOTAIDEThemingServices.RegisterFormClass&amp;lt;/code&amp;gt; pour spécifier la classe de votre fiche.&lt;br /&gt;
&lt;br /&gt;
{{Note| Il est essentiel de recenser la fiche chaque fois que le thème de l’EDI change.}}&lt;br /&gt;
&lt;br /&gt;
Une fois cela effectué, le [[lib_fr:FMX.StdCtrls.TGroupBox|TGroupBox]] est dessiné sans cadre, avec une fonte de libellé plus grande et une seule ligne dans la partie supérieure, comme c&#039;est le cas pour les zones de groupe de la boîte de dialogue Options.&lt;br /&gt;
&lt;br /&gt;
Pour chaque instance de votre fiche, appelez &amp;lt;code&amp;gt;IOTAIDEThemingServices.ApplyTheme&amp;lt;/code&amp;gt;. Vous appliquez ainsi le style de l&#039;EDI à votre fiche. Répétez l&#039;opération lorsque le style de l&#039;EDI est modifié, afin de répercuter le changement sur votre fiche et les contrôles. Voir ci-dessous plus d&#039;informations sur comment détecter les modifications de style de l&#039;EDI.&lt;br /&gt;
&lt;br /&gt;
==Détection des changements de style==&lt;br /&gt;
&lt;br /&gt;
Recensez un notificateur qui détectera les modifications de thème de l&#039;EDI ou de l&#039;éditeur.&lt;br /&gt;
&lt;br /&gt;
*Pour le thème de l&#039;EDI, utilisez &amp;lt;code&amp;gt;IOTAIDEThemingServices.AddNotifier&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
*Pour les modifications du schéma de couleurs de l&#039;editeur, utilisez &amp;lt;code&amp;gt;IOTAIDEThemingServices.AddEditorColorNotifier&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Les deux interfaces du notificateur possèdent deux méthodes qui sont appelées, un variant Changing (par exemple &amp;lt;code&amp;gt;IOTAEditorColorSpeedSetting.EditorColorChanging&amp;lt;/code&amp;gt;) qui est appelé avant la modification du thème, et un variant Changed (par exemple &amp;lt;code&amp;gt;INTAIDEThemingServicesNotifier.ChangedTheme&amp;lt;/code&amp;gt;) qui est appelé après la modification du thème.&lt;br /&gt;
&lt;br /&gt;
En principe, un notificateur n&#039;est recensé que si vous souhaitez être averti des modifications du thème de l&#039;EDI, à moins que vous ne souhaitiez être averti des modifications des paramètres de couleur de l&#039;éditeur.&lt;br /&gt;
&lt;br /&gt;
Dans votre implémentation de la méthode &amp;lt;code&amp;gt;INTAIDEThemingServicesNotifier.ChangedTheme&amp;lt;/code&amp;gt;, appelez &amp;lt;code&amp;gt;IOTAIDEThemingServices.ApplyTheme&amp;lt;/code&amp;gt; pour votre fiche. Votre fiche et vos contrôles sont ainsi mis à jour avec le nouveau style. Les couleurs personnalisées et les dessins personnalisés utilisés par votre fiche sont également mis à jour en fonction des nouvelles couleurs.&lt;br /&gt;
&lt;br /&gt;
==Guide de style==&lt;br /&gt;
&lt;br /&gt;
L&#039;EDI utilise une apparence commune pour de nombreuses boîtes de dialogue : un volet teinté contenant les boutons &#039;&#039;&#039;OK&#039;&#039;&#039;, &#039;&#039;&#039;Annuler&#039;&#039;&#039; apparaît en bas de la fiche avec d&#039;autres boutons, alors que le reste de la fiche est de la même couleur que la fenêtre. &lt;br /&gt;
&lt;br /&gt;
La meilleure façon d&#039;implémenter ce type d&#039;apparence se fait en utilisant deux volets, un volet aligné en bas qui contient les boutons, et un autre aligné sur le client qui contient le reste de la boîte de dialogue.&lt;br /&gt;
Par chaque volet, procédez comme suit :&lt;br /&gt;
&lt;br /&gt;
#Définissez [[lib_fr:Vcl.Controls.TWinControl.ParentBackground|ParentBackground]] sur false.&lt;br /&gt;
#Retirez &amp;lt;code&amp;gt;seClient&amp;lt;/code&amp;gt; de [[lib_fr:Vcl.Controls.TControl.StyleElements|StyleElements]].&lt;br /&gt;
#Définissez la propriété Color du volet qui contient le reste de la boîte de dialogue sur &amp;lt;code&amp;gt;clWindow&amp;lt;/code&amp;gt;, et celle du volet des boutons sur &amp;lt;code&amp;gt;clBtnFace&amp;lt;/code&amp;gt;. Si besoin, vous pouvez obtenir la valeur du thème de chaque couleur système via &amp;lt;code&amp;gt;IOTAIDEThemingServices.StyleServices.GetSystemColor&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Avec une mise à l&#039;échelle de 100 %, un volet de boutons typique a une hauteur de 49 pixels. Les boutons sont indentés de 20 pixels à droite, mis à l&#039;échelle par défaut à 75x25 et placés avec une propriété Top définie à 12. Vous obtenez ainsi une marge de 12 pixels sous le bouton.&lt;br /&gt;
&lt;br /&gt;
Dans [[lib_fr:FMX.StdCtrls.TGroupBox|TGroupBox]], assurez-vous la propriété Top de votre plus haut contrôle soit à 26 pixels minimum. Cela laissera de la place pour des libellés plus longs.&lt;br /&gt;
&lt;br /&gt;
L&#039;EDI indique les relations entre les contrôles et les données via l&#039;indentation. &lt;br /&gt;
&lt;br /&gt;
Un paramètre ou un contrôle qui dépend d&#039;un autre contrôle (par exemple, qui modifie le comportement d&#039;un paramètre ou qui est uniquement activé si un paramètre a une valeur spécifique) doit être placé sous ce paramètre, avec une indentation de 16 pixels). Cette indentation permet au contenu de s&#039;aligner sur le début du libellé du [[lib_fr:Vcl.Dialogs.TCustomTaskDialog.RadioButton|bouton radio]] ou de la [[lib_fr:Vcl.ComCtrls.THeaderSection.CheckBox|case à cocher]] ; s&#039;il apparaît sous un autre contrôle tel qu&#039;un [[lib_fr:Vcl.StdCtrls.TComboBox|TComboBox]] l&#039;indentation sera cohérente pour tous les contrôles.&lt;br /&gt;
&lt;br /&gt;
La disposition de l&#039;EDI utilise une grille de 4x4 pixels. La hauteur de la plupart des éléments d&#039;UI est un multiple de 4 pixels. Par exemple, la hauteur d&#039;une rangée de vue liste ou d&#039;arborescence est de 20 pixels.&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Présentation des styles VCL|Présentation des styles VCL]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Utilisation_des_styles_de_l%27EDI_dans_des_Plugins_tierces_parties&amp;diff=218919</id>
		<title>Utilisation des styles de l&#039;EDI dans des Plugins tierces parties</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Utilisation_des_styles_de_l%27EDI_dans_des_Plugins_tierces_parties&amp;diff=218919"/>
		<updated>2026-05-09T03:34:53Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Extension de l&#039;EDI par l&#039;utilisation de l&#039;API Tools}}&lt;br /&gt;
&lt;br /&gt;
L&#039;EDI utilise des styles VCL pour son apparence. Des plugins tierces parties fournissent des fenêtres telles que les fenêtres ancrables et des boîtes de dialogue correspondant aux styles de l&#039;EDI. En plus de suivre le thème utilisé, des contrôles spécifiques comme [[lib_fr:FMX.StdCtrls.TGroupBox|TGroupBox]] possèdent des &amp;quot;raccordements de styles&amp;quot; pour garantir qu&#039;ils sont restitués dans une apparence différente de l&#039;apparence habituelle. C&#039;est aussi le cas pour vos fenêtres.&lt;br /&gt;
&lt;br /&gt;
==Informations générales==&lt;br /&gt;
&lt;br /&gt;
L&#039;EDI fournit l&#039;API &amp;lt;code&amp;gt;IOTAIDEThemingServices&amp;lt;/code&amp;gt; qui vous permet de vérifier si les thèmes sont activés.&lt;br /&gt;
&lt;br /&gt;
Après avoir identifié le nom des thèmes de l&#039;EDI et de l&#039;éditeur, appliquez le thème de l&#039;EDI à votre fiche ou à vos contrôles et recensez votre fiche dans les raccordements de styles afin d&#039;obtenir un comportement spécial de l&#039;EDI.&lt;br /&gt;
&lt;br /&gt;
Cette interface vous permet également d&#039;accéder aux [[lib_fr:Vcl.Themes.StyleServices|StyleServices]] de l&#039;EDI. L&#039;EDI maintient un objet services de styles représentant le style de l&#039;EDI.&lt;br /&gt;
&lt;br /&gt;
Accédez à cette interface en utilisant &amp;lt;code&amp;gt;BorlandIDEServices&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
var &lt;br /&gt;
ThemingServices : IOTAIDEThemingServices;&lt;br /&gt;
&lt;br /&gt;
if Supports (BorlandIDEServices, IOTAIDEThemingServices, ThemingServices) then...&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Recensement de votre fiche pour définir l&#039;apparence de l&#039;EDI==&lt;br /&gt;
&lt;br /&gt;
Activez la fonctionnalité Apparence de l&#039;EDI dans les fiches de votre plugin, en utilisant &amp;lt;code&amp;gt;IOTAIDEThemingServices.RegisterFormClass&amp;lt;/code&amp;gt; pour spécifier la classe de votre fiche.&lt;br /&gt;
&lt;br /&gt;
{{Note| Il est essentiel de recenser la fiche chaque fois que le thème de l’EDI change.}}&lt;br /&gt;
&lt;br /&gt;
Une fois cela effectué, le [[lib_fr:FMX.StdCtrls.TGroupBox|TGroupBox]] est dessiné sans cadre, avec une fonte de libellé plus grande et une seule ligne dans la partie supérieure, comme c&#039;est le cas pour les zones de groupe de la boîte de dialogue Options.&lt;br /&gt;
&lt;br /&gt;
Pour chaque instance de votre fiche, appelez &amp;lt;code&amp;gt;IOTAIDEThemingServices.ApplyTheme&amp;lt;/code&amp;gt;. Vous appliquez ainsi le style de l&#039;EDI à votre fiche. Répétez l&#039;opération lorsque le style de l&#039;EDI est modifié, afin de répercuter le changement sur votre fiche et les contrôles. Voir ci-dessous plus d&#039;informations sur comment détecter les modifications de style de l&#039;EDI.&lt;br /&gt;
&lt;br /&gt;
==Détection des changements de style==&lt;br /&gt;
&lt;br /&gt;
Recensez un notificateur qui détectera les modifications de thème de l&#039;EDI ou de l&#039;éditeur.&lt;br /&gt;
&lt;br /&gt;
*Pour le thème de l&#039;EDI, utilisez &amp;lt;code&amp;gt;IOTAIDEThemingServices.AddNotifier&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
*Pour les modifications du schéma de couleurs de l&#039;editeur, utilisez &amp;lt;code&amp;gt;IOTAIDEThemingServices.AddEditorColorNotifier&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Les deux interfaces du notificateur possèdent deux méthodes qui sont appelées, un variant Changing (par exemple &amp;lt;code&amp;gt;IOTAEditorColorSpeedSetting.EditorColorChanging&amp;lt;/code&amp;gt;) qui est appelé avant la modification du thème, et un variant Changed (par exemple &amp;lt;code&amp;gt;INTAIDEThemingServicesNotifier.ChangedTheme&amp;lt;/code&amp;gt;) qui est appelé après la modification du thème.&lt;br /&gt;
&lt;br /&gt;
En principe, un notificateur n&#039;est recensé que si vous souhaitez être averti des modifications du thème de l&#039;EDI, à moins que vous ne souhaitiez être averti des modifications des paramètres de couleur de l&#039;éditeur.&lt;br /&gt;
&lt;br /&gt;
Dans votre implémentation de la méthode &amp;lt;code&amp;gt;INTAIDEThemingServicesNotifier.ChangedTheme&amp;lt;/code&amp;gt;, appelez &amp;lt;code&amp;gt;IOTAIDEThemingServices.ApplyTheme&amp;lt;/code&amp;gt; pour votre fiche. Votre fiche et vos contrôles sont ainsi mis à jour avec le nouveau style. Les couleurs personnalisées et les dessins personnalisés utilisés par votre fiche sont également mis à jour en fonction des nouvelles couleurs.&lt;br /&gt;
&lt;br /&gt;
==Guide de style==&lt;br /&gt;
&lt;br /&gt;
L&#039;EDI utilise une apparence commune pour de nombreuses boîtes de dialogue : un volet teinté contenant les boutons &#039;&#039;&#039;OK&#039;&#039;&#039;, &#039;&#039;&#039;Annuler&#039;&#039;&#039; apparaît en bas de la fiche avec d&#039;autres boutons, alors que le reste de la fiche est de la même couleur que la fenêtre. &lt;br /&gt;
&lt;br /&gt;
La meilleure façon d&#039;implémenter ce type d&#039;apparence se fait en utilisant deux volets, un volet aligné en bas qui contient les boutons, et un autre aligné sur le client qui contient le reste de la boîte de dialogue.&lt;br /&gt;
Par chaque volet, procédez comme suit :&lt;br /&gt;
&lt;br /&gt;
#Définissez [[lib_fr:Vcl.Controls.TWinControl.ParentBackground|ParentBackground]] sur false.&lt;br /&gt;
#Retirez &amp;lt;code&amp;gt;seClient&amp;lt;/code&amp;gt; de [[lib_fr:Vcl.Controls.TControl.StyleElements|StyleElements]].&lt;br /&gt;
#Définissez la propriété Color du volet qui contient le reste de la boîte de dialogue sur &amp;lt;code&amp;gt;clWindow&amp;lt;/code&amp;gt;, et celle du volet des boutons sur &amp;lt;code&amp;gt;clBtnFace&amp;lt;/code&amp;gt;. Si besoin, vous pouvez obtenir la valeur du thème de chaque couleur système via &amp;lt;code&amp;gt;IOTAIDEThemingServices.StyleServices.GetSystemColor&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Avec une mise à l&#039;échelle de 100 %, un volet de boutons typique a une hauteur de 49 pixels. Les boutons sont indentés de 20 pixels à droite, mis à l&#039;échelle par défaut à 75x25 et placés avec une propriété Top définie à 12. Vous obtenez ainsi une marge de 12 pixels sous le bouton.&lt;br /&gt;
&lt;br /&gt;
Dans [[lib_fr:FMX.StdCtrls.TGroupBox|TGroupBox]], assurez-vous la propriété Top de votre plus haut contrôle soit à 26 pixels minimum. Cela laissera de la place pour des libellés plus longs.&lt;br /&gt;
&lt;br /&gt;
L&#039;EDI indique les relations entre les contrôles et les données via l&#039;indentation. &lt;br /&gt;
&lt;br /&gt;
Un paramètre ou un contrôle qui dépend d&#039;un autre contrôle (par exemple, qui modifie le comportement d&#039;un paramètre ou qui est uniquement activé si un paramètre a une valeur spécifique) doit être placé sous ce paramètre, avec une indentation de 16 pixels). Cette indentation permet au contenu de s&#039;aligner sur le début du libellé du [[lib_fr:Vcl.Dialogs.TCustomTaskDialog.RadioButton|bouton radio]] ou de la [[lib_fr:Vcl.ComCtrls.THeaderSection.CheckBox|case à cocher]] ; s&#039;il apparaît sous un autre contrôle tel qu&#039;un [[lib_fr:Vcl.StdCtrls.TComboBox|TComboBox]] l&#039;indentation sera cohérente pour tous les contrôles.&lt;br /&gt;
&lt;br /&gt;
La disposition de l&#039;EDI utilise une grille de 4x4 pixels. La hauteur de la plupart des éléments d&#039;UI est un multiple de 4 pixels. Par exemple, la hauteur d&#039;une rangée de vue liste ou d&#039;arborescence est de 20 pixels.&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Présentation des styles VCL|Présentation des styles VCL]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=D%C3%A9bogage_des_applications_C%2B%2B_Builder_Windows_64_bits&amp;diff=218918</id>
		<title>Débogage des applications C++ Builder Windows 64 bits</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=D%C3%A9bogage_des_applications_C%2B%2B_Builder_Windows_64_bits&amp;diff=218918"/>
		<updated>2026-05-09T03:34:53Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : 1 révision importée : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Développement d&#039;applications C++ Builder Windows 64 bits}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Débogueur C++ basé sur LLDB pour WIN64==&lt;br /&gt;
&lt;br /&gt;
{{Product}} 10.4 introduit un nouveau débogueur C++ pour Win64, basé sur LLDB. Le compilateur utilise le format [http://www.dwarfstd.org/ DWARF] version 4 pour les informations de débogage.&lt;br /&gt;
&lt;br /&gt;
Le nouveau débogueur LLDB de {{Product}} offre une plus grande stabilité lors du débogage. La nouvelle technologie de débogage couplée aux informations de débogage générées renforcent les capacités d&#039;évaluation, d&#039;inspection et de débogage. De plus, le débogueur prend en charge des types complexes comme les collections STL ou les chaînes via les formateurs.&lt;br /&gt;
&lt;br /&gt;
==Formateurs==&lt;br /&gt;
&lt;br /&gt;
L&#039;inspection ou l&#039;évaluation des types complexes peut poser problème lors du débogage d&#039;applications C++. L&#039;évaluation du contenu d&#039;un std::map (par exemple) requiert de connaître la disposition du type. D&#039;autre part, l&#039;opérateur d&#039;accès au tableau [] peut ne pas être disponible pour le débogueur s&#039;il n&#039;est jamais appelé dans le code ou s&#039;il est toujours inline et donc par conséquent, non appelable. Des problèmes similaires existent pour d&#039;autres types, y compris pour les chaînes, et parfois même pour vos propres types.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez y remédier en utilisant des formateurs. Un formateur est un petit script Python qui aide à déboguer un type particulier. RAD Studio est livré avec des formateurs pour les types communs. Vous pouvez toutefois ajouter des formateurs personnalisés pour vos types.&lt;br /&gt;
&lt;br /&gt;
Les formateurs suivants sont fournis pour les types STL et Delphi.&lt;br /&gt;
&lt;br /&gt;
 * std::string and std::wstring &lt;br /&gt;
 * String (UnicodeString), AnsiString, UTF8String, WideString. &lt;br /&gt;
 * std::vector &lt;br /&gt;
 * std::deque &lt;br /&gt;
 * std::stack &lt;br /&gt;
 * std::map &lt;br /&gt;
 * std::shared_ptr&lt;br /&gt;
&lt;br /&gt;
====Formateurs personnalisés====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter votre propre formateur, créez un nouveau fichier python et modifiez le fichier &#039;&#039;&#039;bin\Windows\lldb\.lldbinit&#039;&#039;&#039; de façon à ce qu&#039;il contienne une ligne faisant référence à votre nouveau script Python.  Vous trouverez plus d&#039;informations sur le codage des formateurs personnalisés ici :&lt;br /&gt;
&lt;br /&gt;
*[http://lldb.llvm.org/use/variable.html LLDB’s formatting documentation]&lt;br /&gt;
*[https://pspdfkit.com/blog/2018/how-to-extend-lldb-to-provide-a-better-debugging-experience/ How to extend LLDB to provide a better debugging experience]&lt;br /&gt;
*[https://stackoverflow.com/questions/52013282/custom-data-formatter-in-lldb This Stack Overflow question about writing a custom data formatter]&lt;br /&gt;
&lt;br /&gt;
==C++ Builder Windows 64 bits==&lt;br /&gt;
&lt;br /&gt;
Le compilateur {{CBuilder}} Windows 64 bits ([[BCC64.EXE, le compilateur C++ Windows 64 bits|BCC64]]) génère des informations de débogage au format [http://www.dwarfstd.org/ DWARF], différent du format utilisé par BCC32 et BCCOSX. Toutefois, en général, le débogage des applications Windows 64 bits est similaire au débogage des applications C++ Windows 32 bits. Il existe quelques différences, comme indiqué ci-dessous :&lt;br /&gt;
&lt;br /&gt;
*Certaines fonctionnalités du débogueur ne sont pas prises en charge.  Le débogage des propriétés, clôtures, méthodes de classe et autres extensions du langage {{Delphi}} n&#039;est pas actuellement pris en charge.&lt;br /&gt;
*:Par exemple, sur [[Inspecteur de débogage|l&#039;inspecteur d&#039;objets]], les onglets &#039;&#039;&#039;Méthodes&#039;&#039;&#039; et &#039;&#039;&#039;Propriétés&#039;&#039;&#039; ne sont pas affichés pour les applications C++ Windows 64 bits.&lt;br /&gt;
*Unicode, les pages de codes et la localisation ne sont pas complètement pris en charge.&lt;br /&gt;
*:Par exemple, Unicode n&#039;est pas pris en charge dans les noms des identificateurs et les pages de codes ne sont pas prises en charge par le débogueur C++ Windows 64 bits.&lt;br /&gt;
*Lors de l&#039;évaluation d&#039;un registre Windows 64 bits, le nom du registre doit être préfixé par $, comme par exemple &amp;lt;code&amp;gt;$rax&amp;lt;/code&amp;gt;.&lt;br /&gt;
*:Voir [[Evaluer/Modifier|Evaluer/Modifier]].&lt;br /&gt;
*Les appels de fonctions qui déclenchent des exceptions sont gérés comme suit :&lt;br /&gt;
**Si une fonction contient un bloc try/except/catch et qu&#039;une exception OS/SEH ou C++ est déclenchée lors de l&#039;exécution, l&#039;appel de fonction se termine correctement, mais le résultat est non défini ou vaut 0. Dans ce cas, le bloc d&#039;exception interne n&#039;est pas exécuté car l&#039;exception est gérée directement par le débogueur.&lt;br /&gt;
**Si une fonction contient un bloc try/except/catch et qu&#039;aucune exception OS/SEH ou de langage n&#039;est déclenchée, l&#039;appel de fonction se termine correctement et le résultat est correct, selon la fonction.&lt;br /&gt;
&lt;br /&gt;
{{Note|{{Product}} vous permet de déboguer des apps &#039;&#039;&#039;BCC64X&#039;&#039;&#039; de la même façon que des apps &#039;&#039;&#039;BCC64&#039;&#039;&#039; ou &#039;&#039;&#039;BCC32&#039;&#039;&#039;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Différences relatives à la pile d&#039;appels==&lt;br /&gt;
&lt;br /&gt;
L&#039;affichage de certaines valeurs peut être différent dans les évaluateurs 32 bits et 64 bits. Par exemple, la [[Fenêtre Pile d&#039;appels|pile d&#039;appels]] est affichée sans paramètre de fonction et sans valeur.&lt;br /&gt;
&lt;br /&gt;
La [[Fenêtre Pile d&#039;appels|pile d&#039;appels]] contient typiquement deux copies de chaque constructeur et destructeur.  &lt;br /&gt;
Par exemple, la pile d&#039;appels peut contenir :&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;:0000000000401244&amp;amp;nbsp;; MyClass::~MyClass&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;:0000000000401229&amp;amp;nbsp;; MyClass::~MyClass&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;:0000000000401187&amp;amp;nbsp;; main&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;:000000000040ef90&amp;amp;nbsp;; _startup&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note| Clang implémente l&#039;Itanium ABI, qui décrit trois constructeurs et trois destructeurs qui effectuent un chaînage d&#039;appels l&#039;un envers l&#039;autre. Toutefois, Clang n&#039;a implémenté que deux des trois constructeurs, et {{CBuilder}} a ajouté le troisième pour les classes de style {{Delphi}}. Voir le [http://www.uclibc.org/docs/psABI-ia64.pdf Document Itanium ABI] ou cette publication : [http://stackoverflow.com/questions/6921295/dual-emission-of-constructor-symbols.}} http://stackoverflow.com/questions/6921295/dual-emission-of-constructor-symbols.}}]&lt;br /&gt;
&lt;br /&gt;
==Syntaxe pour évaluer les registres==&lt;br /&gt;
&lt;br /&gt;
Lors de l&#039;utilisation du débogueur lldb, les registres doivent être évalués en utilisant le préfixe {{code|$}} lorsqu&#039;on fait référence à un registre.&lt;br /&gt;
&lt;br /&gt;
Par exemple, pour accéder au registre {{code|eax}} ou {{code|rax}}, on écrira :&lt;br /&gt;
&lt;br /&gt;
 $eax&lt;br /&gt;
 $rax&lt;br /&gt;
&lt;br /&gt;
Ne pas inclure le symbole préfixe {{code|$}} provoque une erreur de syntaxe.&lt;br /&gt;
&lt;br /&gt;
*Utiliser {{code|$rax}} renvoie la valeur de registre en hex.&lt;br /&gt;
*Utiliser {{code|$rax,d}} renvoie la valeur de registre en décimal.&lt;br /&gt;
&lt;br /&gt;
==Réduction de la consommation mémoire du lieur grâce à Split Dwarf==&lt;br /&gt;
&lt;br /&gt;
{{Note| Split DWARF est uniquement pris en charge sur C++ Windows 64 bits. Cette fonctionnalité réduit la quantité de données à traiter, ce qui entraîne une réduction des erreurs du lieur. Pour plus d’informations sur la gestion des erreurs relatives au lieur, voir [[Gestion des erreurs de mémoire insuffisante|Gestion des erreurs de mémoire insuffisante du lieur]].&lt;br /&gt;
&lt;br /&gt;
{{Product}} 10.4.2 inclut une nouvelle fonctionnalité permettant de réduire la quantité de données devant être traitée par le lieur, tout particulièrement lors de la liaison des applications construites en mode débogage. Cette fonctionnalité appelée DWARF répartit les informations de débogage dans un fichier .dwo distinct (objet DWARF) parallèlement au fichier objet normal contenant le code compilé. Comme le lieur ne lie que le code exécutable et de petites quantité d&#039;informations, la consommation de mémoire est réduite.&lt;br /&gt;
&lt;br /&gt;
{{Note|La fonctionnalité Split Dwarf est désactivée par défaut.}}&lt;br /&gt;
&lt;br /&gt;
===Activation de Split DWARF dans l&#039;EDI ou msbuild===&lt;br /&gt;
&lt;br /&gt;
Ouvrez la boîte de dialogue Options de votre projet C++. Allez à Construction &amp;amp;gt; Compilateur C++ &amp;amp;gt; Débogueur et assurez-vous que la plate-forme cible est définie sur l&#039;une des cibles Windows 64 bits.&lt;br /&gt;
&lt;br /&gt;
#Activez la case à cocher &amp;quot;Utiliser Split DWARF&amp;quot;.&lt;br /&gt;
#Indiquez un dossier pour les fichiers des informations de débogage dans le champ &amp;quot;Répertoire de sortie DWO&amp;quot;. Vous devez indiquer un chemin absolu (cela ne peut pas être un chemin relatif ou un chemin utilisant des variables d&#039;environnement).&lt;br /&gt;
&lt;br /&gt;
Par exemple, &#039;&#039;&#039;c:\myproject\win64debug&#039;&#039;&#039; est correct mais &#039;&#039;&#039;..\win64debug&#039;&#039;&#039; ne l&#039;est pas.&lt;br /&gt;
&lt;br /&gt;
Pour désactiver cette fonctionnalité, décochez la case dans Options de projet &amp;amp;gt; Construction &amp;amp;gt; Compilateur C++ &amp;amp;gt; Débogage.&lt;br /&gt;
Ces paramètres seront utilisés lors de la construction depuis l&#039;EDI ou avec msbuild sur la ligne de commande.&lt;br /&gt;
&lt;br /&gt;
===Activation de Split DWARF depuis la ligne de commande===&lt;br /&gt;
&lt;br /&gt;
Pour activer manuellement Split DWARF sur un build exécuté depuis la ligne de commande, par exemple avec [[BCC64|BCC64]] :&lt;br /&gt;
&lt;br /&gt;
1. Spécifiez le paramètre Split DWARF sur la ligne de commande du compilateur.&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;-enable-split-dwarf&amp;quot;     &lt;br /&gt;
 AND     &lt;br /&gt;
 &amp;quot;-split-dwarf-file AFilename.dwo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Le compilateur crée alors le fichier AFilename.dwo et indique l&#039;emplacement de ce fichier .dwo dans le fichier objet .o. Notez toutefois le fichier .dwo ne contient pas les informations de débogage.&lt;br /&gt;
&lt;br /&gt;
2. Utilisez &amp;quot;-dwo-dir &amp;amp;lt;répertoire&amp;amp;gt;&amp;quot; pour spécifier le répertoire dans lequel le compilateur écrit le fichier .dwo. Assurez-vous que c&#039;est un chemin absolu.&lt;br /&gt;
&lt;br /&gt;
3. Exécutez l&#039;outil objcopy.exe sur le fichier .o. Cette action provoque la suppression des sections dwarf du fichier objet (.o) normal et les place dans un fichier .dwo distinct. Cela doit être effectué pour chaque objet (fichier .o) et correspondre au nom que vous avez spécifié à &#039;&#039;&#039;l&#039;étape 1&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 objcopy --split-dwo=AFilename.dwo AFilename.o&lt;br /&gt;
&lt;br /&gt;
4. Pour finir, effectuez la liaison des fichiers .o afin de créer votre EXE ou DLL comme vous le feriez normalement (cette étape n&#039;est pas modifiée). Les fichiers seront plus petits que d&#039;habitude car ils contiennent moins d&#039;informations de débogage. Chaque objet contient le nom et l&#039;emplacement du fichier .dwo. Comme décrit à l&#039;étape 2, l&#039;emplacement correspond à votre propre machine et doit être un chemin absolu.&lt;br /&gt;
&lt;br /&gt;
====Problème de chargement des informations de débogage lors de l&#039;utilisation de Split DWARF====&lt;br /&gt;
&lt;br /&gt;
Lorsque vous utilisez Split-Dwarf pour le débogage Win64, les fichiers source qui ne se trouvent pas dans le même répertoire que le fichier projet peuvent recevoir des informations de répertoire incorrectes générées dans le fichier objet.  Cela signifie que les symboles contenus dans ces fichiers (types, variables locales et paramètres) ne seront pas disponibles. Ce comportement peut être remarqué lors du débogage. En effet, les points bleus qui apparaissent dans l&#039;éditeur pour indiquer les numéros de ligne sont visibles. Vous pourrez placer un point d&#039;arrêt mais ne serez pas en mesure d&#039;évaluer ou d&#039;inspecter des expressions ou des symboles.&lt;br /&gt;
&lt;br /&gt;
Pour contourner ce problème, spécifiez un chemin absolu dans le champ &amp;quot;Répertoire de sortie DWO&amp;quot; dans la page des options de projet {{Menu|Compilateur C++ &amp;amp;gt; Débogage &amp;amp;gt; Utiliser Split Dwarf}} ou utilisez l&#039;option -dwo-dir si vous construisez depuis la ligne de commande. Voir ci-dessus pour des informations sur ces paramètres.&lt;br /&gt;
&lt;br /&gt;
==Evaluation d&#039;appels de fonction tels que strcmp()==&lt;br /&gt;
&lt;br /&gt;
L&#039;évaluation d&#039;un appel de fonction tel que strcmp(str, &amp;quot;ABC&amp;quot;) peut renvoyer une erreur comme suit :&lt;br /&gt;
&lt;br /&gt;
 #include &amp;amp;lt;system.hpp&amp;amp;gt;&lt;br /&gt;
 int main()&lt;br /&gt;
 { &lt;br /&gt;
     char *str = &amp;quot;ABC&amp;quot;;&lt;br /&gt;
     return strcmp(str, &amp;quot;ABC&amp;quot;); &lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 error: &#039;strcmp&#039; has unknown return type; cast the call to its declared return type&lt;br /&gt;
 error: 1 errors parsing expression&lt;br /&gt;
&lt;br /&gt;
Dans la fenêtre [[Evaluer/Modifier|Evaluer/Modifier]], vous devez transtyper le type de retour pour strcmp() :&lt;br /&gt;
&lt;br /&gt;
    (int) strcmp(str, &amp;quot;ABC&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Voir [[Strcmp, mbscmp, wcscmp|strcmp, _mbscmp, wcscmp]].&lt;br /&gt;
&lt;br /&gt;
{{Note| Si vous rencontrez des problèmes de débogage, l&#039;équipe Support peut vous demander de fournir les journaux de débogage. A cet égard, consultez comment [[Activer les journaux de consignation pour les débogueurs RAD Studio|activer les journaux de consignation pour les débogueurs {{Product}}]].}}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Présentation du débogage|Présentation du débogage]]&lt;br /&gt;
*[[Débogage des applications - Index|Comment utiliser le débogueur]]&lt;br /&gt;
*[[Débogage des applications multi-périphériques|Débogage des applications multi-périphériques]]&lt;br /&gt;
*[[Différences C++ Builder Windows 64 bits|Différences C++ Builder Windows 64 bits]]&lt;br /&gt;
*[[Gestion des erreurs de mémoire insuffisante|Gestion des erreurs de mémoire insuffisante du lieur]]&lt;br /&gt;
*[[Mise à niveau des projets C++ existants vers Windows 64 bits|Mise à niveau des projets C++ existants vers Windows 64 bits]]&lt;br /&gt;
*[[Compilateurs C++ plus stricts (compilateurs C++ améliorés par Clang)|Compilateurs C++ plus stricts (compilateurs C++ améliorés par Clang)]]&lt;br /&gt;
*[[Evaluer/Modifier|Evaluer/Modifier]]&lt;br /&gt;
*[[Extensions des fichiers générés par RAD Studio|Extensions des fichiers générés par RAD Studio]]&lt;br /&gt;
&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:XE3]]&lt;br /&gt;
[[Category:64 bits]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=D%C3%A9bogage_des_applications_C%2B%2B_Builder_Windows_64_bits&amp;diff=218917</id>
		<title>Débogage des applications C++ Builder Windows 64 bits</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=D%C3%A9bogage_des_applications_C%2B%2B_Builder_Windows_64_bits&amp;diff=218917"/>
		<updated>2026-05-09T03:34:53Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Développement d&#039;applications C++ Builder Windows 64 bits}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Débogueur C++ basé sur LLDB pour WIN64==&lt;br /&gt;
&lt;br /&gt;
{{Product}} 10.4 introduit un nouveau débogueur C++ pour Win64, basé sur LLDB. Le compilateur utilise le format [http://www.dwarfstd.org/ DWARF] version 4 pour les informations de débogage.&lt;br /&gt;
&lt;br /&gt;
Le nouveau débogueur LLDB de {{Product}} offre une plus grande stabilité lors du débogage. La nouvelle technologie de débogage couplée aux informations de débogage générées renforcent les capacités d&#039;évaluation, d&#039;inspection et de débogage. De plus, le débogueur prend en charge des types complexes comme les collections STL ou les chaînes via les formateurs.&lt;br /&gt;
&lt;br /&gt;
==Formateurs==&lt;br /&gt;
&lt;br /&gt;
L&#039;inspection ou l&#039;évaluation des types complexes peut poser problème lors du débogage d&#039;applications C++. L&#039;évaluation du contenu d&#039;un std::map (par exemple) requiert de connaître la disposition du type. D&#039;autre part, l&#039;opérateur d&#039;accès au tableau [] peut ne pas être disponible pour le débogueur s&#039;il n&#039;est jamais appelé dans le code ou s&#039;il est toujours inline et donc par conséquent, non appelable. Des problèmes similaires existent pour d&#039;autres types, y compris pour les chaînes, et parfois même pour vos propres types.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez y remédier en utilisant des formateurs. Un formateur est un petit script Python qui aide à déboguer un type particulier. RAD Studio est livré avec des formateurs pour les types communs. Vous pouvez toutefois ajouter des formateurs personnalisés pour vos types.&lt;br /&gt;
&lt;br /&gt;
Les formateurs suivants sont fournis pour les types STL et Delphi.&lt;br /&gt;
&lt;br /&gt;
 * std::string and std::wstring &lt;br /&gt;
 * String (UnicodeString), AnsiString, UTF8String, WideString. &lt;br /&gt;
 * std::vector &lt;br /&gt;
 * std::deque &lt;br /&gt;
 * std::stack &lt;br /&gt;
 * std::map &lt;br /&gt;
 * std::shared_ptr&lt;br /&gt;
&lt;br /&gt;
====Formateurs personnalisés====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter votre propre formateur, créez un nouveau fichier python et modifiez le fichier &#039;&#039;&#039;bin\Windows\lldb\.lldbinit&#039;&#039;&#039; de façon à ce qu&#039;il contienne une ligne faisant référence à votre nouveau script Python.  Vous trouverez plus d&#039;informations sur le codage des formateurs personnalisés ici :&lt;br /&gt;
&lt;br /&gt;
*[http://lldb.llvm.org/use/variable.html LLDB’s formatting documentation]&lt;br /&gt;
*[https://pspdfkit.com/blog/2018/how-to-extend-lldb-to-provide-a-better-debugging-experience/ How to extend LLDB to provide a better debugging experience]&lt;br /&gt;
*[https://stackoverflow.com/questions/52013282/custom-data-formatter-in-lldb This Stack Overflow question about writing a custom data formatter]&lt;br /&gt;
&lt;br /&gt;
==C++ Builder Windows 64 bits==&lt;br /&gt;
&lt;br /&gt;
Le compilateur {{CBuilder}} Windows 64 bits ([[BCC64.EXE, le compilateur C++ Windows 64 bits|BCC64]]) génère des informations de débogage au format [http://www.dwarfstd.org/ DWARF], différent du format utilisé par BCC32 et BCCOSX. Toutefois, en général, le débogage des applications Windows 64 bits est similaire au débogage des applications C++ Windows 32 bits. Il existe quelques différences, comme indiqué ci-dessous :&lt;br /&gt;
&lt;br /&gt;
*Certaines fonctionnalités du débogueur ne sont pas prises en charge.  Le débogage des propriétés, clôtures, méthodes de classe et autres extensions du langage {{Delphi}} n&#039;est pas actuellement pris en charge.&lt;br /&gt;
*:Par exemple, sur [[Inspecteur de débogage|l&#039;inspecteur d&#039;objets]], les onglets &#039;&#039;&#039;Méthodes&#039;&#039;&#039; et &#039;&#039;&#039;Propriétés&#039;&#039;&#039; ne sont pas affichés pour les applications C++ Windows 64 bits.&lt;br /&gt;
*Unicode, les pages de codes et la localisation ne sont pas complètement pris en charge.&lt;br /&gt;
*:Par exemple, Unicode n&#039;est pas pris en charge dans les noms des identificateurs et les pages de codes ne sont pas prises en charge par le débogueur C++ Windows 64 bits.&lt;br /&gt;
*Lors de l&#039;évaluation d&#039;un registre Windows 64 bits, le nom du registre doit être préfixé par $, comme par exemple &amp;lt;code&amp;gt;$rax&amp;lt;/code&amp;gt;.&lt;br /&gt;
*:Voir [[Evaluer/Modifier|Evaluer/Modifier]].&lt;br /&gt;
*Les appels de fonctions qui déclenchent des exceptions sont gérés comme suit :&lt;br /&gt;
**Si une fonction contient un bloc try/except/catch et qu&#039;une exception OS/SEH ou C++ est déclenchée lors de l&#039;exécution, l&#039;appel de fonction se termine correctement, mais le résultat est non défini ou vaut 0. Dans ce cas, le bloc d&#039;exception interne n&#039;est pas exécuté car l&#039;exception est gérée directement par le débogueur.&lt;br /&gt;
**Si une fonction contient un bloc try/except/catch et qu&#039;aucune exception OS/SEH ou de langage n&#039;est déclenchée, l&#039;appel de fonction se termine correctement et le résultat est correct, selon la fonction.&lt;br /&gt;
&lt;br /&gt;
{{Note|{{Product}} vous permet de déboguer des apps &#039;&#039;&#039;BCC64X&#039;&#039;&#039; de la même façon que des apps &#039;&#039;&#039;BCC64&#039;&#039;&#039; ou &#039;&#039;&#039;BCC32&#039;&#039;&#039;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Différences relatives à la pile d&#039;appels==&lt;br /&gt;
&lt;br /&gt;
L&#039;affichage de certaines valeurs peut être différent dans les évaluateurs 32 bits et 64 bits. Par exemple, la [[Fenêtre Pile d&#039;appels|pile d&#039;appels]] est affichée sans paramètre de fonction et sans valeur.&lt;br /&gt;
&lt;br /&gt;
La [[Fenêtre Pile d&#039;appels|pile d&#039;appels]] contient typiquement deux copies de chaque constructeur et destructeur.  &lt;br /&gt;
Par exemple, la pile d&#039;appels peut contenir :&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;:0000000000401244&amp;amp;nbsp;; MyClass::~MyClass&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;:0000000000401229&amp;amp;nbsp;; MyClass::~MyClass&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;:0000000000401187&amp;amp;nbsp;; main&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;:000000000040ef90&amp;amp;nbsp;; _startup&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note| Clang implémente l&#039;Itanium ABI, qui décrit trois constructeurs et trois destructeurs qui effectuent un chaînage d&#039;appels l&#039;un envers l&#039;autre. Toutefois, Clang n&#039;a implémenté que deux des trois constructeurs, et {{CBuilder}} a ajouté le troisième pour les classes de style {{Delphi}}. Voir le [http://www.uclibc.org/docs/psABI-ia64.pdf Document Itanium ABI] ou cette publication : [http://stackoverflow.com/questions/6921295/dual-emission-of-constructor-symbols.}} http://stackoverflow.com/questions/6921295/dual-emission-of-constructor-symbols.}}]&lt;br /&gt;
&lt;br /&gt;
==Syntaxe pour évaluer les registres==&lt;br /&gt;
&lt;br /&gt;
Lors de l&#039;utilisation du débogueur lldb, les registres doivent être évalués en utilisant le préfixe {{code|$}} lorsqu&#039;on fait référence à un registre.&lt;br /&gt;
&lt;br /&gt;
Par exemple, pour accéder au registre {{code|eax}} ou {{code|rax}}, on écrira :&lt;br /&gt;
&lt;br /&gt;
 $eax&lt;br /&gt;
 $rax&lt;br /&gt;
&lt;br /&gt;
Ne pas inclure le symbole préfixe {{code|$}} provoque une erreur de syntaxe.&lt;br /&gt;
&lt;br /&gt;
*Utiliser {{code|$rax}} renvoie la valeur de registre en hex.&lt;br /&gt;
*Utiliser {{code|$rax,d}} renvoie la valeur de registre en décimal.&lt;br /&gt;
&lt;br /&gt;
==Réduction de la consommation mémoire du lieur grâce à Split Dwarf==&lt;br /&gt;
&lt;br /&gt;
{{Note| Split DWARF est uniquement pris en charge sur C++ Windows 64 bits. Cette fonctionnalité réduit la quantité de données à traiter, ce qui entraîne une réduction des erreurs du lieur. Pour plus d’informations sur la gestion des erreurs relatives au lieur, voir [[Gestion des erreurs de mémoire insuffisante|Gestion des erreurs de mémoire insuffisante du lieur]].&lt;br /&gt;
&lt;br /&gt;
{{Product}} 10.4.2 inclut une nouvelle fonctionnalité permettant de réduire la quantité de données devant être traitée par le lieur, tout particulièrement lors de la liaison des applications construites en mode débogage. Cette fonctionnalité appelée DWARF répartit les informations de débogage dans un fichier .dwo distinct (objet DWARF) parallèlement au fichier objet normal contenant le code compilé. Comme le lieur ne lie que le code exécutable et de petites quantité d&#039;informations, la consommation de mémoire est réduite.&lt;br /&gt;
&lt;br /&gt;
{{Note|La fonctionnalité Split Dwarf est désactivée par défaut.}}&lt;br /&gt;
&lt;br /&gt;
===Activation de Split DWARF dans l&#039;EDI ou msbuild===&lt;br /&gt;
&lt;br /&gt;
Ouvrez la boîte de dialogue Options de votre projet C++. Allez à Construction &amp;amp;gt; Compilateur C++ &amp;amp;gt; Débogueur et assurez-vous que la plate-forme cible est définie sur l&#039;une des cibles Windows 64 bits.&lt;br /&gt;
&lt;br /&gt;
#Activez la case à cocher &amp;quot;Utiliser Split DWARF&amp;quot;.&lt;br /&gt;
#Indiquez un dossier pour les fichiers des informations de débogage dans le champ &amp;quot;Répertoire de sortie DWO&amp;quot;. Vous devez indiquer un chemin absolu (cela ne peut pas être un chemin relatif ou un chemin utilisant des variables d&#039;environnement).&lt;br /&gt;
&lt;br /&gt;
Par exemple, &#039;&#039;&#039;c:\myproject\win64debug&#039;&#039;&#039; est correct mais &#039;&#039;&#039;..\win64debug&#039;&#039;&#039; ne l&#039;est pas.&lt;br /&gt;
&lt;br /&gt;
Pour désactiver cette fonctionnalité, décochez la case dans Options de projet &amp;amp;gt; Construction &amp;amp;gt; Compilateur C++ &amp;amp;gt; Débogage.&lt;br /&gt;
Ces paramètres seront utilisés lors de la construction depuis l&#039;EDI ou avec msbuild sur la ligne de commande.&lt;br /&gt;
&lt;br /&gt;
===Activation de Split DWARF depuis la ligne de commande===&lt;br /&gt;
&lt;br /&gt;
Pour activer manuellement Split DWARF sur un build exécuté depuis la ligne de commande, par exemple avec [[BCC64|BCC64]] :&lt;br /&gt;
&lt;br /&gt;
1. Spécifiez le paramètre Split DWARF sur la ligne de commande du compilateur.&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;-enable-split-dwarf&amp;quot;     &lt;br /&gt;
 AND     &lt;br /&gt;
 &amp;quot;-split-dwarf-file AFilename.dwo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Le compilateur crée alors le fichier AFilename.dwo et indique l&#039;emplacement de ce fichier .dwo dans le fichier objet .o. Notez toutefois le fichier .dwo ne contient pas les informations de débogage.&lt;br /&gt;
&lt;br /&gt;
2. Utilisez &amp;quot;-dwo-dir &amp;amp;lt;répertoire&amp;amp;gt;&amp;quot; pour spécifier le répertoire dans lequel le compilateur écrit le fichier .dwo. Assurez-vous que c&#039;est un chemin absolu.&lt;br /&gt;
&lt;br /&gt;
3. Exécutez l&#039;outil objcopy.exe sur le fichier .o. Cette action provoque la suppression des sections dwarf du fichier objet (.o) normal et les place dans un fichier .dwo distinct. Cela doit être effectué pour chaque objet (fichier .o) et correspondre au nom que vous avez spécifié à &#039;&#039;&#039;l&#039;étape 1&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 objcopy --split-dwo=AFilename.dwo AFilename.o&lt;br /&gt;
&lt;br /&gt;
4. Pour finir, effectuez la liaison des fichiers .o afin de créer votre EXE ou DLL comme vous le feriez normalement (cette étape n&#039;est pas modifiée). Les fichiers seront plus petits que d&#039;habitude car ils contiennent moins d&#039;informations de débogage. Chaque objet contient le nom et l&#039;emplacement du fichier .dwo. Comme décrit à l&#039;étape 2, l&#039;emplacement correspond à votre propre machine et doit être un chemin absolu.&lt;br /&gt;
&lt;br /&gt;
====Problème de chargement des informations de débogage lors de l&#039;utilisation de Split DWARF====&lt;br /&gt;
&lt;br /&gt;
Lorsque vous utilisez Split-Dwarf pour le débogage Win64, les fichiers source qui ne se trouvent pas dans le même répertoire que le fichier projet peuvent recevoir des informations de répertoire incorrectes générées dans le fichier objet.  Cela signifie que les symboles contenus dans ces fichiers (types, variables locales et paramètres) ne seront pas disponibles. Ce comportement peut être remarqué lors du débogage. En effet, les points bleus qui apparaissent dans l&#039;éditeur pour indiquer les numéros de ligne sont visibles. Vous pourrez placer un point d&#039;arrêt mais ne serez pas en mesure d&#039;évaluer ou d&#039;inspecter des expressions ou des symboles.&lt;br /&gt;
&lt;br /&gt;
Pour contourner ce problème, spécifiez un chemin absolu dans le champ &amp;quot;Répertoire de sortie DWO&amp;quot; dans la page des options de projet {{Menu|Compilateur C++ &amp;amp;gt; Débogage &amp;amp;gt; Utiliser Split Dwarf}} ou utilisez l&#039;option -dwo-dir si vous construisez depuis la ligne de commande. Voir ci-dessus pour des informations sur ces paramètres.&lt;br /&gt;
&lt;br /&gt;
==Evaluation d&#039;appels de fonction tels que strcmp()==&lt;br /&gt;
&lt;br /&gt;
L&#039;évaluation d&#039;un appel de fonction tel que strcmp(str, &amp;quot;ABC&amp;quot;) peut renvoyer une erreur comme suit :&lt;br /&gt;
&lt;br /&gt;
 #include &amp;amp;lt;system.hpp&amp;amp;gt;&lt;br /&gt;
 int main()&lt;br /&gt;
 { &lt;br /&gt;
     char *str = &amp;quot;ABC&amp;quot;;&lt;br /&gt;
     return strcmp(str, &amp;quot;ABC&amp;quot;); &lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 error: &#039;strcmp&#039; has unknown return type; cast the call to its declared return type&lt;br /&gt;
 error: 1 errors parsing expression&lt;br /&gt;
&lt;br /&gt;
Dans la fenêtre [[Evaluer/Modifier|Evaluer/Modifier]], vous devez transtyper le type de retour pour strcmp() :&lt;br /&gt;
&lt;br /&gt;
    (int) strcmp(str, &amp;quot;ABC&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Voir [[Strcmp, mbscmp, wcscmp|strcmp, _mbscmp, wcscmp]].&lt;br /&gt;
&lt;br /&gt;
{{Note| Si vous rencontrez des problèmes de débogage, l&#039;équipe Support peut vous demander de fournir les journaux de débogage. A cet égard, consultez comment [[Activer les journaux de consignation pour les débogueurs RAD Studio|activer les journaux de consignation pour les débogueurs {{Product}}]].}}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Présentation du débogage|Présentation du débogage]]&lt;br /&gt;
*[[Débogage des applications - Index|Comment utiliser le débogueur]]&lt;br /&gt;
*[[Débogage des applications multi-périphériques|Débogage des applications multi-périphériques]]&lt;br /&gt;
*[[Différences C++ Builder Windows 64 bits|Différences C++ Builder Windows 64 bits]]&lt;br /&gt;
*[[Gestion des erreurs de mémoire insuffisante|Gestion des erreurs de mémoire insuffisante du lieur]]&lt;br /&gt;
*[[Mise à niveau des projets C++ existants vers Windows 64 bits|Mise à niveau des projets C++ existants vers Windows 64 bits]]&lt;br /&gt;
*[[Compilateurs C++ plus stricts (compilateurs C++ améliorés par Clang)|Compilateurs C++ plus stricts (compilateurs C++ améliorés par Clang)]]&lt;br /&gt;
*[[Evaluer/Modifier|Evaluer/Modifier]]&lt;br /&gt;
*[[Extensions des fichiers générés par RAD Studio|Extensions des fichiers générés par RAD Studio]]&lt;br /&gt;
&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:XE3]]&lt;br /&gt;
[[Category:64 bits]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=BCC32C&amp;diff=218916</id>
		<title>BCC32C</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=BCC32C&amp;diff=218916"/>
		<updated>2026-05-09T03:34:53Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : 1 révision importée : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Compilateurs C++ améliorés par Clang}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BCC32C&#039;&#039;&#039; est un compilateur C++ de {{Product}} pour Windows 32 bits. {{Product}} fournit BCC32C comme une alternative facultative à [[BCC32|BCC32]], qui fait partie de la génération précédente des compilateurs C++ pour Windows 32 bits.&lt;br /&gt;
&lt;br /&gt;
BCC32C est basé sur Clang. Voir &#039;&#039;&#039;[[Compilateurs C++ améliorés par Clang|Compilateurs C++ améliorés par Clang]]&#039;&#039;&#039; pour connaître les points communs entre le compilateur BCC32C et les autres compilateurs C++ améliorés par Clang.&lt;br /&gt;
&lt;br /&gt;
{{Note|Pour Windows 64 bits, utilisez [[BCC64|BCC64]] et [[BCC64X|BCC64X]].}}&lt;br /&gt;
&lt;br /&gt;
==Informations générales==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Champ&lt;br /&gt;
!Valeur&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Version de Clang&lt;br /&gt;
|5,0&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Version de LLVM&lt;br /&gt;
|5,0&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Conventions d&#039;appel&lt;br /&gt;
|&lt;br /&gt;
*MSVC __fastcall&lt;br /&gt;
*C&lt;br /&gt;
*Pascal&lt;br /&gt;
*Registre&lt;br /&gt;
*Appel standard&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Substantypage&lt;br /&gt;
|[http://www.uclibc.org/docs/psABI-ia64.pdf Itanium (EN)]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Bibliothèque standard&lt;br /&gt;
|[[Bibliothèque C++ standard Dinkumware|Dinkumware]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Bibliothèques supplémentaires&lt;br /&gt;
|[http://compiler-rt.llvm.org/ compiler-rt]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Fichiers de sortie==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Type de fichier&lt;br /&gt;
!Extension de fichier&lt;br /&gt;
!Format de fichier&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Exécutable&lt;br /&gt;
|{{Path|.exe}}&lt;br /&gt;
|[[Wikipedia:Portable Executable|PE32 (EN)]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Bibliothèque partagée&lt;br /&gt;
|{{Path|.dll}}&lt;br /&gt;
|[[Wikipedia:Portable Executable|PE32 (EN)]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Bibliothèque statique&lt;br /&gt;
|{{Path|.lib}}&lt;br /&gt;
|[[Wikipedia:Relocatable Object Module Format|OMF (EN)]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Objet compilé&lt;br /&gt;
|{{Path|.obj}}&lt;br /&gt;
|[[Wikipedia:Relocatable Object Module Format|OMF (EN)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comment activer BCC32C==&lt;br /&gt;
&lt;br /&gt;
[[BCC32C|BCC32C]] ne remplace pas [[BCC32|BCC32]], {{product}} vous offre la possibilité d&#039;utiliser le compilateur de votre choix pour chacun de vos projets. [[BCC32C|BCC32C]] est le compilateur C++ par défaut pour Windows 32 bits.&lt;br /&gt;
&lt;br /&gt;
Pour activer le [[Compilateurs C++ améliorés par Clang|compilateur amélioré par Clang]] pour un projet spécifique, sélectionnez {{Menu|Projet &amp;amp;gt; Options &amp;amp;gt; [[Compilateur C++|Compilateur C++]]}} et désélectionnez l&#039;option &#039;&#039;&#039;Utiliser le compilateur Borland &#039;classique&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Ecriture du code C++ pour BCC32C==&lt;br /&gt;
&lt;br /&gt;
Pour écrire du code C++ spécifiquement pour BCC32C, utilisez :&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#if defined(__BORLANDC__) &amp;amp;&amp;amp; defined(__clang__) &amp;amp;&amp;amp; defined(_WIN32) &amp;amp;&amp;amp; !defined(_WIN64)&lt;br /&gt;
    // Your code.&lt;br /&gt;
#endif&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour plus d&#039;informations, voir [[Compilateurs C++ améliorés par Clang#Macros prédéfinies|Compilateurs C++ améliorés par Clang, Macros prédéfinies]].&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Fonctionnalités du C++ moderne prises en charge par les compilateurs C++ améliorés par Clang de RAD Studio|Supported Modern C++ Features]]&lt;br /&gt;
*[[Différences entre les compilateurs C++ améliorés par Clang et les compilateurs C++ de précédente génération|Différences entre les compilateurs C++ améliorés psr Clang et les compilateurs C++ de précédente génération]]&lt;br /&gt;
*[[Options non prises en charge par les compilateurs C++ améliorés par Clang|Options non prises en charge par les compilateurs C++ améliorés par Clang]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Seattle]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=BCC32C&amp;diff=218915</id>
		<title>BCC32C</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=BCC32C&amp;diff=218915"/>
		<updated>2026-05-09T03:34:53Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Compilateurs C++ améliorés par Clang}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BCC32C&#039;&#039;&#039; est un compilateur C++ de {{Product}} pour Windows 32 bits. {{Product}} fournit BCC32C comme une alternative facultative à [[BCC32|BCC32]], qui fait partie de la génération précédente des compilateurs C++ pour Windows 32 bits.&lt;br /&gt;
&lt;br /&gt;
BCC32C est basé sur Clang. Voir &#039;&#039;&#039;[[Compilateurs C++ améliorés par Clang|Compilateurs C++ améliorés par Clang]]&#039;&#039;&#039; pour connaître les points communs entre le compilateur BCC32C et les autres compilateurs C++ améliorés par Clang.&lt;br /&gt;
&lt;br /&gt;
{{Note|Pour Windows 64 bits, utilisez [[BCC64|BCC64]] et [[BCC64X|BCC64X]].}}&lt;br /&gt;
&lt;br /&gt;
==Informations générales==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Champ&lt;br /&gt;
!Valeur&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Version de Clang&lt;br /&gt;
|5,0&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Version de LLVM&lt;br /&gt;
|5,0&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Conventions d&#039;appel&lt;br /&gt;
|&lt;br /&gt;
*MSVC __fastcall&lt;br /&gt;
*C&lt;br /&gt;
*Pascal&lt;br /&gt;
*Registre&lt;br /&gt;
*Appel standard&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Substantypage&lt;br /&gt;
|[http://www.uclibc.org/docs/psABI-ia64.pdf Itanium (EN)]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Bibliothèque standard&lt;br /&gt;
|[[Bibliothèque C++ standard Dinkumware|Dinkumware]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Bibliothèques supplémentaires&lt;br /&gt;
|[http://compiler-rt.llvm.org/ compiler-rt]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Fichiers de sortie==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Type de fichier&lt;br /&gt;
!Extension de fichier&lt;br /&gt;
!Format de fichier&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Exécutable&lt;br /&gt;
|{{Path|.exe}}&lt;br /&gt;
|[[Wikipedia:Portable Executable|PE32 (EN)]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Bibliothèque partagée&lt;br /&gt;
|{{Path|.dll}}&lt;br /&gt;
|[[Wikipedia:Portable Executable|PE32 (EN)]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Bibliothèque statique&lt;br /&gt;
|{{Path|.lib}}&lt;br /&gt;
|[[Wikipedia:Relocatable Object Module Format|OMF (EN)]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Objet compilé&lt;br /&gt;
|{{Path|.obj}}&lt;br /&gt;
|[[Wikipedia:Relocatable Object Module Format|OMF (EN)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Comment activer BCC32C==&lt;br /&gt;
&lt;br /&gt;
[[BCC32C|BCC32C]] ne remplace pas [[BCC32|BCC32]], {{product}} vous offre la possibilité d&#039;utiliser le compilateur de votre choix pour chacun de vos projets. [[BCC32C|BCC32C]] est le compilateur C++ par défaut pour Windows 32 bits.&lt;br /&gt;
&lt;br /&gt;
Pour activer le [[Compilateurs C++ améliorés par Clang|compilateur amélioré par Clang]] pour un projet spécifique, sélectionnez {{Menu|Projet &amp;amp;gt; Options &amp;amp;gt; [[Compilateur C++|Compilateur C++]]}} et désélectionnez l&#039;option &#039;&#039;&#039;Utiliser le compilateur Borland &#039;classique&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Ecriture du code C++ pour BCC32C==&lt;br /&gt;
&lt;br /&gt;
Pour écrire du code C++ spécifiquement pour BCC32C, utilisez :&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#if defined(__BORLANDC__) &amp;amp;&amp;amp; defined(__clang__) &amp;amp;&amp;amp; defined(_WIN32) &amp;amp;&amp;amp; !defined(_WIN64)&lt;br /&gt;
    // Your code.&lt;br /&gt;
#endif&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour plus d&#039;informations, voir [[Compilateurs C++ améliorés par Clang#Macros prédéfinies|Compilateurs C++ améliorés par Clang, Macros prédéfinies]].&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Fonctionnalités du C++ moderne prises en charge par les compilateurs C++ améliorés par Clang de RAD Studio|Supported Modern C++ Features]]&lt;br /&gt;
*[[Différences entre les compilateurs C++ améliorés par Clang et les compilateurs C++ de précédente génération|Différences entre les compilateurs C++ améliorés psr Clang et les compilateurs C++ de précédente génération]]&lt;br /&gt;
*[[Options non prises en charge par les compilateurs C++ améliorés par Clang|Options non prises en charge par les compilateurs C++ améliorés par Clang]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Seattle]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=BCC32&amp;diff=218914</id>
		<title>BCC32</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=BCC32&amp;diff=218914"/>
		<updated>2026-05-09T03:34:53Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : 1 révision importée : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Compilateurs C++}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BCC32&#039;&#039;&#039; est le compilateur C++ de {{Product}} pour Windows 32 bits. {{Product}} fournit [[Compilateurs Win32 améliorés par Clang|BCC32C]], un nouveau compilateur C++ pour Windows 32 bits basé sur Clang, en alternative à BCC32.&lt;br /&gt;
&lt;br /&gt;
{{Note|Pour Windows 64 bits, utilisez [[BCC64|BCC64]] et [[BCC64X|BCC64X]].}}&lt;br /&gt;
&lt;br /&gt;
==Informations générales==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Champ&lt;br /&gt;
!Valeur&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[Options de conventions d&#039;appel (BCC32)|Conventions d&#039;appel]]&lt;br /&gt;
|&lt;br /&gt;
*MSVC __fastcall&lt;br /&gt;
*C&lt;br /&gt;
*Pascal&lt;br /&gt;
*Registre&lt;br /&gt;
*Appel standard&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Substantypage&lt;br /&gt;
|Borland&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Bibliothèque standard&lt;br /&gt;
|[[Bibliothèque C++ standard Dinkumware|Dinkumware]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Note|Le compilateur C++ Code Gear classique (BCC32) nécessite le répertoire Include &#039;&#039;dinkumware&#039;&#039;. Pensez à définir la variable BCC32 en ajoutant ce répertoire à &#039;&#039;&#039;Windows-Embarcadero.cmake&#039;&#039;&#039;, en haut du fichier :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
if(BCC32)&lt;br /&gt;
include_directories(SYSTEM &amp;quot;${ROOTDIR}/include/dinkumware&amp;quot;)&lt;br /&gt;
else()&lt;br /&gt;
include_directories(SYSTEM &amp;quot;${ROOTDIR}/include/dinkumware64&amp;quot;)&lt;br /&gt;
endif()&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Fichiers de sortie==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Type de fichier&lt;br /&gt;
!Extension de fichier&lt;br /&gt;
!Format de fichier&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Exécutable&lt;br /&gt;
|{{Path|.exe}}&lt;br /&gt;
|[[Wikipedia:Portable Executable|PE32 (EN)]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Bibliothèque partagée&lt;br /&gt;
|{{Path|.dll}}&lt;br /&gt;
|[[Wikipedia:Portable Executable|PE32 (EN)]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Bibliothèque statique&lt;br /&gt;
|{{Path|.lib}}&lt;br /&gt;
|[[Wikipedia:Relocatable Object Module Format|OMF (EN)]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Objet compilé&lt;br /&gt;
|{{Path|.obj}}&lt;br /&gt;
|[[Wikipedia:Relocatable Object Module Format|OMF (EN)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Ecriture du code C++ pour BCC32==&lt;br /&gt;
&lt;br /&gt;
Pour écrire du code C++ spécifiquement pour BCC32, utilisez :&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#if defined(__BORLANDC__) &amp;amp;&amp;amp; !defined(__clang__) &amp;amp;&amp;amp; defined(_WIN32) &amp;amp;&amp;amp; !defined(_WIN64)&lt;br /&gt;
    // Your code.&lt;br /&gt;
#endif&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations, voir [[Compilateurs C++ améliorés par Clang#Macros prédéfinies|Compilateurs C++ améliorés par Clang, Macros prédéfinies]].&lt;br /&gt;
&lt;br /&gt;
==Rubriques==&lt;br /&gt;
&lt;br /&gt;
*[[Options de conventions d&#039;appel (BCC32)|Options de conventions d&#039;appel (BCC32)]]&lt;br /&gt;
*[[Utilisation des fichiers d&#039;inclusion|Utilisation des fichiers d&#039;inclusion]]&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[BCC32.EXE, le compilateur C++ 32 bits en ligne de commande|BCC32.EXE]]&lt;br /&gt;
*[[Compilateurs Win32 améliorés par Clang|BCC32C]]&lt;br /&gt;
*[[BCC32C.EXE|BCC32C.EXE]]&lt;br /&gt;
*[[Compilateurs Win32 améliorés par Clang|BCC32X]]&lt;br /&gt;
*[[BCC32X.EXE|BCC32X.EXE]]&lt;br /&gt;
*[[BCC64X|BCC64X]]&lt;br /&gt;
*[[Erreurs et avertissements du compilateur (C++) - Index|Erreurs et avertissements du compilateur (C++) - Index]]&lt;br /&gt;
*[[Fonctionnalités C++11 - Index|Fonctionnalités C++11 dans le compilateur Classic]]&lt;br /&gt;
*[[Options de ligne de commande des en-têtes précompilés pour BCC32|Options de ligne de commande des en-têtes précompilés pour BCC32]]&lt;br /&gt;
*[[Compilation d&#039;une application C++ depuis la ligne de commande|Compilation d&#039;une application C++ depuis la ligne de commande]]&lt;br /&gt;
*[[Fichiers de définition de module|Fichiers de définition de module]]&lt;br /&gt;
*[[RLINK32.DLL, le lieur de ressources (C++)|RLINK32.DLL, le lieur de ressources (C++)]]&lt;br /&gt;
*[[BRCC32.EXE, le compilateur de ressources|BRCC32.EXE, le compilateur de ressources]]&lt;br /&gt;
*[[BCC64.EXE, le compilateur C++ Windows 64 bits|BCC64.EXE, le compilateur C++ Windows 64 bits]]&lt;br /&gt;
*[[BCCIOSARM64.EXE, le compilateur C++ pour le périphérique iOS 64 bits|BCCIOSARM64.EXE, le compilateur C++ pour le périphérique iOS 64 bits]]&lt;br /&gt;
*[[BCCAARM.EXE, le compilateur C++ pour Android|BCCAARM.EXE, le compilateur C++ pour Android]]&lt;br /&gt;
*[[Options non prises en charge par les compilateurs C++ améliorés par Clang|Options non prises en charge par les compilateurs C++ améliorés par Clang]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Référence C++]]&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=BCC32&amp;diff=218913</id>
		<title>BCC32</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=BCC32&amp;diff=218913"/>
		<updated>2026-05-09T03:34:52Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Compilateurs C++}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BCC32&#039;&#039;&#039; est le compilateur C++ de {{Product}} pour Windows 32 bits. {{Product}} fournit [[Compilateurs Win32 améliorés par Clang|BCC32C]], un nouveau compilateur C++ pour Windows 32 bits basé sur Clang, en alternative à BCC32.&lt;br /&gt;
&lt;br /&gt;
{{Note|Pour Windows 64 bits, utilisez [[BCC64|BCC64]] et [[BCC64X|BCC64X]].}}&lt;br /&gt;
&lt;br /&gt;
==Informations générales==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Champ&lt;br /&gt;
!Valeur&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[Options de conventions d&#039;appel (BCC32)|Conventions d&#039;appel]]&lt;br /&gt;
|&lt;br /&gt;
*MSVC __fastcall&lt;br /&gt;
*C&lt;br /&gt;
*Pascal&lt;br /&gt;
*Registre&lt;br /&gt;
*Appel standard&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Substantypage&lt;br /&gt;
|Borland&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Bibliothèque standard&lt;br /&gt;
|[[Bibliothèque C++ standard Dinkumware|Dinkumware]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Note|Le compilateur C++ Code Gear classique (BCC32) nécessite le répertoire Include &#039;&#039;dinkumware&#039;&#039;. Pensez à définir la variable BCC32 en ajoutant ce répertoire à &#039;&#039;&#039;Windows-Embarcadero.cmake&#039;&#039;&#039;, en haut du fichier :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
if(BCC32)&lt;br /&gt;
include_directories(SYSTEM &amp;quot;${ROOTDIR}/include/dinkumware&amp;quot;)&lt;br /&gt;
else()&lt;br /&gt;
include_directories(SYSTEM &amp;quot;${ROOTDIR}/include/dinkumware64&amp;quot;)&lt;br /&gt;
endif()&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Fichiers de sortie==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Type de fichier&lt;br /&gt;
!Extension de fichier&lt;br /&gt;
!Format de fichier&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Exécutable&lt;br /&gt;
|{{Path|.exe}}&lt;br /&gt;
|[[Wikipedia:Portable Executable|PE32 (EN)]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Bibliothèque partagée&lt;br /&gt;
|{{Path|.dll}}&lt;br /&gt;
|[[Wikipedia:Portable Executable|PE32 (EN)]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Bibliothèque statique&lt;br /&gt;
|{{Path|.lib}}&lt;br /&gt;
|[[Wikipedia:Relocatable Object Module Format|OMF (EN)]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Objet compilé&lt;br /&gt;
|{{Path|.obj}}&lt;br /&gt;
|[[Wikipedia:Relocatable Object Module Format|OMF (EN)]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Ecriture du code C++ pour BCC32==&lt;br /&gt;
&lt;br /&gt;
Pour écrire du code C++ spécifiquement pour BCC32, utilisez :&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#if defined(__BORLANDC__) &amp;amp;&amp;amp; !defined(__clang__) &amp;amp;&amp;amp; defined(_WIN32) &amp;amp;&amp;amp; !defined(_WIN64)&lt;br /&gt;
    // Your code.&lt;br /&gt;
#endif&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations, voir [[Compilateurs C++ améliorés par Clang#Macros prédéfinies|Compilateurs C++ améliorés par Clang, Macros prédéfinies]].&lt;br /&gt;
&lt;br /&gt;
==Rubriques==&lt;br /&gt;
&lt;br /&gt;
*[[Options de conventions d&#039;appel (BCC32)|Options de conventions d&#039;appel (BCC32)]]&lt;br /&gt;
*[[Utilisation des fichiers d&#039;inclusion|Utilisation des fichiers d&#039;inclusion]]&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[BCC32.EXE, le compilateur C++ 32 bits en ligne de commande|BCC32.EXE]]&lt;br /&gt;
*[[Compilateurs Win32 améliorés par Clang|BCC32C]]&lt;br /&gt;
*[[BCC32C.EXE|BCC32C.EXE]]&lt;br /&gt;
*[[Compilateurs Win32 améliorés par Clang|BCC32X]]&lt;br /&gt;
*[[BCC32X.EXE|BCC32X.EXE]]&lt;br /&gt;
*[[BCC64X|BCC64X]]&lt;br /&gt;
*[[Erreurs et avertissements du compilateur (C++) - Index|Erreurs et avertissements du compilateur (C++) - Index]]&lt;br /&gt;
*[[Fonctionnalités C++11 - Index|Fonctionnalités C++11 dans le compilateur Classic]]&lt;br /&gt;
*[[Options de ligne de commande des en-têtes précompilés pour BCC32|Options de ligne de commande des en-têtes précompilés pour BCC32]]&lt;br /&gt;
*[[Compilation d&#039;une application C++ depuis la ligne de commande|Compilation d&#039;une application C++ depuis la ligne de commande]]&lt;br /&gt;
*[[Fichiers de définition de module|Fichiers de définition de module]]&lt;br /&gt;
*[[RLINK32.DLL, le lieur de ressources (C++)|RLINK32.DLL, le lieur de ressources (C++)]]&lt;br /&gt;
*[[BRCC32.EXE, le compilateur de ressources|BRCC32.EXE, le compilateur de ressources]]&lt;br /&gt;
*[[BCC64.EXE, le compilateur C++ Windows 64 bits|BCC64.EXE, le compilateur C++ Windows 64 bits]]&lt;br /&gt;
*[[BCCIOSARM64.EXE, le compilateur C++ pour le périphérique iOS 64 bits|BCCIOSARM64.EXE, le compilateur C++ pour le périphérique iOS 64 bits]]&lt;br /&gt;
*[[BCCAARM.EXE, le compilateur C++ pour Android|BCCAARM.EXE, le compilateur C++ pour Android]]&lt;br /&gt;
*[[Options non prises en charge par les compilateurs C++ améliorés par Clang|Options non prises en charge par les compilateurs C++ améliorés par Clang]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Référence C++]]&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Compilateurs_C%2B%2B&amp;diff=218912</id>
		<title>Compilateurs C++</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Compilateurs_C%2B%2B&amp;diff=218912"/>
		<updated>2026-05-09T03:34:52Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : 1 révision importée : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Chaînes d&#039;outils C++}}&lt;br /&gt;
&lt;br /&gt;
{{Product}} fournit des compilateurs pour toutes les [[Plates-formes cible prises en charge|plates-formes cible prises en charge]].&lt;br /&gt;
&lt;br /&gt;
Chaque compilateur appartient à l&#039;une des générations de compilateurs suivantes :&lt;br /&gt;
&lt;br /&gt;
*Compilateurs de génération précédente, notamment le compilateur Windows 32 bits {{CBuilder}}, [[BCC32|BCC32]], et les compilateurs avec une base de code similaire.&lt;br /&gt;
*[[Compilateurs C++ améliorés par Clang|Compilateurs améliorés par Clang]], qui sont des compilateurs basés sur le compilateur Clang.&lt;br /&gt;
&lt;br /&gt;
{{Product}} fournit les compilateurs C++ suivants :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Plate-forme&lt;br /&gt;
!Compilateur&lt;br /&gt;
!Génération&lt;br /&gt;
|- valign=&amp;quot;center&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |Windows 32 bits&lt;br /&gt;
|[[Compilateurs Win32 améliorés par Clang|BCC32C]]&lt;br /&gt;
|Clang&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[Compilateurs Win32 améliorés par Clang|BCC32X]]&lt;br /&gt;
|Clang&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[BCC32|BCC32]]&lt;br /&gt;
|Précédente&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Windows 64 bits&lt;br /&gt;
|[[BCC64|BCC64]]&lt;br /&gt;
|Clang&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[BCC64X|BCC64X]]&lt;br /&gt;
|Clang&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|iOS 64 bits&lt;br /&gt;
|[[BCCIOSARM64|BCCIOSARM64]]&lt;br /&gt;
|Clang&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Android&lt;br /&gt;
|[[BCCAARM|BCCAARM]]&lt;br /&gt;
|Clang&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Attention| Lorsque vous utilisez des compilateurs Windows 32 bits pour plusieurs projets C++ interdépendants, le code compilé par l&#039;un des compilateurs ne doit pas être statiquement lié à du code compilé avec un autre compilateur, car ils ne sont pas compatibles au niveau de l&#039;ABI. Pour utiliser deux compilateurs différents, le code doit être dans une DLL distincte et exposer une interface &#039;&#039;&#039;c&#039;&#039;&#039; simple. Dans le cas contraire, vous devrez utiliser un seul compilateur pour pouvoir compiler correctement.}}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
{{f|cmd|&lt;br /&gt;
&lt;br /&gt;
*[[Interfaces de ligne de commande des compilateurs C++|Interfaces de ligne de commande des compilateurs C++]] }}&lt;br /&gt;
*[[Lieurs C++|Lieurs C++]]&lt;br /&gt;
*[[Chaînes d&#039;outils Delphi|Chaînes d&#039;outils {{Delphi}}]]&lt;br /&gt;
&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Compilateurs_C%2B%2B&amp;diff=218911</id>
		<title>Compilateurs C++</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Compilateurs_C%2B%2B&amp;diff=218911"/>
		<updated>2026-05-09T03:34:52Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Chaînes d&#039;outils C++}}&lt;br /&gt;
&lt;br /&gt;
{{Product}} fournit des compilateurs pour toutes les [[Plates-formes cible prises en charge|plates-formes cible prises en charge]].&lt;br /&gt;
&lt;br /&gt;
Chaque compilateur appartient à l&#039;une des générations de compilateurs suivantes :&lt;br /&gt;
&lt;br /&gt;
*Compilateurs de génération précédente, notamment le compilateur Windows 32 bits {{CBuilder}}, [[BCC32|BCC32]], et les compilateurs avec une base de code similaire.&lt;br /&gt;
*[[Compilateurs C++ améliorés par Clang|Compilateurs améliorés par Clang]], qui sont des compilateurs basés sur le compilateur Clang.&lt;br /&gt;
&lt;br /&gt;
{{Product}} fournit les compilateurs C++ suivants :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Plate-forme&lt;br /&gt;
!Compilateur&lt;br /&gt;
!Génération&lt;br /&gt;
|- valign=&amp;quot;center&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |Windows 32 bits&lt;br /&gt;
|[[Compilateurs Win32 améliorés par Clang|BCC32C]]&lt;br /&gt;
|Clang&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[Compilateurs Win32 améliorés par Clang|BCC32X]]&lt;br /&gt;
|Clang&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[BCC32|BCC32]]&lt;br /&gt;
|Précédente&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Windows 64 bits&lt;br /&gt;
|[[BCC64|BCC64]]&lt;br /&gt;
|Clang&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[BCC64X|BCC64X]]&lt;br /&gt;
|Clang&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|iOS 64 bits&lt;br /&gt;
|[[BCCIOSARM64|BCCIOSARM64]]&lt;br /&gt;
|Clang&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Android&lt;br /&gt;
|[[BCCAARM|BCCAARM]]&lt;br /&gt;
|Clang&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Attention| Lorsque vous utilisez des compilateurs Windows 32 bits pour plusieurs projets C++ interdépendants, le code compilé par l&#039;un des compilateurs ne doit pas être statiquement lié à du code compilé avec un autre compilateur, car ils ne sont pas compatibles au niveau de l&#039;ABI. Pour utiliser deux compilateurs différents, le code doit être dans une DLL distincte et exposer une interface &#039;&#039;&#039;c&#039;&#039;&#039; simple. Dans le cas contraire, vous devrez utiliser un seul compilateur pour pouvoir compiler correctement.}}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
{{f|cmd|&lt;br /&gt;
&lt;br /&gt;
*[[Interfaces de ligne de commande des compilateurs C++|Interfaces de ligne de commande des compilateurs C++]] }}&lt;br /&gt;
*[[Lieurs C++|Lieurs C++]]&lt;br /&gt;
*[[Chaînes d&#039;outils Delphi|Chaînes d&#039;outils {{Delphi}}]]&lt;br /&gt;
&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Macros_pr%C3%A9d%C3%A9finies&amp;diff=218910</id>
		<title>Macros prédéfinies</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Macros_pr%C3%A9d%C3%A9finies&amp;diff=218910"/>
		<updated>2026-05-09T03:34:52Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : 1 révision importée : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Le préprocesseur - Index}}&lt;br /&gt;
&lt;br /&gt;
Le compilateur C+ prédéfinit certains identificateurs globaux, connus comme constantes manifestes. La plupart des identificateurs commencent et se terminent par deux caractères de soulignement (__).&lt;br /&gt;
&lt;br /&gt;
{{Note|Par mesure de lisibilité, les caractères de soulignement sont souvent séparés par un espace. Dans votre code source, vous ne devez pas insérer cet espace entre les caractères de soulignement.}}&lt;br /&gt;
&lt;br /&gt;
Pour les macros dont la valeur prend la forme &amp;lt;code&amp;gt;0x0nnn&amp;lt;/code&amp;gt;, le numéro de version (&amp;lt;code&amp;gt;nnn&amp;lt;/code&amp;gt;) est déterminé par le numéro de version de l&#039;exécutable du compilateur C++ associé.  En commençant avec la release XE, vous pouvez vérifier le numéro de version en utilisant l&#039;option &amp;lt;code&amp;gt;--version&amp;lt;/code&amp;gt; sur [[BCC32.EXE, le compilateur C++ 32 bits en ligne de commande|BCC32.EXE]].&lt;br /&gt;
&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;Macro&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Valeur&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__ANDROID__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie seulement dans les compilateurs qui prennent en charge la compilation croisée avec un produit Android en tant que plate-forme cible :&lt;br /&gt;
*[[BCCAARM.EXE, le compilateur C++ pour Android|BCCAARM.EXE, le compilateur C++ pour Android]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__APPLE__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie seulement dans les compilateurs qui supportent la compilation croisée avec un produit Apple en tant que plate-forme cible :&lt;br /&gt;
*[[BCCIOSARM64.EXE, le compilateur C++ pour le périphérique iOS 64 bits|BCCIOSARM64.EXE, le compilateur C++ pour le Périphérique iOS 64 bits]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__arm__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie seulement dans les compilateurs qui supportent la compilation croisée pour l&#039;architecture d&#039;un compilateur 32 bits ARM :&lt;br /&gt;
*[[BCCAARM.EXE, le compilateur C++ pour Android|BCCAARM.EXE, le compilateur C++ pour Android]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__arm64__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie seulement dans les compilateurs qui supportent la compilation croisée pour l&#039;architecture d&#039;un compilateur ARM64 :&lt;br /&gt;
*[[BCCIOSARM64.EXE, le compilateur C++ pour le périphérique iOS 64 bits|BCCIOSARM64.EXE, le compilateur C++ pour le Périphérique iOS 64 bits]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__BCOPT__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie seulement dans les compilateurs qui prennent en charge l&#039;optimisation, par conséquent toujours définie.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__BCPLUSPLUS__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Les valeurs sont listées dans la section [[#Versions du compilateur C++ dans les macros prédéfinies|Versions du compilateur C++]] de cette rubrique.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie si vous avez sélectionné la compilation C++. Cette valeur augmentera dans les prochaines releases.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__BOOL__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Indique que le mot clé &#039;&#039;&#039;bool&#039;&#039;&#039; est accepté.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&amp;lt;span id=&amp;quot;BORLANDC&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;__BORLANDC__&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Les valeurs sont listées dans la section [[#Versions du compilateur C++ dans les macros prédéfinies|Versions du compilateur C++]] de cette rubrique.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Numéro de version.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__CDECL__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie si les conventions d&#039;appel sont définies sur cdecl ; sinon, elle est non définie.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;_CHAR_UNSIGNED&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Non définie par défaut. L&#039;utilisation du commutateur -K pour rendre le caractère par défaut non signé provoque la définition de cette macro. En définitive, l&#039;option -K contrôle la façon dont un &#039;&#039;&#039;char&#039;&#039;&#039; est étendu quand il est converti en &#039;&#039;&#039;int&#039;&#039;&#039;. Par défaut, le compilateur effectue une extension du signe, mais si vous activez _CHAR_UNSIGNED_, il effectue une extension de zéros lors de la conversion en &#039;&#039;&#039;int&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__clang__ &amp;lt;br /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1 &amp;lt;br /&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie si un [[Compilateurs C++ améliorés par Clang|compilateur C++ amélioré sur Clang]] est utilisé.&lt;br /&gt;
Voir [http://clang.llvm.org/docs/LanguageExtensions.html#builtinmacros Clang Builtin Macros].&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__CODEGEARC__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Les valeurs sont listées dans la section [[#Versions du compilateur C++ dans les macros prédéfinies|Versions du compilateur C++]] de cette rubrique.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Numéro de version.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__CODEGEARC_VERSION__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
*Numéro de version majeure : bits 31..24&lt;br /&gt;
*Numéro de version mineure : bits 23..16&lt;br /&gt;
*Numéro de version interne : bits 15..0&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Cette macro interne se développe en un entier qui encode la version majeure et la version mineure du compilateur, ainsi qu&#039;un nombre interne. Voir [[Exemple de macro CODEGEARC VERSION|Exemple de macro CODEGEARC VERSION]].&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__CODEGUARD__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie quand l&#039;une des options CodeGuard du compilateur est utilisée ; sinon, elle est non définie.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__CONSOLE__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Lorsqu&#039;elle est définie, la macro indique que le programme est une application console.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;_CPPUNWIND&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Active le déroulement de la pile. La valeur est true par défaut. Utilisez &#039;&#039;&#039;-xd-&#039;&#039;&#039;!ALink(OSCGExceptions1) pour désactiver cette possibilité.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__cplusplus&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie en mode C++ ; sinon, elle est non définie.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__DATE__ &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Littéral chaîne&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Donne la date du début du traitement du fichier en cours.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__DLL__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie lorsque l&#039;option -WD du compilateur est utilisée ; sinon, elle est non définie.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__FILE__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Littéral chaîne&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Nom du fichier en cours de traitement.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__FLAT__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie lors de la compilation dans un modèle de mémoire linéaire 32 bits.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__FUNC__&#039;&#039;&#039; ou &#039;&#039;&#039;__FUNCTION__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Littéral chaîne&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Nom de la fonction en cours de traitement. [[FUNC|Plus d&#039;informations.]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__LINE__ &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Constante décimale&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Numéro de la ligne en cours de traitement du fichier source en cours.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__MACH__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie seulement dans les compilateurs qui prennent en charge la compilation croisée avec une cible de MAC OSX.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;_M_IX86&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
0x12c&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Toujours définie. La valeur par défaut est 300. Vous pouvez passer la valeur à 400 ou 500 en utilisant l&#039;option de compilateur /4 ou /5.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__MT__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie seulement si l&#039;option -tWM est utilisée. Indique que la bibliothèque multithread doit être liée.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__PASCAL__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie si les conventions d&#039;appel sont définies sur Pascal ; sinon, elle est non définie.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;_PUSHPOP_SUPPORTED&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Toujours définie ; permet aux en-têtes standard Microsoft d&#039;utiliser push et pop pour vérifier si une fonctionnalité est prise en charge.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;_STDCALL_SUPPORTED&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Toujours définie ; définit la convention d&#039;appel stdcall de Microsoft.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__STDC__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie si vous compilez avec l&#039;option de compilateur -A ; sinon, elle est non définie.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__TCPLUSPLUS__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Les valeurs sont listées dans la section [[#Versions du compilateur C++ dans les macros prédéfinies|Versions du compilateur C++]] de cette rubrique.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Numéro de version.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__TEMPLATES__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie à 1 pour les fichiers C++ (ce qui signifie que les templates sont pris en charge) ; sinon, elle est non définie.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__TIME__ &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Littéral chaîne&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Donne l&#039;heure du début du traitement du fichier en cours.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
_&#039;&#039;&#039;_TLS__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Stockage local thread. Toujours true.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
_&#039;&#039;&#039;_TURBOC__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Les valeurs sont listées dans la section [[#Versions du compilateur C++ dans les macros prédéfinies|Versions du compilateur C++]] de cette rubrique.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Valeur qui augmentera dans les prochaines releases.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;_UNICODE&#039;&#039;&#039; et &#039;&#039;&#039;UNICODE&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie pour les programmes C++ qui utilisent la VCL.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;_WCHAR_T&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie seulement pour les programmes C++ pour indiquer que &#039;&#039;&#039;wchar_t&#039;&#039;&#039; est un type de données intrinsèque.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;_WCHAR_T_DEFINED&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie seulement pour les programmes C++ pour indiquer que &#039;&#039;&#039;wchar_t&#039;&#039;&#039; est un type de données intrinsèque.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;_Windows&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie lors de la compilation sur la plate-forme Windows.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&amp;lt;span id=&amp;quot;win32&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;__WIN32__&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie pour les applications console et GUI sur la plate-forme Windows 32 bits. Le compilateur classique définit cette macro comme une macro intégrée. Le compilateur basé sur Clang exige que &#039;&#039;&#039;_defs.h&#039;&#039;&#039; soit inclus, mais ce fichier en-tête est normalement inclus par défaut dans une application standard.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;_WIN64&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie pour les applications console et GUI sur la plate-forme Windows 64 bits.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Notes|&lt;br /&gt;
&lt;br /&gt;
:&lt;br /&gt;
:*Les macros prédéfinies &#039;&#039;&#039;__DATE__&#039;&#039;&#039;, &#039;&#039;&#039;__FILE__ &#039;&#039;&#039;, &#039;&#039;&#039;__FUNC__&#039;&#039;&#039;, &#039;&#039;&#039;__LINE__&#039;&#039;&#039;, &#039;&#039;&#039;__STDC__&#039;&#039;&#039; et &#039;&#039;&#039;__TIME__&#039;&#039;&#039; ne peuvent pas être redéfinies ou non définies.&lt;br /&gt;
:* Pour vérifier la liste des macros définies prises en charge par les compilateurs C++ améliorés par Clang, voir [[Compilateurs C++ améliorés par Clang#Macros prédéfinies|macros prédéfinies]].}}&lt;br /&gt;
&lt;br /&gt;
==Versions du compilateur C++ dans les macros prédéfinies==&lt;br /&gt;
&lt;br /&gt;
Les macros définies pour le compilateur C++ (telles que __CODEGEARC__) ont les numéros de version suivants :&lt;br /&gt;
&lt;br /&gt;
*0x0570 pour {{Product|2006}} {{Version|2006}}.&lt;br /&gt;
*0x0590 pour {{CBuilder|2007}} {{Version|2007}}.&lt;br /&gt;
*0x0591 pour {{CBuilder|2007}} {{Version|2007}} mise à jour 1.&lt;br /&gt;
*0x0592 pour {{Product|2007}} {{Version|2007}}.&lt;br /&gt;
*0x0593 pour {{Product|2007}} {{Version|2007}} Mise à jour de décembre.&lt;br /&gt;
*0x0610 pour {{CBuilder|2009}} {{Version|2009}} et pour {{CBuilder|2009}} {{Version|2009}} Mise à jour 1.&lt;br /&gt;
*0x0620 pour {{CBuilder|2010}} {{Version|2010}} et pour {{CBuilder|2010}} {{Version|2010}}Mise à jour 1.&lt;br /&gt;
*0x0621 pour {{CBuilder|2010}} {{Version|2010}} Mise à jour 2.&lt;br /&gt;
*0x0630 pour {{CBuilder|XE}} {{Version|XE}}.&lt;br /&gt;
*0x0631 pour {{CBuilder|XE}} {{Version|XE}} Mise à jour 1.&lt;br /&gt;
*0x0640 pour {{CBuilder|XE2}} {{Version|XE2}}.&lt;br /&gt;
*0x0650 pour {{CBuilder|XE3}} {{Version|XE3}} et {{CBuilder|XE3}} {{Version|XE3}} Mise à jour 1.&lt;br /&gt;
* 0x0651 pour la mise à jour de Janvier 2013 ([[BCC32|BCC32]]); [[BCC64|BCC64]] est resté sur 0x0650.&lt;br /&gt;
*0x0660 pour {{CBuilder|XE4}} {{Version|XE4}} (BCC32 and BCCOSX); BCC64 est resté à 0x0650.&lt;br /&gt;
* 0x0670 pour {{CBuilder|XE5}} {{Version|XE5}} (BCC32, BCC64 et BCCOSX.&lt;br /&gt;
* 0x0680 pour {{CBuilder|XE6}} {{Version|XE6}} (BCC32, BCC64, BCCOSX et [[BCCAARM|BCCAARM]]). &lt;br /&gt;
* 0x0690 pour {{CBuilder|XE7}} {{Version|XE7}} (BCC32, BCC64, BCCOSX et BCCAARM). &lt;br /&gt;
* 0x0700 pour {{CBuilder|XE8}} {{Version|XE8}} (BCC32, BCC64, BCCOSX, [[BCCIOSARM64|BCCIOSARM64]] et BCCAARM).&lt;br /&gt;
* 0x0710 pour {{CBuilder|Seattle}} {{Version|Seattle}} ([[Compilateurs Win32 améliorés par Clang|BCC32C]], BCC32, BCC64, BCCOSX, BCCIOSARM64 et BCCAARM).&lt;br /&gt;
*0x0711 pour {{CBuilder|Seattle}} {{Version|Seattle}} Subscription Update 1 (BCC32) ; d&#039;autres compilateurs restent à 0x0710.&lt;br /&gt;
* 0x0720 pour {{CBuilder|London}} {{Version|London}} (BCC32C, BCC32, BCC64, BCCOSX, BCCIOSARM64 et BCCAARM).&lt;br /&gt;
* 0x0730 pour {{CBuilder|Godzilla}} {{Version|Godzilla}} (BCC32C, BCC32, BCC64, BCCOSX,  BCCIOSARM64 et BCCAARM).&lt;br /&gt;
* 0x0740 pour {{CBuilder|Rio}} {{Version|Rio}} (BCC32C, BCC32, BCC64, BCCOSX, BCCIOSARM64, BCCAARM et BCC32X).&lt;br /&gt;
* 0x0750 pour C++Builder Sydney (BCC32C, BCC32, BCC64, BCCOSX, BCCIOSARM64, BCCAARM et BCC32X).&lt;br /&gt;
* 0x0760 pour {{CBuilder|Alexandria}} {{Version|Alexandria}} (BCC32C, BCC32, BCC64, BCCOSX, BCCIOSARM, BCCIOSARM64, BCCAARM et BCC32X).&lt;br /&gt;
* 0x0770 pour {{CBuilder|Athens}} {{Version|Athens}} (BCC32C, BCC32, BCC64, BCCOSX, BCCIOSARM, BCCIOSARM64, BCCAARM, BCC32X et [[BCC64X|BCC64X]]).&lt;br /&gt;
* 0x0780 pour {{CBuilder|Florence}} {{Version|Florence}} (BCC32C, BCC32, BCC64, BCCOSX, BCCIOSARM, BCCIOSARM64, BCCAARM, BCC32X, et [[BCC64X|BCC64X]]).&lt;br /&gt;
&lt;br /&gt;
Voir aussi &#039;&#039;&#039;[[Versions du compilateur|Versions du compilateur]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Macros définies ailleurs==&lt;br /&gt;
&lt;br /&gt;
Les macros suivantes sont définies à des fins de compatibilité descendante avec &amp;lt;code&amp;gt;#include System.hpp&amp;lt;/code&amp;gt; :&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;Macro&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Valeur&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;ANSISTRING_AS_TEMPLATE&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Le type AnsiString est défini comme une classe template, [[lib_fr:System.AnsiStringT|AnsiString&amp;lt;T&amp;gt;]].&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;_STRINGCHECKS_OFF&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
(n&#039;est plus prise en charge)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Dans les releases antérieures, les programmes C++ s&#039;attendaient à ce que le compilateur {{Delphi}} ne définisse pas la directive STRINGCHECKS. Le compilateur {{Delphi}} ne prend plus en charge la directive STRINGCHECKS. Ainsi, la macro _STRINGCHECKS_OFF C++ associée est inutile et n&#039;est plus définie. Par conséquent, si vous migrez du code pré-2009 vers la version en cours, vous devez mettre à jour la signature du gestionnaire d&#039;événement (car un gestionnaire d&#039;événement pré-2009 attend AnsiString, alors que l&#039;exécution envoie à présent UnicodeString). Voir [[Unicode dans RAD Studio|Unicode dans RAD Studio]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Utilisation de la barre oblique inversée de poursuite de ligne|Utilisation de la barre oblique inversée de poursuite de ligne]]&lt;br /&gt;
*[[Exemple de macro CODEGEARC VERSION|Exemple de macro __CODEGEARC_VERSION__]]&lt;br /&gt;
*[[FUNC|__FUNC__]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Référence C++]]&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Macros_pr%C3%A9d%C3%A9finies&amp;diff=218909</id>
		<title>Macros prédéfinies</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Macros_pr%C3%A9d%C3%A9finies&amp;diff=218909"/>
		<updated>2026-05-09T03:34:52Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Le préprocesseur - Index}}&lt;br /&gt;
&lt;br /&gt;
Le compilateur C+ prédéfinit certains identificateurs globaux, connus comme constantes manifestes. La plupart des identificateurs commencent et se terminent par deux caractères de soulignement (__).&lt;br /&gt;
&lt;br /&gt;
{{Note|Par mesure de lisibilité, les caractères de soulignement sont souvent séparés par un espace. Dans votre code source, vous ne devez pas insérer cet espace entre les caractères de soulignement.}}&lt;br /&gt;
&lt;br /&gt;
Pour les macros dont la valeur prend la forme &amp;lt;code&amp;gt;0x0nnn&amp;lt;/code&amp;gt;, le numéro de version (&amp;lt;code&amp;gt;nnn&amp;lt;/code&amp;gt;) est déterminé par le numéro de version de l&#039;exécutable du compilateur C++ associé.  En commençant avec la release XE, vous pouvez vérifier le numéro de version en utilisant l&#039;option &amp;lt;code&amp;gt;--version&amp;lt;/code&amp;gt; sur [[BCC32.EXE, le compilateur C++ 32 bits en ligne de commande|BCC32.EXE]].&lt;br /&gt;
&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;Macro&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Valeur&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__ANDROID__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie seulement dans les compilateurs qui prennent en charge la compilation croisée avec un produit Android en tant que plate-forme cible :&lt;br /&gt;
*[[BCCAARM.EXE, le compilateur C++ pour Android|BCCAARM.EXE, le compilateur C++ pour Android]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__APPLE__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie seulement dans les compilateurs qui supportent la compilation croisée avec un produit Apple en tant que plate-forme cible :&lt;br /&gt;
*[[BCCIOSARM64.EXE, le compilateur C++ pour le périphérique iOS 64 bits|BCCIOSARM64.EXE, le compilateur C++ pour le Périphérique iOS 64 bits]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__arm__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie seulement dans les compilateurs qui supportent la compilation croisée pour l&#039;architecture d&#039;un compilateur 32 bits ARM :&lt;br /&gt;
*[[BCCAARM.EXE, le compilateur C++ pour Android|BCCAARM.EXE, le compilateur C++ pour Android]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__arm64__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie seulement dans les compilateurs qui supportent la compilation croisée pour l&#039;architecture d&#039;un compilateur ARM64 :&lt;br /&gt;
*[[BCCIOSARM64.EXE, le compilateur C++ pour le périphérique iOS 64 bits|BCCIOSARM64.EXE, le compilateur C++ pour le Périphérique iOS 64 bits]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__BCOPT__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie seulement dans les compilateurs qui prennent en charge l&#039;optimisation, par conséquent toujours définie.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__BCPLUSPLUS__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Les valeurs sont listées dans la section [[#Versions du compilateur C++ dans les macros prédéfinies|Versions du compilateur C++]] de cette rubrique.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie si vous avez sélectionné la compilation C++. Cette valeur augmentera dans les prochaines releases.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__BOOL__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Indique que le mot clé &#039;&#039;&#039;bool&#039;&#039;&#039; est accepté.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&amp;lt;span id=&amp;quot;BORLANDC&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;__BORLANDC__&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Les valeurs sont listées dans la section [[#Versions du compilateur C++ dans les macros prédéfinies|Versions du compilateur C++]] de cette rubrique.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Numéro de version.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__CDECL__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie si les conventions d&#039;appel sont définies sur cdecl ; sinon, elle est non définie.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;_CHAR_UNSIGNED&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Non définie par défaut. L&#039;utilisation du commutateur -K pour rendre le caractère par défaut non signé provoque la définition de cette macro. En définitive, l&#039;option -K contrôle la façon dont un &#039;&#039;&#039;char&#039;&#039;&#039; est étendu quand il est converti en &#039;&#039;&#039;int&#039;&#039;&#039;. Par défaut, le compilateur effectue une extension du signe, mais si vous activez _CHAR_UNSIGNED_, il effectue une extension de zéros lors de la conversion en &#039;&#039;&#039;int&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__clang__ &amp;lt;br /&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1 &amp;lt;br /&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie si un [[Compilateurs C++ améliorés par Clang|compilateur C++ amélioré sur Clang]] est utilisé.&lt;br /&gt;
Voir [http://clang.llvm.org/docs/LanguageExtensions.html#builtinmacros Clang Builtin Macros].&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__CODEGEARC__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Les valeurs sont listées dans la section [[#Versions du compilateur C++ dans les macros prédéfinies|Versions du compilateur C++]] de cette rubrique.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Numéro de version.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__CODEGEARC_VERSION__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
*Numéro de version majeure : bits 31..24&lt;br /&gt;
*Numéro de version mineure : bits 23..16&lt;br /&gt;
*Numéro de version interne : bits 15..0&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Cette macro interne se développe en un entier qui encode la version majeure et la version mineure du compilateur, ainsi qu&#039;un nombre interne. Voir [[Exemple de macro CODEGEARC VERSION|Exemple de macro CODEGEARC VERSION]].&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__CODEGUARD__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie quand l&#039;une des options CodeGuard du compilateur est utilisée ; sinon, elle est non définie.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__CONSOLE__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Lorsqu&#039;elle est définie, la macro indique que le programme est une application console.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;_CPPUNWIND&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Active le déroulement de la pile. La valeur est true par défaut. Utilisez &#039;&#039;&#039;-xd-&#039;&#039;&#039;!ALink(OSCGExceptions1) pour désactiver cette possibilité.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__cplusplus&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie en mode C++ ; sinon, elle est non définie.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__DATE__ &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Littéral chaîne&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Donne la date du début du traitement du fichier en cours.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__DLL__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie lorsque l&#039;option -WD du compilateur est utilisée ; sinon, elle est non définie.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__FILE__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Littéral chaîne&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Nom du fichier en cours de traitement.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__FLAT__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie lors de la compilation dans un modèle de mémoire linéaire 32 bits.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__FUNC__&#039;&#039;&#039; ou &#039;&#039;&#039;__FUNCTION__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Littéral chaîne&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Nom de la fonction en cours de traitement. [[FUNC|Plus d&#039;informations.]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__LINE__ &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Constante décimale&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Numéro de la ligne en cours de traitement du fichier source en cours.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__MACH__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie seulement dans les compilateurs qui prennent en charge la compilation croisée avec une cible de MAC OSX.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;_M_IX86&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
0x12c&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Toujours définie. La valeur par défaut est 300. Vous pouvez passer la valeur à 400 ou 500 en utilisant l&#039;option de compilateur /4 ou /5.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__MT__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie seulement si l&#039;option -tWM est utilisée. Indique que la bibliothèque multithread doit être liée.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__PASCAL__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie si les conventions d&#039;appel sont définies sur Pascal ; sinon, elle est non définie.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;_PUSHPOP_SUPPORTED&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Toujours définie ; permet aux en-têtes standard Microsoft d&#039;utiliser push et pop pour vérifier si une fonctionnalité est prise en charge.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;_STDCALL_SUPPORTED&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Toujours définie ; définit la convention d&#039;appel stdcall de Microsoft.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__STDC__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie si vous compilez avec l&#039;option de compilateur -A ; sinon, elle est non définie.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__TCPLUSPLUS__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Les valeurs sont listées dans la section [[#Versions du compilateur C++ dans les macros prédéfinies|Versions du compilateur C++]] de cette rubrique.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Numéro de version.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__TEMPLATES__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie à 1 pour les fichiers C++ (ce qui signifie que les templates sont pris en charge) ; sinon, elle est non définie.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;__TIME__ &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Littéral chaîne&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Donne l&#039;heure du début du traitement du fichier en cours.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
_&#039;&#039;&#039;_TLS__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Stockage local thread. Toujours true.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
_&#039;&#039;&#039;_TURBOC__&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Les valeurs sont listées dans la section [[#Versions du compilateur C++ dans les macros prédéfinies|Versions du compilateur C++]] de cette rubrique.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Valeur qui augmentera dans les prochaines releases.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;_UNICODE&#039;&#039;&#039; et &#039;&#039;&#039;UNICODE&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie pour les programmes C++ qui utilisent la VCL.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;_WCHAR_T&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie seulement pour les programmes C++ pour indiquer que &#039;&#039;&#039;wchar_t&#039;&#039;&#039; est un type de données intrinsèque.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;_WCHAR_T_DEFINED&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie seulement pour les programmes C++ pour indiquer que &#039;&#039;&#039;wchar_t&#039;&#039;&#039; est un type de données intrinsèque.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;_Windows&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie lors de la compilation sur la plate-forme Windows.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&amp;lt;span id=&amp;quot;win32&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;__WIN32__&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie pour les applications console et GUI sur la plate-forme Windows 32 bits. Le compilateur classique définit cette macro comme une macro intégrée. Le compilateur basé sur Clang exige que &#039;&#039;&#039;_defs.h&#039;&#039;&#039; soit inclus, mais ce fichier en-tête est normalement inclus par défaut dans une application standard.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;_WIN64&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; |&lt;br /&gt;
1&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définie pour les applications console et GUI sur la plate-forme Windows 64 bits.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Notes|&lt;br /&gt;
&lt;br /&gt;
:&lt;br /&gt;
:*Les macros prédéfinies &#039;&#039;&#039;__DATE__&#039;&#039;&#039;, &#039;&#039;&#039;__FILE__ &#039;&#039;&#039;, &#039;&#039;&#039;__FUNC__&#039;&#039;&#039;, &#039;&#039;&#039;__LINE__&#039;&#039;&#039;, &#039;&#039;&#039;__STDC__&#039;&#039;&#039; et &#039;&#039;&#039;__TIME__&#039;&#039;&#039; ne peuvent pas être redéfinies ou non définies.&lt;br /&gt;
:* Pour vérifier la liste des macros définies prises en charge par les compilateurs C++ améliorés par Clang, voir [[Compilateurs C++ améliorés par Clang#Macros prédéfinies|macros prédéfinies]].}}&lt;br /&gt;
&lt;br /&gt;
==Versions du compilateur C++ dans les macros prédéfinies==&lt;br /&gt;
&lt;br /&gt;
Les macros définies pour le compilateur C++ (telles que __CODEGEARC__) ont les numéros de version suivants :&lt;br /&gt;
&lt;br /&gt;
*0x0570 pour {{Product|2006}} {{Version|2006}}.&lt;br /&gt;
*0x0590 pour {{CBuilder|2007}} {{Version|2007}}.&lt;br /&gt;
*0x0591 pour {{CBuilder|2007}} {{Version|2007}} mise à jour 1.&lt;br /&gt;
*0x0592 pour {{Product|2007}} {{Version|2007}}.&lt;br /&gt;
*0x0593 pour {{Product|2007}} {{Version|2007}} Mise à jour de décembre.&lt;br /&gt;
*0x0610 pour {{CBuilder|2009}} {{Version|2009}} et pour {{CBuilder|2009}} {{Version|2009}} Mise à jour 1.&lt;br /&gt;
*0x0620 pour {{CBuilder|2010}} {{Version|2010}} et pour {{CBuilder|2010}} {{Version|2010}}Mise à jour 1.&lt;br /&gt;
*0x0621 pour {{CBuilder|2010}} {{Version|2010}} Mise à jour 2.&lt;br /&gt;
*0x0630 pour {{CBuilder|XE}} {{Version|XE}}.&lt;br /&gt;
*0x0631 pour {{CBuilder|XE}} {{Version|XE}} Mise à jour 1.&lt;br /&gt;
*0x0640 pour {{CBuilder|XE2}} {{Version|XE2}}.&lt;br /&gt;
*0x0650 pour {{CBuilder|XE3}} {{Version|XE3}} et {{CBuilder|XE3}} {{Version|XE3}} Mise à jour 1.&lt;br /&gt;
* 0x0651 pour la mise à jour de Janvier 2013 ([[BCC32|BCC32]]); [[BCC64|BCC64]] est resté sur 0x0650.&lt;br /&gt;
*0x0660 pour {{CBuilder|XE4}} {{Version|XE4}} (BCC32 and BCCOSX); BCC64 est resté à 0x0650.&lt;br /&gt;
* 0x0670 pour {{CBuilder|XE5}} {{Version|XE5}} (BCC32, BCC64 et BCCOSX.&lt;br /&gt;
* 0x0680 pour {{CBuilder|XE6}} {{Version|XE6}} (BCC32, BCC64, BCCOSX et [[BCCAARM|BCCAARM]]). &lt;br /&gt;
* 0x0690 pour {{CBuilder|XE7}} {{Version|XE7}} (BCC32, BCC64, BCCOSX et BCCAARM). &lt;br /&gt;
* 0x0700 pour {{CBuilder|XE8}} {{Version|XE8}} (BCC32, BCC64, BCCOSX, [[BCCIOSARM64|BCCIOSARM64]] et BCCAARM).&lt;br /&gt;
* 0x0710 pour {{CBuilder|Seattle}} {{Version|Seattle}} ([[Compilateurs Win32 améliorés par Clang|BCC32C]], BCC32, BCC64, BCCOSX, BCCIOSARM64 et BCCAARM).&lt;br /&gt;
*0x0711 pour {{CBuilder|Seattle}} {{Version|Seattle}} Subscription Update 1 (BCC32) ; d&#039;autres compilateurs restent à 0x0710.&lt;br /&gt;
* 0x0720 pour {{CBuilder|London}} {{Version|London}} (BCC32C, BCC32, BCC64, BCCOSX, BCCIOSARM64 et BCCAARM).&lt;br /&gt;
* 0x0730 pour {{CBuilder|Godzilla}} {{Version|Godzilla}} (BCC32C, BCC32, BCC64, BCCOSX,  BCCIOSARM64 et BCCAARM).&lt;br /&gt;
* 0x0740 pour {{CBuilder|Rio}} {{Version|Rio}} (BCC32C, BCC32, BCC64, BCCOSX, BCCIOSARM64, BCCAARM et BCC32X).&lt;br /&gt;
* 0x0750 pour C++Builder Sydney (BCC32C, BCC32, BCC64, BCCOSX, BCCIOSARM64, BCCAARM et BCC32X).&lt;br /&gt;
* 0x0760 pour {{CBuilder|Alexandria}} {{Version|Alexandria}} (BCC32C, BCC32, BCC64, BCCOSX, BCCIOSARM, BCCIOSARM64, BCCAARM et BCC32X).&lt;br /&gt;
* 0x0770 pour {{CBuilder|Athens}} {{Version|Athens}} (BCC32C, BCC32, BCC64, BCCOSX, BCCIOSARM, BCCIOSARM64, BCCAARM, BCC32X et [[BCC64X|BCC64X]]).&lt;br /&gt;
* 0x0780 pour {{CBuilder|Florence}} {{Version|Florence}} (BCC32C, BCC32, BCC64, BCCOSX, BCCIOSARM, BCCIOSARM64, BCCAARM, BCC32X, et [[BCC64X|BCC64X]]).&lt;br /&gt;
&lt;br /&gt;
Voir aussi &#039;&#039;&#039;[[Versions du compilateur|Versions du compilateur]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Macros définies ailleurs==&lt;br /&gt;
&lt;br /&gt;
Les macros suivantes sont définies à des fins de compatibilité descendante avec &amp;lt;code&amp;gt;#include System.hpp&amp;lt;/code&amp;gt; :&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;Macro&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Valeur&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;ANSISTRING_AS_TEMPLATE&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Le type AnsiString est défini comme une classe template, [[lib_fr:System.AnsiStringT|AnsiString&amp;lt;T&amp;gt;]].&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
&#039;&#039;&#039;_STRINGCHECKS_OFF&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
(n&#039;est plus prise en charge)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Dans les releases antérieures, les programmes C++ s&#039;attendaient à ce que le compilateur {{Delphi}} ne définisse pas la directive STRINGCHECKS. Le compilateur {{Delphi}} ne prend plus en charge la directive STRINGCHECKS. Ainsi, la macro _STRINGCHECKS_OFF C++ associée est inutile et n&#039;est plus définie. Par conséquent, si vous migrez du code pré-2009 vers la version en cours, vous devez mettre à jour la signature du gestionnaire d&#039;événement (car un gestionnaire d&#039;événement pré-2009 attend AnsiString, alors que l&#039;exécution envoie à présent UnicodeString). Voir [[Unicode dans RAD Studio|Unicode dans RAD Studio]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Utilisation de la barre oblique inversée de poursuite de ligne|Utilisation de la barre oblique inversée de poursuite de ligne]]&lt;br /&gt;
*[[Exemple de macro CODEGEARC VERSION|Exemple de macro __CODEGEARC_VERSION__]]&lt;br /&gt;
*[[FUNC|__FUNC__]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Référence C++]]&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Statut_de_conformit%C3%A9_des_fonctionnalit%C3%A9s_du_langage_C%2B%2B_moderne&amp;diff=218908</id>
		<title>Statut de conformité des fonctionnalités du langage C++ moderne</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Statut_de_conformit%C3%A9_des_fonctionnalit%C3%A9s_du_langage_C%2B%2B_moderne&amp;diff=218908"/>
		<updated>2026-05-09T03:34:52Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : 1 révision importée : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|C++ moderne}}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici ci-dessous la liste des fonctionnalités du C++ moderne qui sont prises en charge par les [[Compilateurs C++|compilateurs C++ de {{Product}}]].&lt;br /&gt;
&lt;br /&gt;
==Fonctionnalités C++2c==&lt;br /&gt;
&lt;br /&gt;
{{Note| &amp;lt;code&amp;gt;C++2c&amp;lt;/code&amp;gt; devrait correspondre à C++26.}}&lt;br /&gt;
{{Note|[[BCC64X|BCC64X]] est actuellement en version préliminaire (Preview). Les informations ci-dessous correspondent à un objectif non testé et ne garantissent pas la prise en charge dans la version finale. BCC64X utilise C++17 comme niveau de langage par défaut, et la version initiale n&#039;est pas censée prendre en charge des langages de niveau supérieur. Pour compiler en C++2c, exécutez bcc64x avec &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;-std=c++2c&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.}}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Fonctionnalité&lt;br /&gt;
! Document de proposition C++ 2c&lt;br /&gt;
! style=&amp;quot;padding: 0px 5px;&amp;quot; |[[Compilateurs Win32 améliorés par Clang|BCC32C/X]]&lt;br /&gt;
! style=&amp;quot;padding: 0px 5px;&amp;quot; |[[BCC64|BCC64]]&lt;br /&gt;
! style=&amp;quot;padding: 0px 5px;&amp;quot; |[[BCC64X|BCC64X]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; | Supprimer le comportement non défini lors de l’analyse lexicale&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[https://wg21.link/P2621R2 P2621R2]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; | Rendre les littéraux de chaîne non encodables mal formés&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[https://wg21.link/P1854R4 P1854R4]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; | Chaînes non évaluées&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[https://wg21.link/P2361R6 P2361R6]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; | Ajouter @, $, et ` à l&#039;ensemble de caractères de base&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[https://wg21.link/P2558R2 P2558R2]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; | Transtyper constexpr à partir de void*&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[https://wg21.link/P2738R1 P2738R1]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; | Ignorabilité des attributs standard&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[https://wg21.link/P2552R3 P2552R3]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; | Stockage statique pour les initialisateurs entre accolades&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[https://wg21.link/P2752R3 P2752R3]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; | Messages static_assert générés par l&#039;utilisateur&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[https://wg21.link/P2741R3 P2741R3]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; | Variables de remplacement sans nom&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[https://wg21.link/P2169R4 P2169R4]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fonctionnalités C++23==&lt;br /&gt;
&lt;br /&gt;
{{Note| C+23 est partiellement pris en charge par la version de Clang sur laquelle [[BCC64X|BCC64X]] est basé, ainsi que par les bibliothèques C+ RTL et STL (libc+) qu&#039;il utilise. Toutes les fonctionnalités de langage prises en charge par [https://clang.llvm.org/cxx_status.html Clang] et par [https://libcxx.llvm.org/Status/Cxx23.html libc+] dans les versions 15 et antérieures devraient être prises en charge et fonctionner correctement. Mais, il convient de nuancer cela par les restrictions propres à une version préliminaire (Preview). En effet, aucune prise en charge officielle n&#039;est garantie. Le compilateur [[BCC64X|BCC64X]] visant actuellement C+17 comme standard de langage, vous pouvez utiliser &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;-std=c++23&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; pour modifier le niveau de conformité du langage cible. }}&lt;br /&gt;
&lt;br /&gt;
==Fonctionnalités C++20==&lt;br /&gt;
&lt;br /&gt;
{{Note| C+20 est partiellement pris en charge par la version de Clang sur laquelle [[BCC64X|BCC64X]] est basé, ainsi que par les bibliothèques C+ RTL et STL (libc+) qu&#039;il utilise. Toutes les fonctionnalités de langage prises en charge par [https://clang.llvm.org/cxx_status.html Clang] et par [https://libcxx.llvm.org/Status/Cxx20.html libc+] dans les versions 15 et antérieures devraient être prises en charge et fonctionner correctement. Mais, il convient de nuancer cela par les restrictions propres à une version préliminaire (Preview). En effet, aucune prise en charge officielle n&#039;est garantie. Le compilateur [[BCC64X|BCC64X]] visant actuellement C+17 comme standard de langage, vous pouvez utiliser &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;-std=c++20&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; pour modifier le niveau de conformité du langage cible. }}&lt;br /&gt;
&lt;br /&gt;
==Fonctionnalités C++17==&lt;br /&gt;
&lt;br /&gt;
{{Note|[[BCC64X|BCC64X]] est une version préliminaire (Preview). Les informations ci-dessous correspondent à un objectif non testé et ne garantissent pas la prise en charge dans la version finale.}}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Fonctionnalité&lt;br /&gt;
!Document de  proposition C++17&lt;br /&gt;
! style=&amp;quot;padding: 0px 5px;&amp;quot; |[[Compilateurs Win32 améliorés par Clang|BCC32C/X]]&lt;br /&gt;
! style=&amp;quot;padding: 0px 5px;&amp;quot; |[[BCC64|BCC64]]&lt;br /&gt;
! style=&amp;quot;padding: 0px 5px;&amp;quot; |[[BCC64X|BCC64X]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Nouvelles règles relatives à auto pour direct-list-initialization&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3922.html N3922]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |static_assert sans message&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3928.pdf N3928]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |typename dans un paramètre template template&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4051.html N4051]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Suppression des trigraphes&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4086.html N4086]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Définition d&#039;espaces de nommage imbriqués&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4230.html N4230]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Attributs pour espaces de nommages et énumérateurs&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4266.html N4266]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Littéraux caractères u8&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4267.html N4267]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Autoriser l&#039;évaluation de constante pour tous les arguments template sans type&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4268.html N4268]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Expressions fold&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4295.html N4295]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Suppression du mot clé register devenu obsolète&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0001r1.html P0001R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Suppression de l&#039;opérateur ++(bool) obsolète&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0002r1.html P0002R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Suppression de spécifications d&#039;exceptions obsolètes dans C++17&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0003r5 P0003R5]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Inclure les spécifications d&#039;exception dans le système de type&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0012r1 P0012R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Initialisation des agrégats de classes avec les classes de base&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0017r1.html P0017R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Capture lambda de *this&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0018r3.html P0018R3]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Utilisation des espaces de nommage des attributs sans répétition&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0028r4 P0028R4]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Allocation mémoire dynamique pour des données sur-alignées&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0035r4 P0035R4]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Expressions fold unaires et packs de paramètres vides&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0036r0 P0036R0]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |__has_include dans les conditions du préprocesseur&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0061r1.html P0061R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Déduction d&#039;arguments de template pour les templates de classes&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0091r3 P0091R3]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Paramètres de template sans type avec le type auto&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0127r2 P0127R2]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Elision de copie garantie&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0135r1 P0135R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Nouvelle spécification pour l&#039;héritage des constructeurs (DR1941 et al)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0136r1 P0136R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Remplacement des objets de classe contenant des membres de référence&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0137r1 P0137R1]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Direct-list-initialization des énumérations&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0138r2.pdf P0138R2]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Ordre d&#039;évaluation des expressions plus strict&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0145r3 P0145R3]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Expressions lambda constexpr&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0170r1 P0170R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Types begin et end différents dans les boucles for basées sur un intervalle&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0184r0.html P0184R0]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Attribut &amp;lt;nowiki&amp;gt;[[fallthrough]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0188r1.pdf P0188R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Attribut &amp;lt;nowiki&amp;gt;[[nodiscard]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0189r1.pdf P0189R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Extensions de packs dans les déclarations using&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0195r2 P0195R2]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Attribut &amp;lt;nowiki&amp;gt;[[maybe_unused]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0212r1.pdf P0212R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Liaisons structurées&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0217r3 P0217R3]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Littéraux hexadécimaux à virgule flottante&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0245r1 P0245R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Ignorer les attributs inconnus&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0283r2 P0283R2]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Instructions if constexpr&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0292r2 P0292R2]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Instructions init pour if et switch&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0305r1 P0305R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Variables inline&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0386r2 P0386R2]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |DR :  La mise en correspondance d&#039;arguments template template exclut les templates compatibles&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0522r0 P0522R0]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |std::uncaught_exceptions()&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4259 N4259]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Amélioration de std::pair et std::tuple&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4387.html N4387]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |std::any&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0220r1 P0220R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |std::variant&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0088r3 P0088R3]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |std::optional&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0220r1 P0220R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |std::shared_mutex (untimed)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4508.html N4508]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |std::string_view&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3921.html N3921]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Standardisation du parallélisme TS&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0024r2.html P0024R2]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Conversions de chaînes élémentaires&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0067r5.html P0067R5]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Fonctions mathématiques spéciales&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0226r1.pdf P0226R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Transferts d&#039;ensembles et de cartes&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0083r3 P0083R3]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Taille d&#039;interférence matérielle&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0154r1 P0154R1]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |std::filesystem&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0218r1.html P0218R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |std::byte&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0298r3 P0298R3]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Fonctionnalités C++14==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Fonctionnalité&lt;br /&gt;
!Document de proposition C++14&lt;br /&gt;
! style=&amp;quot;padding: 0px 5px;&amp;quot; |[[Compilateurs Win32 améliorés par Clang|BCC32C/X]]&lt;br /&gt;
! style=&amp;quot;padding: 0px 5px;&amp;quot; |[[BCC64|BCC64]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Formulation ajustée pour les conversions textuelles&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3323.pdf N3323]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Littéraux binaires&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3472.pdf N3472]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |decltype(auto), déduction du type de retour pour les fonctions normales&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3638.html N3638]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Captures lamba initilisées/généralisées (init-capture)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3648.html N3648]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Expressions lambda (polymorphiques) génériques&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3649.html N3649]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Templates de variables&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3651.pdf N3651]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Constexpr étendu&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3652.html N3652]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Initialiseurs de membres et agrégats (NSDMI)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3653.html N3653]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Clarification de l&#039;allocation mémoire (en évitant/fusionnant les allocations)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3664.html N3664]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Attribut &amp;lt;nowiki&amp;gt;[[deprecated]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3760.html N3760]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Désallocation dimensionnée&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3778.html N3768]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Guillemet simple utilisé comme séparateur numérique&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3781.pdf N3781]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |std::result_of et SFINAE&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3462.html N3462]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |constexpr pour &amp;amp;amp;lt;complex&amp;amp;amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3302.html N3302]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |constexpr pour &amp;amp;amp;lt;chrono&amp;amp;amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3469.html N3469]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |constexpr pour &amp;amp;amp;lt;array&amp;amp;amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3470.html N3470]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |constexpr pour &amp;amp;amp;lt;initializer_list&amp;amp;amp;gt;, &amp;amp;amp;lt;utility&amp;amp;amp;gt; et &amp;amp;amp;lt;tuple&amp;amp;amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3471.html N3471]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Amélioration de std::integral_constant&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3545.pdf N3545]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Littéraux définis par l&#039;utilisateur pour &amp;amp;amp;lt;chrono&amp;amp;amp;gt; et &amp;amp;amp;lt;string&amp;amp;amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3642.pdf N3642]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Itérateurs forward null&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3644.pdf N3644]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |std::quoted&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3654.html N3654]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Recherche associative hétérogène&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3657.htm N3657]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |std::integer_sequence&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3658.html N3658]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |std::shared_timed_mutex&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3659.html N3659]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |std::exchange&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3668.html N3668]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Résolution des fonctions membre constexpr sans const&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3669.pdf N3669]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |std::get&amp;amp;amp;lt;T&amp;amp;amp;gt;()&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3670.html N3670]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |std::equal, std::is_permutation, std::mismatch à double plage&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3671.html N3671]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Fonctionnalités C++11==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font size=&amp;quot;2.5&amp;quot;&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Fonctionnalité&lt;br /&gt;
!Document de &amp;lt;br /&amp;gt; proposition C++11&lt;br /&gt;
! style=&amp;quot;padding: 0px 5px;&amp;quot; |[[Compilateurs Win32 améliorés par Clang|BCC32C/X]]&lt;br /&gt;
! style=&amp;quot;padding: 0px 5px;&amp;quot; |[[BCC32|BCC32]]&lt;br /&gt;
! style=&amp;quot;padding: 0px 5px;&amp;quot; |[[BCC64|BCC64]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Références rvalue&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2118.html N2118]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Références rvalue pour &amp;lt;code&amp;gt;*this&amp;lt;/code&amp;gt;&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2439.htm N2439]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Initialisation des objets de classe par rvalues&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1610.html N1610]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Initialiseurs de membres de données non statiques&lt;br /&gt;
|[http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2756.htm N2756]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Templates variadic&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2242.pdf N2242]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Extension des paramètres template de modèle variadic&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2555.pdf N2555]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Liste d&#039;initialiseurs&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2672.htm N2672]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Assertions statiques&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1720.html N1720]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Variables &amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt;-typées&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1984.pdf N1984]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Multi-déclarateur &amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt;&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1737.pdf N1737]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Suppression de auto comme spécificateur de classe de stockage&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2546.htm N2546]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Nouvelle syntaxe de déclarateur de fonction&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2541.htm N2541]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |&amp;lt;span id=&amp;quot;lambda&amp;quot;&amp;gt;Expressions lambda&amp;lt;/span&amp;gt;&lt;br /&gt;
|[http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2927.pdf N2927]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Type déclaré d&#039;une expression&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2343.pdf N2343]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Types de retour incomplets&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf N3276]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Crochets droits&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1757.html N1757]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Arguments de template par défaut pour les templates de fonctions&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#226 DR226]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Résolution du problème SFINAE pour les expressions&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2634.html DR339]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Templates d&#039;alias&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf N2258]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Templates extern&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1987.htm N1987]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Constante pointeur null&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2431.pdf N2431]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Enumérations fortement typées&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2347.pdf N2347]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Déclaration forward des énumérations&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2764.pdf N2764] &amp;lt;br /&amp;gt; [http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#1206 DR1206]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Syntaxe des attributs standardisés&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2761.pdf N2761]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Expressions constantes généralisées&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf N2235]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Support de l&#039;alignement&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf N2341]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Comportement support conditionnel&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1627.pdf N1627]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Changement du comportement non défini en erreurs diagnosticables&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1727.pdf N1727]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Délégation de constructeurs&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1986.pdf N1986]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Constructeurs d&#039;héritage&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2540.htm N2540]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Opérateurs de conversion explicite&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf N2437]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Nouveaux types de caractères&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2249.html N2249]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Littéraux chaîne Unicode&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm N2442]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Littéraux chaîne brute&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm N2442]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Noms de caractères universels dans les littéraux&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2170.html N2170]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Littéraux définis par l&#039;utilisateur&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2765.pdf N2765]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Types de disposition standard&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2342.htm N2342]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Fonctions par défaut&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm N2346]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Fonctions supprimées&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm N2346]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Déclarations friend étendues&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1791.pdf N1791]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Extension de &amp;lt;code&amp;gt;sizeof&amp;lt;/code&amp;gt;&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2253.html N2253] &amp;lt;br /&amp;gt; [http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#850 DR850]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Espaces de nommage inline&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2535.htm N2535]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Unions non restreintes&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2544.pdf N2544]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Types locaux et non nommés comme arguments de template&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm N2657]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Boucle for basée sur l&#039;étendue&lt;br /&gt;
|[http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2930.html N2930]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Redéfinitions explicites de virtual&lt;br /&gt;
|[http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm N2928] &amp;lt;br /&amp;gt; [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm N3206] &amp;lt;br /&amp;gt; [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm N3272]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Support minimal du nettoyage de la mémoire et de la détection de perte basée sur l&#039;accessibilité&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2670.htm N2670]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Autoriser les constructeurs de déplacement à déclencher une exception [noexcept]&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3050.html N3050]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Définition de fonctions membre spéciales de déplacement&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3053.html N3053]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; style=&amp;quot;text-align:center; background-color:white&amp;quot; |&#039;&#039;&#039;Accès concurrent&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Points de séquence&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html N2239]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Opérations atomiques&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2427.html N2427]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Opération comparer-échanger forte&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2748.html N2748]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Délimitations bidirectionnelles&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2752.htm N2752]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Modèle de mémoire&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2429.htm N2429]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Ordre dépendant des données : opérations atomiques et modèle de mémoire&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2664.htm N2664]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Propagation des exceptions&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2179.html N2179]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Autoriser l&#039;usage des opérations atomiques dans les gestionnaires de signaux&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2547.htm N2547]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Stockage local des threads&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2659.htm N2659]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Initialisation dynamique et destruction avec accès concurrent&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2660.htm N2660]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; style=&amp;quot;text-align:center; background-color:white&amp;quot; |&#039;&#039;&#039;Fonctionnalités C99 dans C++11&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Identificateur prédéfini &amp;lt;code&amp;gt;__func__&amp;lt;/code&amp;gt;&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2340.htm N2340]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Préprocesseur C99&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1653.htm N1653]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Type &amp;lt;code&amp;gt;long long&amp;lt;/code&amp;gt;&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1811.pdf N1811]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Types intégraux étendus&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1988.pdf N1988]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Fonctionnalités du C++ moderne prises en charge par les compilateurs C++ améliorés par Clang de RAD Studio|Fonctionnalités du C++ moderne prises en charge par les compilateurs C++ améliorés par Clang de RAD Studio]]&lt;br /&gt;
*[[Solution pour les attributs C++11|Solution pour les attributs C++11 (Compilateurs C++ améliorés par Clang)]]&lt;br /&gt;
*[[Fonctionnalités C++11 - Index|Fonctionnalités C++11 dans le compilateur Classique]]&lt;br /&gt;
&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Statut_de_conformit%C3%A9_des_fonctionnalit%C3%A9s_du_langage_C%2B%2B_moderne&amp;diff=218907</id>
		<title>Statut de conformité des fonctionnalités du langage C++ moderne</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Statut_de_conformit%C3%A9_des_fonctionnalit%C3%A9s_du_langage_C%2B%2B_moderne&amp;diff=218907"/>
		<updated>2026-05-09T03:34:51Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|C++ moderne}}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici ci-dessous la liste des fonctionnalités du C++ moderne qui sont prises en charge par les [[Compilateurs C++|compilateurs C++ de {{Product}}]].&lt;br /&gt;
&lt;br /&gt;
==Fonctionnalités C++2c==&lt;br /&gt;
&lt;br /&gt;
{{Note| &amp;lt;code&amp;gt;C++2c&amp;lt;/code&amp;gt; devrait correspondre à C++26.}}&lt;br /&gt;
{{Note|[[BCC64X|BCC64X]] est actuellement en version préliminaire (Preview). Les informations ci-dessous correspondent à un objectif non testé et ne garantissent pas la prise en charge dans la version finale. BCC64X utilise C++17 comme niveau de langage par défaut, et la version initiale n&#039;est pas censée prendre en charge des langages de niveau supérieur. Pour compiler en C++2c, exécutez bcc64x avec &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;-std=c++2c&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.}}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Fonctionnalité&lt;br /&gt;
! Document de proposition C++ 2c&lt;br /&gt;
! style=&amp;quot;padding: 0px 5px;&amp;quot; |[[Compilateurs Win32 améliorés par Clang|BCC32C/X]]&lt;br /&gt;
! style=&amp;quot;padding: 0px 5px;&amp;quot; |[[BCC64|BCC64]]&lt;br /&gt;
! style=&amp;quot;padding: 0px 5px;&amp;quot; |[[BCC64X|BCC64X]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; | Supprimer le comportement non défini lors de l’analyse lexicale&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[https://wg21.link/P2621R2 P2621R2]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; | Rendre les littéraux de chaîne non encodables mal formés&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[https://wg21.link/P1854R4 P1854R4]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; | Chaînes non évaluées&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[https://wg21.link/P2361R6 P2361R6]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; | Ajouter @, $, et ` à l&#039;ensemble de caractères de base&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[https://wg21.link/P2558R2 P2558R2]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; | Transtyper constexpr à partir de void*&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[https://wg21.link/P2738R1 P2738R1]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; | Ignorabilité des attributs standard&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[https://wg21.link/P2552R3 P2552R3]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; | Stockage statique pour les initialisateurs entre accolades&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[https://wg21.link/P2752R3 P2752R3]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; | Messages static_assert générés par l&#039;utilisateur&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[https://wg21.link/P2741R3 P2741R3]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; | Variables de remplacement sans nom&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[https://wg21.link/P2169R4 P2169R4]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fonctionnalités C++23==&lt;br /&gt;
&lt;br /&gt;
{{Note| C+23 est partiellement pris en charge par la version de Clang sur laquelle [[BCC64X|BCC64X]] est basé, ainsi que par les bibliothèques C+ RTL et STL (libc+) qu&#039;il utilise. Toutes les fonctionnalités de langage prises en charge par [https://clang.llvm.org/cxx_status.html Clang] et par [https://libcxx.llvm.org/Status/Cxx23.html libc+] dans les versions 15 et antérieures devraient être prises en charge et fonctionner correctement. Mais, il convient de nuancer cela par les restrictions propres à une version préliminaire (Preview). En effet, aucune prise en charge officielle n&#039;est garantie. Le compilateur [[BCC64X|BCC64X]] visant actuellement C+17 comme standard de langage, vous pouvez utiliser &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;-std=c++23&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; pour modifier le niveau de conformité du langage cible. }}&lt;br /&gt;
&lt;br /&gt;
==Fonctionnalités C++20==&lt;br /&gt;
&lt;br /&gt;
{{Note| C+20 est partiellement pris en charge par la version de Clang sur laquelle [[BCC64X|BCC64X]] est basé, ainsi que par les bibliothèques C+ RTL et STL (libc+) qu&#039;il utilise. Toutes les fonctionnalités de langage prises en charge par [https://clang.llvm.org/cxx_status.html Clang] et par [https://libcxx.llvm.org/Status/Cxx20.html libc+] dans les versions 15 et antérieures devraient être prises en charge et fonctionner correctement. Mais, il convient de nuancer cela par les restrictions propres à une version préliminaire (Preview). En effet, aucune prise en charge officielle n&#039;est garantie. Le compilateur [[BCC64X|BCC64X]] visant actuellement C+17 comme standard de langage, vous pouvez utiliser &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;-std=c++20&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; pour modifier le niveau de conformité du langage cible. }}&lt;br /&gt;
&lt;br /&gt;
==Fonctionnalités C++17==&lt;br /&gt;
&lt;br /&gt;
{{Note|[[BCC64X|BCC64X]] est une version préliminaire (Preview). Les informations ci-dessous correspondent à un objectif non testé et ne garantissent pas la prise en charge dans la version finale.}}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Fonctionnalité&lt;br /&gt;
!Document de  proposition C++17&lt;br /&gt;
! style=&amp;quot;padding: 0px 5px;&amp;quot; |[[Compilateurs Win32 améliorés par Clang|BCC32C/X]]&lt;br /&gt;
! style=&amp;quot;padding: 0px 5px;&amp;quot; |[[BCC64|BCC64]]&lt;br /&gt;
! style=&amp;quot;padding: 0px 5px;&amp;quot; |[[BCC64X|BCC64X]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Nouvelles règles relatives à auto pour direct-list-initialization&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3922.html N3922]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |static_assert sans message&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3928.pdf N3928]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |typename dans un paramètre template template&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4051.html N4051]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Suppression des trigraphes&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4086.html N4086]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Définition d&#039;espaces de nommage imbriqués&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4230.html N4230]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Attributs pour espaces de nommages et énumérateurs&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4266.html N4266]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Littéraux caractères u8&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4267.html N4267]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Autoriser l&#039;évaluation de constante pour tous les arguments template sans type&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4268.html N4268]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Expressions fold&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4295.html N4295]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Suppression du mot clé register devenu obsolète&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0001r1.html P0001R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Suppression de l&#039;opérateur ++(bool) obsolète&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0002r1.html P0002R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Suppression de spécifications d&#039;exceptions obsolètes dans C++17&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0003r5 P0003R5]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Inclure les spécifications d&#039;exception dans le système de type&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0012r1 P0012R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Initialisation des agrégats de classes avec les classes de base&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0017r1.html P0017R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Capture lambda de *this&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0018r3.html P0018R3]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Utilisation des espaces de nommage des attributs sans répétition&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0028r4 P0028R4]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Allocation mémoire dynamique pour des données sur-alignées&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0035r4 P0035R4]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Expressions fold unaires et packs de paramètres vides&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0036r0 P0036R0]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |__has_include dans les conditions du préprocesseur&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0061r1.html P0061R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Déduction d&#039;arguments de template pour les templates de classes&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0091r3 P0091R3]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Paramètres de template sans type avec le type auto&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0127r2 P0127R2]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Elision de copie garantie&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0135r1 P0135R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Nouvelle spécification pour l&#039;héritage des constructeurs (DR1941 et al)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0136r1 P0136R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Remplacement des objets de classe contenant des membres de référence&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0137r1 P0137R1]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Direct-list-initialization des énumérations&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0138r2.pdf P0138R2]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Ordre d&#039;évaluation des expressions plus strict&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0145r3 P0145R3]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Expressions lambda constexpr&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0170r1 P0170R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Types begin et end différents dans les boucles for basées sur un intervalle&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0184r0.html P0184R0]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Attribut &amp;lt;nowiki&amp;gt;[[fallthrough]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0188r1.pdf P0188R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Attribut &amp;lt;nowiki&amp;gt;[[nodiscard]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0189r1.pdf P0189R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Extensions de packs dans les déclarations using&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0195r2 P0195R2]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Attribut &amp;lt;nowiki&amp;gt;[[maybe_unused]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0212r1.pdf P0212R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Liaisons structurées&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0217r3 P0217R3]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Littéraux hexadécimaux à virgule flottante&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0245r1 P0245R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Ignorer les attributs inconnus&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0283r2 P0283R2]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Instructions if constexpr&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0292r2 P0292R2]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Instructions init pour if et switch&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0305r1 P0305R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Variables inline&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0386r2 P0386R2]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |DR :  La mise en correspondance d&#039;arguments template template exclut les templates compatibles&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0522r0 P0522R0]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |std::uncaught_exceptions()&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4259 N4259]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Amélioration de std::pair et std::tuple&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4387.html N4387]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |std::any&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0220r1 P0220R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |std::variant&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0088r3 P0088R3]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |std::optional&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0220r1 P0220R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |std::shared_mutex (untimed)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4508.html N4508]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |std::string_view&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3921.html N3921]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Standardisation du parallélisme TS&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0024r2.html P0024R2]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Conversions de chaînes élémentaires&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0067r5.html P0067R5]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Fonctions mathématiques spéciales&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0226r1.pdf P0226R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Transferts d&#039;ensembles et de cartes&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0083r3 P0083R3]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Taille d&#039;interférence matérielle&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0154r1 P0154R1]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |std::filesystem&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0218r1.html P0218R1]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |std::byte&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://wg21.link/p0298r3 P0298R3]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Fonctionnalités C++14==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Fonctionnalité&lt;br /&gt;
!Document de proposition C++14&lt;br /&gt;
! style=&amp;quot;padding: 0px 5px;&amp;quot; |[[Compilateurs Win32 améliorés par Clang|BCC32C/X]]&lt;br /&gt;
! style=&amp;quot;padding: 0px 5px;&amp;quot; |[[BCC64|BCC64]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Formulation ajustée pour les conversions textuelles&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3323.pdf N3323]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Littéraux binaires&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3472.pdf N3472]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |decltype(auto), déduction du type de retour pour les fonctions normales&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3638.html N3638]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Captures lamba initilisées/généralisées (init-capture)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3648.html N3648]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Expressions lambda (polymorphiques) génériques&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3649.html N3649]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Templates de variables&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3651.pdf N3651]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Constexpr étendu&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3652.html N3652]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Initialiseurs de membres et agrégats (NSDMI)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3653.html N3653]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Clarification de l&#039;allocation mémoire (en évitant/fusionnant les allocations)&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3664.html N3664]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Attribut &amp;lt;nowiki&amp;gt;[[deprecated]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3760.html N3760]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Désallocation dimensionnée&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3778.html N3768]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Guillemet simple utilisé comme séparateur numérique&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3781.pdf N3781]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |std::result_of et SFINAE&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3462.html N3462]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |constexpr pour &amp;amp;amp;lt;complex&amp;amp;amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3302.html N3302]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |constexpr pour &amp;amp;amp;lt;chrono&amp;amp;amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3469.html N3469]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |constexpr pour &amp;amp;amp;lt;array&amp;amp;amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3470.html N3470]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |constexpr pour &amp;amp;amp;lt;initializer_list&amp;amp;amp;gt;, &amp;amp;amp;lt;utility&amp;amp;amp;gt; et &amp;amp;amp;lt;tuple&amp;amp;amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3471.html N3471]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Amélioration de std::integral_constant&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3545.pdf N3545]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Littéraux définis par l&#039;utilisateur pour &amp;amp;amp;lt;chrono&amp;amp;amp;gt; et &amp;amp;amp;lt;string&amp;amp;amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3642.pdf N3642]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Itérateurs forward null&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3644.pdf N3644]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |std::quoted&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3654.html N3654]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Recherche associative hétérogène&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3657.htm N3657]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |std::integer_sequence&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3658.html N3658]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |std::shared_timed_mutex&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3659.html N3659]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |std::exchange&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3668.html N3668]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Résolution des fonctions membre constexpr sans const&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3669.pdf N3669]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |std::get&amp;amp;amp;lt;T&amp;amp;amp;gt;()&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3670.html N3670]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |std::equal, std::is_permutation, std::mismatch à double plage&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3671.html N3671]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Fonctionnalités C++11==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font size=&amp;quot;2.5&amp;quot;&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;2&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Fonctionnalité&lt;br /&gt;
!Document de &amp;lt;br /&amp;gt; proposition C++11&lt;br /&gt;
! style=&amp;quot;padding: 0px 5px;&amp;quot; |[[Compilateurs Win32 améliorés par Clang|BCC32C/X]]&lt;br /&gt;
! style=&amp;quot;padding: 0px 5px;&amp;quot; |[[BCC32|BCC32]]&lt;br /&gt;
! style=&amp;quot;padding: 0px 5px;&amp;quot; |[[BCC64|BCC64]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Références rvalue&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2118.html N2118]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Références rvalue pour &amp;lt;code&amp;gt;*this&amp;lt;/code&amp;gt;&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2439.htm N2439]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Initialisation des objets de classe par rvalues&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1610.html N1610]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Initialiseurs de membres de données non statiques&lt;br /&gt;
|[http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2756.htm N2756]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Templates variadic&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2242.pdf N2242]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Extension des paramètres template de modèle variadic&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2555.pdf N2555]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Liste d&#039;initialiseurs&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2672.htm N2672]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Assertions statiques&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1720.html N1720]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Variables &amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt;-typées&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1984.pdf N1984]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Multi-déclarateur &amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt;&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1737.pdf N1737]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Suppression de auto comme spécificateur de classe de stockage&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2546.htm N2546]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Nouvelle syntaxe de déclarateur de fonction&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2541.htm N2541]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |&amp;lt;span id=&amp;quot;lambda&amp;quot;&amp;gt;Expressions lambda&amp;lt;/span&amp;gt;&lt;br /&gt;
|[http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2927.pdf N2927]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Type déclaré d&#039;une expression&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2343.pdf N2343]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Types de retour incomplets&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf N3276]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Crochets droits&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1757.html N1757]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Arguments de template par défaut pour les templates de fonctions&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#226 DR226]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Résolution du problème SFINAE pour les expressions&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2634.html DR339]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Templates d&#039;alias&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf N2258]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Templates extern&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1987.htm N1987]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Constante pointeur null&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2431.pdf N2431]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Enumérations fortement typées&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2347.pdf N2347]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Déclaration forward des énumérations&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2764.pdf N2764] &amp;lt;br /&amp;gt; [http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#1206 DR1206]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Syntaxe des attributs standardisés&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2761.pdf N2761]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Expressions constantes généralisées&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf N2235]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Support de l&#039;alignement&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf N2341]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Comportement support conditionnel&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1627.pdf N1627]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Changement du comportement non défini en erreurs diagnosticables&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1727.pdf N1727]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Délégation de constructeurs&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1986.pdf N1986]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Constructeurs d&#039;héritage&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2540.htm N2540]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Opérateurs de conversion explicite&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf N2437]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Nouveaux types de caractères&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2249.html N2249]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Littéraux chaîne Unicode&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm N2442]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Littéraux chaîne brute&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm N2442]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Noms de caractères universels dans les littéraux&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2170.html N2170]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Littéraux définis par l&#039;utilisateur&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2765.pdf N2765]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Types de disposition standard&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2342.htm N2342]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Fonctions par défaut&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm N2346]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Fonctions supprimées&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm N2346]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Déclarations friend étendues&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1791.pdf N1791]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Extension de &amp;lt;code&amp;gt;sizeof&amp;lt;/code&amp;gt;&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2253.html N2253] &amp;lt;br /&amp;gt; [http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#850 DR850]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Espaces de nommage inline&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2535.htm N2535]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Unions non restreintes&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2544.pdf N2544]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Types locaux et non nommés comme arguments de template&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm N2657]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Boucle for basée sur l&#039;étendue&lt;br /&gt;
|[http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2930.html N2930]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Redéfinitions explicites de virtual&lt;br /&gt;
|[http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm N2928] &amp;lt;br /&amp;gt; [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm N3206] &amp;lt;br /&amp;gt; [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm N3272]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Support minimal du nettoyage de la mémoire et de la détection de perte basée sur l&#039;accessibilité&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2670.htm N2670]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Autoriser les constructeurs de déplacement à déclencher une exception [noexcept]&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3050.html N3050]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Définition de fonctions membre spéciales de déplacement&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3053.html N3053]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; style=&amp;quot;text-align:center; background-color:white&amp;quot; |&#039;&#039;&#039;Accès concurrent&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Points de séquence&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html N2239]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Opérations atomiques&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2427.html N2427]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Opération comparer-échanger forte&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2748.html N2748]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Délimitations bidirectionnelles&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2752.htm N2752]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Modèle de mémoire&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2429.htm N2429]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Ordre dépendant des données : opérations atomiques et modèle de mémoire&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2664.htm N2664]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Propagation des exceptions&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2179.html N2179]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Autoriser l&#039;usage des opérations atomiques dans les gestionnaires de signaux&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2547.htm N2547]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Stockage local des threads&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2659.htm N2659]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Initialisation dynamique et destruction avec accès concurrent&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2660.htm N2660]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; style=&amp;quot;text-align:center; background-color:white&amp;quot; |&#039;&#039;&#039;Fonctionnalités C99 dans C++11&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Identificateur prédéfini &amp;lt;code&amp;gt;__func__&amp;lt;/code&amp;gt;&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2340.htm N2340]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Préprocesseur C99&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1653.htm N1653]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Type &amp;lt;code&amp;gt;long long&amp;lt;/code&amp;gt;&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1811.pdf N1811]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|{{V}}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;height:35px&amp;quot; |Types intégraux étendus&lt;br /&gt;
|[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1988.pdf N1988]&lt;br /&gt;
|{{V}}&lt;br /&gt;
|&lt;br /&gt;
|{{V}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Fonctionnalités du C++ moderne prises en charge par les compilateurs C++ améliorés par Clang de RAD Studio|Fonctionnalités du C++ moderne prises en charge par les compilateurs C++ améliorés par Clang de RAD Studio]]&lt;br /&gt;
*[[Solution pour les attributs C++11|Solution pour les attributs C++11 (Compilateurs C++ améliorés par Clang)]]&lt;br /&gt;
*[[Fonctionnalités C++11 - Index|Fonctionnalités C++11 dans le compilateur Classique]]&lt;br /&gt;
&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=BCC64X.EXE,_le_compilateur_C%2B%2B_Windows_64_bits&amp;diff=218906</id>
		<title>BCC64X.EXE, le compilateur C++ Windows 64 bits</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=BCC64X.EXE,_le_compilateur_C%2B%2B_Windows_64_bits&amp;diff=218906"/>
		<updated>2026-05-09T03:34:51Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : 1 révision importée : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Interfaces de ligne de commande des compilateurs C++ améliorés par Clang}}&lt;br /&gt;
&lt;br /&gt;
{{Path|BCC64X.EXE}} est l&#039;interface de ligne de commande pour [[BCC64X|BCC64X]], le compilateur C++ pour Windows 64 bits.&lt;br /&gt;
&lt;br /&gt;
Voir [[BCC64X|BCC64X]] pour plus d&#039;informations sur le compilateur.&lt;br /&gt;
&lt;br /&gt;
Voir les &#039;&#039;&#039;[[Interfaces de ligne de commande des compilateurs C++ améliorés par Clang|Interfaces de ligne de commande des compilateurs C++ améliorés par Clang]]&#039;&#039;&#039; pour connaître les points communs entre l&#039;interface de ligne de commande {{Path|BCC64X.EXE}} et les autres interfaces de ligne de commande des compilateurs C++ améliorés par Clang.&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[BCC64X|BCC64X]]&lt;br /&gt;
*[[C++Builder 64-bit Windows (Modern) Application Development|Développement d&#039;applications C++ Builder Windows 64 bits (Moderne)]]&lt;br /&gt;
**[[Mise à niveau des projets C++ existants vers Windows 64 bits|Mise à niveau des projets C++ existants vers Windows 64 bits]]&lt;br /&gt;
**[[Débogage des applications C++ Builder Windows 64 bits|Débogage des applications C++ Builder Windows 64 bits]]&lt;br /&gt;
* [[Application Hello World Windows 64 bits (Delphi et C++)|Application &amp;quot;Hello World&amp;quot; Windows 64 bits ({{Delphi}} et C++)]]&lt;br /&gt;
*[[Liaison d&#039;une application Hello World C++ Windows 64 bits|Liaison d&#039;une application Hello World C++ Windows 64 bits]]&lt;br /&gt;
*[[CPP64, le préprocesseur pour Windows 64 bits|CPP64, le préprocesseur pour Windows 64 bits]]&lt;br /&gt;
*[[MKEXP.EXE, l&#039;outil bibliothèque d&#039;importation Windows 64 bits pour C++|MKEXP.EXE, l&#039;outil bibliothèque d&#039;importation Windows 64 bits pour C++]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=BCC64X.EXE,_le_compilateur_C%2B%2B_Windows_64_bits&amp;diff=218905</id>
		<title>BCC64X.EXE, le compilateur C++ Windows 64 bits</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=BCC64X.EXE,_le_compilateur_C%2B%2B_Windows_64_bits&amp;diff=218905"/>
		<updated>2026-05-09T03:34:51Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Interfaces de ligne de commande des compilateurs C++ améliorés par Clang}}&lt;br /&gt;
&lt;br /&gt;
{{Path|BCC64X.EXE}} est l&#039;interface de ligne de commande pour [[BCC64X|BCC64X]], le compilateur C++ pour Windows 64 bits.&lt;br /&gt;
&lt;br /&gt;
Voir [[BCC64X|BCC64X]] pour plus d&#039;informations sur le compilateur.&lt;br /&gt;
&lt;br /&gt;
Voir les &#039;&#039;&#039;[[Interfaces de ligne de commande des compilateurs C++ améliorés par Clang|Interfaces de ligne de commande des compilateurs C++ améliorés par Clang]]&#039;&#039;&#039; pour connaître les points communs entre l&#039;interface de ligne de commande {{Path|BCC64X.EXE}} et les autres interfaces de ligne de commande des compilateurs C++ améliorés par Clang.&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[BCC64X|BCC64X]]&lt;br /&gt;
*[[C++Builder 64-bit Windows (Modern) Application Development|Développement d&#039;applications C++ Builder Windows 64 bits (Moderne)]]&lt;br /&gt;
**[[Mise à niveau des projets C++ existants vers Windows 64 bits|Mise à niveau des projets C++ existants vers Windows 64 bits]]&lt;br /&gt;
**[[Débogage des applications C++ Builder Windows 64 bits|Débogage des applications C++ Builder Windows 64 bits]]&lt;br /&gt;
* [[Application Hello World Windows 64 bits (Delphi et C++)|Application &amp;quot;Hello World&amp;quot; Windows 64 bits ({{Delphi}} et C++)]]&lt;br /&gt;
*[[Liaison d&#039;une application Hello World C++ Windows 64 bits|Liaison d&#039;une application Hello World C++ Windows 64 bits]]&lt;br /&gt;
*[[CPP64, le préprocesseur pour Windows 64 bits|CPP64, le préprocesseur pour Windows 64 bits]]&lt;br /&gt;
*[[MKEXP.EXE, l&#039;outil bibliothèque d&#039;importation Windows 64 bits pour C++|MKEXP.EXE, l&#039;outil bibliothèque d&#039;importation Windows 64 bits pour C++]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Le_pr%C3%A9processeur_-_Index&amp;diff=218904</id>
		<title>Le préprocesseur - Index</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Le_pr%C3%A9processeur_-_Index&amp;diff=218904"/>
		<updated>2026-05-09T03:34:50Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : 1 révision importée : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Guide du langage C++ - Index}}&lt;br /&gt;
Cette section contient les rubriques relatives au préprocesseur {{CBuilder}}.&lt;br /&gt;
&lt;br /&gt;
Le préprocesseur est un traitement de texte qui effectue des opérations préliminaires sur les fichiers C et C++ avant de les transmettre au compilateur. Le compilateur C++Builder invoque normalement le préprocesseur dans sa première passe pour convertir le texte d&#039;un fichier source en tant que partie de la première phase de la conversion. Vous pouvez aussi invoquer le préprocesseur séparément, avec le [[CPP32.EXE, le préprocesseur du compilateur C|préprocesseur CPP32.EXE en ligne de commande]], pour traiter le texte sans compilation. Vous pouvez utiliser le préprocesseur pour insérer des fichiers, compiler conditionnellement du code, appliquer des substitutions de macro, spécifier des messages d&#039;erreur de compilation et appliquer les règles spécifiques à la machine aux sections de code.&lt;br /&gt;
&lt;br /&gt;
==Invocation du préprocesseur C++==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Compilateur C++&lt;br /&gt;
  &lt;br /&gt;
! Plate-forme&lt;br /&gt;
! Opération&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[Compilateurs Win32 améliorés par Clang|BCC32C]]&lt;br /&gt;
| Windows 32 bits&lt;br /&gt;
|&amp;lt;code&amp;gt;-c- Xclang&amp;lt;/code&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[Compilateurs Win32 améliorés par Clang|BCC32X]]&lt;br /&gt;
| Windows 32 bits&lt;br /&gt;
|&amp;lt;code&amp;gt;-E&amp;lt;/code&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[BCC64|BCC64]]&lt;br /&gt;
| Windows 64 bits&lt;br /&gt;
|&amp;lt;code&amp;gt;-E&amp;lt;/code&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[BCC64X|BCC64X]]&lt;br /&gt;
| Windows 64 bits&lt;br /&gt;
|&amp;lt;code&amp;gt;-E&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;--preprocess&amp;lt;/code&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[BCCIOSARM64|BCCIOSARM64]]&lt;br /&gt;
| iOS 64 bits&lt;br /&gt;
|&amp;lt;code&amp;gt;-E&amp;lt;/code&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[BCCAARM|BCCAARM]]&lt;br /&gt;
|Android&lt;br /&gt;
|&amp;lt;code&amp;gt;-E&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Note| Pour [[Compilateurs Win32 améliorés par Clang|BCC32C]], certaines opérations peuvent être acceptées et ignorées silencieusement.}}&lt;br /&gt;
&lt;br /&gt;
==Invocation du préprocesseur C++ avec les interfaces de ligne de commande des compilateurs C++ Windows==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Plate-forme&lt;br /&gt;
! Compilateur classique&lt;br /&gt;
! [[Interfaces de ligne de commande des compilateurs C++ améliorés par Clang|Compilateur basé sur Clang]]&lt;br /&gt;
! Prétraitement&lt;br /&gt;
! Notes&lt;br /&gt;
|- valign=&amp;quot;center&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |Windows 32 bits&lt;br /&gt;
|&lt;br /&gt;
|    [[BCC32C.EXE|BCC32C.EXE]]&lt;br /&gt;
|&amp;lt;code&amp;gt;cpp32.exe test.cpp&amp;lt;/code&amp;gt;&lt;br /&gt;
| Crée &amp;lt;code&amp;gt;test.i&amp;lt;/code&amp;gt; avec la sortie prétraitée.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|    [[BCC32C.EXE|BCC32C.EXE]]&lt;br /&gt;
|&amp;lt;code&amp;gt;bcc32x -E test.cpp &amp;lt;/code&amp;gt;&lt;br /&gt;
| Sortie prétraitée envoyée à stdout : utilisez -o &amp;amp;lt;file&amp;amp;gt; pour écrire la sortie dans un fichier.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[BCC32.EXE, le compilateur C++ 32 bits en ligne de commande|BCC32.EXE]]&lt;br /&gt;
|&lt;br /&gt;
|    &amp;lt;code&amp;gt;cpp32.exe test.cpp&amp;lt;/code&amp;gt;&lt;br /&gt;
| Crée &amp;lt;code&amp;gt;test.1&amp;lt;/code&amp;gt; avec la sortie prétraitée.&lt;br /&gt;
|- valign=&amp;quot;center&amp;quot;&lt;br /&gt;
| Windows 64 bits&lt;br /&gt;
|&lt;br /&gt;
|    [[BCC64.EXE, le compilateur C++ Windows 64 bits|BCC64.EXE]]&lt;br /&gt;
|&amp;lt;code&amp;gt;bcc32x -E test.cpp &amp;lt;/code&amp;gt;&lt;br /&gt;
| Sortie prétraitée envoyée à stdout : utilisez -o &amp;amp;lt;file&amp;amp;gt; pour écrire la sortie dans un fichier.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Rubriques==&lt;br /&gt;
&lt;br /&gt;
*[[Directives du préprocesseur - Index|Directives du préprocesseur]]&lt;br /&gt;
**[[(directive null)|# (directive null)]]&lt;br /&gt;
**[[Include|Directive #include]]&lt;br /&gt;
**[[Error|Directive #error]]&lt;br /&gt;
**[[Line|Directive #line]]&lt;br /&gt;
**[[Import|Directive #import]]&lt;br /&gt;
**&lt;br /&gt;
[[Présentation de la compilation conditionnelle - Index|Directives de compilation conditionnelle]]&lt;br /&gt;
***[[If, elif, else et endif|Utilisation de #if, #elif, #else et #endif]]&lt;br /&gt;
***[[Defined|Opérateur defined]]&lt;br /&gt;
***[[Ifdef et ifndef|Utilisation de #ifdef et #ifndef]]&lt;br /&gt;
*[[Définition et annulation de la définition des macros - Index|Définition et annulation de la définition des macros]]&lt;br /&gt;
**[[Define|#define]]&lt;br /&gt;
**[[Undef|#undef]]&lt;br /&gt;
**[[Utilisation des options de ligne de commande -D et -U|Utilisation des options de ligne de commande -D et -U]]&lt;br /&gt;
**[[Mots clés et mots protégés dans les macros|Mots clés et mots protégés dans les macros]]&lt;br /&gt;
**[[Fusion de tokens avec|Fusion de tokens avec l&#039;opérateur ##]]&lt;br /&gt;
* [[Macros avec paramètres|Macros avec paramètres (C++)]]&lt;br /&gt;
*[[Macros prédéfinies|Macros prédéfinies]]&lt;br /&gt;
*[[Macros de compatibilité Delphi|Macros de compatibilité Delphi]]&lt;br /&gt;
*[[Utilisation de la barre oblique inversée de poursuite de ligne|Utilisation de la barre oblique inversée (\) de poursuite de ligne]]&lt;br /&gt;
*[[Présentation des directives pragma - Index|Directives #pragma]]&lt;br /&gt;
**[[Pragma alias|#pragma alias]]&lt;br /&gt;
**[[Pragma alignment|#pragma alignment]]&lt;br /&gt;
**[[Pragma anon struct|#pragma anon_struct]]&lt;br /&gt;
**[[Pragma argsused|#pragma argsused]]&lt;br /&gt;
**[[Pragma checkoption|#pragma checkoption]]&lt;br /&gt;
**[[Pragma codeseg|#pragma codeseg]]&lt;br /&gt;
**[[Pragma defineonoption et pragma undefineonoption|#pragma defineonoption et #pragma undefineonoption]]&lt;br /&gt;
**[[Pragma exit et pragma startup|#pragma exit]]&lt;br /&gt;
**[[Pragma hdrfile|#pragma hdrfile]]&lt;br /&gt;
**[[Pragma hdrstop|#pragma hdrstop]]&lt;br /&gt;
**[[Pragma inline|#pragma inline]]&lt;br /&gt;
**[[Pragma intrinsic|#pragma intrinsic]]&lt;br /&gt;
**[[Pragma link|#pragma link]]&lt;br /&gt;
**[[Pragma message|#pragma messages]]&lt;br /&gt;
**[[Pragma nopushoptwarn|#pragma nopushoptwarn]]&lt;br /&gt;
**[[Pragma obsolete|#pragmaobsolete]]&lt;br /&gt;
**[[Pragma once|#pragma once]]&lt;br /&gt;
**[[Pragma option|#pragma option]]&lt;br /&gt;
**[[Pragma pack|#pragma pack]]&lt;br /&gt;
**[[Pragma package|#pragma package]]&lt;br /&gt;
**[[Pragma region et pragma end region|#pragma region et #pragma end_region]]&lt;br /&gt;
**[[Pragma resource|#pragma resource]]&lt;br /&gt;
**[[Pragma exit et pragma startup|#pragma startup]]&lt;br /&gt;
**[[Pragma defineonoption et pragma undefineonoption|#pragma undefineonoption]]&lt;br /&gt;
**[[Pragma warn|#pragma warn]]&lt;br /&gt;
*[[Pseudo-grammaire|Pseudo-grammaire]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Référence C++]]&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Le_pr%C3%A9processeur_-_Index&amp;diff=218903</id>
		<title>Le préprocesseur - Index</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Le_pr%C3%A9processeur_-_Index&amp;diff=218903"/>
		<updated>2026-05-09T03:34:50Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Guide du langage C++ - Index}}&lt;br /&gt;
Cette section contient les rubriques relatives au préprocesseur {{CBuilder}}.&lt;br /&gt;
&lt;br /&gt;
Le préprocesseur est un traitement de texte qui effectue des opérations préliminaires sur les fichiers C et C++ avant de les transmettre au compilateur. Le compilateur C++Builder invoque normalement le préprocesseur dans sa première passe pour convertir le texte d&#039;un fichier source en tant que partie de la première phase de la conversion. Vous pouvez aussi invoquer le préprocesseur séparément, avec le [[CPP32.EXE, le préprocesseur du compilateur C|préprocesseur CPP32.EXE en ligne de commande]], pour traiter le texte sans compilation. Vous pouvez utiliser le préprocesseur pour insérer des fichiers, compiler conditionnellement du code, appliquer des substitutions de macro, spécifier des messages d&#039;erreur de compilation et appliquer les règles spécifiques à la machine aux sections de code.&lt;br /&gt;
&lt;br /&gt;
==Invocation du préprocesseur C++==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Compilateur C++&lt;br /&gt;
  &lt;br /&gt;
! Plate-forme&lt;br /&gt;
! Opération&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[Compilateurs Win32 améliorés par Clang|BCC32C]]&lt;br /&gt;
| Windows 32 bits&lt;br /&gt;
|&amp;lt;code&amp;gt;-c- Xclang&amp;lt;/code&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[Compilateurs Win32 améliorés par Clang|BCC32X]]&lt;br /&gt;
| Windows 32 bits&lt;br /&gt;
|&amp;lt;code&amp;gt;-E&amp;lt;/code&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[BCC64|BCC64]]&lt;br /&gt;
| Windows 64 bits&lt;br /&gt;
|&amp;lt;code&amp;gt;-E&amp;lt;/code&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[BCC64X|BCC64X]]&lt;br /&gt;
| Windows 64 bits&lt;br /&gt;
|&amp;lt;code&amp;gt;-E&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;--preprocess&amp;lt;/code&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[BCCIOSARM64|BCCIOSARM64]]&lt;br /&gt;
| iOS 64 bits&lt;br /&gt;
|&amp;lt;code&amp;gt;-E&amp;lt;/code&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[BCCAARM|BCCAARM]]&lt;br /&gt;
|Android&lt;br /&gt;
|&amp;lt;code&amp;gt;-E&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Note| Pour [[Compilateurs Win32 améliorés par Clang|BCC32C]], certaines opérations peuvent être acceptées et ignorées silencieusement.}}&lt;br /&gt;
&lt;br /&gt;
==Invocation du préprocesseur C++ avec les interfaces de ligne de commande des compilateurs C++ Windows==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Plate-forme&lt;br /&gt;
! Compilateur classique&lt;br /&gt;
! [[Interfaces de ligne de commande des compilateurs C++ améliorés par Clang|Compilateur basé sur Clang]]&lt;br /&gt;
! Prétraitement&lt;br /&gt;
! Notes&lt;br /&gt;
|- valign=&amp;quot;center&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |Windows 32 bits&lt;br /&gt;
|&lt;br /&gt;
|    [[BCC32C.EXE|BCC32C.EXE]]&lt;br /&gt;
|&amp;lt;code&amp;gt;cpp32.exe test.cpp&amp;lt;/code&amp;gt;&lt;br /&gt;
| Crée &amp;lt;code&amp;gt;test.i&amp;lt;/code&amp;gt; avec la sortie prétraitée.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|    [[BCC32C.EXE|BCC32C.EXE]]&lt;br /&gt;
|&amp;lt;code&amp;gt;bcc32x -E test.cpp &amp;lt;/code&amp;gt;&lt;br /&gt;
| Sortie prétraitée envoyée à stdout : utilisez -o &amp;amp;lt;file&amp;amp;gt; pour écrire la sortie dans un fichier.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[BCC32.EXE, le compilateur C++ 32 bits en ligne de commande|BCC32.EXE]]&lt;br /&gt;
|&lt;br /&gt;
|    &amp;lt;code&amp;gt;cpp32.exe test.cpp&amp;lt;/code&amp;gt;&lt;br /&gt;
| Crée &amp;lt;code&amp;gt;test.1&amp;lt;/code&amp;gt; avec la sortie prétraitée.&lt;br /&gt;
|- valign=&amp;quot;center&amp;quot;&lt;br /&gt;
| Windows 64 bits&lt;br /&gt;
|&lt;br /&gt;
|    [[BCC64.EXE, le compilateur C++ Windows 64 bits|BCC64.EXE]]&lt;br /&gt;
|&amp;lt;code&amp;gt;bcc32x -E test.cpp &amp;lt;/code&amp;gt;&lt;br /&gt;
| Sortie prétraitée envoyée à stdout : utilisez -o &amp;amp;lt;file&amp;amp;gt; pour écrire la sortie dans un fichier.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Rubriques==&lt;br /&gt;
&lt;br /&gt;
*[[Directives du préprocesseur - Index|Directives du préprocesseur]]&lt;br /&gt;
**[[(directive null)|# (directive null)]]&lt;br /&gt;
**[[Include|Directive #include]]&lt;br /&gt;
**[[Error|Directive #error]]&lt;br /&gt;
**[[Line|Directive #line]]&lt;br /&gt;
**[[Import|Directive #import]]&lt;br /&gt;
**&lt;br /&gt;
[[Présentation de la compilation conditionnelle - Index|Directives de compilation conditionnelle]]&lt;br /&gt;
***[[If, elif, else et endif|Utilisation de #if, #elif, #else et #endif]]&lt;br /&gt;
***[[Defined|Opérateur defined]]&lt;br /&gt;
***[[Ifdef et ifndef|Utilisation de #ifdef et #ifndef]]&lt;br /&gt;
*[[Définition et annulation de la définition des macros - Index|Définition et annulation de la définition des macros]]&lt;br /&gt;
**[[Define|#define]]&lt;br /&gt;
**[[Undef|#undef]]&lt;br /&gt;
**[[Utilisation des options de ligne de commande -D et -U|Utilisation des options de ligne de commande -D et -U]]&lt;br /&gt;
**[[Mots clés et mots protégés dans les macros|Mots clés et mots protégés dans les macros]]&lt;br /&gt;
**[[Fusion de tokens avec|Fusion de tokens avec l&#039;opérateur ##]]&lt;br /&gt;
* [[Macros avec paramètres|Macros avec paramètres (C++)]]&lt;br /&gt;
*[[Macros prédéfinies|Macros prédéfinies]]&lt;br /&gt;
*[[Macros de compatibilité Delphi|Macros de compatibilité Delphi]]&lt;br /&gt;
*[[Utilisation de la barre oblique inversée de poursuite de ligne|Utilisation de la barre oblique inversée (\) de poursuite de ligne]]&lt;br /&gt;
*[[Présentation des directives pragma - Index|Directives #pragma]]&lt;br /&gt;
**[[Pragma alias|#pragma alias]]&lt;br /&gt;
**[[Pragma alignment|#pragma alignment]]&lt;br /&gt;
**[[Pragma anon struct|#pragma anon_struct]]&lt;br /&gt;
**[[Pragma argsused|#pragma argsused]]&lt;br /&gt;
**[[Pragma checkoption|#pragma checkoption]]&lt;br /&gt;
**[[Pragma codeseg|#pragma codeseg]]&lt;br /&gt;
**[[Pragma defineonoption et pragma undefineonoption|#pragma defineonoption et #pragma undefineonoption]]&lt;br /&gt;
**[[Pragma exit et pragma startup|#pragma exit]]&lt;br /&gt;
**[[Pragma hdrfile|#pragma hdrfile]]&lt;br /&gt;
**[[Pragma hdrstop|#pragma hdrstop]]&lt;br /&gt;
**[[Pragma inline|#pragma inline]]&lt;br /&gt;
**[[Pragma intrinsic|#pragma intrinsic]]&lt;br /&gt;
**[[Pragma link|#pragma link]]&lt;br /&gt;
**[[Pragma message|#pragma messages]]&lt;br /&gt;
**[[Pragma nopushoptwarn|#pragma nopushoptwarn]]&lt;br /&gt;
**[[Pragma obsolete|#pragmaobsolete]]&lt;br /&gt;
**[[Pragma once|#pragma once]]&lt;br /&gt;
**[[Pragma option|#pragma option]]&lt;br /&gt;
**[[Pragma pack|#pragma pack]]&lt;br /&gt;
**[[Pragma package|#pragma package]]&lt;br /&gt;
**[[Pragma region et pragma end region|#pragma region et #pragma end_region]]&lt;br /&gt;
**[[Pragma resource|#pragma resource]]&lt;br /&gt;
**[[Pragma exit et pragma startup|#pragma startup]]&lt;br /&gt;
**[[Pragma defineonoption et pragma undefineonoption|#pragma undefineonoption]]&lt;br /&gt;
**[[Pragma warn|#pragma warn]]&lt;br /&gt;
*[[Pseudo-grammaire|Pseudo-grammaire]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Référence C++]]&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Boost&amp;diff=218902</id>
		<title>Boost</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Boost&amp;diff=218902"/>
		<updated>2026-05-09T03:34:50Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : 1 révision importée : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Add-ins logiciels tiers}}&lt;br /&gt;
&lt;br /&gt;
[http://www.boost.org/&lt;br /&gt;
&#039;&#039;&#039; Boost (EN)&#039;&#039;&#039;] est un ensemble de bibliothèques C++ qui étend de manière significative le langage de programmation C++ en utilisant une métaprogrammation de templates. {{Product}} vous permet d&#039;installer un sous-ensemble de Boost ayant été entièrement testé et préconfiguré spécifiquement pour {{CBuilder}}.&lt;br /&gt;
&lt;br /&gt;
==Version, compilateurs et plates-formes pris en charge==&lt;br /&gt;
&lt;br /&gt;
{{Product}} prend en charge différentes versions de Boost en fonction du compilateur que vous utilisez pour construire votre application :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Plate-forme&lt;br /&gt;
!Compilateur&lt;br /&gt;
!Version Boost&lt;br /&gt;
|- valign=&amp;quot;center&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
Windows 32 bits&lt;br /&gt;
|&lt;br /&gt;
[[BCC32|BCC32]]&lt;br /&gt;
|&lt;br /&gt;
1.39.0&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Compilateurs Win32 améliorés par Clang|BCC32C]]&lt;br /&gt;
|&lt;br /&gt;
1.70.0&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
Windows 64 bits&lt;br /&gt;
|&lt;br /&gt;
[[BCC64|BCC64]]&lt;br /&gt;
|&lt;br /&gt;
1.70.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Installation de Boost==&lt;br /&gt;
&lt;br /&gt;
Pour installer Boost, sélectionnez {{Menu|Outils &amp;amp;gt; [[Fenêtre du Gestionnaire de packages GetIt|Gestionnaire de packages GetIt]]}} et sélectionnez l&#039;un des packages Boost.  Cliquez sur Installer pour démarrer le processus.&lt;br /&gt;
&lt;br /&gt;
[[File:BoostPackage.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
==Inclusion de Boost dans vos applications==&lt;br /&gt;
&lt;br /&gt;
Vous pouvez inclure les fichiers en-tête de Boost en utilisant la même méthode que pour les autres bibliothèques. Les applications C++ utilisent automatiquement la version correcte de Boost pour le compilateur que vous utilisez.&lt;br /&gt;
&lt;br /&gt;
Par exemple, pour utiliser minmax dans une application créée avec [[BCC32|BCC32]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;boost/algorithm/minmax.hpp&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Différentes versions de Boost peuvent contenir différents fichiers en-tête ou une API différente. Pour construire votre application à l&#039;aide de compilateurs prenant en charge différentes versions de Boost, vous devrez peut-être [[Présentation de la compilation conditionnelle - Index|utiliser la compilation conditionnelle]].&lt;br /&gt;
&lt;br /&gt;
Les chemins d&#039;accès include de Boost sont spécifiés dans les variables d&#039;environnement suivantes dans l&#039;EDI :&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;CG_BOOST_ROOT&#039;&#039;&#039; ([[BCC32|BCC32]]): {{Path|{{InstallPath}}\include\boost_1_39}}&lt;br /&gt;
*&#039;&#039;&#039;CG_64_BOOST_ROOT&#039;&#039;&#039; ([[BCC64|BCC64]]): {{Path|{{InstallPath}}\include\boost_1_70}}&lt;br /&gt;
*&#039;&#039;&#039;CG_32_BOOST_ROOT&#039;&#039;&#039; ([[Compilateurs Win32 améliorés par Clang|BCC32C]]) : Installé par GetIt et situé dans le référentiel de catalogues {{Path|Documents\Embarcadero\Studio\(version)\CatalogRepository}}&lt;br /&gt;
&lt;br /&gt;
Ces variables sont définies sur la boîte de dialogue {{Menu|Outils &amp;amp;gt; Options &amp;amp;gt; Options d&#039;environnement &amp;amp;gt; [[Variables d&#039;environnement|Variables d&#039;environnement]]}}.&lt;br /&gt;
&lt;br /&gt;
===Auto-liaison===&lt;br /&gt;
&lt;br /&gt;
Certaines bibliothèques Boost requièrent des binaires, qu&#039;il s&#039;agisse de liaisons statiques ou dynamiques. Elles sont liées automatiquement, la liaison statique étant le paramétrage par défaut. Pour effectuer une liaison dynamique avec une DLL, définissez &amp;lt;code&amp;gt;BOOST_ALL_DYN_LINK&amp;lt;/code&amp;gt; en tant que macro dans les options de projet.&lt;br /&gt;
&lt;br /&gt;
==Pourcentage de tests réussis des bibliothèques Boost==&lt;br /&gt;
&lt;br /&gt;
Un grand nombre de bibliothèques Boost fonctionnent avec les compilateurs Win32 et Win64 améliorés par Clang. Vous pouvez [[Supported Clang-enhanced Boost Libraries|consulter les résultats de tests affichés en pourcentages]].&lt;br /&gt;
&lt;br /&gt;
==Documentation relative à Boost==&lt;br /&gt;
&lt;br /&gt;
Suivez les liens ci-dessous pour accéder à l&#039;aide en ligne pour les versions de Boost prises en charge par {{Product}} :&lt;br /&gt;
&lt;br /&gt;
*[http://www.boost.org/doc/libs/1_39_0/ Documentation relative à Boost 1.39.0 (EN)]&lt;br /&gt;
*[https://www.boost.org/doc/libs/1_68_0/ Documentation relative à Boost 1.68.0]&lt;br /&gt;
* [https://www.boost.org/doc/libs/1_70_0/ Documentation relative à Boost 1.70.0]&lt;br /&gt;
&lt;br /&gt;
==Désinstallation de Boost==&lt;br /&gt;
&lt;br /&gt;
Si vous avez installé Boost à l&#039;aide du &#039;&#039;&#039;[[Gestionnaire de packages GetIt|Gestionnaire de packages GetIt]]&#039;&#039;&#039;, utilisez-le pour retirer Boost :&lt;br /&gt;
&lt;br /&gt;
#Ouvrez {{Product}} et sélectionnez {{Menu|Outils &amp;amp;gt; [[Fenêtre du Gestionnaire de packages GetIt|Gestionnaire de packages GetIt]]}} pour ouvrir la [[Fenêtre du Gestionnaire de packages GetIt|fenêtre du Gestionnaire de packages GetIt]].&lt;br /&gt;
#Localisez l&#039;entrée Boost. Vous pouvez taper &amp;quot;Boost&amp;quot; dans la zone de recherche pour filtrer d&#039;autres packages à partir du Gestionnaire de packages GetIt.&lt;br /&gt;
#Cliquez sur &#039;&#039;&#039;Désinstaller&#039;&#039;&#039; sur l&#039;entrée Boost.&lt;br /&gt;
&lt;br /&gt;
Si vous avez installé Boost en utilisant l&#039;une des autres [[#Installation de Boost|méthodes d&#039;installation]] :&lt;br /&gt;
&lt;br /&gt;
#Ouvrez le &#039;&#039;&#039;Panneau de configuration&#039;&#039;&#039; Windows et choisissez &#039;&#039;&#039;Désinstaller un programme&#039;&#039;&#039;.&lt;br /&gt;
#Double-cliquez sur &#039;&#039;&#039;Boost Libraries for {{CBuilder}} {{Placeholder|version}}&#039;&#039;&#039;. L&#039;installateur Boost démarre.&lt;br /&gt;
#Sur la page &#039;&#039;&#039;Bienvenue&#039;&#039;&#039; de l&#039;installateur Boost, choisissez l&#039;option &#039;&#039;&#039;Retirer&#039;&#039;&#039; et cliquez sur &#039;&#039;&#039;Suivant&#039;&#039;&#039;.&lt;br /&gt;
#Sur la page &#039;&#039;&#039;Prêt à désinstaller&#039;&#039;&#039;, cliquez sur &#039;&#039;&#039;Suivant&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Bibliothèque C++ standard Dinkumware|Bibliothèque C++ standard Dinkumware]]&lt;br /&gt;
&lt;br /&gt;
===Exemples===&lt;br /&gt;
&lt;br /&gt;
*Exemple [[samp_en:RTL.BoostArchiveDemo Sample|RTL Boost Archive (EN)]]&lt;br /&gt;
&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Boost&amp;diff=218901</id>
		<title>Boost</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Boost&amp;diff=218901"/>
		<updated>2026-05-09T03:34:50Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Add-ins logiciels tiers}}&lt;br /&gt;
&lt;br /&gt;
[http://www.boost.org/&lt;br /&gt;
&#039;&#039;&#039; Boost (EN)&#039;&#039;&#039;] est un ensemble de bibliothèques C++ qui étend de manière significative le langage de programmation C++ en utilisant une métaprogrammation de templates. {{Product}} vous permet d&#039;installer un sous-ensemble de Boost ayant été entièrement testé et préconfiguré spécifiquement pour {{CBuilder}}.&lt;br /&gt;
&lt;br /&gt;
==Version, compilateurs et plates-formes pris en charge==&lt;br /&gt;
&lt;br /&gt;
{{Product}} prend en charge différentes versions de Boost en fonction du compilateur que vous utilisez pour construire votre application :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Plate-forme&lt;br /&gt;
!Compilateur&lt;br /&gt;
!Version Boost&lt;br /&gt;
|- valign=&amp;quot;center&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
Windows 32 bits&lt;br /&gt;
|&lt;br /&gt;
[[BCC32|BCC32]]&lt;br /&gt;
|&lt;br /&gt;
1.39.0&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Compilateurs Win32 améliorés par Clang|BCC32C]]&lt;br /&gt;
|&lt;br /&gt;
1.70.0&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
Windows 64 bits&lt;br /&gt;
|&lt;br /&gt;
[[BCC64|BCC64]]&lt;br /&gt;
|&lt;br /&gt;
1.70.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Installation de Boost==&lt;br /&gt;
&lt;br /&gt;
Pour installer Boost, sélectionnez {{Menu|Outils &amp;amp;gt; [[Fenêtre du Gestionnaire de packages GetIt|Gestionnaire de packages GetIt]]}} et sélectionnez l&#039;un des packages Boost.  Cliquez sur Installer pour démarrer le processus.&lt;br /&gt;
&lt;br /&gt;
[[File:BoostPackage.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
==Inclusion de Boost dans vos applications==&lt;br /&gt;
&lt;br /&gt;
Vous pouvez inclure les fichiers en-tête de Boost en utilisant la même méthode que pour les autres bibliothèques. Les applications C++ utilisent automatiquement la version correcte de Boost pour le compilateur que vous utilisez.&lt;br /&gt;
&lt;br /&gt;
Par exemple, pour utiliser minmax dans une application créée avec [[BCC32|BCC32]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;boost/algorithm/minmax.hpp&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Différentes versions de Boost peuvent contenir différents fichiers en-tête ou une API différente. Pour construire votre application à l&#039;aide de compilateurs prenant en charge différentes versions de Boost, vous devrez peut-être [[Présentation de la compilation conditionnelle - Index|utiliser la compilation conditionnelle]].&lt;br /&gt;
&lt;br /&gt;
Les chemins d&#039;accès include de Boost sont spécifiés dans les variables d&#039;environnement suivantes dans l&#039;EDI :&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;CG_BOOST_ROOT&#039;&#039;&#039; ([[BCC32|BCC32]]): {{Path|{{InstallPath}}\include\boost_1_39}}&lt;br /&gt;
*&#039;&#039;&#039;CG_64_BOOST_ROOT&#039;&#039;&#039; ([[BCC64|BCC64]]): {{Path|{{InstallPath}}\include\boost_1_70}}&lt;br /&gt;
*&#039;&#039;&#039;CG_32_BOOST_ROOT&#039;&#039;&#039; ([[Compilateurs Win32 améliorés par Clang|BCC32C]]) : Installé par GetIt et situé dans le référentiel de catalogues {{Path|Documents\Embarcadero\Studio\(version)\CatalogRepository}}&lt;br /&gt;
&lt;br /&gt;
Ces variables sont définies sur la boîte de dialogue {{Menu|Outils &amp;amp;gt; Options &amp;amp;gt; Options d&#039;environnement &amp;amp;gt; [[Variables d&#039;environnement|Variables d&#039;environnement]]}}.&lt;br /&gt;
&lt;br /&gt;
===Auto-liaison===&lt;br /&gt;
&lt;br /&gt;
Certaines bibliothèques Boost requièrent des binaires, qu&#039;il s&#039;agisse de liaisons statiques ou dynamiques. Elles sont liées automatiquement, la liaison statique étant le paramétrage par défaut. Pour effectuer une liaison dynamique avec une DLL, définissez &amp;lt;code&amp;gt;BOOST_ALL_DYN_LINK&amp;lt;/code&amp;gt; en tant que macro dans les options de projet.&lt;br /&gt;
&lt;br /&gt;
==Pourcentage de tests réussis des bibliothèques Boost==&lt;br /&gt;
&lt;br /&gt;
Un grand nombre de bibliothèques Boost fonctionnent avec les compilateurs Win32 et Win64 améliorés par Clang. Vous pouvez [[Supported Clang-enhanced Boost Libraries|consulter les résultats de tests affichés en pourcentages]].&lt;br /&gt;
&lt;br /&gt;
==Documentation relative à Boost==&lt;br /&gt;
&lt;br /&gt;
Suivez les liens ci-dessous pour accéder à l&#039;aide en ligne pour les versions de Boost prises en charge par {{Product}} :&lt;br /&gt;
&lt;br /&gt;
*[http://www.boost.org/doc/libs/1_39_0/ Documentation relative à Boost 1.39.0 (EN)]&lt;br /&gt;
*[https://www.boost.org/doc/libs/1_68_0/ Documentation relative à Boost 1.68.0]&lt;br /&gt;
* [https://www.boost.org/doc/libs/1_70_0/ Documentation relative à Boost 1.70.0]&lt;br /&gt;
&lt;br /&gt;
==Désinstallation de Boost==&lt;br /&gt;
&lt;br /&gt;
Si vous avez installé Boost à l&#039;aide du &#039;&#039;&#039;[[Gestionnaire de packages GetIt|Gestionnaire de packages GetIt]]&#039;&#039;&#039;, utilisez-le pour retirer Boost :&lt;br /&gt;
&lt;br /&gt;
#Ouvrez {{Product}} et sélectionnez {{Menu|Outils &amp;amp;gt; [[Fenêtre du Gestionnaire de packages GetIt|Gestionnaire de packages GetIt]]}} pour ouvrir la [[Fenêtre du Gestionnaire de packages GetIt|fenêtre du Gestionnaire de packages GetIt]].&lt;br /&gt;
#Localisez l&#039;entrée Boost. Vous pouvez taper &amp;quot;Boost&amp;quot; dans la zone de recherche pour filtrer d&#039;autres packages à partir du Gestionnaire de packages GetIt.&lt;br /&gt;
#Cliquez sur &#039;&#039;&#039;Désinstaller&#039;&#039;&#039; sur l&#039;entrée Boost.&lt;br /&gt;
&lt;br /&gt;
Si vous avez installé Boost en utilisant l&#039;une des autres [[#Installation de Boost|méthodes d&#039;installation]] :&lt;br /&gt;
&lt;br /&gt;
#Ouvrez le &#039;&#039;&#039;Panneau de configuration&#039;&#039;&#039; Windows et choisissez &#039;&#039;&#039;Désinstaller un programme&#039;&#039;&#039;.&lt;br /&gt;
#Double-cliquez sur &#039;&#039;&#039;Boost Libraries for {{CBuilder}} {{Placeholder|version}}&#039;&#039;&#039;. L&#039;installateur Boost démarre.&lt;br /&gt;
#Sur la page &#039;&#039;&#039;Bienvenue&#039;&#039;&#039; de l&#039;installateur Boost, choisissez l&#039;option &#039;&#039;&#039;Retirer&#039;&#039;&#039; et cliquez sur &#039;&#039;&#039;Suivant&#039;&#039;&#039;.&lt;br /&gt;
#Sur la page &#039;&#039;&#039;Prêt à désinstaller&#039;&#039;&#039;, cliquez sur &#039;&#039;&#039;Suivant&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Bibliothèque C++ standard Dinkumware|Bibliothèque C++ standard Dinkumware]]&lt;br /&gt;
&lt;br /&gt;
===Exemples===&lt;br /&gt;
&lt;br /&gt;
*Exemple [[samp_en:RTL.BoostArchiveDemo Sample|RTL Boost Archive (EN)]]&lt;br /&gt;
&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Compilateurs_C%2B%2B_am%C3%A9lior%C3%A9s_par_Clang&amp;diff=218900</id>
		<title>Compilateurs C++ améliorés par Clang</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Compilateurs_C%2B%2B_am%C3%A9lior%C3%A9s_par_Clang&amp;diff=218900"/>
		<updated>2026-05-09T03:34:50Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : 1 révision importée : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Compilateurs C++}}&lt;br /&gt;
&lt;br /&gt;
La dernière génération des compilateurs C++ de {{Product}} est basée sur le [http://clang.llvm.org/ compilateur Clang (EN)] open-source, qui représente le frontal de [http://www.llvm.org/ l&#039;infrastructure du compilateur LLVM (EN)].&lt;br /&gt;
&lt;br /&gt;
{{Product}} fournit les compilateurs C++ suivants améliorés par Clang :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Compilateur&lt;br /&gt;
!Plate-forme&lt;br /&gt;
!Version de Clang&lt;br /&gt;
!Version de LLVM&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[Compilateurs Win32 améliorés par Clang|BCC32C]]&lt;br /&gt;
|Windows 32 bits&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |5.0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |5.0&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[Compilateurs Win32 améliorés par Clang|BCC32X]] &amp;lt;ref&amp;gt;BCC32X utilise les indicateurs en ligne de commande Clang par mesure de compatibilité avec d&#039;autres compilateurs basés sur Clang (BCC64, BCCIOSARM64 et BCCAARM). BCC32C est compatible avec les indicateurs de compilateur classiques (BCC32).&amp;lt;/ref&amp;gt;&lt;br /&gt;
|Windows 32 bits&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |5.0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |5.0&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[BCC64|BCC64]]&lt;br /&gt;
|Windows 64 bits&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |5.0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |5.0&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[BCC64X|BCC64X]]&lt;br /&gt;
|Windows 64 bits&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |20.0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |20.0&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[BCCIOSARM64|BCCIOSARM64]]&lt;br /&gt;
|iOS 64 bits&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |3.3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |3.5&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[BCCAARM|BCCAARM]]&lt;br /&gt;
|Android&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |3.3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |3.3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Différences entre les compilateurs C++ améliorés par Clang et les compilateurs C++ de précédente génération==&lt;br /&gt;
&lt;br /&gt;
Les compilateurs C++ améliorés par Clang ont une base de code entièrement nouvelle, et ils sont très différents des compilateurs C++ de précédente génération de {{Product}} :&lt;br /&gt;
&lt;br /&gt;
*[[BCC32|BCC32]] (Windows 32 bits)&lt;br /&gt;
&lt;br /&gt;
Voici quelques différences significatives entre les compilateurs C++ améliorés par Clang et les deux compilateurs C++ de précédente génération :&lt;br /&gt;
&lt;br /&gt;
*Les compilateurs C++ améliorés par Clang sont aussi des &#039;&#039;&#039;préprocesseurs&#039;&#039;&#039; lorsqu&#039;ils sont exécutés avec le commutateur &amp;lt;code&amp;gt;-E&amp;lt;/code&amp;gt;.&lt;br /&gt;
*:Pour Windows 64 bits, il existe également un [[CPP64, le préprocesseur pour Windows 64 bits|préprocesseur CPP64.EXE]] distinct.&lt;br /&gt;
*Les compilateurs C++ améliorés par Clang imposent la recherche de modèles en deux phases.&lt;br /&gt;
*:Ce qui signifie que les noms qui ne sont pas liés à un type dépendant sont recherchés lors de la première phase (avant l&#039;instanciation) et peuvent provoquer des erreurs que les compilateurs C++ de précédente génération ne signalaient pas. Lors de la deuxième phase (l&#039;instanciation), le code du modèle est à nouveau contrôlé pour vérifier que tous les appels sont valides pour les types dépendants. Pour de plus amples informations, voir [http://blog.llvm.org/2009/12/dreaded-two-phase-name-lookup.html Two-phase name lookup for Clang (EN)].&lt;br /&gt;
&lt;br /&gt;
Par ex. : le modèle peut effectuer plusieurs appels à des fonctions qui ne sont peut-être pas présentes pour ce type particulier.&lt;br /&gt;
&lt;br /&gt;
*Les compilateurs C++ améliorés par Clang n&#039;autorisent un argument par défaut que dans une déclaration de fonction.&lt;br /&gt;
*:Les compilateurs C++ de précédente génération autorisent également les arguments par défaut dans un pointeur de fonction ou une déclaration de clôture.&lt;br /&gt;
*Les compilateurs C++ améliorés par Clang n&#039;autorisent pas l&#039;utilisation de [[Sizeof|sizeof]] dans une directive du préprocesseur, telle que &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;#if sizeof(ATypeName) &amp;gt; 20&amp;lt;/source&amp;gt;.&lt;br /&gt;
*Les compilateurs C++ améliorés par Clang sont plus stricts concernant les conversions.&lt;br /&gt;
*:Par exemple, la conversion de constantes chaîne en &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;char *&amp;lt;/source&amp;gt; génère un avertissement (la conversion d&#039;un littéral chaîne en &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;char *&amp;lt;/source&amp;gt; est désapprouvée). D&#039;autre part, l&#039;initialisation d&#039;un &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;char *&amp;lt;/source&amp;gt; avec un &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;unsigned char *&amp;lt;/source&amp;gt; génère une erreur (Impossible d&#039;initialiser une variable de type &#039;char *&#039; avec une rvalue de type &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;BYTE *&amp;lt;/source&amp;gt;, aussi connue comme &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;unsigned char *&amp;lt;/source&amp;gt;).&lt;br /&gt;
*Les compilateurs C++ améliorés par Clang n&#039;autorisent pas la combinaison de &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;__try&amp;lt;/source&amp;gt; avec &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;catch&amp;lt;/source&amp;gt; : en effet, &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;catch&amp;lt;/source&amp;gt; doit être utilisé avec &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;try&amp;lt;/source&amp;gt;, et &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;__try&amp;lt;/source&amp;gt; doit être utilisé avec &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;__except&amp;lt;/source&amp;gt; ou &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;__finally&amp;lt;/source&amp;gt;, voire les deux.&lt;br /&gt;
*Les identificateurs Unicode ne sont pas pris en charge par les compilateurs C++ améliorés par Clang.&lt;br /&gt;
*[[CPP32.EXE, le préprocesseur du compilateur C|CPP32]] prend en charge l&#039;option &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;-Hp&amp;lt;/source&amp;gt; et imprime les informations de garde des en-têtes utilisées par [[Expert En-tête précompilé|l&#039;expert En-tête précompilé]].&lt;br /&gt;
*Le style Unix &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;#line&amp;lt;/source&amp;gt; n&#039;est pas la valeur &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;#line&amp;lt;/source&amp;gt; par défaut de CPP32, et ainsi de suite.&lt;br /&gt;
*Les compilateurs C++ améliorés par Clang ne prennent pas en charge les attributs C++11 [[Final (C++)|final]], [[Deprecated|deprecated]] et [[Noreturn|noreturn]]. Voir [[Solution pour les attributs C++11|Solution pour les attributs C++11]] pour trouver une solution de contournement dans les compilateurs C++ améliorés par Clang.&lt;br /&gt;
*De nombreuses options des compilateurs C++ de précédente génération ne sont pas prises en charge par les compilateurs C++ améliorés par Clang, et vice versa :&lt;br /&gt;
**[[Options de projet prises en charge par les compilateurs C++ améliorés par Clang|Options de projet prises en charge par les compilateurs C++ améliorés par Clang]]&lt;br /&gt;
**[[Options non prises en charge par les compilateurs C++ améliorés par Clang|Options non prises en charge par les compilateurs C++ améliorés par Clang]]&lt;br /&gt;
*Les compilateurs C++ améliorés par C ne traitent pas __FUNC__ en tant que macro prédéfinie. C&#039;est plutôt un identificateur prédéfini (une variable function-local prédéfinie) qui capture les noms de fonction en tant que tableau de caractères statique.&lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations, voir &#039;&#039;&#039;[[Différences entre les compilateurs C++ améliorés par Clang et les compilateurs C++ de précédente génération|Différences entre les compilateurs C++ améliorés par Clang et les compilateurs C++ de précédente génération]].&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Comment les options du compilateur C++ de précédente génération sont converties en options des compilateurs C++ améliorés par Clang===&lt;br /&gt;
&lt;br /&gt;
Voir &#039;&#039;&#039;[[Options de projet prises en charge par les compilateurs C++ améliorés par Clang|Options de projet prises en charge par les compilateurs C++ améliorés par Clang]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Problèmes fréquents lors de la compilation d&#039;un projet du compilateur C++ de précédente génération avec les compilateurs C++ améliorés par Clang===&lt;br /&gt;
&lt;br /&gt;
Il est probable que vous rencontrerez de nouvelles erreurs dues à la rigueur de la conformité ANSI des compilateurs C++ améliorés par Clang.&lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations, voir :&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Erreurs et avertissements des compilateurs C++ améliorés par Clang|Erreurs et avertissements des compilateurs C++ améliorés par Clang]]&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;[[Différences entre les compilateurs C++ améliorés par Clang et les compilateurs C++ de précédente génération|Différences entre les compilateurs C++ améliorés par Clang et les compilateurs C++ de précédente génération]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Prise en charge des en-têtes précompilés==&lt;br /&gt;
&lt;br /&gt;
Les compilateurs C++ améliorés par Clang prennent en charge l&#039;utilisation d&#039;un en-tête précompilé, nommé par défaut &amp;lt;code&amp;gt;&amp;amp;lt;projet&amp;amp;gt;&amp;amp;lt;n&amp;amp;gt;PCH.h&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations, voir &#039;&#039;&#039;[[Utilisation des en-têtes précompilés avec les compilateurs C++ améliorés par Clang|Utilisation des en-têtes précompilés avec les compilateurs C++ améliorés par Clang]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Macros prédéfinies==&lt;br /&gt;
&lt;br /&gt;
Les macros prédéfinies prises en charge par les compilateurs améliorés par Clang sont nombreuses. Par exemple, BCCIOSARM64 prend en charge des définitions telles que &amp;lt;code&amp;gt;__APPLE__&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;__BCCPLUSPLUS__&amp;lt;/code&amp;gt;.{{f|cmd|&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Pour afficher toutes les macros prédéfinies qui sont prises en charge, utilisez l&#039;interface de ligne de commande de votre compilateur, comme suit :&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:{{Code|echo {{!}} {{Placeholder|compiler}} -E -dM -}}&lt;br /&gt;
&lt;br /&gt;
L&#039;option {{Code|-E}} exécute le préprocesseur uniquement. {{Code|-dM}} vide toutes les macros définies lors du prétraitement et s&#039;arrête. Le {{Code|-}} final prend l&#039;entrée de stdin, qui est envoyée via le canal à partir de {{Code|l&#039;echo}} vide.}}&lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations, voir [[Macros prédéfinies|Macros prédéfinies]].&lt;br /&gt;
&lt;br /&gt;
==Mots clés==&lt;br /&gt;
&lt;br /&gt;
Cette section contient une liste alphabétique des [[Liste alphabétique des mots clés - Index|mots clés C++]] qui nécessitent un traitement spécial lors de leur utilisation avec les compilateurs C++ améliorés par Clang ou qui ne sont pas pris en charge par ces compilateurs.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Pris en charge&lt;br /&gt;
!Non pris en charge&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
*[[Asm, asm, asm|asm, _asm, __asm]]&lt;br /&gt;
*[[Auto|auto]]&lt;br /&gt;
*[[Cdecl, cdecl, cdecl|cdecl, _cdecl, __cdecl]]&lt;br /&gt;
*[[Declspec|__declspec]]&lt;br /&gt;
*[[Export, export|_export, __export]]&lt;br /&gt;
*[[Fastcall, fastcall|_fastcall, __fastcall]]&lt;br /&gt;
*[[Import, import|_import, __import]]&lt;br /&gt;
*[[Pascal, pascal, pascal|pascal, _pascal, __pascal]]&lt;br /&gt;
*[[Property|__property]]&lt;br /&gt;
*[[Stdcall, stdcall|_stdcall, __stdcall]]&lt;br /&gt;
|&lt;br /&gt;
*[[Deprecated|deprecated]]&lt;br /&gt;
*[[Final (C++)|final]]&lt;br /&gt;
*[[Noreturn|noreturn]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Voir &#039;&#039;&#039;[[Solution pour les attributs C++11|Solution pour les attributs C++11 (compilateurs C++ améliorés par Clang)]]&#039;&#039;&#039; pour savoir comment remplacer la fonctionnalité des mots clés qui ne sont pas pris en charge dans les compilateurs C++ améliorés par Clang.&lt;br /&gt;
&lt;br /&gt;
==Utilisation de la compilation parallèle==&lt;br /&gt;
&lt;br /&gt;
La compilation parallèle permet aux compilateurs de traiter simultanément plusieurs fichiers source, en utilisant les coeurs distincts du processeur système, afin de réduire de façon significative la durée de la compilation.&lt;br /&gt;
&lt;br /&gt;
Pour activer la compilation parallèle dans l&#039;EDI pour un projet C++ donné, ouvrez le projet cible et suivez ces étapes :&lt;br /&gt;
&lt;br /&gt;
#Sélectionnez {{Menu|Projet &amp;amp;gt; Options &amp;amp;gt; [[Compilateur C++|Compilateur C++]]}}, et activez l&#039;option &amp;quot;Activer la compilation groupée&amp;quot; sous &#039;&#039;&#039;Compilation générale&#039;&#039;&#039;.&lt;br /&gt;
#Sélectionnez {{Menu|Projet &amp;amp;gt; Options &amp;amp;gt; [[Propriétés de projet|Propriétés de projet]]}} et :&lt;br /&gt;
##Activez l&#039;option &amp;quot;Exécuter le compilateur C++ dans un processus distinct&amp;quot;.&lt;br /&gt;
##Sélectionnez le nombre de sous-processus parallèles que vous souhaitez utiliser.&lt;br /&gt;
#:{{Note|Le nombre de sous-processus que vous choisissez ne peut pas être supérieur au nombre de coeurs de votre CPU.}}&lt;br /&gt;
&lt;br /&gt;
==Rubriques==&lt;br /&gt;
&lt;br /&gt;
*[[Compilateurs Win32 améliorés par Clang|BCC32C]]&lt;br /&gt;
*[[Compilateurs Win32 améliorés par Clang|BCC32X]]&lt;br /&gt;
*[[BCC64|BCC64]]&lt;br /&gt;
*[[BCC64X|BCC64X]]&lt;br /&gt;
*[[BCCIOSARM64|BCCIOSARM64]]&lt;br /&gt;
*[[BCCAARM|BCCAARM]]&lt;br /&gt;
*[[Différences entre les compilateurs C++ améliorés par Clang et les compilateurs C++ de précédente génération|Différences entre les compilateurs C++ améliorés par Clang et les compilateurs C++ de précédente génération]]&lt;br /&gt;
*[[Options de projet prises en charge par les compilateurs C++ améliorés par Clang|Options de projet prises en charge par les compilateurs C++ améliorés par Clang]]&lt;br /&gt;
*[[Options non prises en charge par les compilateurs C++ améliorés par Clang|Options non prises en charge par les compilateurs C++ améliorés par Clang]]&lt;br /&gt;
*[[Options de ligne de commande des en-têtes précompilés pour les compilateurs C++ améliorés par Clang|Options de ligne de commande des en-têtes précompilés pour les compilateurs C++ améliorés par Clang]]&lt;br /&gt;
*[[Utilisation des en-têtes précompilés avec les compilateurs C++ améliorés par Clang|Utilisation des en-têtes précompilés avec les compilateurs C++ améliorés par Clang]]&lt;br /&gt;
*[[Erreurs et avertissements des compilateurs C++ améliorés par Clang|Erreurs et avertissements des compilateurs C++ améliorés par Clang]]&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Fonctionnalités du C++ moderne prises en charge par les compilateurs C++ améliorés par Clang de RAD Studio|Fonctionnalités du C++ moderne prises en charge par les compilateurs C++ améliorés par Clang de RAD Studio]]&lt;br /&gt;
*[[Statut de conformité des fonctionnalités du langage C++ moderne|Statut de conformité des fonctionnalités du langage C++11 moderne]]&lt;br /&gt;
*[[Interfaces de ligne de commande des compilateurs C++ améliorés par Clang|Interfaces de ligne de commande des compilateurs C++ améliorés par Clang]]&lt;br /&gt;
&lt;br /&gt;
*[http://clang.llvm.org/ http://clang.llvm.org/ (EN)]&lt;br /&gt;
**[https://learn.microsoft.com/en-us/shows/goingnative-2012/clang-defending-c-from-murphy-s-million-monkeys https://learn.microsoft.com/en-us/shows/goingnative-2012/clang-defending-c-from-murphy-s-million-monkeys]&lt;br /&gt;
**[http://devimages.apple.com/llvm/videos/ExtendingClang.m4v http://devimages.apple.com/llvm/videos/ExtendingClang.m4v (EN)]&lt;br /&gt;
**[http://llvm.org/devmtg/2011-11/Gregor_ExtendingClang.pdf http://llvm.org/devmtg/2011-11/Gregor_ExtendingClang.pdf (EN)]&lt;br /&gt;
**[http://llvm.org/docs/index.html http://llvm.org/docs/index.html (EN)]&lt;br /&gt;
**[http://llvm.org/docs/Passes.html http://llvm.org/docs/Passes.html (EN)]&lt;br /&gt;
&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:XE5]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Compilateurs_C%2B%2B_am%C3%A9lior%C3%A9s_par_Clang&amp;diff=218899</id>
		<title>Compilateurs C++ améliorés par Clang</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Compilateurs_C%2B%2B_am%C3%A9lior%C3%A9s_par_Clang&amp;diff=218899"/>
		<updated>2026-05-09T03:34:47Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Compilateurs C++}}&lt;br /&gt;
&lt;br /&gt;
La dernière génération des compilateurs C++ de {{Product}} est basée sur le [http://clang.llvm.org/ compilateur Clang (EN)] open-source, qui représente le frontal de [http://www.llvm.org/ l&#039;infrastructure du compilateur LLVM (EN)].&lt;br /&gt;
&lt;br /&gt;
{{Product}} fournit les compilateurs C++ suivants améliorés par Clang :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Compilateur&lt;br /&gt;
!Plate-forme&lt;br /&gt;
!Version de Clang&lt;br /&gt;
!Version de LLVM&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[Compilateurs Win32 améliorés par Clang|BCC32C]]&lt;br /&gt;
|Windows 32 bits&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |5.0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |5.0&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[Compilateurs Win32 améliorés par Clang|BCC32X]] &amp;lt;ref&amp;gt;BCC32X utilise les indicateurs en ligne de commande Clang par mesure de compatibilité avec d&#039;autres compilateurs basés sur Clang (BCC64, BCCIOSARM64 et BCCAARM). BCC32C est compatible avec les indicateurs de compilateur classiques (BCC32).&amp;lt;/ref&amp;gt;&lt;br /&gt;
|Windows 32 bits&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |5.0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |5.0&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[BCC64|BCC64]]&lt;br /&gt;
|Windows 64 bits&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |5.0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |5.0&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[BCC64X|BCC64X]]&lt;br /&gt;
|Windows 64 bits&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |20.0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |20.0&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[BCCIOSARM64|BCCIOSARM64]]&lt;br /&gt;
|iOS 64 bits&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |3.3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |3.5&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|[[BCCAARM|BCCAARM]]&lt;br /&gt;
|Android&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |3.3&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; |3.3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Différences entre les compilateurs C++ améliorés par Clang et les compilateurs C++ de précédente génération==&lt;br /&gt;
&lt;br /&gt;
Les compilateurs C++ améliorés par Clang ont une base de code entièrement nouvelle, et ils sont très différents des compilateurs C++ de précédente génération de {{Product}} :&lt;br /&gt;
&lt;br /&gt;
*[[BCC32|BCC32]] (Windows 32 bits)&lt;br /&gt;
&lt;br /&gt;
Voici quelques différences significatives entre les compilateurs C++ améliorés par Clang et les deux compilateurs C++ de précédente génération :&lt;br /&gt;
&lt;br /&gt;
*Les compilateurs C++ améliorés par Clang sont aussi des &#039;&#039;&#039;préprocesseurs&#039;&#039;&#039; lorsqu&#039;ils sont exécutés avec le commutateur &amp;lt;code&amp;gt;-E&amp;lt;/code&amp;gt;.&lt;br /&gt;
*:Pour Windows 64 bits, il existe également un [[CPP64, le préprocesseur pour Windows 64 bits|préprocesseur CPP64.EXE]] distinct.&lt;br /&gt;
*Les compilateurs C++ améliorés par Clang imposent la recherche de modèles en deux phases.&lt;br /&gt;
*:Ce qui signifie que les noms qui ne sont pas liés à un type dépendant sont recherchés lors de la première phase (avant l&#039;instanciation) et peuvent provoquer des erreurs que les compilateurs C++ de précédente génération ne signalaient pas. Lors de la deuxième phase (l&#039;instanciation), le code du modèle est à nouveau contrôlé pour vérifier que tous les appels sont valides pour les types dépendants. Pour de plus amples informations, voir [http://blog.llvm.org/2009/12/dreaded-two-phase-name-lookup.html Two-phase name lookup for Clang (EN)].&lt;br /&gt;
&lt;br /&gt;
Par ex. : le modèle peut effectuer plusieurs appels à des fonctions qui ne sont peut-être pas présentes pour ce type particulier.&lt;br /&gt;
&lt;br /&gt;
*Les compilateurs C++ améliorés par Clang n&#039;autorisent un argument par défaut que dans une déclaration de fonction.&lt;br /&gt;
*:Les compilateurs C++ de précédente génération autorisent également les arguments par défaut dans un pointeur de fonction ou une déclaration de clôture.&lt;br /&gt;
*Les compilateurs C++ améliorés par Clang n&#039;autorisent pas l&#039;utilisation de [[Sizeof|sizeof]] dans une directive du préprocesseur, telle que &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;#if sizeof(ATypeName) &amp;gt; 20&amp;lt;/source&amp;gt;.&lt;br /&gt;
*Les compilateurs C++ améliorés par Clang sont plus stricts concernant les conversions.&lt;br /&gt;
*:Par exemple, la conversion de constantes chaîne en &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;char *&amp;lt;/source&amp;gt; génère un avertissement (la conversion d&#039;un littéral chaîne en &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;char *&amp;lt;/source&amp;gt; est désapprouvée). D&#039;autre part, l&#039;initialisation d&#039;un &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;char *&amp;lt;/source&amp;gt; avec un &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;unsigned char *&amp;lt;/source&amp;gt; génère une erreur (Impossible d&#039;initialiser une variable de type &#039;char *&#039; avec une rvalue de type &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;BYTE *&amp;lt;/source&amp;gt;, aussi connue comme &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;unsigned char *&amp;lt;/source&amp;gt;).&lt;br /&gt;
*Les compilateurs C++ améliorés par Clang n&#039;autorisent pas la combinaison de &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;__try&amp;lt;/source&amp;gt; avec &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;catch&amp;lt;/source&amp;gt; : en effet, &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;catch&amp;lt;/source&amp;gt; doit être utilisé avec &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;try&amp;lt;/source&amp;gt;, et &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;__try&amp;lt;/source&amp;gt; doit être utilisé avec &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;__except&amp;lt;/source&amp;gt; ou &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;__finally&amp;lt;/source&amp;gt;, voire les deux.&lt;br /&gt;
*Les identificateurs Unicode ne sont pas pris en charge par les compilateurs C++ améliorés par Clang.&lt;br /&gt;
*[[CPP32.EXE, le préprocesseur du compilateur C|CPP32]] prend en charge l&#039;option &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;-Hp&amp;lt;/source&amp;gt; et imprime les informations de garde des en-têtes utilisées par [[Expert En-tête précompilé|l&#039;expert En-tête précompilé]].&lt;br /&gt;
*Le style Unix &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;#line&amp;lt;/source&amp;gt; n&#039;est pas la valeur &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;#line&amp;lt;/source&amp;gt; par défaut de CPP32, et ainsi de suite.&lt;br /&gt;
*Les compilateurs C++ améliorés par Clang ne prennent pas en charge les attributs C++11 [[Final (C++)|final]], [[Deprecated|deprecated]] et [[Noreturn|noreturn]]. Voir [[Solution pour les attributs C++11|Solution pour les attributs C++11]] pour trouver une solution de contournement dans les compilateurs C++ améliorés par Clang.&lt;br /&gt;
*De nombreuses options des compilateurs C++ de précédente génération ne sont pas prises en charge par les compilateurs C++ améliorés par Clang, et vice versa :&lt;br /&gt;
**[[Options de projet prises en charge par les compilateurs C++ améliorés par Clang|Options de projet prises en charge par les compilateurs C++ améliorés par Clang]]&lt;br /&gt;
**[[Options non prises en charge par les compilateurs C++ améliorés par Clang|Options non prises en charge par les compilateurs C++ améliorés par Clang]]&lt;br /&gt;
*Les compilateurs C++ améliorés par C ne traitent pas __FUNC__ en tant que macro prédéfinie. C&#039;est plutôt un identificateur prédéfini (une variable function-local prédéfinie) qui capture les noms de fonction en tant que tableau de caractères statique.&lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations, voir &#039;&#039;&#039;[[Différences entre les compilateurs C++ améliorés par Clang et les compilateurs C++ de précédente génération|Différences entre les compilateurs C++ améliorés par Clang et les compilateurs C++ de précédente génération]].&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Comment les options du compilateur C++ de précédente génération sont converties en options des compilateurs C++ améliorés par Clang===&lt;br /&gt;
&lt;br /&gt;
Voir &#039;&#039;&#039;[[Options de projet prises en charge par les compilateurs C++ améliorés par Clang|Options de projet prises en charge par les compilateurs C++ améliorés par Clang]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Problèmes fréquents lors de la compilation d&#039;un projet du compilateur C++ de précédente génération avec les compilateurs C++ améliorés par Clang===&lt;br /&gt;
&lt;br /&gt;
Il est probable que vous rencontrerez de nouvelles erreurs dues à la rigueur de la conformité ANSI des compilateurs C++ améliorés par Clang.&lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations, voir :&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Erreurs et avertissements des compilateurs C++ améliorés par Clang|Erreurs et avertissements des compilateurs C++ améliorés par Clang]]&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;[[Différences entre les compilateurs C++ améliorés par Clang et les compilateurs C++ de précédente génération|Différences entre les compilateurs C++ améliorés par Clang et les compilateurs C++ de précédente génération]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Prise en charge des en-têtes précompilés==&lt;br /&gt;
&lt;br /&gt;
Les compilateurs C++ améliorés par Clang prennent en charge l&#039;utilisation d&#039;un en-tête précompilé, nommé par défaut &amp;lt;code&amp;gt;&amp;amp;lt;projet&amp;amp;gt;&amp;amp;lt;n&amp;amp;gt;PCH.h&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations, voir &#039;&#039;&#039;[[Utilisation des en-têtes précompilés avec les compilateurs C++ améliorés par Clang|Utilisation des en-têtes précompilés avec les compilateurs C++ améliorés par Clang]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Macros prédéfinies==&lt;br /&gt;
&lt;br /&gt;
Les macros prédéfinies prises en charge par les compilateurs améliorés par Clang sont nombreuses. Par exemple, BCCIOSARM64 prend en charge des définitions telles que &amp;lt;code&amp;gt;__APPLE__&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;__BCCPLUSPLUS__&amp;lt;/code&amp;gt;.{{f|cmd|&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Pour afficher toutes les macros prédéfinies qui sont prises en charge, utilisez l&#039;interface de ligne de commande de votre compilateur, comme suit :&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:{{Code|echo {{!}} {{Placeholder|compiler}} -E -dM -}}&lt;br /&gt;
&lt;br /&gt;
L&#039;option {{Code|-E}} exécute le préprocesseur uniquement. {{Code|-dM}} vide toutes les macros définies lors du prétraitement et s&#039;arrête. Le {{Code|-}} final prend l&#039;entrée de stdin, qui est envoyée via le canal à partir de {{Code|l&#039;echo}} vide.}}&lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations, voir [[Macros prédéfinies|Macros prédéfinies]].&lt;br /&gt;
&lt;br /&gt;
==Mots clés==&lt;br /&gt;
&lt;br /&gt;
Cette section contient une liste alphabétique des [[Liste alphabétique des mots clés - Index|mots clés C++]] qui nécessitent un traitement spécial lors de leur utilisation avec les compilateurs C++ améliorés par Clang ou qui ne sont pas pris en charge par ces compilateurs.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Pris en charge&lt;br /&gt;
!Non pris en charge&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
*[[Asm, asm, asm|asm, _asm, __asm]]&lt;br /&gt;
*[[Auto|auto]]&lt;br /&gt;
*[[Cdecl, cdecl, cdecl|cdecl, _cdecl, __cdecl]]&lt;br /&gt;
*[[Declspec|__declspec]]&lt;br /&gt;
*[[Export, export|_export, __export]]&lt;br /&gt;
*[[Fastcall, fastcall|_fastcall, __fastcall]]&lt;br /&gt;
*[[Import, import|_import, __import]]&lt;br /&gt;
*[[Pascal, pascal, pascal|pascal, _pascal, __pascal]]&lt;br /&gt;
*[[Property|__property]]&lt;br /&gt;
*[[Stdcall, stdcall|_stdcall, __stdcall]]&lt;br /&gt;
|&lt;br /&gt;
*[[Deprecated|deprecated]]&lt;br /&gt;
*[[Final (C++)|final]]&lt;br /&gt;
*[[Noreturn|noreturn]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Voir &#039;&#039;&#039;[[Solution pour les attributs C++11|Solution pour les attributs C++11 (compilateurs C++ améliorés par Clang)]]&#039;&#039;&#039; pour savoir comment remplacer la fonctionnalité des mots clés qui ne sont pas pris en charge dans les compilateurs C++ améliorés par Clang.&lt;br /&gt;
&lt;br /&gt;
==Utilisation de la compilation parallèle==&lt;br /&gt;
&lt;br /&gt;
La compilation parallèle permet aux compilateurs de traiter simultanément plusieurs fichiers source, en utilisant les coeurs distincts du processeur système, afin de réduire de façon significative la durée de la compilation.&lt;br /&gt;
&lt;br /&gt;
Pour activer la compilation parallèle dans l&#039;EDI pour un projet C++ donné, ouvrez le projet cible et suivez ces étapes :&lt;br /&gt;
&lt;br /&gt;
#Sélectionnez {{Menu|Projet &amp;amp;gt; Options &amp;amp;gt; [[Compilateur C++|Compilateur C++]]}}, et activez l&#039;option &amp;quot;Activer la compilation groupée&amp;quot; sous &#039;&#039;&#039;Compilation générale&#039;&#039;&#039;.&lt;br /&gt;
#Sélectionnez {{Menu|Projet &amp;amp;gt; Options &amp;amp;gt; [[Propriétés de projet|Propriétés de projet]]}} et :&lt;br /&gt;
##Activez l&#039;option &amp;quot;Exécuter le compilateur C++ dans un processus distinct&amp;quot;.&lt;br /&gt;
##Sélectionnez le nombre de sous-processus parallèles que vous souhaitez utiliser.&lt;br /&gt;
#:{{Note|Le nombre de sous-processus que vous choisissez ne peut pas être supérieur au nombre de coeurs de votre CPU.}}&lt;br /&gt;
&lt;br /&gt;
==Rubriques==&lt;br /&gt;
&lt;br /&gt;
*[[Compilateurs Win32 améliorés par Clang|BCC32C]]&lt;br /&gt;
*[[Compilateurs Win32 améliorés par Clang|BCC32X]]&lt;br /&gt;
*[[BCC64|BCC64]]&lt;br /&gt;
*[[BCC64X|BCC64X]]&lt;br /&gt;
*[[BCCIOSARM64|BCCIOSARM64]]&lt;br /&gt;
*[[BCCAARM|BCCAARM]]&lt;br /&gt;
*[[Différences entre les compilateurs C++ améliorés par Clang et les compilateurs C++ de précédente génération|Différences entre les compilateurs C++ améliorés par Clang et les compilateurs C++ de précédente génération]]&lt;br /&gt;
*[[Options de projet prises en charge par les compilateurs C++ améliorés par Clang|Options de projet prises en charge par les compilateurs C++ améliorés par Clang]]&lt;br /&gt;
*[[Options non prises en charge par les compilateurs C++ améliorés par Clang|Options non prises en charge par les compilateurs C++ améliorés par Clang]]&lt;br /&gt;
*[[Options de ligne de commande des en-têtes précompilés pour les compilateurs C++ améliorés par Clang|Options de ligne de commande des en-têtes précompilés pour les compilateurs C++ améliorés par Clang]]&lt;br /&gt;
*[[Utilisation des en-têtes précompilés avec les compilateurs C++ améliorés par Clang|Utilisation des en-têtes précompilés avec les compilateurs C++ améliorés par Clang]]&lt;br /&gt;
*[[Erreurs et avertissements des compilateurs C++ améliorés par Clang|Erreurs et avertissements des compilateurs C++ améliorés par Clang]]&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Fonctionnalités du C++ moderne prises en charge par les compilateurs C++ améliorés par Clang de RAD Studio|Fonctionnalités du C++ moderne prises en charge par les compilateurs C++ améliorés par Clang de RAD Studio]]&lt;br /&gt;
*[[Statut de conformité des fonctionnalités du langage C++ moderne|Statut de conformité des fonctionnalités du langage C++11 moderne]]&lt;br /&gt;
*[[Interfaces de ligne de commande des compilateurs C++ améliorés par Clang|Interfaces de ligne de commande des compilateurs C++ améliorés par Clang]]&lt;br /&gt;
&lt;br /&gt;
*[http://clang.llvm.org/ http://clang.llvm.org/ (EN)]&lt;br /&gt;
**[https://learn.microsoft.com/en-us/shows/goingnative-2012/clang-defending-c-from-murphy-s-million-monkeys https://learn.microsoft.com/en-us/shows/goingnative-2012/clang-defending-c-from-murphy-s-million-monkeys]&lt;br /&gt;
**[http://devimages.apple.com/llvm/videos/ExtendingClang.m4v http://devimages.apple.com/llvm/videos/ExtendingClang.m4v (EN)]&lt;br /&gt;
**[http://llvm.org/devmtg/2011-11/Gregor_ExtendingClang.pdf http://llvm.org/devmtg/2011-11/Gregor_ExtendingClang.pdf (EN)]&lt;br /&gt;
**[http://llvm.org/docs/index.html http://llvm.org/docs/index.html (EN)]&lt;br /&gt;
**[http://llvm.org/docs/Passes.html http://llvm.org/docs/Passes.html (EN)]&lt;br /&gt;
&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:XE5]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=BCC64X&amp;diff=218898</id>
		<title>BCC64X</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=BCC64X&amp;diff=218898"/>
		<updated>2026-05-09T03:34:47Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : 1 révision importée : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Compilateurs C++ améliorés par Clang}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BCC64X&#039;&#039;&#039; est un compilateur C++ de {{Product}} pour Windows 64 bits (Moderne).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[BCC64X|BCC64X]] est basé sur Clang. Pour plus d&#039;informations sur les fonctionnalités communes entre le compilateur [[BCC64X|BCC64X]] et les autres compilateurs C++ améliorés par Clang, voir &#039;&#039;&#039;[[Compilateurs C++ améliorés par Clang|Compilateurs C++ améliorés par Clang]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
{{Notes|&lt;br /&gt;
&lt;br /&gt;
* Le compilateur C++ [[BCC64X|BCC64X]] basé sur Clang 20,1 est maintenant la version C++23 par défaut. Si nécessaire, vous pouvez toujours cibler C++20 ou C++17.&lt;br /&gt;
* Pour Windows 32 bits, utilisez [[Compilateurs Win32 améliorés par Clang|BCC32C]] (compilateur amélioré par Clang) ou [[BCC32|BCC32]] (compilateur d&#039;ancienne génération).&lt;br /&gt;
* [[BCC64X|BCC64X]] est la chaîne d&#039;outils/compilateur Win64 Moderne qui est recommandée pour toutes les applications. Cependant, l&#039;ancien [[BCC64|BCC64]] existe toujours.}}&lt;br /&gt;
&lt;br /&gt;
==Informations générales==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Champ&lt;br /&gt;
! Valeur&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Version de Clang&lt;br /&gt;
|20.1&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Version de LLVM&lt;br /&gt;
|20.1&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Conventions d&#039;appel&lt;br /&gt;
|[[Wikipedia:X86 calling conventions#Convention d&#039;appel Microsoft x64|Microsoft x64]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Substantypage&lt;br /&gt;
|[http://www.uclibc.org/docs/psABI-ia64.pdf Itanium]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Bibliothèque standard&lt;br /&gt;
|[https://libcxx.llvm.org/ LLVM libc++]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| C++ Runtime&lt;br /&gt;
| Personnalisé, basé sur [https://www.mingw-w64.org/downloads/#llvm-mingw MinGW-LLVM]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| C Runtime&lt;br /&gt;
|[https://devblogs.microsoft.com/cppblog/introducing-the-universal-crt/ UCRT]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Fichiers de sortie==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type de fichier&lt;br /&gt;
! Extension de fichier&lt;br /&gt;
! Format de fichier&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Exécutable&lt;br /&gt;
|{{Path|.exe}}&lt;br /&gt;
|[[Wikipedia:Portable Executable|PE64 (PE32+)]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Bibliothèque partagée&lt;br /&gt;
|{{Path|.dll}}&lt;br /&gt;
|[[Wikipedia:Portable Executable|PE64 (PE32+)]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Bibliothèque statique&lt;br /&gt;
| {{Path|.lib}} et {{Path|lib[name].a}}&lt;br /&gt;
| Bibliothèque de fichiers objet, voir [[Auto Linking|Liaison automatique]] pour plus d&#039;informations sur les extensions.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Objet compilé&lt;br /&gt;
|{{Path|.o}}&lt;br /&gt;
|[[Wikipedia:COFF|COFF64]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Informations de débogage&lt;br /&gt;
|{{Path|.pdb}}&lt;br /&gt;
|[[PDB Debug File|PDB]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Note| Le nouveau Clang prend en charge la liaison dynamique et statique des packages. Vous pouvez lier ces fichiers à vos {code|EXE}} ou {{code|DLL}}.}}&lt;br /&gt;
&lt;br /&gt;
{{Note|Pour éviter les conflits à l&#039;exécution lorsque plusieurs versions de {{Product}} sont installées, les bibliothèques d&#039;exécution partagées ({{code|libc++.dll}}) ont maintenant en suffixe le numéro de version. BDS ({{code|libc++-370.dll}}).}}&lt;br /&gt;
&lt;br /&gt;
==Ecriture du code C++ pour BCC64X==&lt;br /&gt;
&lt;br /&gt;
Pour écrire du code C++ spécifiquement pour BCC64X, utilisez :&lt;br /&gt;
&lt;br /&gt;
 #if defined(__BORLANDC__) &amp;amp;amp;&amp;amp;amp; defined(_WIN64) &amp;amp;amp;&amp;amp;amp; defined(__MINGW64__)&lt;br /&gt;
&lt;br /&gt;
Si vous visez une release spécifique, ajoutez une vérification en procédant comme suit :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 #if __clang_major__ == 20.1&lt;br /&gt;
   #pragma message(&amp;quot;Using version 20.1 of Clang&amp;quot;)&lt;br /&gt;
 #endif&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour plus d&#039;informations, voir [[Compilateurs C++ améliorés par Clang#Macros prédéfinies|Compilateurs C++ améliorés par Clang, Macros prédéfinies]].&lt;br /&gt;
&lt;br /&gt;
==Chaîne d&#039;outils==&lt;br /&gt;
&lt;br /&gt;
La &#039;&#039;&#039;chaîne d&#039;outils C++ Windows 64 bits Moderne&#039;&#039;&#039; (bcc64x) est une implémentation des extensions Clang et des fonctionnalités C++Builder avec une technologie adaptée aux nouvelles plates-formes. Avec le [[Technical Details About LLD|lieur LLD]], la nouvelle RTL, et d&#039;autres fonctionnalités, la nouvelle chaîne d&#039;outils Clang est la [[How to Choose a Win64 C++ Toolchain|chaîne d&#039;outils C++ que nous recommandons]].&lt;br /&gt;
&lt;br /&gt;
Elle utilise la STL LLVM libc++, une RTL C++ personnalisée, le UCRT Windows pour le runtime C, et génère des fichiers objet au format COFF64 avec des informations de débogage PDB.&lt;br /&gt;
&lt;br /&gt;
Pour ajouter cette chaîne d&#039;outils à votre projet C++ existant, procédez comme suit :&lt;br /&gt;
&lt;br /&gt;
#Cliquez avec le bouton droit sur le noeud &#039;&#039;&#039;[[Présentation des plates-formes cible|Plates-formes cible]]&#039;&#039;&#039; dans la vue arborescente Projets.&lt;br /&gt;
# Sélectionnez &#039;&#039;&#039;Ajouter une plate-forme&#039;&#039;&#039;.&lt;br /&gt;
# Choisissez &#039;&#039;&#039;Windows 64 bits (Moderne&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
{{Note| Vous pouvez facilement permuter entre la nouvelle et l&#039;ancienne plate-forme Win64, car les deux sont installées et peuvent être ajoutées à un projet, ce qui facilite la mise à niveau.}}&lt;br /&gt;
&lt;br /&gt;
{{Attention| Les anciennes chaînes d&#039;outils proposaient plusieurs versions du runtime pour gérer séparément les applications à thread unique et les applications multithreads. La chaîne d&#039;outils moderne a un seul runtime [[Programmes multithreads|multithread]]. Par conséquent, vous pouvez uniquement utiliser un runtime multithread. Si votre application utilise un thread unique, ce runtime convient quand même.}}&lt;br /&gt;
{{Note| {{code|_setmaxstdio}} et {{code|_getstdiomax}} sont des fonctionnalités runtime de Microsoft (UCRT). Ces fonctionnalités sont uniquement prises en charge sur Win64x.}} &lt;br /&gt;
&lt;br /&gt;
===Comment tester le nouveau compilateur BCC64X===&lt;br /&gt;
&lt;br /&gt;
Dans {{Product}}, nous recommandons aux développeurs d&#039;utiliser le moyen suivant pour écrire du code qui détecte si la nouvelle chaîne d&#039;outils est utilisée :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Méthode recommandée :&#039;&#039;&#039; utilisez un test de macro pour {{code|1=_CODEGEARC_}} et {{Code|1=_clang_major_ &amp;amp;gt;= 20,1}} pour cette version et les suivantes. {{Product}} recommande cette approche, car la version de Clang changera au fil du temps, et ce code restera valide pour la version actuelle et les futures versions de cette chaîne d&#039;outils. Nous recommandons d&#039;effectuer cette vérification pour votre code.&lt;br /&gt;
* Utilisez un test de macro {{code|1=_CODEGEARC_}} et {{Code|1=_clang_major_ == 20,1}} pour cette version spécifique. Utilisez uniquement cette approche pour tester la version initiale de la chaîne d&#039;outils. Ce test échouera à détecter les versions futures de la chaîne d&#039;outils. C&#039;est pourquoi il est préférable d&#039;utiliser le test précédent.&lt;br /&gt;
&lt;br /&gt;
{{Note| Découvrez comment détecter LLVM et sa version [https://stackoverflow.com/questions/1617877/how-to-detect-llvm-and-its-version-through-define-directives/16342320#16342320 ici].}}&lt;br /&gt;
&lt;br /&gt;
*Utilisez les macros {{code|1=_has_feature}} et {{code|1=_has_builtin}} pour tester les fonctionnalités C++ ou compilateur/LLVM qui ne sont pas propres à {{CBuilder}} mais s&#039;appliquent à plusieurs chaînes d&#039;outils basées sur Clang. Pour en savoir plus sur les macros de vérification de fonctionnalité, consultez [https://clang.llvm.org/docs/LanguageExtensions.html#feature-checking-macros cette page].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;exemple de code ci-dessous illustre le test recommandé précédemment pour la nouvelle chaîne d&#039;outils. Utilisez ce code pour encapsuler du code spécifique à la chaîne d&#039;outils, comme l&#039;inclusion des en-têtes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int _tmain(int argc, _TCHAR* argv[])&lt;br /&gt;
{&lt;br /&gt;
      #if defined(__CODEGEARC__) &amp;amp;&amp;amp; (__clang_major__ &amp;gt;= 20.1)&lt;br /&gt;
           std::cout &amp;lt;&amp;lt; &amp;quot;C++Builder Modern Compiler, 12.1 or newer&amp;quot;;&lt;br /&gt;
      #else&lt;br /&gt;
           std::cout &amp;lt;&amp;lt; &amp;quot;A different compiler&amp;quot;;&lt;br /&gt;
      #endif&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour migrer votre base de code existante, il est utile d&#039;inclure le code spécifique à la nouvelle chaîne d&#039;outils à l&#039;intérieur d&#039;une telle macro.&lt;br /&gt;
&lt;br /&gt;
{{Note| Voir la liste complète des macros à la page [[Macros prédéfinies|Macros prédéfinies]].}}&lt;br /&gt;
&lt;br /&gt;
===Ajustement des chemins===&lt;br /&gt;
&lt;br /&gt;
Pour garantir que le compilateur trouve les bons chemins, ajoutez la variable {Code|$(CC_SUFFIX)}} au chemin de bibliothèque. &lt;br /&gt;
&lt;br /&gt;
Par exemple :&lt;br /&gt;
&lt;br /&gt;
 $(BDSLIB)\$(PLATFORM)$(CC_SUFFIX)\debug;..\..\..\..\..\Public\Documents\Embarcadero\Studio\15.0\Samples\CPP\Mobile Samples\User Interface\KeyboardToolbar\&lt;br /&gt;
&lt;br /&gt;
La variable {{Code|$CC_SUFFIX}} permet de gérer la différence entre les deux chaînes d&#039;outils Win64. La nouvelle chaîne d&#039;outils, bcc64x, comporte un X à la fin, ce qui signifie que l&#039;emplacement correct des fichiers avec lesquels une liaison est établie est ‘win64x’. La variable {{Code|$CC_SUFFIX}} prend la valeur X lorsque cette plate-forme est utilisée. &lt;br /&gt;
&lt;br /&gt;
===Tests pour Windows vs. Tests pour une chaîne d&#039;outils spécifique===&lt;br /&gt;
&lt;br /&gt;
Lorsque vous utilisez du code source C++ tierce partie, vous pouvez avoir des en-têtes, des définitions de méthode, etc. propres à Windows mais incorrectement encapsulés dans une macro qui teste la chaîne d&#039;outils (généralement MSVC). Pour régler cela, remplacez ces macros par un test de plate-forme plutôt qu&#039;un test de chaîne d&#039;outils.&lt;br /&gt;
&lt;br /&gt;
Pour tester Windows, que vous utilisiez MSVC, {{CBuilder}} ou une autre chaîne d&#039;outils, vérifiez si {{code|_WIN32}} ou {{code|_WIN64}} est défini. {CBuilder}} et MSVC définissent tous deux ces macros. Cette approche est recommandée lorsque le code est propre à Windows.&lt;br /&gt;
&lt;br /&gt;
Les développeurs ont de moins en moins recours à des tests qui combinent plusieurs plates-formes (Windows) et des tests de chaînes d&#039;outils. Cela est dû à l&#039;utilisation croissante d&#039;autres chaînes d&#039;outils comme RAD Studio et {{code|mingw-llvm}}. Cependant, ce problème persiste lors de l&#039;intégration de bibliothèques ou de code source C++ tierce partie. &lt;br /&gt;
&lt;br /&gt;
===Indicateurs d&#039;optimisation des pilotes===&lt;br /&gt;
&lt;br /&gt;
Lorsqu&#039;on compare les résultats entre les binaires générés en utilisant la chaîne d&#039;outils COFF version 20.1 et ELF version 5, d&#039;importantes différences sont observées quant à la performance et la taille des binaires.&lt;br /&gt;
&lt;br /&gt;
Utilisez l&#039;optimisation des relocalisations souples pour optimiser la performance et la taille des binaires avec l&#039;un des indicateurs suivants :&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;Compilateur&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Mode de configuration&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Indicateur&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|LLD&lt;br /&gt;
| Release&lt;br /&gt;
|{{code|--strip-all}}&lt;br /&gt;
| Elimine la table de symboles {{code|COFF}} générée par leur lieur, produisant des images plus petites.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|LLD&lt;br /&gt;
|&lt;br /&gt;
|{{code|--gc-sections}}&lt;br /&gt;
| Active la récupération de place des sections input non utilisées. &amp;lt;ref name=&amp;quot;FlagOption&amp;quot; /&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Clang/CC1&lt;br /&gt;
|&lt;br /&gt;
|{{code|-fdata-sections}}&lt;br /&gt;
|  Place chaque donnée dans sa propre section. &amp;lt;ref name=&amp;quot;FlagOption&amp;quot; /&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Clang/CC1&lt;br /&gt;
|&lt;br /&gt;
|{{code|-ffunction-sections}}&lt;br /&gt;
| Place chaque fonction dans sa propre section. &amp;lt;ref name=&amp;quot;FlagOption&amp;quot; /&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Clang/CC1&lt;br /&gt;
| Release&lt;br /&gt;
|{{code|-vectorize-loops}}&lt;br /&gt;
| Active la vectorisation automatique des boucles pour l&#039;exécution parallèle.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;references&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;ref name=&amp;quot;FlagOption&amp;quot;&amp;gt;Ces options sont désactivées par défaut dans l&#039;EDI mais peuvent être manuellement activées dans les options de projet.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/references&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Liaison de DLL===&lt;br /&gt;
&lt;br /&gt;
====Construction d&#039;une DLL et génération du fichier d&#039;exportation {{code|.def}}====&lt;br /&gt;
&lt;br /&gt;
{{Product}} fournit {{code|llvm-dlltool.exe}}, car il fait partie du {{code|llvm-project}} à partir duquel notre compilateur bcc64x.exe amélioré par Clang est construit. Pour générer un fichier {{code|.def}}, il est recommandé d&#039;utiliser l&#039;outil {{code|tdump.exe}}.&lt;br /&gt;
&lt;br /&gt;
====Liaison directe avec une DLL====&lt;br /&gt;
&lt;br /&gt;
La nouvelle chaîne d&#039;outils permet de lier directement un fichier {{code|.dll}}. &lt;br /&gt;
Vous pouvez utiliser la fonction {{code|-lmydll}} ou, si une copie du fichier {{code|.dll}} est présente dans le chemin {{code|LIBRARY}}, utiliser {{code|#pragma comment(lib, &amp;quot;mydll&amp;quot;)}} sans qu&#039;il soit nécessaire d&#039;avoir une bibliothèque d’importation.&lt;br /&gt;
&lt;br /&gt;
Pour plus d&#039;informations, voir la documentation [[Auto Linking#Liaison automatique des bibliothèques avec Win64x|Liaison automatique]].&lt;br /&gt;
&lt;br /&gt;
Le lieur peut être invoqué manuellement via le compilateur si le chemin suivant est ajouté au lieur :&lt;br /&gt;
&lt;br /&gt;
 libclang_rt.builtins-x86_64.a&lt;br /&gt;
&lt;br /&gt;
====Création de bibliothèques d’importation DLL====&lt;br /&gt;
&lt;br /&gt;
RAD Studio permet maintenant de lier une &#039;&#039;&#039;.dll&#039;&#039;&#039; directement, sans avoir à passer par une bibliothèque d’importation. Cette nouvelle implémentation ne concerne que les plates-formes Win64x.&lt;br /&gt;
&lt;br /&gt;
Cependant, la bibliothèque d’importation est généralement utilisée pour importer un fichier &#039;&#039;&#039;.dll&#039;&#039;&#039;, car le lieur recherchera d&#039;abord les bibliothèques, et en dernier les fichiers .&#039;&#039;&#039;dll&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
La chaîne d&#039;outils prend en charge toute bibliothèque COFF. Vous pouvez toutefois créer la vôtre.&lt;br /&gt;
&lt;br /&gt;
Pour créer votre propre bibliothèque d’importation (&amp;lt;code&amp;gt;.lib&amp;lt;/code&amp;gt;), procédez comme suit :&lt;br /&gt;
&lt;br /&gt;
# Obtenez le fichier de définition (&amp;lt;code&amp;gt;.def&amp;lt;/code&amp;gt;) de la DLL.{{Note|Le fichier &amp;lt;code&amp;gt;.def&amp;lt;/code&amp;gt; peut être généré depuis un fichier &amp;lt;code&amp;gt;.dll&amp;lt;/code&amp;gt; en utilisant notre outil &amp;lt;strong&amp;gt;&amp;lt;code&amp;gt;tdump&amp;lt;/code&amp;gt;&amp;lt;/strong&amp;gt;.  }}&lt;br /&gt;
# Depuis l&#039;outil &#039;&#039;&#039;tdump&#039;&#039;&#039;, exécutez la commande suivante pour créer le fichier &amp;lt;code&amp;gt;.def&amp;lt;/code&amp;gt; :&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
tdump -def mydll.dll mydll.def&amp;lt;/source&amp;gt;{{Note|Un fichier &amp;lt;code&amp;gt;.def&amp;lt;/code&amp;gt; est du texte brut. Ouvrez le fichier et assurez-vous qu&#039;il contient &#039;&#039;LIBRARY&#039;&#039; &amp;lt;code&amp;gt;&amp;amp;lt;dllname&amp;amp;gt;.dll&amp;lt;/code&amp;gt; avec le nom de &amp;lt;code&amp;gt;&amp;amp;lt;dllname&amp;amp;gt;&amp;lt;/code&amp;gt; correct.}}&lt;br /&gt;
# Utilisez le nouveau lieur [[Technical Details About LLD|Lieur LLD]] pour générer une bibliothèque d’importation en exécutant la commande suivante dans l&#039;invite de commande de RAD Studio :&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
ld.lld.exe -m i386pep --out-implib file.lib file.def&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;EDI crée automatiquement votre bibliothèque d’importation DLL lors de la construction. Vous pouvez aussi le faire manuellement en exécutant le code suivant au niveau de la ligne de commande :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
bcc64x -tD -Xlinker --out-implib=dll.lib dll.cpp&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
bcc64x -tD dll.cpp -Wl,--out-implib,dll.lib&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Compilation parallèle==&lt;br /&gt;
&lt;br /&gt;
Les projets C++Builder utilisant la nouvelle chaîne d&#039;outils Win64 peuvent être compilés en parallèle par défaut. La compilation s&#039;effectue plus rapidement avec bcc64x qu&#039;avec :&lt;br /&gt;
&lt;br /&gt;
*--jobs, en utilisant l&#039;ancien bcc64 (ancienne chaîne d&#039;outils Win64).&lt;br /&gt;
* CMake &amp;amp;amp; Ninja, en utilisant l&#039;ancien et le nouveau bcc64/x.&lt;br /&gt;
* Visual C++, avec CMake et Ninja et le commutateur de ligne de commande /MP.&lt;br /&gt;
&lt;br /&gt;
Ce paramètre est activé par défaut pour les projets utilisant cette plate-forme. Consultez la documentation suivante pour configurer les paramètres ou comprendre le fonctionnement.&lt;br /&gt;
&lt;br /&gt;
===Comprendre le fonctionnement===&lt;br /&gt;
&lt;br /&gt;
La compilation parallèle des projets C++Builder combine deux fonctionnalités : {{code|batch compilation}}, où le compilateur reçoit plusieurs fichiers C++ à la fois plutôt que d&#039;invoquer la compilation pour un seul fichier à la fois, et {{code|--jobs}}, où il traite les fichiers reçus en parallèle.&lt;br /&gt;
&lt;br /&gt;
Ainsi, le compilateur reçoit beaucoup de fichiers à compiler (la compilation en lots ou compilation groupée) et doit les compiler en parallèle (--jobs).&lt;br /&gt;
&lt;br /&gt;
Pourquoi activer les deux ? Si vous effectuez uniquement une compilation par lots (compilation groupée), le compilateur compilera tous les fichiers par une seule invocation du fichier EXE, mais il devra les traiter les uns après les autres en série. Si vous utilisez uniquement {{code|--jobs}}, la compilation s&#039;effectue en parallèle, mais sur un seul fichier, ce qui n&#039;a pas d&#039;intérêt. Il est donc nécessaire d&#039;activer les deux paramètres : (a) la compilation simultanée de plusieurs fichiers et (b) l&#039;exécution en parallèle.&lt;br /&gt;
&lt;br /&gt;
===Comprendre le fonctionnement de la compilation parallèle ainsi que l&#039;utilisation de la CPU===&lt;br /&gt;
&lt;br /&gt;
Les informations ci-dessous vous aideront à comprendre comment la compilation par lots avec {{Code|--jobs}} fonctionne et comment optimiser vos environnements de construction pour accélérer et améliorer la compilation tout en utilisant vos ressources au mieux.&lt;br /&gt;
&lt;br /&gt;
====Sortie du compilateur====&lt;br /&gt;
&lt;br /&gt;
Les messages du compilateur ne concernent qu&#039;un fichier à la fois. Même si la compilation s&#039;exécute en parallèle, les messages relatifs à chaque fichier sont générés à la fin de l&#039;opération.&lt;br /&gt;
&lt;br /&gt;
En cas d&#039;erreur de compilation, le processus s&#039;arrête. Après l&#039;erreur, des messages de compilation réussie peuvent s&#039;afficher, car le processus continue pour les autres fichiers compilés en parallèle.&lt;br /&gt;
&lt;br /&gt;
====Systèmes de compilation====&lt;br /&gt;
&lt;br /&gt;
Le système de compilation en parallèle &#039;--jobs&#039; peut être utilisé depuis l&#039;EDI et la ligne de commande &#039;&#039;&#039;MSBuild&#039;&#039;&#039; ainsi que directement via la ligne de commande ‘bcc64x’.&lt;br /&gt;
&lt;br /&gt;
Sachez que vous pouvez &#039;&#039;tout à fait&#039;&#039; utiliser cette commande pour l&#039;intégration continue (CI), les serveurs de build, etc. lorsque vous effectuez la compilation via une commande &#039;&#039;&#039;MSBuild&#039;&#039;&#039; en ligne de commande. Vous avez d&#039;autres possibilités que l&#039;appel direct du compilateur ; le système de compilation par défaut peut effectuer des compilations parallèles depuis la ligne de commande.&lt;br /&gt;
&lt;br /&gt;
Les constructions ou les compilations s&#039;effectuent normalement  ; la compilation parallèle est utilisée par défaut. Si vous ouvrez le Gestionnaire de tâches, vous pouvez voir un processus bcc64x unique qui utilise plusieurs threads, et approche les 100 % d&#039;utilisation de la CPU.&lt;br /&gt;
&lt;br /&gt;
[[File:C++ parallel building (batch and jobs) options.png|680px]]&lt;br /&gt;
&lt;br /&gt;
Pour vérifier si votre projet utilise la compilation en parallèle, ouvrez la fenêtre Options de projet :&lt;br /&gt;
&lt;br /&gt;
# Assurez-vous que la plate-forme Windows 64 bits Moderne est sélectionnée et activée dans votre projet.&lt;br /&gt;
# Accédez à Options de projet. Vérifiez que &amp;quot;Toutes les configurations&amp;quot; est bien sélectionné dans la liste déroulante.&lt;br /&gt;
# {{Menu|Construction &amp;amp;gt; Compilateur C++ &amp;amp;gt; Activer la compilation groupée}} doit être défini sur true. Vérifiez qu&#039;aucune autre configuration cible ne remplace ce choix ; ce paramètre doit être la valeur par défaut à un niveau hérité élevé.&lt;br /&gt;
# L&#039;option {{Menu|Propriétés de projet &amp;amp;gt; Général &amp;amp;gt; Nombre de sous-processus}} doit être définie sur {{code|0}}. Tous les coeurs de CPU dont vous disposez sont alors utilisés.&lt;br /&gt;
&lt;br /&gt;
Invoquez msbuild pour votre projet. Dans la mesure où les paramètres ci-dessus sont définis dans les options de projet de l&#039;EDI, la compilation peut s&#039;effectuer en parallèle.&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;gt; msbuild MyProject.cbproj&lt;br /&gt;
&lt;br /&gt;
Voir [[Construction d&#039;un projet à l&#039;aide d&#039;une commande MSBuild|Construction d&#039;un projet à l&#039;aide d&#039;une commande MSBuild]] pour une liste complète des paramètres. N&#039;oubliez pas de vérifier dans l&#039;EDI que la compilation en parallèle est configurée pour votre projet. Ces paramètres seront toujours utilisés par défaut lorsque msbuild sera utilisé depuis la ligne de commande avec ce projet.&lt;br /&gt;
&lt;br /&gt;
Pour une exécution directe via la ligne de commande, utilisez la commande suivante :&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;gt; bcc64x a.cpp b.cpp c.cpp --jobs=0 ...other parameters&lt;br /&gt;
&lt;br /&gt;
Cette commande envoie ce lot de fichiers en une seule fois et indique au compilateur d&#039;effectuer une compilation en parallèle en utilisant tous les coeurs disponibles (&#039;0&#039; indiquant tous les coeurs).&lt;br /&gt;
&lt;br /&gt;
====Saturation CPU====&lt;br /&gt;
&lt;br /&gt;
Dans l&#039;onglet {{Menu|Options de projet &amp;amp;gt; Propriétés de projet &amp;amp;gt; Général}}, recherchez le paramètre &#039;&#039;&#039;Nombre de sous-processus&#039;&#039;&#039; ; sa valeur par défaut est {{code|‘0’}}. Cela signifie que tous les coeurs de CPU sont disponibles. Cela permet d&#039;exécuter deux fois plus de threads qu&#039;il n&#039;y a de coeurs.&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez que le système de compilation utilise presque toutes les ressources disponibles sans les monopoliser complètement, définissez la valeur sur  -1. Un coeur de moins que la valeur par défaut {{code|‘0’}} sera utilisé. Ce paramètre ne doit être utilisé que si vous voulez faire autre chose pendant la compilation et constatez que les autres processus ralentissent.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez aussi définir ce paramètre sur une valeur entière positive. Selon le nombre de coeurs disponibles, le système utilisera jusqu&#039;au nombre spécifié. Si le nombre de coeurs spécifié dépasse le nombre de coeurs dont vous disposez, il utilisera simplement le maximum de coeurs possibles.&lt;br /&gt;
&lt;br /&gt;
La même valeur peut être définie en invoquant directement le compilateur avec le paramètre de ligne de commande {{code|&#039;--jobs=n&#039;}}.&lt;br /&gt;
&lt;br /&gt;
Nous vous recommandons d&#039;utiliser la valeur {{code|0}} (la valeur par défaut). Elle permet de saturer la CPU et d&#039;obtenir une vitesse de compilation maximale.&lt;br /&gt;
&lt;br /&gt;
==Prise en charge C++23==&lt;br /&gt;
&lt;br /&gt;
A partir de RAD Studio Florence 13.0, le compilateur C++Builder amélioré par Clang-20 intègre la prise en charge de C++23.&lt;br /&gt;
&lt;br /&gt;
Le nouveau compilateur amélioré par Clang propose une prise en charge robuste du langage C++23, alors que libc++ fournit un grand nombre de fonctionnalités C++23. Avec la plate-forme Win64 Moderne, les nouveaux projets C++ sont par défaut en C++23. Si vous recherchez des fonctionnalités qui ne sont plus disponibles dans C++23, vous pouvez permuter vers une version plus ancienne dans les paramètres de compilation C++ situés dans {{Menu| Projet &amp;amp;gt; Options &amp;amp;gt; Construction &amp;amp;gt; [[Compilateur C++|Compilateur C++]]}}&lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations sur Clang et la prise en charge de libc++ pour les fonctionnalités C++23, consultez les liens suivants :&lt;br /&gt;
&lt;br /&gt;
*[https://clang.llvm.org/cxx_status.html https://clang.llvm.org/cxx_status.html]&lt;br /&gt;
*[https://libcxx.llvm.org/Status/Cxx23.html https://libcxx.llvm.org/Status/Cxx23.html]&lt;br /&gt;
&lt;br /&gt;
==Différences entre les différentes versions du compilateur==&lt;br /&gt;
&lt;br /&gt;
Depuis {{Product}} {{MarketingVersion}}, la chaîne d&#039;outils C++ Win64 Moderne utilise Clang version 20.&lt;br /&gt;
&lt;br /&gt;
Cette section décrit les différences entre les versions 15 et 20 du compilateur.&lt;br /&gt;
&lt;br /&gt;
{{Note| {{Product}} Athens 12 est fourni avec la version 15 de Clang.}}&lt;br /&gt;
&lt;br /&gt;
La version 20 du compilateur BCC64X moderne applique strictement les règles de compilation C99 lorsqu&#039;elle compile du code {{code|C}}, ce qui provoque des erreurs au lieu des avertissements.&lt;br /&gt;
&lt;br /&gt;
===Fonctions implicites===&lt;br /&gt;
&lt;br /&gt;
L&#039;appel d&#039;une fonction définie implicitement sans prototype provoque un message d&#039;erreur.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple&#039;&#039;&#039;:&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
int test2()&lt;br /&gt;
{&lt;br /&gt;
 return implicit_function();&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;exemple de code ci-dessus produit deux résultats distincts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compilateur Version 15&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
 Warning W4856 stricter_c.c 10(10): call to undeclared function &#039;implicit_function&#039;; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compilateur Version 20&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
 Error E5430 stricter_c.c 10(10): call to undeclared function &#039;implicit_function&#039;; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration].&lt;br /&gt;
&lt;br /&gt;
===int implicite===&lt;br /&gt;
&lt;br /&gt;
L&#039;appel d&#039;un int implicite provoque un message d&#039;erreur.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple&#039;&#039;&#039;:&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
test1()&lt;br /&gt;
{&lt;br /&gt;
 return 42;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;exemple de code ci-dessus produit deux résultats distincts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compilateur Version 15&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
 Warning W4884 stricter_c.c 1(1): type specifier missing, defaults to &#039;int&#039;; ISO C99 and later do not support implicit int [-Wimplicit-int].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compilateur Version 20&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
 Error E5464 stricter_c.c 1(1): type specifier missing, defaults to &#039;int&#039;; ISO C99 and later do not support implicit int [-Wimplicit-int].&lt;br /&gt;
&lt;br /&gt;
===Pointeurs de fonction incompatibles===&lt;br /&gt;
&lt;br /&gt;
Voici un exemple de code qui combine des pointeurs de fonction incompatibles.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple&#039;&#039;&#039;:&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
int callback(int a, int b) {&lt;br /&gt;
 return a+b;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int call_callback(int (*callback)(int)) {&lt;br /&gt;
 return callback(5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int test3() {&lt;br /&gt;
 return call_callback(callback);&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;exemple de code ci-dessus a généré un avertissement avec l&#039;ancien compilateur. Avec le compilateur moderne, c&#039;est un message d&#039;erreur qui est généré.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compilateur Version 15&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
 Warning W4971 stricter_c.c 23(24): incompatible function pointer types passing &#039;int (int, int)&#039; to parameter of type &#039;int (*)(int)&#039; [-Wincompatible-function-pointer-types]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compilateur Version 20&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
 Error E5558 stricter_c.c 23(24): incompatible function pointer types passing &#039;int (int, int)&#039; to parameter of type &#039;int (*)(int)&#039; [-Wincompatible-function-pointer-types]&lt;br /&gt;
&lt;br /&gt;
==Problèmes connus==&lt;br /&gt;
&lt;br /&gt;
===Composants issus de packages===&lt;br /&gt;
&lt;br /&gt;
Les composants provenant de packages créés pour WIN64X à l&#039;aide de projets Delphi doivent être d&#039;abord activés pour cette plate-forme. Pour activer les composants pour la plate-forme Windows 64 bits (Moderne), reportez-vous aux instructions sur [[Build Delphi Packages for C++|Construction de packages Delphi pour C++]]. &lt;br /&gt;
{{Note|Le problème ne se produit que pour les projets existants. Les projets nouvellement créés ne sont pas concernés.}}&lt;br /&gt;
&lt;br /&gt;
Pour plus d&#039;informations, voir [[lib_fr:System.Classes.ComponentPlatformsAttribute|http://delphi.org/2013/09/debugging-against-a-remote-android-emulator/]].&lt;br /&gt;
&lt;br /&gt;
===Limitation UTF8===&lt;br /&gt;
&lt;br /&gt;
Les apps C++ construites avec le compilateur bcc64x sont sujettes à une limitation si la locale UTF8 est utilisée.&lt;br /&gt;
&lt;br /&gt;
Le runtime fourni avec le compilateur bcc64x dépend du système d&#039;exploitation pour la prise en charge native de l&#039;UTF-8. La prise en charge native UTF-8 sur Windows ayant commencé avec Windows 10 1803 (mise à jour d&#039;avril 2018), les apps C++ exigeant la locale UTF-8 ne sont pas exécutées sur les systèmes d&#039;exploitation suivants :&lt;br /&gt;
&lt;br /&gt;
*Windows 10 (avant la version 1903, mai 2019)&lt;br /&gt;
*Windows Server 2016&lt;br /&gt;
*Windows 8&lt;br /&gt;
*Windows 7&lt;br /&gt;
*Windows Vista&lt;br /&gt;
&lt;br /&gt;
L&#039;exécution de l&#039;app sur une version Windows n&#039;assurant pas une prise en charge native de l&#039;UTF8 déclenche une exception {{code|std::runtime_error}} avec le message suivant :&lt;br /&gt;
&lt;br /&gt;
 collate_byname&amp;amp;lt;char&amp;amp;gt;::collate_byname failed to construct for .UTF8&lt;br /&gt;
&lt;br /&gt;
{{Note| Le problème ne se pose qu&#039;avec les apps nécessitant explicitement la locale UTF-8.}}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
[[C++Builder 64-bit Windows (Modern) Application Development|Développement d&#039;applications C++ Builder Windows 64 bits (Moderne)]]&lt;br /&gt;
**[[Mise à niveau des projets C++ existants vers Windows 64 bits|Mise à niveau des projets C++ existants vers Windows 64 bits]]&lt;br /&gt;
**[[Débogage des applications C++ Builder Windows 64 bits|Débogage des applications C++ Builder Windows 64 bits]]&lt;br /&gt;
*[[Build Delphi Packages for C++|Construction de packages Delphi pour C++]]&lt;br /&gt;
*[[Développement d&#039;applications C++ Builder Windows 64 bits|Développement d&#039;applications C++ Builder Windows 64 bits]]&lt;br /&gt;
*[[Unit Initialization and Finalization for C++ New Toolchain|Initialisation et Finalisation d&#039;unités pour la nouvelle chaîne d&#039;outils C++]]&lt;br /&gt;
*[[Packages for C++ New Toolchain|Packages pour la chaîne d&#039;outils C++]]&lt;br /&gt;
*[[Package Import and Export for C++ New Toolchain|Importation et exportation de package pour la nouvelle chaîne d&#039;outils C++]]&lt;br /&gt;
*[[Différences C++ Builder Windows 64 bits#Différences entre les compilateurs|Différences spécifiques à BCC64]]&lt;br /&gt;
*[[Fonctionnalités du C++ moderne prises en charge par les compilateurs C++ améliorés par Clang de RAD Studio|Fonctionnalités du C++ moderne]]&lt;br /&gt;
*[[BCC64.EXE, le compilateur C++ Windows 64 bits|Compilateur Windows 64 bits]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=BCC64X&amp;diff=218897</id>
		<title>BCC64X</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=BCC64X&amp;diff=218897"/>
		<updated>2026-05-09T03:34:45Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Compilateurs C++ améliorés par Clang}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BCC64X&#039;&#039;&#039; est un compilateur C++ de {{Product}} pour Windows 64 bits (Moderne).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[BCC64X|BCC64X]] est basé sur Clang. Pour plus d&#039;informations sur les fonctionnalités communes entre le compilateur [[BCC64X|BCC64X]] et les autres compilateurs C++ améliorés par Clang, voir &#039;&#039;&#039;[[Compilateurs C++ améliorés par Clang|Compilateurs C++ améliorés par Clang]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
{{Notes|&lt;br /&gt;
&lt;br /&gt;
* Le compilateur C++ [[BCC64X|BCC64X]] basé sur Clang 20,1 est maintenant la version C++23 par défaut. Si nécessaire, vous pouvez toujours cibler C++20 ou C++17.&lt;br /&gt;
* Pour Windows 32 bits, utilisez [[Compilateurs Win32 améliorés par Clang|BCC32C]] (compilateur amélioré par Clang) ou [[BCC32|BCC32]] (compilateur d&#039;ancienne génération).&lt;br /&gt;
* [[BCC64X|BCC64X]] est la chaîne d&#039;outils/compilateur Win64 Moderne qui est recommandée pour toutes les applications. Cependant, l&#039;ancien [[BCC64|BCC64]] existe toujours.}}&lt;br /&gt;
&lt;br /&gt;
==Informations générales==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Champ&lt;br /&gt;
! Valeur&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Version de Clang&lt;br /&gt;
|20.1&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Version de LLVM&lt;br /&gt;
|20.1&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Conventions d&#039;appel&lt;br /&gt;
|[[Wikipedia:X86 calling conventions#Convention d&#039;appel Microsoft x64|Microsoft x64]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Substantypage&lt;br /&gt;
|[http://www.uclibc.org/docs/psABI-ia64.pdf Itanium]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Bibliothèque standard&lt;br /&gt;
|[https://libcxx.llvm.org/ LLVM libc++]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| C++ Runtime&lt;br /&gt;
| Personnalisé, basé sur [https://www.mingw-w64.org/downloads/#llvm-mingw MinGW-LLVM]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| C Runtime&lt;br /&gt;
|[https://devblogs.microsoft.com/cppblog/introducing-the-universal-crt/ UCRT]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Fichiers de sortie==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Type de fichier&lt;br /&gt;
! Extension de fichier&lt;br /&gt;
! Format de fichier&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Exécutable&lt;br /&gt;
|{{Path|.exe}}&lt;br /&gt;
|[[Wikipedia:Portable Executable|PE64 (PE32+)]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Bibliothèque partagée&lt;br /&gt;
|{{Path|.dll}}&lt;br /&gt;
|[[Wikipedia:Portable Executable|PE64 (PE32+)]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Bibliothèque statique&lt;br /&gt;
| {{Path|.lib}} et {{Path|lib[name].a}}&lt;br /&gt;
| Bibliothèque de fichiers objet, voir [[Auto Linking|Liaison automatique]] pour plus d&#039;informations sur les extensions.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Objet compilé&lt;br /&gt;
|{{Path|.o}}&lt;br /&gt;
|[[Wikipedia:COFF|COFF64]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Informations de débogage&lt;br /&gt;
|{{Path|.pdb}}&lt;br /&gt;
|[[PDB Debug File|PDB]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Note| Le nouveau Clang prend en charge la liaison dynamique et statique des packages. Vous pouvez lier ces fichiers à vos {code|EXE}} ou {{code|DLL}}.}}&lt;br /&gt;
&lt;br /&gt;
{{Note|Pour éviter les conflits à l&#039;exécution lorsque plusieurs versions de {{Product}} sont installées, les bibliothèques d&#039;exécution partagées ({{code|libc++.dll}}) ont maintenant en suffixe le numéro de version. BDS ({{code|libc++-370.dll}}).}}&lt;br /&gt;
&lt;br /&gt;
==Ecriture du code C++ pour BCC64X==&lt;br /&gt;
&lt;br /&gt;
Pour écrire du code C++ spécifiquement pour BCC64X, utilisez :&lt;br /&gt;
&lt;br /&gt;
 #if defined(__BORLANDC__) &amp;amp;amp;&amp;amp;amp; defined(_WIN64) &amp;amp;amp;&amp;amp;amp; defined(__MINGW64__)&lt;br /&gt;
&lt;br /&gt;
Si vous visez une release spécifique, ajoutez une vérification en procédant comme suit :&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 #if __clang_major__ == 20.1&lt;br /&gt;
   #pragma message(&amp;quot;Using version 20.1 of Clang&amp;quot;)&lt;br /&gt;
 #endif&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour plus d&#039;informations, voir [[Compilateurs C++ améliorés par Clang#Macros prédéfinies|Compilateurs C++ améliorés par Clang, Macros prédéfinies]].&lt;br /&gt;
&lt;br /&gt;
==Chaîne d&#039;outils==&lt;br /&gt;
&lt;br /&gt;
La &#039;&#039;&#039;chaîne d&#039;outils C++ Windows 64 bits Moderne&#039;&#039;&#039; (bcc64x) est une implémentation des extensions Clang et des fonctionnalités C++Builder avec une technologie adaptée aux nouvelles plates-formes. Avec le [[Technical Details About LLD|lieur LLD]], la nouvelle RTL, et d&#039;autres fonctionnalités, la nouvelle chaîne d&#039;outils Clang est la [[How to Choose a Win64 C++ Toolchain|chaîne d&#039;outils C++ que nous recommandons]].&lt;br /&gt;
&lt;br /&gt;
Elle utilise la STL LLVM libc++, une RTL C++ personnalisée, le UCRT Windows pour le runtime C, et génère des fichiers objet au format COFF64 avec des informations de débogage PDB.&lt;br /&gt;
&lt;br /&gt;
Pour ajouter cette chaîne d&#039;outils à votre projet C++ existant, procédez comme suit :&lt;br /&gt;
&lt;br /&gt;
#Cliquez avec le bouton droit sur le noeud &#039;&#039;&#039;[[Présentation des plates-formes cible|Plates-formes cible]]&#039;&#039;&#039; dans la vue arborescente Projets.&lt;br /&gt;
# Sélectionnez &#039;&#039;&#039;Ajouter une plate-forme&#039;&#039;&#039;.&lt;br /&gt;
# Choisissez &#039;&#039;&#039;Windows 64 bits (Moderne&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
{{Note| Vous pouvez facilement permuter entre la nouvelle et l&#039;ancienne plate-forme Win64, car les deux sont installées et peuvent être ajoutées à un projet, ce qui facilite la mise à niveau.}}&lt;br /&gt;
&lt;br /&gt;
{{Attention| Les anciennes chaînes d&#039;outils proposaient plusieurs versions du runtime pour gérer séparément les applications à thread unique et les applications multithreads. La chaîne d&#039;outils moderne a un seul runtime [[Programmes multithreads|multithread]]. Par conséquent, vous pouvez uniquement utiliser un runtime multithread. Si votre application utilise un thread unique, ce runtime convient quand même.}}&lt;br /&gt;
{{Note| {{code|_setmaxstdio}} et {{code|_getstdiomax}} sont des fonctionnalités runtime de Microsoft (UCRT). Ces fonctionnalités sont uniquement prises en charge sur Win64x.}} &lt;br /&gt;
&lt;br /&gt;
===Comment tester le nouveau compilateur BCC64X===&lt;br /&gt;
&lt;br /&gt;
Dans {{Product}}, nous recommandons aux développeurs d&#039;utiliser le moyen suivant pour écrire du code qui détecte si la nouvelle chaîne d&#039;outils est utilisée :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Méthode recommandée :&#039;&#039;&#039; utilisez un test de macro pour {{code|1=_CODEGEARC_}} et {{Code|1=_clang_major_ &amp;amp;gt;= 20,1}} pour cette version et les suivantes. {{Product}} recommande cette approche, car la version de Clang changera au fil du temps, et ce code restera valide pour la version actuelle et les futures versions de cette chaîne d&#039;outils. Nous recommandons d&#039;effectuer cette vérification pour votre code.&lt;br /&gt;
* Utilisez un test de macro {{code|1=_CODEGEARC_}} et {{Code|1=_clang_major_ == 20,1}} pour cette version spécifique. Utilisez uniquement cette approche pour tester la version initiale de la chaîne d&#039;outils. Ce test échouera à détecter les versions futures de la chaîne d&#039;outils. C&#039;est pourquoi il est préférable d&#039;utiliser le test précédent.&lt;br /&gt;
&lt;br /&gt;
{{Note| Découvrez comment détecter LLVM et sa version [https://stackoverflow.com/questions/1617877/how-to-detect-llvm-and-its-version-through-define-directives/16342320#16342320 ici].}}&lt;br /&gt;
&lt;br /&gt;
*Utilisez les macros {{code|1=_has_feature}} et {{code|1=_has_builtin}} pour tester les fonctionnalités C++ ou compilateur/LLVM qui ne sont pas propres à {{CBuilder}} mais s&#039;appliquent à plusieurs chaînes d&#039;outils basées sur Clang. Pour en savoir plus sur les macros de vérification de fonctionnalité, consultez [https://clang.llvm.org/docs/LanguageExtensions.html#feature-checking-macros cette page].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L&#039;exemple de code ci-dessous illustre le test recommandé précédemment pour la nouvelle chaîne d&#039;outils. Utilisez ce code pour encapsuler du code spécifique à la chaîne d&#039;outils, comme l&#039;inclusion des en-têtes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;tchar.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int _tmain(int argc, _TCHAR* argv[])&lt;br /&gt;
{&lt;br /&gt;
      #if defined(__CODEGEARC__) &amp;amp;&amp;amp; (__clang_major__ &amp;gt;= 20.1)&lt;br /&gt;
           std::cout &amp;lt;&amp;lt; &amp;quot;C++Builder Modern Compiler, 12.1 or newer&amp;quot;;&lt;br /&gt;
      #else&lt;br /&gt;
           std::cout &amp;lt;&amp;lt; &amp;quot;A different compiler&amp;quot;;&lt;br /&gt;
      #endif&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour migrer votre base de code existante, il est utile d&#039;inclure le code spécifique à la nouvelle chaîne d&#039;outils à l&#039;intérieur d&#039;une telle macro.&lt;br /&gt;
&lt;br /&gt;
{{Note| Voir la liste complète des macros à la page [[Macros prédéfinies|Macros prédéfinies]].}}&lt;br /&gt;
&lt;br /&gt;
===Ajustement des chemins===&lt;br /&gt;
&lt;br /&gt;
Pour garantir que le compilateur trouve les bons chemins, ajoutez la variable {Code|$(CC_SUFFIX)}} au chemin de bibliothèque. &lt;br /&gt;
&lt;br /&gt;
Par exemple :&lt;br /&gt;
&lt;br /&gt;
 $(BDSLIB)\$(PLATFORM)$(CC_SUFFIX)\debug;..\..\..\..\..\Public\Documents\Embarcadero\Studio\15.0\Samples\CPP\Mobile Samples\User Interface\KeyboardToolbar\&lt;br /&gt;
&lt;br /&gt;
La variable {{Code|$CC_SUFFIX}} permet de gérer la différence entre les deux chaînes d&#039;outils Win64. La nouvelle chaîne d&#039;outils, bcc64x, comporte un X à la fin, ce qui signifie que l&#039;emplacement correct des fichiers avec lesquels une liaison est établie est ‘win64x’. La variable {{Code|$CC_SUFFIX}} prend la valeur X lorsque cette plate-forme est utilisée. &lt;br /&gt;
&lt;br /&gt;
===Tests pour Windows vs. Tests pour une chaîne d&#039;outils spécifique===&lt;br /&gt;
&lt;br /&gt;
Lorsque vous utilisez du code source C++ tierce partie, vous pouvez avoir des en-têtes, des définitions de méthode, etc. propres à Windows mais incorrectement encapsulés dans une macro qui teste la chaîne d&#039;outils (généralement MSVC). Pour régler cela, remplacez ces macros par un test de plate-forme plutôt qu&#039;un test de chaîne d&#039;outils.&lt;br /&gt;
&lt;br /&gt;
Pour tester Windows, que vous utilisiez MSVC, {{CBuilder}} ou une autre chaîne d&#039;outils, vérifiez si {{code|_WIN32}} ou {{code|_WIN64}} est défini. {CBuilder}} et MSVC définissent tous deux ces macros. Cette approche est recommandée lorsque le code est propre à Windows.&lt;br /&gt;
&lt;br /&gt;
Les développeurs ont de moins en moins recours à des tests qui combinent plusieurs plates-formes (Windows) et des tests de chaînes d&#039;outils. Cela est dû à l&#039;utilisation croissante d&#039;autres chaînes d&#039;outils comme RAD Studio et {{code|mingw-llvm}}. Cependant, ce problème persiste lors de l&#039;intégration de bibliothèques ou de code source C++ tierce partie. &lt;br /&gt;
&lt;br /&gt;
===Indicateurs d&#039;optimisation des pilotes===&lt;br /&gt;
&lt;br /&gt;
Lorsqu&#039;on compare les résultats entre les binaires générés en utilisant la chaîne d&#039;outils COFF version 20.1 et ELF version 5, d&#039;importantes différences sont observées quant à la performance et la taille des binaires.&lt;br /&gt;
&lt;br /&gt;
Utilisez l&#039;optimisation des relocalisations souples pour optimiser la performance et la taille des binaires avec l&#039;un des indicateurs suivants :&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;Compilateur&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Mode de configuration&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Indicateur&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|LLD&lt;br /&gt;
| Release&lt;br /&gt;
|{{code|--strip-all}}&lt;br /&gt;
| Elimine la table de symboles {{code|COFF}} générée par leur lieur, produisant des images plus petites.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|LLD&lt;br /&gt;
|&lt;br /&gt;
|{{code|--gc-sections}}&lt;br /&gt;
| Active la récupération de place des sections input non utilisées. &amp;lt;ref name=&amp;quot;FlagOption&amp;quot; /&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Clang/CC1&lt;br /&gt;
|&lt;br /&gt;
|{{code|-fdata-sections}}&lt;br /&gt;
|  Place chaque donnée dans sa propre section. &amp;lt;ref name=&amp;quot;FlagOption&amp;quot; /&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Clang/CC1&lt;br /&gt;
|&lt;br /&gt;
|{{code|-ffunction-sections}}&lt;br /&gt;
| Place chaque fonction dans sa propre section. &amp;lt;ref name=&amp;quot;FlagOption&amp;quot; /&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|Clang/CC1&lt;br /&gt;
| Release&lt;br /&gt;
|{{code|-vectorize-loops}}&lt;br /&gt;
| Active la vectorisation automatique des boucles pour l&#039;exécution parallèle.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;references&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;ref name=&amp;quot;FlagOption&amp;quot;&amp;gt;Ces options sont désactivées par défaut dans l&#039;EDI mais peuvent être manuellement activées dans les options de projet.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/references&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Liaison de DLL===&lt;br /&gt;
&lt;br /&gt;
====Construction d&#039;une DLL et génération du fichier d&#039;exportation {{code|.def}}====&lt;br /&gt;
&lt;br /&gt;
{{Product}} fournit {{code|llvm-dlltool.exe}}, car il fait partie du {{code|llvm-project}} à partir duquel notre compilateur bcc64x.exe amélioré par Clang est construit. Pour générer un fichier {{code|.def}}, il est recommandé d&#039;utiliser l&#039;outil {{code|tdump.exe}}.&lt;br /&gt;
&lt;br /&gt;
====Liaison directe avec une DLL====&lt;br /&gt;
&lt;br /&gt;
La nouvelle chaîne d&#039;outils permet de lier directement un fichier {{code|.dll}}. &lt;br /&gt;
Vous pouvez utiliser la fonction {{code|-lmydll}} ou, si une copie du fichier {{code|.dll}} est présente dans le chemin {{code|LIBRARY}}, utiliser {{code|#pragma comment(lib, &amp;quot;mydll&amp;quot;)}} sans qu&#039;il soit nécessaire d&#039;avoir une bibliothèque d’importation.&lt;br /&gt;
&lt;br /&gt;
Pour plus d&#039;informations, voir la documentation [[Auto Linking#Liaison automatique des bibliothèques avec Win64x|Liaison automatique]].&lt;br /&gt;
&lt;br /&gt;
Le lieur peut être invoqué manuellement via le compilateur si le chemin suivant est ajouté au lieur :&lt;br /&gt;
&lt;br /&gt;
 libclang_rt.builtins-x86_64.a&lt;br /&gt;
&lt;br /&gt;
====Création de bibliothèques d’importation DLL====&lt;br /&gt;
&lt;br /&gt;
RAD Studio permet maintenant de lier une &#039;&#039;&#039;.dll&#039;&#039;&#039; directement, sans avoir à passer par une bibliothèque d’importation. Cette nouvelle implémentation ne concerne que les plates-formes Win64x.&lt;br /&gt;
&lt;br /&gt;
Cependant, la bibliothèque d’importation est généralement utilisée pour importer un fichier &#039;&#039;&#039;.dll&#039;&#039;&#039;, car le lieur recherchera d&#039;abord les bibliothèques, et en dernier les fichiers .&#039;&#039;&#039;dll&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
La chaîne d&#039;outils prend en charge toute bibliothèque COFF. Vous pouvez toutefois créer la vôtre.&lt;br /&gt;
&lt;br /&gt;
Pour créer votre propre bibliothèque d’importation (&amp;lt;code&amp;gt;.lib&amp;lt;/code&amp;gt;), procédez comme suit :&lt;br /&gt;
&lt;br /&gt;
# Obtenez le fichier de définition (&amp;lt;code&amp;gt;.def&amp;lt;/code&amp;gt;) de la DLL.{{Note|Le fichier &amp;lt;code&amp;gt;.def&amp;lt;/code&amp;gt; peut être généré depuis un fichier &amp;lt;code&amp;gt;.dll&amp;lt;/code&amp;gt; en utilisant notre outil &amp;lt;strong&amp;gt;&amp;lt;code&amp;gt;tdump&amp;lt;/code&amp;gt;&amp;lt;/strong&amp;gt;.  }}&lt;br /&gt;
# Depuis l&#039;outil &#039;&#039;&#039;tdump&#039;&#039;&#039;, exécutez la commande suivante pour créer le fichier &amp;lt;code&amp;gt;.def&amp;lt;/code&amp;gt; :&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
tdump -def mydll.dll mydll.def&amp;lt;/source&amp;gt;{{Note|Un fichier &amp;lt;code&amp;gt;.def&amp;lt;/code&amp;gt; est du texte brut. Ouvrez le fichier et assurez-vous qu&#039;il contient &#039;&#039;LIBRARY&#039;&#039; &amp;lt;code&amp;gt;&amp;amp;lt;dllname&amp;amp;gt;.dll&amp;lt;/code&amp;gt; avec le nom de &amp;lt;code&amp;gt;&amp;amp;lt;dllname&amp;amp;gt;&amp;lt;/code&amp;gt; correct.}}&lt;br /&gt;
# Utilisez le nouveau lieur [[Technical Details About LLD|Lieur LLD]] pour générer une bibliothèque d’importation en exécutant la commande suivante dans l&#039;invite de commande de RAD Studio :&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
ld.lld.exe -m i386pep --out-implib file.lib file.def&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;EDI crée automatiquement votre bibliothèque d’importation DLL lors de la construction. Vous pouvez aussi le faire manuellement en exécutant le code suivant au niveau de la ligne de commande :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
bcc64x -tD -Xlinker --out-implib=dll.lib dll.cpp&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
bcc64x -tD dll.cpp -Wl,--out-implib,dll.lib&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Compilation parallèle==&lt;br /&gt;
&lt;br /&gt;
Les projets C++Builder utilisant la nouvelle chaîne d&#039;outils Win64 peuvent être compilés en parallèle par défaut. La compilation s&#039;effectue plus rapidement avec bcc64x qu&#039;avec :&lt;br /&gt;
&lt;br /&gt;
*--jobs, en utilisant l&#039;ancien bcc64 (ancienne chaîne d&#039;outils Win64).&lt;br /&gt;
* CMake &amp;amp;amp; Ninja, en utilisant l&#039;ancien et le nouveau bcc64/x.&lt;br /&gt;
* Visual C++, avec CMake et Ninja et le commutateur de ligne de commande /MP.&lt;br /&gt;
&lt;br /&gt;
Ce paramètre est activé par défaut pour les projets utilisant cette plate-forme. Consultez la documentation suivante pour configurer les paramètres ou comprendre le fonctionnement.&lt;br /&gt;
&lt;br /&gt;
===Comprendre le fonctionnement===&lt;br /&gt;
&lt;br /&gt;
La compilation parallèle des projets C++Builder combine deux fonctionnalités : {{code|batch compilation}}, où le compilateur reçoit plusieurs fichiers C++ à la fois plutôt que d&#039;invoquer la compilation pour un seul fichier à la fois, et {{code|--jobs}}, où il traite les fichiers reçus en parallèle.&lt;br /&gt;
&lt;br /&gt;
Ainsi, le compilateur reçoit beaucoup de fichiers à compiler (la compilation en lots ou compilation groupée) et doit les compiler en parallèle (--jobs).&lt;br /&gt;
&lt;br /&gt;
Pourquoi activer les deux ? Si vous effectuez uniquement une compilation par lots (compilation groupée), le compilateur compilera tous les fichiers par une seule invocation du fichier EXE, mais il devra les traiter les uns après les autres en série. Si vous utilisez uniquement {{code|--jobs}}, la compilation s&#039;effectue en parallèle, mais sur un seul fichier, ce qui n&#039;a pas d&#039;intérêt. Il est donc nécessaire d&#039;activer les deux paramètres : (a) la compilation simultanée de plusieurs fichiers et (b) l&#039;exécution en parallèle.&lt;br /&gt;
&lt;br /&gt;
===Comprendre le fonctionnement de la compilation parallèle ainsi que l&#039;utilisation de la CPU===&lt;br /&gt;
&lt;br /&gt;
Les informations ci-dessous vous aideront à comprendre comment la compilation par lots avec {{Code|--jobs}} fonctionne et comment optimiser vos environnements de construction pour accélérer et améliorer la compilation tout en utilisant vos ressources au mieux.&lt;br /&gt;
&lt;br /&gt;
====Sortie du compilateur====&lt;br /&gt;
&lt;br /&gt;
Les messages du compilateur ne concernent qu&#039;un fichier à la fois. Même si la compilation s&#039;exécute en parallèle, les messages relatifs à chaque fichier sont générés à la fin de l&#039;opération.&lt;br /&gt;
&lt;br /&gt;
En cas d&#039;erreur de compilation, le processus s&#039;arrête. Après l&#039;erreur, des messages de compilation réussie peuvent s&#039;afficher, car le processus continue pour les autres fichiers compilés en parallèle.&lt;br /&gt;
&lt;br /&gt;
====Systèmes de compilation====&lt;br /&gt;
&lt;br /&gt;
Le système de compilation en parallèle &#039;--jobs&#039; peut être utilisé depuis l&#039;EDI et la ligne de commande &#039;&#039;&#039;MSBuild&#039;&#039;&#039; ainsi que directement via la ligne de commande ‘bcc64x’.&lt;br /&gt;
&lt;br /&gt;
Sachez que vous pouvez &#039;&#039;tout à fait&#039;&#039; utiliser cette commande pour l&#039;intégration continue (CI), les serveurs de build, etc. lorsque vous effectuez la compilation via une commande &#039;&#039;&#039;MSBuild&#039;&#039;&#039; en ligne de commande. Vous avez d&#039;autres possibilités que l&#039;appel direct du compilateur ; le système de compilation par défaut peut effectuer des compilations parallèles depuis la ligne de commande.&lt;br /&gt;
&lt;br /&gt;
Les constructions ou les compilations s&#039;effectuent normalement  ; la compilation parallèle est utilisée par défaut. Si vous ouvrez le Gestionnaire de tâches, vous pouvez voir un processus bcc64x unique qui utilise plusieurs threads, et approche les 100 % d&#039;utilisation de la CPU.&lt;br /&gt;
&lt;br /&gt;
[[File:C++ parallel building (batch and jobs) options.png|680px]]&lt;br /&gt;
&lt;br /&gt;
Pour vérifier si votre projet utilise la compilation en parallèle, ouvrez la fenêtre Options de projet :&lt;br /&gt;
&lt;br /&gt;
# Assurez-vous que la plate-forme Windows 64 bits Moderne est sélectionnée et activée dans votre projet.&lt;br /&gt;
# Accédez à Options de projet. Vérifiez que &amp;quot;Toutes les configurations&amp;quot; est bien sélectionné dans la liste déroulante.&lt;br /&gt;
# {{Menu|Construction &amp;amp;gt; Compilateur C++ &amp;amp;gt; Activer la compilation groupée}} doit être défini sur true. Vérifiez qu&#039;aucune autre configuration cible ne remplace ce choix ; ce paramètre doit être la valeur par défaut à un niveau hérité élevé.&lt;br /&gt;
# L&#039;option {{Menu|Propriétés de projet &amp;amp;gt; Général &amp;amp;gt; Nombre de sous-processus}} doit être définie sur {{code|0}}. Tous les coeurs de CPU dont vous disposez sont alors utilisés.&lt;br /&gt;
&lt;br /&gt;
Invoquez msbuild pour votre projet. Dans la mesure où les paramètres ci-dessus sont définis dans les options de projet de l&#039;EDI, la compilation peut s&#039;effectuer en parallèle.&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;gt; msbuild MyProject.cbproj&lt;br /&gt;
&lt;br /&gt;
Voir [[Construction d&#039;un projet à l&#039;aide d&#039;une commande MSBuild|Construction d&#039;un projet à l&#039;aide d&#039;une commande MSBuild]] pour une liste complète des paramètres. N&#039;oubliez pas de vérifier dans l&#039;EDI que la compilation en parallèle est configurée pour votre projet. Ces paramètres seront toujours utilisés par défaut lorsque msbuild sera utilisé depuis la ligne de commande avec ce projet.&lt;br /&gt;
&lt;br /&gt;
Pour une exécution directe via la ligne de commande, utilisez la commande suivante :&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;gt; bcc64x a.cpp b.cpp c.cpp --jobs=0 ...other parameters&lt;br /&gt;
&lt;br /&gt;
Cette commande envoie ce lot de fichiers en une seule fois et indique au compilateur d&#039;effectuer une compilation en parallèle en utilisant tous les coeurs disponibles (&#039;0&#039; indiquant tous les coeurs).&lt;br /&gt;
&lt;br /&gt;
====Saturation CPU====&lt;br /&gt;
&lt;br /&gt;
Dans l&#039;onglet {{Menu|Options de projet &amp;amp;gt; Propriétés de projet &amp;amp;gt; Général}}, recherchez le paramètre &#039;&#039;&#039;Nombre de sous-processus&#039;&#039;&#039; ; sa valeur par défaut est {{code|‘0’}}. Cela signifie que tous les coeurs de CPU sont disponibles. Cela permet d&#039;exécuter deux fois plus de threads qu&#039;il n&#039;y a de coeurs.&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez que le système de compilation utilise presque toutes les ressources disponibles sans les monopoliser complètement, définissez la valeur sur  -1. Un coeur de moins que la valeur par défaut {{code|‘0’}} sera utilisé. Ce paramètre ne doit être utilisé que si vous voulez faire autre chose pendant la compilation et constatez que les autres processus ralentissent.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez aussi définir ce paramètre sur une valeur entière positive. Selon le nombre de coeurs disponibles, le système utilisera jusqu&#039;au nombre spécifié. Si le nombre de coeurs spécifié dépasse le nombre de coeurs dont vous disposez, il utilisera simplement le maximum de coeurs possibles.&lt;br /&gt;
&lt;br /&gt;
La même valeur peut être définie en invoquant directement le compilateur avec le paramètre de ligne de commande {{code|&#039;--jobs=n&#039;}}.&lt;br /&gt;
&lt;br /&gt;
Nous vous recommandons d&#039;utiliser la valeur {{code|0}} (la valeur par défaut). Elle permet de saturer la CPU et d&#039;obtenir une vitesse de compilation maximale.&lt;br /&gt;
&lt;br /&gt;
==Prise en charge C++23==&lt;br /&gt;
&lt;br /&gt;
A partir de RAD Studio Florence 13.0, le compilateur C++Builder amélioré par Clang-20 intègre la prise en charge de C++23.&lt;br /&gt;
&lt;br /&gt;
Le nouveau compilateur amélioré par Clang propose une prise en charge robuste du langage C++23, alors que libc++ fournit un grand nombre de fonctionnalités C++23. Avec la plate-forme Win64 Moderne, les nouveaux projets C++ sont par défaut en C++23. Si vous recherchez des fonctionnalités qui ne sont plus disponibles dans C++23, vous pouvez permuter vers une version plus ancienne dans les paramètres de compilation C++ situés dans {{Menu| Projet &amp;amp;gt; Options &amp;amp;gt; Construction &amp;amp;gt; [[Compilateur C++|Compilateur C++]]}}&lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations sur Clang et la prise en charge de libc++ pour les fonctionnalités C++23, consultez les liens suivants :&lt;br /&gt;
&lt;br /&gt;
*[https://clang.llvm.org/cxx_status.html https://clang.llvm.org/cxx_status.html]&lt;br /&gt;
*[https://libcxx.llvm.org/Status/Cxx23.html https://libcxx.llvm.org/Status/Cxx23.html]&lt;br /&gt;
&lt;br /&gt;
==Différences entre les différentes versions du compilateur==&lt;br /&gt;
&lt;br /&gt;
Depuis {{Product}} {{MarketingVersion}}, la chaîne d&#039;outils C++ Win64 Moderne utilise Clang version 20.&lt;br /&gt;
&lt;br /&gt;
Cette section décrit les différences entre les versions 15 et 20 du compilateur.&lt;br /&gt;
&lt;br /&gt;
{{Note| {{Product}} Athens 12 est fourni avec la version 15 de Clang.}}&lt;br /&gt;
&lt;br /&gt;
La version 20 du compilateur BCC64X moderne applique strictement les règles de compilation C99 lorsqu&#039;elle compile du code {{code|C}}, ce qui provoque des erreurs au lieu des avertissements.&lt;br /&gt;
&lt;br /&gt;
===Fonctions implicites===&lt;br /&gt;
&lt;br /&gt;
L&#039;appel d&#039;une fonction définie implicitement sans prototype provoque un message d&#039;erreur.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple&#039;&#039;&#039;:&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
int test2()&lt;br /&gt;
{&lt;br /&gt;
 return implicit_function();&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;exemple de code ci-dessus produit deux résultats distincts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compilateur Version 15&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
 Warning W4856 stricter_c.c 10(10): call to undeclared function &#039;implicit_function&#039;; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compilateur Version 20&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
 Error E5430 stricter_c.c 10(10): call to undeclared function &#039;implicit_function&#039;; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration].&lt;br /&gt;
&lt;br /&gt;
===int implicite===&lt;br /&gt;
&lt;br /&gt;
L&#039;appel d&#039;un int implicite provoque un message d&#039;erreur.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple&#039;&#039;&#039;:&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
test1()&lt;br /&gt;
{&lt;br /&gt;
 return 42;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;exemple de code ci-dessus produit deux résultats distincts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compilateur Version 15&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
 Warning W4884 stricter_c.c 1(1): type specifier missing, defaults to &#039;int&#039;; ISO C99 and later do not support implicit int [-Wimplicit-int].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compilateur Version 20&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
 Error E5464 stricter_c.c 1(1): type specifier missing, defaults to &#039;int&#039;; ISO C99 and later do not support implicit int [-Wimplicit-int].&lt;br /&gt;
&lt;br /&gt;
===Pointeurs de fonction incompatibles===&lt;br /&gt;
&lt;br /&gt;
Voici un exemple de code qui combine des pointeurs de fonction incompatibles.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple&#039;&#039;&#039;:&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
int callback(int a, int b) {&lt;br /&gt;
 return a+b;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int call_callback(int (*callback)(int)) {&lt;br /&gt;
 return callback(5);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int test3() {&lt;br /&gt;
 return call_callback(callback);&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&#039;exemple de code ci-dessus a généré un avertissement avec l&#039;ancien compilateur. Avec le compilateur moderne, c&#039;est un message d&#039;erreur qui est généré.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compilateur Version 15&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
 Warning W4971 stricter_c.c 23(24): incompatible function pointer types passing &#039;int (int, int)&#039; to parameter of type &#039;int (*)(int)&#039; [-Wincompatible-function-pointer-types]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compilateur Version 20&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
 Error E5558 stricter_c.c 23(24): incompatible function pointer types passing &#039;int (int, int)&#039; to parameter of type &#039;int (*)(int)&#039; [-Wincompatible-function-pointer-types]&lt;br /&gt;
&lt;br /&gt;
==Problèmes connus==&lt;br /&gt;
&lt;br /&gt;
===Composants issus de packages===&lt;br /&gt;
&lt;br /&gt;
Les composants provenant de packages créés pour WIN64X à l&#039;aide de projets Delphi doivent être d&#039;abord activés pour cette plate-forme. Pour activer les composants pour la plate-forme Windows 64 bits (Moderne), reportez-vous aux instructions sur [[Build Delphi Packages for C++|Construction de packages Delphi pour C++]]. &lt;br /&gt;
{{Note|Le problème ne se produit que pour les projets existants. Les projets nouvellement créés ne sont pas concernés.}}&lt;br /&gt;
&lt;br /&gt;
Pour plus d&#039;informations, voir [[lib_fr:System.Classes.ComponentPlatformsAttribute|http://delphi.org/2013/09/debugging-against-a-remote-android-emulator/]].&lt;br /&gt;
&lt;br /&gt;
===Limitation UTF8===&lt;br /&gt;
&lt;br /&gt;
Les apps C++ construites avec le compilateur bcc64x sont sujettes à une limitation si la locale UTF8 est utilisée.&lt;br /&gt;
&lt;br /&gt;
Le runtime fourni avec le compilateur bcc64x dépend du système d&#039;exploitation pour la prise en charge native de l&#039;UTF-8. La prise en charge native UTF-8 sur Windows ayant commencé avec Windows 10 1803 (mise à jour d&#039;avril 2018), les apps C++ exigeant la locale UTF-8 ne sont pas exécutées sur les systèmes d&#039;exploitation suivants :&lt;br /&gt;
&lt;br /&gt;
*Windows 10 (avant la version 1903, mai 2019)&lt;br /&gt;
*Windows Server 2016&lt;br /&gt;
*Windows 8&lt;br /&gt;
*Windows 7&lt;br /&gt;
*Windows Vista&lt;br /&gt;
&lt;br /&gt;
L&#039;exécution de l&#039;app sur une version Windows n&#039;assurant pas une prise en charge native de l&#039;UTF8 déclenche une exception {{code|std::runtime_error}} avec le message suivant :&lt;br /&gt;
&lt;br /&gt;
 collate_byname&amp;amp;lt;char&amp;amp;gt;::collate_byname failed to construct for .UTF8&lt;br /&gt;
&lt;br /&gt;
{{Note| Le problème ne se pose qu&#039;avec les apps nécessitant explicitement la locale UTF-8.}}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
[[C++Builder 64-bit Windows (Modern) Application Development|Développement d&#039;applications C++ Builder Windows 64 bits (Moderne)]]&lt;br /&gt;
**[[Mise à niveau des projets C++ existants vers Windows 64 bits|Mise à niveau des projets C++ existants vers Windows 64 bits]]&lt;br /&gt;
**[[Débogage des applications C++ Builder Windows 64 bits|Débogage des applications C++ Builder Windows 64 bits]]&lt;br /&gt;
*[[Build Delphi Packages for C++|Construction de packages Delphi pour C++]]&lt;br /&gt;
*[[Développement d&#039;applications C++ Builder Windows 64 bits|Développement d&#039;applications C++ Builder Windows 64 bits]]&lt;br /&gt;
*[[Unit Initialization and Finalization for C++ New Toolchain|Initialisation et Finalisation d&#039;unités pour la nouvelle chaîne d&#039;outils C++]]&lt;br /&gt;
*[[Packages for C++ New Toolchain|Packages pour la chaîne d&#039;outils C++]]&lt;br /&gt;
*[[Package Import and Export for C++ New Toolchain|Importation et exportation de package pour la nouvelle chaîne d&#039;outils C++]]&lt;br /&gt;
*[[Différences C++ Builder Windows 64 bits#Différences entre les compilateurs|Différences spécifiques à BCC64]]&lt;br /&gt;
*[[Fonctionnalités du C++ moderne prises en charge par les compilateurs C++ améliorés par Clang de RAD Studio|Fonctionnalités du C++ moderne]]&lt;br /&gt;
*[[BCC64.EXE, le compilateur C++ Windows 64 bits|Compilateur Windows 64 bits]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Aper%C3%A7u_et_page_d%27accueil&amp;diff=218896</id>
		<title>Aperçu et page d&#039;accueil</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Aper%C3%A7u_et_page_d%27accueil&amp;diff=218896"/>
		<updated>2026-05-09T03:34:45Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : 1 révision importée : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Présentation de l&#039;EDI - Index (tutoriel de l&#039;EDI)}} &lt;br /&gt;
Lorsque vous démarrez {{Product}} {{Version}} pour la première fois, vous pouvez sélectionner un thème pour l&#039;EDI (Clair, Mountain Mist ou Foncé/Sombre) et configurer le contrôle source et les paramètres communs.&lt;br /&gt;
&lt;br /&gt;
[[File:Welcome Page Intro.png|link=]]&lt;br /&gt;
&lt;br /&gt;
[[File:Source Control.png|link=]]&lt;br /&gt;
&lt;br /&gt;
L&#039;EDI vous aide à concevoir visuellement des interfaces utilisateur, à définir les propriétés des objets, à écrire du code, à voir et à gérer votre application de diverses façons.&lt;br /&gt;
&lt;br /&gt;
==Personnalités dans l&#039;EDI==&lt;br /&gt;
&lt;br /&gt;
{{Product}} peut contenir deux produits, {{Delphi}} et {{CBuilder}}, vous permettant de développer vos applications avec deux langages de programmation différents :&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;{{Delphi}}&#039;&#039;&#039; utilise Object Pascal comme langage de programmation (aussi appelé Pascal Objet).&lt;br /&gt;
*&#039;&#039;&#039;{{CBuilder}}&#039;&#039;&#039; utilise C++ comme langage de programmation.&lt;br /&gt;
&lt;br /&gt;
Avec l&#039;EDI, vous pouvez développer des applications dans les deux langages de programmation ({{Delphi}} et C++), suivant les produits que vous achetez. Ces langages de programmation sont également connus sous le nom de &#039;&#039;&#039;personnalités&#039;&#039;&#039; dans {{Product}} et dans la documentation.&lt;br /&gt;
&lt;br /&gt;
==Présentation de l&#039;EDI au démarrage==&lt;br /&gt;
&lt;br /&gt;
Lorsque vous ouvrez l&#039;EDI, {{Product}} affiche une disposition de démarrage dans laquelle les fenêtres &#039;&#039;&#039;Structure&#039;&#039;&#039;, &#039;&#039;&#039;Inspecteur d&#039;objets&#039;&#039;&#039;, &#039;&#039;&#039;Palette d&#039;outils&#039;&#039;&#039; et &#039;&#039;&#039;Gestionnaire de projets&#039;&#039;&#039; sont réduites. Vous pouvez aussi sélectionner la disposition &#039;&#039;&#039;Disposition de démarrage&#039;&#039;&#039; ou une autre disposition prédéfinie dans la liste déroulante située à côté de la barre supérieure.&lt;br /&gt;
&lt;br /&gt;
:{{Note|L&#039;ouverture d&#039;un fichier ou d&#039;un projet active la &#039;&#039;&#039;disposition par défaut&#039;&#039;&#039;.}}&lt;br /&gt;
&lt;br /&gt;
==Page d&#039;accueil==&lt;br /&gt;
&lt;br /&gt;
La [[Page d&#039;accueil|page d&#039;accueil]] comprend plusieurs cadres qui peuvent être ajoutés, supprimés, repositionnés ou redimensionnés comme vous le souhaitez pour organiser les sections avec les informations que vous considérez comme les plus utiles.&lt;br /&gt;
&lt;br /&gt;
[[File:Welcome Page.png|link=|border|900px]]&lt;br /&gt;
&lt;br /&gt;
{{Note| Des informations détaillées sur la [[Page d&#039;accueil|page d&#039;accueil]] sont disponibles.}}&lt;br /&gt;
&lt;br /&gt;
==Disposition par défaut de l&#039;EDI==&lt;br /&gt;
&lt;br /&gt;
La disposition du bureau par défaut de l&#039;EDI comporte les outils les plus fréquemment utilisés. Vous pouvez utiliser le menu {{Menu|Voir}} pour afficher ou masquer certains outils. Vous pouvez aussi personnaliser votre bureau en déplaçant et en supprimant des éléments, et enregistrer les dispositions de bureau qui vous conviennent le mieux.&lt;br /&gt;
&lt;br /&gt;
Les sections suivantes décrivent et présentent les écrans des diverses options disponibles à l&#039;ouverture d&#039;un projet.&lt;br /&gt;
&lt;br /&gt;
Pour créer un nouveau projet, accédez à :&lt;br /&gt;
{{Menu|Fichier &amp;amp;gt; Nouveau &amp;amp;gt; Application multi-périphérique - {{Delphi}}}} for {{Delphi}} ou&lt;br /&gt;
{{Menu|Fichier &amp;amp;gt; Nouveau &amp;amp;gt; Application multi-périphérique - {{CBuilderUI}}}} for {{CBuilderUI}}.&lt;br /&gt;
&lt;br /&gt;
Une explication plus détaillée sur la façon de créer un projet est fournie dans [[Starting your first {{Variables|Product}} application Index (IDE Tutorial)|Démarrage de votre première application {{Variables|Product}}]].&lt;br /&gt;
&lt;br /&gt;
La figure suivante présente l&#039;EDI immédiatement après la création d&#039;un nouveau projet qui utilise une fiche multi-périphérique :&lt;br /&gt;
&lt;br /&gt;
[[File:IDE Layout.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
La section supérieure contient la barre de menus et les barres d&#039;outils.&lt;br /&gt;
&lt;br /&gt;
[[File:Menu Toolbar.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Accédez à {{Menu|Voir &amp;amp;gt; Barres d&#039;outils}} pour choisir les barres d&#039;outils à afficher dans l&#039;EDI.&lt;br /&gt;
&lt;br /&gt;
Les onglets qui affichent le code peuvent être personnalisés en cliquant avec le bouton droit sur un onglet et en choisissant  “&#039;&#039;&#039;Fractionner &amp;amp;gt;&#039;&#039;&#039;” ou “&#039;&#039;&#039;Déplacer &amp;amp;gt;&#039;&#039;&#039;”. Le fractionnement crée une nouvelle version de l&#039;onglet sélectionné. Le déplacement provoque la fermeture de l&#039;onglet et son ouverture à l&#039;endroit sélectionné dans l&#039;EDI. Pour plus de détails, voir [[Fractionnement de l&#039;éditeur|Fractionnement de l&#039;éditeur]].&lt;br /&gt;
&lt;br /&gt;
==[[Style EDI|Thème foncé/sombre]]==&lt;br /&gt;
&lt;br /&gt;
{{Product}} {{Version}} vous permet de choisir un thème foncé pour l&#039;EDI. Le thème foncé s&#039;applique à un schéma de couleurs complètement différent et fournit une apparence adaptée à une utilisation prolongée ou à un environnement à faible luminosité.&lt;br /&gt;
&lt;br /&gt;
Les options du thème EDI vous permettent de réaliser les actions suivantes :&lt;br /&gt;
&lt;br /&gt;
* Faire correspondre au thème Windows&lt;br /&gt;
*Activer le thème foncé&lt;br /&gt;
*Activer le thème clair&lt;br /&gt;
* Activer le thème Mountain Mist&lt;br /&gt;
* Choisir les couleurs prédéfinies pour l&#039;éditeur et pour l&#039;inspecteur d&#039;objets indépendamment du thème de l&#039;EDI sélectionné.&lt;br /&gt;
* Choisir la couleur de la barre de titre&lt;br /&gt;
&lt;br /&gt;
Pour accéder aux options relatives aux thèmes de l&#039;EDI, choisissez {{Menu|Outils &amp;amp;gt; Options &amp;amp;gt; Interface utilisateur &amp;amp;gt; [[Style EDI|Style de l&#039;EDI]]}} ou sélectionnez &#039;&#039;&#039;Foncé/Sombre&#039;&#039;&#039; dans le menu déroulant accessible dans la barre supérieure, à côté de la zone de liste déroulante des dispositions.&lt;br /&gt;
&lt;br /&gt;
==Suivant==&lt;br /&gt;
&lt;br /&gt;
[[Barres d&#039;outils (tutoriel de l&#039;EDI)|Barres d&#039;outils]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Delphi]]&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Aper%C3%A7u_et_page_d%27accueil&amp;diff=218895</id>
		<title>Aperçu et page d&#039;accueil</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Aper%C3%A7u_et_page_d%27accueil&amp;diff=218895"/>
		<updated>2026-05-09T03:34:41Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Présentation de l&#039;EDI - Index (tutoriel de l&#039;EDI)}} &lt;br /&gt;
Lorsque vous démarrez {{Product}} {{Version}} pour la première fois, vous pouvez sélectionner un thème pour l&#039;EDI (Clair, Mountain Mist ou Foncé/Sombre) et configurer le contrôle source et les paramètres communs.&lt;br /&gt;
&lt;br /&gt;
[[File:Welcome Page Intro.png|link=]]&lt;br /&gt;
&lt;br /&gt;
[[File:Source Control.png|link=]]&lt;br /&gt;
&lt;br /&gt;
L&#039;EDI vous aide à concevoir visuellement des interfaces utilisateur, à définir les propriétés des objets, à écrire du code, à voir et à gérer votre application de diverses façons.&lt;br /&gt;
&lt;br /&gt;
==Personnalités dans l&#039;EDI==&lt;br /&gt;
&lt;br /&gt;
{{Product}} peut contenir deux produits, {{Delphi}} et {{CBuilder}}, vous permettant de développer vos applications avec deux langages de programmation différents :&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;{{Delphi}}&#039;&#039;&#039; utilise Object Pascal comme langage de programmation (aussi appelé Pascal Objet).&lt;br /&gt;
*&#039;&#039;&#039;{{CBuilder}}&#039;&#039;&#039; utilise C++ comme langage de programmation.&lt;br /&gt;
&lt;br /&gt;
Avec l&#039;EDI, vous pouvez développer des applications dans les deux langages de programmation ({{Delphi}} et C++), suivant les produits que vous achetez. Ces langages de programmation sont également connus sous le nom de &#039;&#039;&#039;personnalités&#039;&#039;&#039; dans {{Product}} et dans la documentation.&lt;br /&gt;
&lt;br /&gt;
==Présentation de l&#039;EDI au démarrage==&lt;br /&gt;
&lt;br /&gt;
Lorsque vous ouvrez l&#039;EDI, {{Product}} affiche une disposition de démarrage dans laquelle les fenêtres &#039;&#039;&#039;Structure&#039;&#039;&#039;, &#039;&#039;&#039;Inspecteur d&#039;objets&#039;&#039;&#039;, &#039;&#039;&#039;Palette d&#039;outils&#039;&#039;&#039; et &#039;&#039;&#039;Gestionnaire de projets&#039;&#039;&#039; sont réduites. Vous pouvez aussi sélectionner la disposition &#039;&#039;&#039;Disposition de démarrage&#039;&#039;&#039; ou une autre disposition prédéfinie dans la liste déroulante située à côté de la barre supérieure.&lt;br /&gt;
&lt;br /&gt;
:{{Note|L&#039;ouverture d&#039;un fichier ou d&#039;un projet active la &#039;&#039;&#039;disposition par défaut&#039;&#039;&#039;.}}&lt;br /&gt;
&lt;br /&gt;
==Page d&#039;accueil==&lt;br /&gt;
&lt;br /&gt;
La [[Page d&#039;accueil|page d&#039;accueil]] comprend plusieurs cadres qui peuvent être ajoutés, supprimés, repositionnés ou redimensionnés comme vous le souhaitez pour organiser les sections avec les informations que vous considérez comme les plus utiles.&lt;br /&gt;
&lt;br /&gt;
[[File:Welcome Page.png|link=|border|900px]]&lt;br /&gt;
&lt;br /&gt;
{{Note| Des informations détaillées sur la [[Page d&#039;accueil|page d&#039;accueil]] sont disponibles.}}&lt;br /&gt;
&lt;br /&gt;
==Disposition par défaut de l&#039;EDI==&lt;br /&gt;
&lt;br /&gt;
La disposition du bureau par défaut de l&#039;EDI comporte les outils les plus fréquemment utilisés. Vous pouvez utiliser le menu {{Menu|Voir}} pour afficher ou masquer certains outils. Vous pouvez aussi personnaliser votre bureau en déplaçant et en supprimant des éléments, et enregistrer les dispositions de bureau qui vous conviennent le mieux.&lt;br /&gt;
&lt;br /&gt;
Les sections suivantes décrivent et présentent les écrans des diverses options disponibles à l&#039;ouverture d&#039;un projet.&lt;br /&gt;
&lt;br /&gt;
Pour créer un nouveau projet, accédez à :&lt;br /&gt;
{{Menu|Fichier &amp;amp;gt; Nouveau &amp;amp;gt; Application multi-périphérique - {{Delphi}}}} for {{Delphi}} ou&lt;br /&gt;
{{Menu|Fichier &amp;amp;gt; Nouveau &amp;amp;gt; Application multi-périphérique - {{CBuilderUI}}}} for {{CBuilderUI}}.&lt;br /&gt;
&lt;br /&gt;
Une explication plus détaillée sur la façon de créer un projet est fournie dans [[Starting your first {{Variables|Product}} application Index (IDE Tutorial)|Démarrage de votre première application {{Variables|Product}}]].&lt;br /&gt;
&lt;br /&gt;
La figure suivante présente l&#039;EDI immédiatement après la création d&#039;un nouveau projet qui utilise une fiche multi-périphérique :&lt;br /&gt;
&lt;br /&gt;
[[File:IDE Layout.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
La section supérieure contient la barre de menus et les barres d&#039;outils.&lt;br /&gt;
&lt;br /&gt;
[[File:Menu Toolbar.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Accédez à {{Menu|Voir &amp;amp;gt; Barres d&#039;outils}} pour choisir les barres d&#039;outils à afficher dans l&#039;EDI.&lt;br /&gt;
&lt;br /&gt;
Les onglets qui affichent le code peuvent être personnalisés en cliquant avec le bouton droit sur un onglet et en choisissant  “&#039;&#039;&#039;Fractionner &amp;amp;gt;&#039;&#039;&#039;” ou “&#039;&#039;&#039;Déplacer &amp;amp;gt;&#039;&#039;&#039;”. Le fractionnement crée une nouvelle version de l&#039;onglet sélectionné. Le déplacement provoque la fermeture de l&#039;onglet et son ouverture à l&#039;endroit sélectionné dans l&#039;EDI. Pour plus de détails, voir [[Fractionnement de l&#039;éditeur|Fractionnement de l&#039;éditeur]].&lt;br /&gt;
&lt;br /&gt;
==[[Style EDI|Thème foncé/sombre]]==&lt;br /&gt;
&lt;br /&gt;
{{Product}} {{Version}} vous permet de choisir un thème foncé pour l&#039;EDI. Le thème foncé s&#039;applique à un schéma de couleurs complètement différent et fournit une apparence adaptée à une utilisation prolongée ou à un environnement à faible luminosité.&lt;br /&gt;
&lt;br /&gt;
Les options du thème EDI vous permettent de réaliser les actions suivantes :&lt;br /&gt;
&lt;br /&gt;
* Faire correspondre au thème Windows&lt;br /&gt;
*Activer le thème foncé&lt;br /&gt;
*Activer le thème clair&lt;br /&gt;
* Activer le thème Mountain Mist&lt;br /&gt;
* Choisir les couleurs prédéfinies pour l&#039;éditeur et pour l&#039;inspecteur d&#039;objets indépendamment du thème de l&#039;EDI sélectionné.&lt;br /&gt;
* Choisir la couleur de la barre de titre&lt;br /&gt;
&lt;br /&gt;
Pour accéder aux options relatives aux thèmes de l&#039;EDI, choisissez {{Menu|Outils &amp;amp;gt; Options &amp;amp;gt; Interface utilisateur &amp;amp;gt; [[Style EDI|Style de l&#039;EDI]]}} ou sélectionnez &#039;&#039;&#039;Foncé/Sombre&#039;&#039;&#039; dans le menu déroulant accessible dans la barre supérieure, à côté de la zone de liste déroulante des dispositions.&lt;br /&gt;
&lt;br /&gt;
==Suivant==&lt;br /&gt;
&lt;br /&gt;
[[Barres d&#039;outils (tutoriel de l&#039;EDI)|Barres d&#039;outils]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Delphi]]&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Pr%C3%A9sentation_de_l%27EDI&amp;diff=218894</id>
		<title>Présentation de l&#039;EDI</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Pr%C3%A9sentation_de_l%27EDI&amp;diff=218894"/>
		<updated>2026-05-09T03:34:41Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : 1 révision importée : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Introduction à RAD Studio}}&lt;br /&gt;
&lt;br /&gt;
Quand vous démarrez {{Variables|Product}}, l&#039;environnement de développement intégré (EDI) s&#039;ouvre et affiche plusieurs outils et menus. L&#039;EDI vous aide à concevoir visuellement des interfaces utilisateur, à définir les propriétés des objets, à voir et gérer votre application de diverses façons.&lt;br /&gt;
&lt;br /&gt;
Cette rubrique d&#039;aide décrit les outils qui sont disponibles dans l&#039;EDI. Sachez que les outils spécifiques qui sont disponibles varient selon l&#039;édition de {{Variables|Product}} que vous utilisez.&lt;br /&gt;
&lt;br /&gt;
==Page d&#039;accueil==&lt;br /&gt;
&lt;br /&gt;
Lorsque vous ouvrez {{Product}}, les sections de la &#039;&#039;&#039;[[Page d&#039;accueil|page d&#039;accueil]]&#039;&#039;&#039; affichent différents types d&#039;informations utiles et proposent des actions. &lt;br /&gt;
&lt;br /&gt;
La &#039;&#039;&#039;page d&#039;accueil&#039;&#039;&#039; comporte plusieurs cadres que vous pouvez ajouter, supprimer, repositionner ou redimensionner comme vous le souhaitez pour organiser les sections avec les informations que vous considérez comme les plus utiles pour commencer.&lt;br /&gt;
&lt;br /&gt;
Si vous fermez la &#039;&#039;&#039;page d&#039;accueil&#039;&#039;&#039;, vous pouvez la rouvrir en choisissant {{Menu|Voir &amp;amp;gt; Page d&#039;accueil}}.&lt;br /&gt;
&lt;br /&gt;
[[File:Welcome page1.png|border|link=|950px]]&lt;br /&gt;
&lt;br /&gt;
{{Note| Une balise &#039;&#039;&#039;[Administrateur]&#039;&#039;&#039; s&#039;affiche au début du libellé de la barre de titre lorsque vous exécutez &#039;&#039;&#039;l&#039;EDI&#039;&#039;&#039; avec des privilèges élevés.}}&lt;br /&gt;
&lt;br /&gt;
==[[Style EDI|Thème foncé]]==&lt;br /&gt;
&lt;br /&gt;
{{Product}} {{Version}} vous permet de choisir un thème foncé pour l&#039;EDI. Le thème foncé s&#039;applique à un schéma de couleurs complètement différent et fournit une apparence adaptée à une utilisation prolongée ou à un environnement à faible luminosité.&lt;br /&gt;
&lt;br /&gt;
Les options du thème EDI vous permettent de réaliser les actions suivantes :&lt;br /&gt;
&lt;br /&gt;
*Faire correspondre au thème Windows&lt;br /&gt;
*Activer le thème foncé&lt;br /&gt;
*Activer le thème clair&lt;br /&gt;
*Activer le thème Mountain Mist&lt;br /&gt;
*Choisir les couleurs prédéfinies pour l&#039;éditeur et pour l&#039;inspecteur d&#039;objets indépendamment du thème de l&#039;EDI sélectionné.&lt;br /&gt;
*Choisir la couleur de la barre de titre&lt;br /&gt;
&lt;br /&gt;
Pour accéder aux options relatives aux thèmes de l&#039;EDI, choisissez {{Menu|Outils &amp;amp;gt; Options &amp;amp;gt; Interface utilisateur &amp;amp;gt; [[Style EDI|Style de l&#039;EDI]]}} ou cliquez sur le menu déroulant accessible dans la barre supérieure, à côté de la zone de liste déroulante des dispositions.&lt;br /&gt;
&lt;br /&gt;
[[File:Top Bar Menu.png|link=]]&lt;br /&gt;
&lt;br /&gt;
==Options d&#039;accessibilité==&lt;br /&gt;
&lt;br /&gt;
Avec l&#039;EDI, vous pouvez utiliser les outils MSAA (MS Active Accessibility). Vous pouvez activer les outils d&#039;accessibilité de Windows à partir du menu Démarrer via &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Tous les programmes &amp;amp;gt; Accessoires &amp;amp;gt; Accessibilité&#039;&#039;&#039;&amp;lt;/font&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Dispositions du bureau et option d&#039;auto-enregistrement Bureau du projet==&lt;br /&gt;
&lt;br /&gt;
La disposition du bureau par défaut de l&#039;EDI comporte les outils les plus fréquemment utilisés ({{Menu|Outils &amp;amp;gt; Options &amp;amp;gt; EDI &amp;amp;gt; [[Bureau et disposition|Bureau et Disposition]]}}). Vous pouvez utiliser le menu Voir pour afficher ou masquer certains outils. Vous pouvez aussi personnaliser votre bureau en déplaçant et en supprimant des éléments, et [[Enregistrement des dispositions du bureau|enregistrer les dispositions du bureau]] qui vous conviennent le mieux.&lt;br /&gt;
&lt;br /&gt;
Les paramètres du bureau sont enregistrés dans un fichier &amp;lt;code&amp;gt;.dsk&amp;lt;/code&amp;gt;, et l&#039;option &#039;&#039;&#039;d&#039;enregistrement automatique du bureau du projet&#039;&#039;&#039; (sur {{Menu|Outils &amp;amp;gt; Options &amp;amp;gt; EDI &amp;amp;gt; [[Enregistrement et récupération|Enregistrement et récupération]]}}) permet d&#039;enregistrer un fichier &amp;lt;code&amp;gt;.dsk&amp;lt;/code&amp;gt; pour le projet en cours.  Le fichier &amp;lt;code&amp;gt;.dsk&amp;lt;/code&amp;gt; conserve aussi les points d&#039;arrêt et les points de suivi en cours. Le fichier &amp;lt;code&amp;gt;&amp;amp;lt;monprojet&amp;amp;gt;.dsk&amp;lt;/code&amp;gt; est enregistré dans votre dossier projet. Voir [[Enregistrement des dispositions du bureau|Enregistrement des dispositions du bureau]].&lt;br /&gt;
&lt;br /&gt;
==Onglets Editeur==&lt;br /&gt;
&lt;br /&gt;
La partie centrale de la fenêtre principale de l&#039;EDI affiche une série d&#039;onglets avec plusieurs fichiers code source et d&#039;autres éléments ouverts. Il s&#039;agit de l&#039;espace de travail central. Les onglets contiennent généralement du code source ou un concepteur de fiches, mais ils peuvent aussi contenir un éditeur spécial ou des panneaux d&#039;information, qui ont tous des couleurs différentes pour que vous puissiez les différencier des onglets normaux de code/concepteur.&lt;br /&gt;
&lt;br /&gt;
[[File:Welcome screen tabs.png|link=|550px]]&lt;br /&gt;
&lt;br /&gt;
Les onglets peuvent être déplacés hors de leur fenêtre ou dupliqués en cliquant dessus avec le bouton droit et en sélectionnant &#039;&#039;&#039;Déplacer &amp;amp;gt;&#039;&#039;&#039; ou &#039;&#039;&#039;Fractionner &amp;amp;gt;&#039;&#039;&#039; à gauche, à droite, en haut ou en bas de l&#039;EDI. Pour de plus amples informations, voir [[Fractionnement de l&#039;éditeur|Fractionnement de l&#039;éditeur]].&lt;br /&gt;
&lt;br /&gt;
Vous pouvez modifier le comportement de l&#039;onglet (comme le bouton Fermer ou la fermeture automatique des onglets) ou l&#039;affichage des couleurs sur la page de l&#039;onglet [[IDE Options|Options de l&#039;EDI]].&lt;br /&gt;
&lt;br /&gt;
==Utilisation d&#039;une fiche==&lt;br /&gt;
&lt;br /&gt;
{{f|webdocs|En général, une fiche représente une fenêtre ou une page HTML dans l&#039;interface utilisateur que vous concevez.|En général, une fiche représente une fenêtre dans l&#039;interface utilisateur que vous concevez.}} Au moment de la conception, une fiche est affichée sur la surface du concepteur. Ajoutez des composants de la &#039;&#039;&#039;[[Palette d&#039;outils|Palette d&#039;outils]]&#039;&#039;&#039; sur la fiche pour créer votre interface utilisateur.&lt;br /&gt;
&lt;br /&gt;
{{Variables|Product}} propose une bibliothèque enrichie de fiches, comme décrit dans la section suivante. Sélectionnez la fiche la plus adaptée à la conception de votre application, qu&#039;il s&#039;agisse d&#039;une application Web proposant des fonctionnalités de logique métier via le Web ou une application Windows proposant le traitement et l&#039;affichage performant de contenu. Pour naviguer entre le concepteur et &#039;&#039;&#039;[[Editeur de code|l&#039;éditeur de code]]&#039;&#039;&#039;, cliquez sur leur onglet respectif en bas de l&#039;EDI.&lt;br /&gt;
&lt;br /&gt;
Pour accéder aux fiches, choisissez &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Fichier &amp;amp;gt; Nouveau &amp;amp;gt; Autre&#039;&#039;&#039;&amp;lt;/font&amp;gt;.&lt;br /&gt;
{{f|vcl|2=&lt;br /&gt;
&lt;br /&gt;
===Fiches VCL===&lt;br /&gt;
&lt;br /&gt;
Utilisez {{Variables|VCLForms}} pour créer des applications natives utilisant des composants VCL.&lt;br /&gt;
&lt;br /&gt;
Pour créer une application {{Variables|VCLForms}}, choisissez &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt; &#039;&#039;&#039;Fichier &amp;amp;gt; Nouveau &amp;amp;gt; Autre &amp;amp;gt; [[Application Fiches VCL|Application Windows VCL]]&#039;&#039;&#039;&amp;lt;/font&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Utilisez ensuite les classes de composants VCL pour créer votre application. Pour parcourir la bibliothèque VCL, voir [[lib_fr:Main Page|Référence VCL]].&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Concepteur de fiches==&lt;br /&gt;
&lt;br /&gt;
Le &#039;&#039;&#039;[[Concepteur de fiches|Concepteur de fiches]]&#039;&#039;&#039;, ou le concepteur, est affiché automatiquement dans le volet central quand vous utilisez une fiche. L&#039;apparence et les fonctionnalités du concepteur dépendent du type de fiche que vous utilisez. {{f|webdocs|Par exemple, si vous utilisez une fiche Web, le concepteur affiche un éditeur de balise HTML.}}  Pour accéder au concepteur, cliquez sur l&#039;onglet &#039;&#039;&#039;Conception&#039;&#039;&#039; en bas de l&#039;EDI.&lt;br /&gt;
&lt;br /&gt;
===Composants visuels===&lt;br /&gt;
&lt;br /&gt;
Les composants visuels apparaissent dans la fiche lors de la conception et sont visibles pour l&#039;utilisateur final à l&#039;exécution. Ce sont les boutons, les libellés, les barres d&#039;outils et les zones de liste.&lt;br /&gt;
{{f|vcl|2=&lt;br /&gt;
&lt;br /&gt;
===Aperçu d&#039;une fiche  [[File:FormPreview.png]]===&lt;br /&gt;
&lt;br /&gt;
Une icône d&#039;aperçu en bas à droite du concepteur (pour les fiches VCL) présente le positionnement de votre fiche sur l&#039;écran à l&#039;exécution. Vous pouvez ainsi positionner les fiches de votre application les unes en fonction des autres, au fur et à mesure que vous les concevez. Lorsque vous déplacez la fiche dans la fenêtre d&#039;aperçu, les coordonnées x,y du coin supérieur gauche de la fiche sont affichées. Par exemple, &amp;quot;0,0&amp;quot; représente le coin supérieur gauche de l&#039;écran.&lt;br /&gt;
&lt;br /&gt;
===Concepteur HTML===&lt;br /&gt;
&lt;br /&gt;
Utilisez le &#039;&#039;&#039;concepteur HTML&#039;&#039;&#039; pour visualiser et modifier les fiches Web ou les pages HTML. Ce concepteur comporte un &#039;&#039;&#039;Editeur de balise&#039;&#039;&#039; pour modifier les balises HTML avec la représentation visuelle de la fiche ou de la page. Vous pouvez aussi utiliser &#039;&#039;&#039;l&#039;inspecteur d&#039;objets&#039;&#039;&#039; pour modifier les propriétés des éléments visibles de la page HTML et afficher les propriétés de la balise HTML en cours dans &#039;&#039;&#039;l&#039;éditeur de balise&#039;&#039;&#039;. Une boîte à options située au-dessus de &#039;&#039;&#039;l&#039;éditeur de balise&#039;&#039;&#039; vous permet d&#039;afficher et de modifier les balises SCRIPT.&lt;br /&gt;
&lt;br /&gt;
Pour créer un nouveau fichier HTML, choisissez {{Menu|Fichier &amp;amp;gt; Nouveau &amp;amp;gt; Autre &amp;amp;gt; Web &amp;amp;gt; Page HTML}.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Directives de conception===&lt;br /&gt;
&lt;br /&gt;
Si vous créez un composant pour une fiche, vous pouvez enregistrer un type d&#039;objet, puis indiquer différents points sur ses limites, ou proches d&#039;elles, qui constitueront des points &amp;quot;d&#039;alignement&amp;quot;. Ces points d&#039;alignement sont des traits verticaux ou horizontaux qui traversent les limites d&#039;un contrôle virtuel.&lt;br /&gt;
&lt;br /&gt;
Quand les points d&#039;alignement sont en place, vous pouvez fournir les informations sur les directives de l&#039;UI de façon à ce que chaque composant respecte les prescriptions s&#039;appliquant, par exemple, à la distance entre les contrôles, aux raccourcis, aux libellés prenant la focalisation, à l&#039;ordre de tabulation, au nombre maximal d&#039;éléments (zones de liste, menus), et ainsi de suite. De cette façon, le &#039;&#039;&#039;Concepteur de fiches&#039;&#039;&#039; peut assister le développeur de code dans l&#039;adhésion aux directives établies sur l&#039;UI.&lt;br /&gt;
&lt;br /&gt;
Si l&#039;option &#039;&#039;&#039;Accrocher à la grille&#039;&#039;&#039; est activée (sur {{Menu|Outils &amp;amp;gt; Options &amp;amp;gt; Interface utilisateur &amp;amp;gt; [[Options du Concepteur de fiches|Concepteur de fiches]]}}), ainsi que &#039;&#039;&#039;Utiliser les directives du concepteur&#039;&#039;&#039;, les directives du concepteur sont prioritaires. Cela signifie que si un point de la grille se trouve dans la tolérance du nouvel emplacement et qu&#039;une directive se trouve également dans le voisinage, le contrôle respecte la directive et non la position sur la grille, même si la directive ne coïncide pas avec la position sur la grille. La tolérance d&#039;alignement est déterminée par la taille de la grille. Même si les options &#039;&#039;&#039;Accrocher à la grille&#039;&#039;&#039; et &#039;&#039;&#039;Afficher la grille&#039;&#039;&#039; sont désactivées, le Concepteur détermine la tolérance en fonction de la taille de la grille.&lt;br /&gt;
&lt;br /&gt;
==Palette d&#039;outils==&lt;br /&gt;
&lt;br /&gt;
La &#039;&#039;&#039;[[Palette d&#039;outils|Palette d&#039;outils]]&#039;&#039;&#039;, située sur la colonne de droite, contient des éléments qui vous permettent de développer votre application. Les éléments affichés dépendent de la vue en cours. Par exemple, si vous affichez une fiche sur le concepteur, la &#039;&#039;&#039;palette d&#039;outils&#039;&#039;&#039; affiche les composants appropriés à cette fiche. Double-cliquez sur un contrôle pour l&#039;ajouter à votre fiche. Vous pouvez aussi le faire glisser vers une position désirée de la fiche. Si vous visualisez du code dans &#039;&#039;&#039;l&#039;éditeur de code&#039;&#039;&#039;, la &#039;&#039;&#039;palette d&#039;outils&#039;&#039;&#039; affiche des segments de code que vous pouvez ajouter à votre application.&lt;br /&gt;
&lt;br /&gt;
===Composants personnalisés===&lt;br /&gt;
&lt;br /&gt;
Outre les composants qui sont installés avec {{Variables|Product}}, vous pouvez ajouter des composants personnalisés ou tiers à &#039;&#039;&#039;la palette d&#039;outils&#039;&#039;&#039; et les enregistrer dans leur propre catégorie.&lt;br /&gt;
&lt;br /&gt;
===Templates de composants===&lt;br /&gt;
&lt;br /&gt;
Vous pouvez créer des templates composés d&#039;un ou de plusieurs composants. Après avoir organisé les composants sur une fiche, défini leurs propriétés et écrit du code pour eux, vous pouvez les enregistrer sous la forme d&#039;un template de composant. Par la suite, en sélectionnant le template dans &#039;&#039;&#039;la palette d&#039;outils&#039;&#039;&#039;, vous pouvez placer les composants préconfigurés sur une fiche en une seule étape&amp;amp;nbsp;; toutes les propriétés et tout le code de gestion d&#039;événement associés sont simultanément ajoutés à votre projet. Vous pouvez repositionner les composants indépendamment les uns des autres, réinitialiser leurs propriétés, et&amp;amp;nbsp;créer ou modifier des gestionnaires d&#039;événements comme si vous aviez positionné chaque composant séparément.&lt;br /&gt;
{{f|componenttoolbar|2=&lt;br /&gt;
&lt;br /&gt;
==Barre d&#039;outils des composants==&lt;br /&gt;
&lt;br /&gt;
La &#039;&#039;&#039;[[Barre d&#039;outils des composants|Barre d&#039;outils des composants]]&#039;&#039;&#039; contient toutes les catégories et tous les composants qui apparaissent sur la &#039;&#039;&#039;palette d&#039;outils&#039;&#039;&#039; régulière (Standard, Accès aux données, et ainsi de suite). Toutefois, la &#039;&#039;&#039;barre d&#039;outils des composants&#039;&#039;&#039; affiche les catégories de composants sous la forme d&#039;un ensemble d&#039;onglets situé sur la barre d&#039;outils au sommet de la fenêtre de l&#039;EDI, similaire à {{Delphi|7}} {{Version|7}} et {{CBuilder|6}} {{Version|6}}. Cliquez sur un onglet de la barre d&#039;outils des composants pour afficher les icônes des composants de cette catégorie. Cliquez ensuite sur une icône pour sélectionner un composant.&lt;br /&gt;
&lt;br /&gt;
Quand la &#039;&#039;&#039;barre d&#039;outils des composants&#039;&#039;&#039; est activée, la &#039;&#039;&#039;palette d&#039;outils&#039;&#039;&#039; est aussi disponible, et vous pouvez utiliser la &#039;&#039;&#039;barre d&#039;outils des composants&#039;&#039;&#039; ou la &#039;&#039;&#039;palette d&#039;outils&#039;&#039;&#039; pour ajouter des composants à votre application. Voir [[Activation de la barre d&#039;outils des composants|Activation de la barre d&#039;outils des composants]].&lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations sur les différentes barres d&#039;outils disponibles dans l&#039;EDI, voir &#039;&#039;&#039;[[Barres d&#039;outils|Barres d&#039;outils]]&#039;&#039;&#039;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Inspecteur d&#039;objets==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
[[Inspecteur d&#039;objets|L&#039;inspecteur d&#039;objets]]&#039;&#039;&#039;, situé sur la gauche, vous permet de définir les propriétés de conception et de créer des gestionnaires d&#039;événements pour vos composants. Il fournit la connexion entre l&#039;apparence visuelle de votre application et le code qui lui permet de fonctionner. &#039;&#039;&#039;L&#039;inspecteur d&#039;objets&#039;&#039;&#039; contient deux onglets&amp;amp;nbsp;: &#039;&#039;&#039;Propriétés&#039;&#039;&#039; et &#039;&#039;&#039;Evénements&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Utilisez l&#039;onglet &#039;&#039;&#039;Propriétés&#039;&#039;&#039; pour modifier les attributs physiques des composants. Selon votre sélection, certaines catégories d&#039;options vous permettent d&#039;entrer une valeur dans une zone de texte, alors que d&#039;autres attendent que vous sélectionniez une valeur dans une liste déroulante. Pour les opérations booléennes, vous passez de True à False, et vice-versa. Après avoir modifié les attributs physiques de vos composants, vous créez des gestionnaires d&#039;événements qui gèrent les composants.&lt;br /&gt;
&lt;br /&gt;
Utilisez l&#039;onglet &#039;&#039;&#039;Evénements&#039;&#039;&#039; pour spécifier les événements d&#039;un objet spécifique que vous sélectionnez. S&#039;il existe un gestionnaire d&#039;événement, utilisez la liste déroulante pour le sélectionner. Par défaut, certaines options de &#039;&#039;&#039;l&#039;inspecteur d&#039;objets&#039;&#039;&#039; sont repliées. Pour développer les options, cliquez sur le signe plus (+) en regard de la catégorie.&lt;br /&gt;
&lt;br /&gt;
Certains composants non visuels, comme les fournisseurs de données Borland offrent un accès rapide à des éditeurs comme &#039;&#039;&#039;l&#039;éditeur de connexion&#039;&#039;&#039; et &#039;&#039;&#039;l&#039;éditeur de texte de commande&#039;&#039;&#039;. Vous pouvez accéder à ces éditeurs dans la zone &#039;&#039;&#039;Verbe du concepteur&#039;&#039;&#039; en bas de &#039;&#039;&#039;l&#039;inspecteur d&#039;objets&#039;&#039;&#039;. Pour ouvrir les éditeurs, placez votre curseur sur le nom de l&#039;éditeur jusqu&#039;à ce que le curseur prenne la forme d&#039;une main et l&#039;éditeur se change en un lien. Vous pouvez aussi cliquer avec le bouton droit sur le composant non visuel et défiler jusqu&#039;à l&#039;éditeur associé et le sélectionner. Sachez que les composants non visuels n&#039;ont pas tous d&#039;éditeur associé. En plus des éditeurs, cette zone peut aussi afficher des hyperliens pour montrer des éditeurs de composants personnalisés, lancer une page web et afficher des boîtes de dialogue.&lt;br /&gt;
&lt;br /&gt;
==Référentiel d&#039;objets==&lt;br /&gt;
&lt;br /&gt;
Pour simplifier le développement, {{Variables|Product}} propose des templates prédéfinis, des fiches et d&#039;autres éléments auxquels vous avez accès et que vous pouvez utiliser dans vos applications.&lt;br /&gt;
&lt;br /&gt;
===Contenu du référentiel d&#039;objets===&lt;br /&gt;
&lt;br /&gt;
Le &#039;&#039;&#039;[[Référentiel d&#039;objets|Référentiel d&#039;objets]]&#039;&#039;&#039; contient des éléments qui correspondent aux types d&#039;applications que vous pouvez développer. Il contient des templates, des fiches et bien d&#039;autres éléments. Vous pouvez créer des projets tels qu&#039;une bibliothèque de classes, une bibliothèque de contrôles, des applications console et autres en accédant aux templates disponibles.&lt;br /&gt;
&lt;br /&gt;
Pour ouvrir le &#039;&#039;&#039;référentiel d&#039;objets&#039;&#039;&#039;, choisissez &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Fichier &amp;amp;gt; Nouveau &amp;amp;gt; Autre&#039;&#039;&#039;&amp;lt;/font&amp;gt;. La boîte de dialogue &#039;&#039;&#039;Nouveaux éléments&#039;&#039;&#039; affiche le contenu du &#039;&#039;&#039;référentiel d’objets&#039;&#039;&#039;. Vous pouvez aussi modifier ou retirer des objets existants du &#039;&#039;&#039;référentiel d&#039;objets&#039;&#039;&#039; en cliquant avec le bouton droit dans le &#039;&#039;&#039;référentiel d&#039;objets&#039;&#039;&#039; afin d&#039;afficher les options d&#039;édition.&lt;br /&gt;
&lt;br /&gt;
===Templates du référentiel d&#039;objets===&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ajouter vos propres objets au &#039;&#039;&#039;référentiel d&#039;objets&#039;&#039;&#039; en tant que templates que vous réutilisez ou partagez avec d&#039;autres développeurs. La réutilisation d&#039;objets vous permet de concevoir des familles d&#039;applications ayant une interface utilisateur et des fonctionnalités communes, afin de réduire les temps de développement et d&#039;améliorer la qualité.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ajouter dans le &#039;&#039;&#039;référentiel d&#039;objets&#039;&#039;&#039; un projet de démarrage, une démo, un template ou tout autre fichier utile et le rendre accessible depuis le menu Nouveau. Choisissez &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Projet  &amp;amp;gt; Ajouter au référentiel&#039;&#039;&#039;&amp;lt;/font&amp;gt;. Sélectionnez votre fichier. Ensuite, lorsque vous sélectionnez la commande &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Fichier &amp;amp;gt; Nouveau&#039;&#039;&#039;&amp;lt;/font&amp;gt;, vous pouvez choisir le fichier que vous venez d&#039;ajouter et en utiliser un nouvel exemplaire.&lt;br /&gt;
&lt;br /&gt;
{{Variables|Product}} vous permet de créer plusieurs bibliothèques de templates personnalisées servant de base à la création de futurs projets. Les bibliothèques de templates vous permettent de définir l&#039;apparence des projets et d&#039;ajouter de nouveaux types de projets dans le &#039;&#039;&#039;référentiel d&#039;objets&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Gestionnaire de projets==&lt;br /&gt;
&lt;br /&gt;
Un &#039;&#039;&#039;projet&#039;&#039;&#039; est constitué de plusieurs fichiers d&#039;application. La &#039;&#039;&#039;[[Fenêtre Projets|Fenêtre Projets]]&#039;&#039;&#039;, située dans la colonne supérieure droite, permet de visualiser et d&#039;organiser les fichiers de votre projet, comme les fiches, les exécutables, les assemblages, les objets et les fichiers bibliothèque. Dans le &#039;&#039;&#039;Gestionnaire de projets&#039;&#039;&#039;, vous pouvez ajouter, retirer et renommer des fichiers en utilisant la barre d&#039;outils ou le menu contextuel. Vous pouvez même appeler la boîte de dialogue Options de projet depuis le menu contextuel du &#039;&#039;&#039;Gestionnaire de projets&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Groupes de projets===&lt;br /&gt;
&lt;br /&gt;
Vous pouvez combiner des projets associés pour former un &#039;&#039;&#039;groupe de projets&#039;&#039;&#039;. Pour ce faire, cliquez avec le bouton droit sur le noeud groupe de projets par défaut ([[File:Project Group.png]]) dans le &#039;&#039;&#039;Gestionnaire de projets&#039;&#039;&#039; et sélectionnez &#039;&#039;&#039;[[Ajouter un nouveau projet|Ajouter un nouveau projet]]&#039;&#039;&#039; ou &#039;&#039;&#039;Ajouter un projet existant&#039;&#039;&#039;. La liaison de plusieurs projets en un groupe de projets vous permet de compiler le groupe de projets entier en une seule fois. Mais vous pouvez aussi compiler tout projet unique en cliquant avec le bouton droit sur un noeud de projet et en sélectionnant une des commandes de compilation ou de construction sur le menu contextuel. &lt;br /&gt;
&lt;br /&gt;
Après la création délibérée d&#039;un groupe de projets, vous êtes invité à enregistrer le fichier &amp;lt;code&amp;gt;.groupproj&amp;lt;/code&amp;gt; quand vous quittez l&#039;EDI ou entrez une commande d&#039;enregistrement pour un des projets inclus. Vous pouvez aussi enregistrer explicitement un groupe de projets en utilisant les commandes du menu contextuel.&lt;br /&gt;
&lt;br /&gt;
==Explorateur de données==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
[[Explorateur de données|L&#039;explorateur de données]]&#039;&#039;&#039; permet de parcourir des objets de schéma spécifiques au serveur de base de données, notamment les tables, les champs, les définitions de procédures stockées, les déclencheurs et les index. Les menus contextuels vous permettent de créer et de gérer les connexions aux bases de données. Vous pouvez aussi faire glisser et déposer des données depuis une source de données vers la plupart des fiches pour construire rapidement votre application de base de données.&lt;br /&gt;
&lt;br /&gt;
==Vue Structure==&lt;br /&gt;
&lt;br /&gt;
La &#039;&#039;&#039;[[Vue Structure|Vue Structure]]&#039;&#039;&#039; présente la hiérarchie du code source ou le langage HTML affiché dans &#039;&#039;&#039;l&#039;éditeur de code&#039;&#039;&#039;, ou les composants affichés sur le concepteur. Si la vue affiche la structure du code source ou le langage HTML, vous pouvez double-cliquer sur un élément pour accéder à sa déclaration ou à son emplacement dans &#039;&#039;&#039;l&#039;éditeur de code&#039;&#039;&#039;. Si la vue affiche des composants, vous pouvez double-cliquer sur un composant pour le sélectionner sur la fiche.&lt;br /&gt;
&lt;br /&gt;
Si votre code contient des erreurs de syntaxe, elles s&#039;affichent dans le dossier &#039;&#039;&#039;Erreurs&#039;&#039;&#039; de la vue &#039;&#039;&#039;Structure&#039;&#039;&#039;. Double-cliquez sur une erreur pour localiser sa source dans &#039;&#039;&#039;l&#039;éditeur de code&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez contrôler le contenu et l&#039;aspect de la &#039;&#039;&#039;vue Structure&#039;&#039;&#039; en choisissant {{Menu| Outils &amp;amp;gt; Options &amp;amp;gt; Interface utilisateur &amp;amp;gt; [[Structure|Structure]]}}, puis en modifiant les paramètres.&lt;br /&gt;
&lt;br /&gt;
==[[Smart CodeInsight|Fenêtre de chat IA]]==&lt;br /&gt;
&lt;br /&gt;
La fenêtre de chat IA est une fiche ancrable de l&#039;EDI, qui fonctionne comme n&#039;importe quelle fenêtre de chat LLM. Vous pouvez taper une requête, choisir un moteur et attendre la réponse.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir utiliser cette fonctionnalité, vous devez toutefois l&#039;activer dans l&#039;option [[Smart CodeInsight Options|Audit de code intelligent]]. &lt;br /&gt;
&lt;br /&gt;
==Gestionnaire de l&#039;historique==&lt;br /&gt;
&lt;br /&gt;
Le &#039;&#039;&#039;[[Gestionnaire de l&#039;historique|Gestionnaire de l&#039;historique]]&#039;&#039;&#039;, situé dans le volet central, vous permet de voir et de comparer les versions d&#039;un fichier, y compris les diverses versions sauvegardées, les modifications enregistrées localement et le tampon mémoire des modifications non enregistrées d&#039;un fichier actif. Si le fichier en cours est sous contrôle de version, tous les types des révisions sont disponibles dans le &#039;&#039;&#039;gestionnaire de l&#039;historique&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
[[Intégration de Subversion dans l&#039;EDI|L&#039;intégration de Subversion dans l&#039;EDI]]&#039;&#039;&#039; est implémentée sur le &#039;&#039;&#039;gestionnaire de l&#039;historique&#039;&#039;&#039;, qui affiche les informations Subversion chaque fois qu&#039;elles sont disponibles dans le système de fichiers.&lt;br /&gt;
&lt;br /&gt;
Le &#039;&#039;&#039;gestionnaire de l&#039;historique&#039;&#039;&#039; se trouve à droite de l&#039;onglet &#039;&#039;&#039;Code&#039;&#039;&#039; et contient les pages à onglets suivantes :&lt;br /&gt;
&lt;br /&gt;
*La page &#039;&#039;&#039;Contenu&#039;&#039;&#039; affiche les versions actuelle et précédente du fichier.&lt;br /&gt;
*La page &#039;&#039;&#039;Diff&#039;&#039;&#039; affiche les différences entre les versions sélectionnées du fichier.&lt;br /&gt;
*La page &#039;&#039;&#039;Info&#039;&#039;&#039; affiche tous les libellés et commentaires associés au fichier actif.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez utiliser la barre d&#039;outils du &#039;&#039;&#039;gestionnaire de l&#039;historique&#039;&#039;&#039; pour actualiser les informations de révision, rétablir une version sélectionnée à la version la plus actuelle et synchroniser le défilement entre les visualiseurs source de la page &#039;&#039;&#039;Contenu&#039;&#039;&#039; ou &#039;&#039;&#039;Diff&#039;&#039;&#039;, et &#039;&#039;&#039;l&#039;éditeur de code&#039;&#039;&#039;, et pour la navigation de fenêtre (comme Aller à la différence suivante).&lt;br /&gt;
&lt;br /&gt;
==Editeur de code==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
[[Editeur de code|L&#039;éditeur de code]]&#039;&#039;&#039;, situé dans le volet central, propose un moyen pratique de visualiser et de modifier le code source. C&#039;est un éditeur UTF8 complet et personnalisable qui comprend entre autres les sauvegardes automatiques, l&#039;audit de code, la mise en surbrillance syntaxique, de multiples capacités d&#039;annulation, l&#039;aide contextuelle, les templates dynamiques, la saisie semi-automatique de blocs (achèvement de bloc), la recherche de classe, la recherche d&#039;unités et l&#039;importation d&#039;un espace de nommage.&lt;br /&gt;
&lt;br /&gt;
==Débogueur==&lt;br /&gt;
&lt;br /&gt;
Les débogueurs intégrés vous permettent de trouver et de corriger les erreurs d&#039;exécution et de logique dans votre application {{Variables|Product}}. En utilisant les débogueurs, vous pouvez parcourir le code pas à pas, définir des points d&#039;arrêt et de suivi et inspecter ou modifier les valeurs du programme. Quand vous déboguez votre application, les [[Fenêtres de débogage - Index|fenêtres de débogage]] sont disponibles pour vous aider à gérer la session de débogage et vous donnent des informations sur l&#039;état de votre application.&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Aperçu et page d&#039;accueil|Aperçu et page d&#039;accueil]]&lt;br /&gt;
*[[Référence EDI et utilitaires|Référence EDI et utilitaires]]&lt;br /&gt;
*[[Démarrage d&#039;un projet - Présentation|Démarrage d&#039;un projet - Présentation]]&lt;br /&gt;
*[[Enregistrement des dispositions du bureau|Enregistrement des dispositions du bureau]]&lt;br /&gt;
*[[Concepteur de fiches|Concepteur de fiches]]&lt;br /&gt;
*[[Ajout de composants à une fiche|Ajout de composants à une fiche]]&lt;br /&gt;
*[[Définition des propriétés et des événements|Définition des propriétés et des événements]]&lt;br /&gt;
*[[Editeur de code|Editeur de code]]&lt;br /&gt;
*[[Personnalisation de l&#039;éditeur de code|Personnalisation de l&#039;éditeur de code]]&lt;br /&gt;
*[[Fractionnement de l&#039;éditeur|Fractionnement de l&#039;éditeur]]&lt;br /&gt;
*[[Débogage des applications - Index|Débogage des applications]]&lt;br /&gt;
*[[Utilisation du Gestionnaire de l&#039;historique|Utilisation du Gestionnaire de l&#039;historique]]&lt;br /&gt;
*[[Rubriques de l&#039;explorateur de classes Delphi|Rubriques de l&#039;explorateur de classes Delphi]]&lt;br /&gt;
*[[Rubriques de l&#039;explorateur de classes C++|Rubriques de l&#039;explorateur de classes C++]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Prise en main]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Pr%C3%A9sentation_de_l%27EDI&amp;diff=218893</id>
		<title>Présentation de l&#039;EDI</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Pr%C3%A9sentation_de_l%27EDI&amp;diff=218893"/>
		<updated>2026-05-09T03:34:40Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Introduction à RAD Studio}}&lt;br /&gt;
&lt;br /&gt;
Quand vous démarrez {{Variables|Product}}, l&#039;environnement de développement intégré (EDI) s&#039;ouvre et affiche plusieurs outils et menus. L&#039;EDI vous aide à concevoir visuellement des interfaces utilisateur, à définir les propriétés des objets, à voir et gérer votre application de diverses façons.&lt;br /&gt;
&lt;br /&gt;
Cette rubrique d&#039;aide décrit les outils qui sont disponibles dans l&#039;EDI. Sachez que les outils spécifiques qui sont disponibles varient selon l&#039;édition de {{Variables|Product}} que vous utilisez.&lt;br /&gt;
&lt;br /&gt;
==Page d&#039;accueil==&lt;br /&gt;
&lt;br /&gt;
Lorsque vous ouvrez {{Product}}, les sections de la &#039;&#039;&#039;[[Page d&#039;accueil|page d&#039;accueil]]&#039;&#039;&#039; affichent différents types d&#039;informations utiles et proposent des actions. &lt;br /&gt;
&lt;br /&gt;
La &#039;&#039;&#039;page d&#039;accueil&#039;&#039;&#039; comporte plusieurs cadres que vous pouvez ajouter, supprimer, repositionner ou redimensionner comme vous le souhaitez pour organiser les sections avec les informations que vous considérez comme les plus utiles pour commencer.&lt;br /&gt;
&lt;br /&gt;
Si vous fermez la &#039;&#039;&#039;page d&#039;accueil&#039;&#039;&#039;, vous pouvez la rouvrir en choisissant {{Menu|Voir &amp;amp;gt; Page d&#039;accueil}}.&lt;br /&gt;
&lt;br /&gt;
[[File:Welcome page1.png|border|link=|950px]]&lt;br /&gt;
&lt;br /&gt;
{{Note| Une balise &#039;&#039;&#039;[Administrateur]&#039;&#039;&#039; s&#039;affiche au début du libellé de la barre de titre lorsque vous exécutez &#039;&#039;&#039;l&#039;EDI&#039;&#039;&#039; avec des privilèges élevés.}}&lt;br /&gt;
&lt;br /&gt;
==[[Style EDI|Thème foncé]]==&lt;br /&gt;
&lt;br /&gt;
{{Product}} {{Version}} vous permet de choisir un thème foncé pour l&#039;EDI. Le thème foncé s&#039;applique à un schéma de couleurs complètement différent et fournit une apparence adaptée à une utilisation prolongée ou à un environnement à faible luminosité.&lt;br /&gt;
&lt;br /&gt;
Les options du thème EDI vous permettent de réaliser les actions suivantes :&lt;br /&gt;
&lt;br /&gt;
*Faire correspondre au thème Windows&lt;br /&gt;
*Activer le thème foncé&lt;br /&gt;
*Activer le thème clair&lt;br /&gt;
*Activer le thème Mountain Mist&lt;br /&gt;
*Choisir les couleurs prédéfinies pour l&#039;éditeur et pour l&#039;inspecteur d&#039;objets indépendamment du thème de l&#039;EDI sélectionné.&lt;br /&gt;
*Choisir la couleur de la barre de titre&lt;br /&gt;
&lt;br /&gt;
Pour accéder aux options relatives aux thèmes de l&#039;EDI, choisissez {{Menu|Outils &amp;amp;gt; Options &amp;amp;gt; Interface utilisateur &amp;amp;gt; [[Style EDI|Style de l&#039;EDI]]}} ou cliquez sur le menu déroulant accessible dans la barre supérieure, à côté de la zone de liste déroulante des dispositions.&lt;br /&gt;
&lt;br /&gt;
[[File:Top Bar Menu.png|link=]]&lt;br /&gt;
&lt;br /&gt;
==Options d&#039;accessibilité==&lt;br /&gt;
&lt;br /&gt;
Avec l&#039;EDI, vous pouvez utiliser les outils MSAA (MS Active Accessibility). Vous pouvez activer les outils d&#039;accessibilité de Windows à partir du menu Démarrer via &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Tous les programmes &amp;amp;gt; Accessoires &amp;amp;gt; Accessibilité&#039;&#039;&#039;&amp;lt;/font&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Dispositions du bureau et option d&#039;auto-enregistrement Bureau du projet==&lt;br /&gt;
&lt;br /&gt;
La disposition du bureau par défaut de l&#039;EDI comporte les outils les plus fréquemment utilisés ({{Menu|Outils &amp;amp;gt; Options &amp;amp;gt; EDI &amp;amp;gt; [[Bureau et disposition|Bureau et Disposition]]}}). Vous pouvez utiliser le menu Voir pour afficher ou masquer certains outils. Vous pouvez aussi personnaliser votre bureau en déplaçant et en supprimant des éléments, et [[Enregistrement des dispositions du bureau|enregistrer les dispositions du bureau]] qui vous conviennent le mieux.&lt;br /&gt;
&lt;br /&gt;
Les paramètres du bureau sont enregistrés dans un fichier &amp;lt;code&amp;gt;.dsk&amp;lt;/code&amp;gt;, et l&#039;option &#039;&#039;&#039;d&#039;enregistrement automatique du bureau du projet&#039;&#039;&#039; (sur {{Menu|Outils &amp;amp;gt; Options &amp;amp;gt; EDI &amp;amp;gt; [[Enregistrement et récupération|Enregistrement et récupération]]}}) permet d&#039;enregistrer un fichier &amp;lt;code&amp;gt;.dsk&amp;lt;/code&amp;gt; pour le projet en cours.  Le fichier &amp;lt;code&amp;gt;.dsk&amp;lt;/code&amp;gt; conserve aussi les points d&#039;arrêt et les points de suivi en cours. Le fichier &amp;lt;code&amp;gt;&amp;amp;lt;monprojet&amp;amp;gt;.dsk&amp;lt;/code&amp;gt; est enregistré dans votre dossier projet. Voir [[Enregistrement des dispositions du bureau|Enregistrement des dispositions du bureau]].&lt;br /&gt;
&lt;br /&gt;
==Onglets Editeur==&lt;br /&gt;
&lt;br /&gt;
La partie centrale de la fenêtre principale de l&#039;EDI affiche une série d&#039;onglets avec plusieurs fichiers code source et d&#039;autres éléments ouverts. Il s&#039;agit de l&#039;espace de travail central. Les onglets contiennent généralement du code source ou un concepteur de fiches, mais ils peuvent aussi contenir un éditeur spécial ou des panneaux d&#039;information, qui ont tous des couleurs différentes pour que vous puissiez les différencier des onglets normaux de code/concepteur.&lt;br /&gt;
&lt;br /&gt;
[[File:Welcome screen tabs.png|link=|550px]]&lt;br /&gt;
&lt;br /&gt;
Les onglets peuvent être déplacés hors de leur fenêtre ou dupliqués en cliquant dessus avec le bouton droit et en sélectionnant &#039;&#039;&#039;Déplacer &amp;amp;gt;&#039;&#039;&#039; ou &#039;&#039;&#039;Fractionner &amp;amp;gt;&#039;&#039;&#039; à gauche, à droite, en haut ou en bas de l&#039;EDI. Pour de plus amples informations, voir [[Fractionnement de l&#039;éditeur|Fractionnement de l&#039;éditeur]].&lt;br /&gt;
&lt;br /&gt;
Vous pouvez modifier le comportement de l&#039;onglet (comme le bouton Fermer ou la fermeture automatique des onglets) ou l&#039;affichage des couleurs sur la page de l&#039;onglet [[IDE Options|Options de l&#039;EDI]].&lt;br /&gt;
&lt;br /&gt;
==Utilisation d&#039;une fiche==&lt;br /&gt;
&lt;br /&gt;
{{f|webdocs|En général, une fiche représente une fenêtre ou une page HTML dans l&#039;interface utilisateur que vous concevez.|En général, une fiche représente une fenêtre dans l&#039;interface utilisateur que vous concevez.}} Au moment de la conception, une fiche est affichée sur la surface du concepteur. Ajoutez des composants de la &#039;&#039;&#039;[[Palette d&#039;outils|Palette d&#039;outils]]&#039;&#039;&#039; sur la fiche pour créer votre interface utilisateur.&lt;br /&gt;
&lt;br /&gt;
{{Variables|Product}} propose une bibliothèque enrichie de fiches, comme décrit dans la section suivante. Sélectionnez la fiche la plus adaptée à la conception de votre application, qu&#039;il s&#039;agisse d&#039;une application Web proposant des fonctionnalités de logique métier via le Web ou une application Windows proposant le traitement et l&#039;affichage performant de contenu. Pour naviguer entre le concepteur et &#039;&#039;&#039;[[Editeur de code|l&#039;éditeur de code]]&#039;&#039;&#039;, cliquez sur leur onglet respectif en bas de l&#039;EDI.&lt;br /&gt;
&lt;br /&gt;
Pour accéder aux fiches, choisissez &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Fichier &amp;amp;gt; Nouveau &amp;amp;gt; Autre&#039;&#039;&#039;&amp;lt;/font&amp;gt;.&lt;br /&gt;
{{f|vcl|2=&lt;br /&gt;
&lt;br /&gt;
===Fiches VCL===&lt;br /&gt;
&lt;br /&gt;
Utilisez {{Variables|VCLForms}} pour créer des applications natives utilisant des composants VCL.&lt;br /&gt;
&lt;br /&gt;
Pour créer une application {{Variables|VCLForms}}, choisissez &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt; &#039;&#039;&#039;Fichier &amp;amp;gt; Nouveau &amp;amp;gt; Autre &amp;amp;gt; [[Application Fiches VCL|Application Windows VCL]]&#039;&#039;&#039;&amp;lt;/font&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Utilisez ensuite les classes de composants VCL pour créer votre application. Pour parcourir la bibliothèque VCL, voir [[lib_fr:Main Page|Référence VCL]].&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Concepteur de fiches==&lt;br /&gt;
&lt;br /&gt;
Le &#039;&#039;&#039;[[Concepteur de fiches|Concepteur de fiches]]&#039;&#039;&#039;, ou le concepteur, est affiché automatiquement dans le volet central quand vous utilisez une fiche. L&#039;apparence et les fonctionnalités du concepteur dépendent du type de fiche que vous utilisez. {{f|webdocs|Par exemple, si vous utilisez une fiche Web, le concepteur affiche un éditeur de balise HTML.}}  Pour accéder au concepteur, cliquez sur l&#039;onglet &#039;&#039;&#039;Conception&#039;&#039;&#039; en bas de l&#039;EDI.&lt;br /&gt;
&lt;br /&gt;
===Composants visuels===&lt;br /&gt;
&lt;br /&gt;
Les composants visuels apparaissent dans la fiche lors de la conception et sont visibles pour l&#039;utilisateur final à l&#039;exécution. Ce sont les boutons, les libellés, les barres d&#039;outils et les zones de liste.&lt;br /&gt;
{{f|vcl|2=&lt;br /&gt;
&lt;br /&gt;
===Aperçu d&#039;une fiche  [[File:FormPreview.png]]===&lt;br /&gt;
&lt;br /&gt;
Une icône d&#039;aperçu en bas à droite du concepteur (pour les fiches VCL) présente le positionnement de votre fiche sur l&#039;écran à l&#039;exécution. Vous pouvez ainsi positionner les fiches de votre application les unes en fonction des autres, au fur et à mesure que vous les concevez. Lorsque vous déplacez la fiche dans la fenêtre d&#039;aperçu, les coordonnées x,y du coin supérieur gauche de la fiche sont affichées. Par exemple, &amp;quot;0,0&amp;quot; représente le coin supérieur gauche de l&#039;écran.&lt;br /&gt;
&lt;br /&gt;
===Concepteur HTML===&lt;br /&gt;
&lt;br /&gt;
Utilisez le &#039;&#039;&#039;concepteur HTML&#039;&#039;&#039; pour visualiser et modifier les fiches Web ou les pages HTML. Ce concepteur comporte un &#039;&#039;&#039;Editeur de balise&#039;&#039;&#039; pour modifier les balises HTML avec la représentation visuelle de la fiche ou de la page. Vous pouvez aussi utiliser &#039;&#039;&#039;l&#039;inspecteur d&#039;objets&#039;&#039;&#039; pour modifier les propriétés des éléments visibles de la page HTML et afficher les propriétés de la balise HTML en cours dans &#039;&#039;&#039;l&#039;éditeur de balise&#039;&#039;&#039;. Une boîte à options située au-dessus de &#039;&#039;&#039;l&#039;éditeur de balise&#039;&#039;&#039; vous permet d&#039;afficher et de modifier les balises SCRIPT.&lt;br /&gt;
&lt;br /&gt;
Pour créer un nouveau fichier HTML, choisissez {{Menu|Fichier &amp;amp;gt; Nouveau &amp;amp;gt; Autre &amp;amp;gt; Web &amp;amp;gt; Page HTML}.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Directives de conception===&lt;br /&gt;
&lt;br /&gt;
Si vous créez un composant pour une fiche, vous pouvez enregistrer un type d&#039;objet, puis indiquer différents points sur ses limites, ou proches d&#039;elles, qui constitueront des points &amp;quot;d&#039;alignement&amp;quot;. Ces points d&#039;alignement sont des traits verticaux ou horizontaux qui traversent les limites d&#039;un contrôle virtuel.&lt;br /&gt;
&lt;br /&gt;
Quand les points d&#039;alignement sont en place, vous pouvez fournir les informations sur les directives de l&#039;UI de façon à ce que chaque composant respecte les prescriptions s&#039;appliquant, par exemple, à la distance entre les contrôles, aux raccourcis, aux libellés prenant la focalisation, à l&#039;ordre de tabulation, au nombre maximal d&#039;éléments (zones de liste, menus), et ainsi de suite. De cette façon, le &#039;&#039;&#039;Concepteur de fiches&#039;&#039;&#039; peut assister le développeur de code dans l&#039;adhésion aux directives établies sur l&#039;UI.&lt;br /&gt;
&lt;br /&gt;
Si l&#039;option &#039;&#039;&#039;Accrocher à la grille&#039;&#039;&#039; est activée (sur {{Menu|Outils &amp;amp;gt; Options &amp;amp;gt; Interface utilisateur &amp;amp;gt; [[Options du Concepteur de fiches|Concepteur de fiches]]}}), ainsi que &#039;&#039;&#039;Utiliser les directives du concepteur&#039;&#039;&#039;, les directives du concepteur sont prioritaires. Cela signifie que si un point de la grille se trouve dans la tolérance du nouvel emplacement et qu&#039;une directive se trouve également dans le voisinage, le contrôle respecte la directive et non la position sur la grille, même si la directive ne coïncide pas avec la position sur la grille. La tolérance d&#039;alignement est déterminée par la taille de la grille. Même si les options &#039;&#039;&#039;Accrocher à la grille&#039;&#039;&#039; et &#039;&#039;&#039;Afficher la grille&#039;&#039;&#039; sont désactivées, le Concepteur détermine la tolérance en fonction de la taille de la grille.&lt;br /&gt;
&lt;br /&gt;
==Palette d&#039;outils==&lt;br /&gt;
&lt;br /&gt;
La &#039;&#039;&#039;[[Palette d&#039;outils|Palette d&#039;outils]]&#039;&#039;&#039;, située sur la colonne de droite, contient des éléments qui vous permettent de développer votre application. Les éléments affichés dépendent de la vue en cours. Par exemple, si vous affichez une fiche sur le concepteur, la &#039;&#039;&#039;palette d&#039;outils&#039;&#039;&#039; affiche les composants appropriés à cette fiche. Double-cliquez sur un contrôle pour l&#039;ajouter à votre fiche. Vous pouvez aussi le faire glisser vers une position désirée de la fiche. Si vous visualisez du code dans &#039;&#039;&#039;l&#039;éditeur de code&#039;&#039;&#039;, la &#039;&#039;&#039;palette d&#039;outils&#039;&#039;&#039; affiche des segments de code que vous pouvez ajouter à votre application.&lt;br /&gt;
&lt;br /&gt;
===Composants personnalisés===&lt;br /&gt;
&lt;br /&gt;
Outre les composants qui sont installés avec {{Variables|Product}}, vous pouvez ajouter des composants personnalisés ou tiers à &#039;&#039;&#039;la palette d&#039;outils&#039;&#039;&#039; et les enregistrer dans leur propre catégorie.&lt;br /&gt;
&lt;br /&gt;
===Templates de composants===&lt;br /&gt;
&lt;br /&gt;
Vous pouvez créer des templates composés d&#039;un ou de plusieurs composants. Après avoir organisé les composants sur une fiche, défini leurs propriétés et écrit du code pour eux, vous pouvez les enregistrer sous la forme d&#039;un template de composant. Par la suite, en sélectionnant le template dans &#039;&#039;&#039;la palette d&#039;outils&#039;&#039;&#039;, vous pouvez placer les composants préconfigurés sur une fiche en une seule étape&amp;amp;nbsp;; toutes les propriétés et tout le code de gestion d&#039;événement associés sont simultanément ajoutés à votre projet. Vous pouvez repositionner les composants indépendamment les uns des autres, réinitialiser leurs propriétés, et&amp;amp;nbsp;créer ou modifier des gestionnaires d&#039;événements comme si vous aviez positionné chaque composant séparément.&lt;br /&gt;
{{f|componenttoolbar|2=&lt;br /&gt;
&lt;br /&gt;
==Barre d&#039;outils des composants==&lt;br /&gt;
&lt;br /&gt;
La &#039;&#039;&#039;[[Barre d&#039;outils des composants|Barre d&#039;outils des composants]]&#039;&#039;&#039; contient toutes les catégories et tous les composants qui apparaissent sur la &#039;&#039;&#039;palette d&#039;outils&#039;&#039;&#039; régulière (Standard, Accès aux données, et ainsi de suite). Toutefois, la &#039;&#039;&#039;barre d&#039;outils des composants&#039;&#039;&#039; affiche les catégories de composants sous la forme d&#039;un ensemble d&#039;onglets situé sur la barre d&#039;outils au sommet de la fenêtre de l&#039;EDI, similaire à {{Delphi|7}} {{Version|7}} et {{CBuilder|6}} {{Version|6}}. Cliquez sur un onglet de la barre d&#039;outils des composants pour afficher les icônes des composants de cette catégorie. Cliquez ensuite sur une icône pour sélectionner un composant.&lt;br /&gt;
&lt;br /&gt;
Quand la &#039;&#039;&#039;barre d&#039;outils des composants&#039;&#039;&#039; est activée, la &#039;&#039;&#039;palette d&#039;outils&#039;&#039;&#039; est aussi disponible, et vous pouvez utiliser la &#039;&#039;&#039;barre d&#039;outils des composants&#039;&#039;&#039; ou la &#039;&#039;&#039;palette d&#039;outils&#039;&#039;&#039; pour ajouter des composants à votre application. Voir [[Activation de la barre d&#039;outils des composants|Activation de la barre d&#039;outils des composants]].&lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations sur les différentes barres d&#039;outils disponibles dans l&#039;EDI, voir &#039;&#039;&#039;[[Barres d&#039;outils|Barres d&#039;outils]]&#039;&#039;&#039;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Inspecteur d&#039;objets==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
[[Inspecteur d&#039;objets|L&#039;inspecteur d&#039;objets]]&#039;&#039;&#039;, situé sur la gauche, vous permet de définir les propriétés de conception et de créer des gestionnaires d&#039;événements pour vos composants. Il fournit la connexion entre l&#039;apparence visuelle de votre application et le code qui lui permet de fonctionner. &#039;&#039;&#039;L&#039;inspecteur d&#039;objets&#039;&#039;&#039; contient deux onglets&amp;amp;nbsp;: &#039;&#039;&#039;Propriétés&#039;&#039;&#039; et &#039;&#039;&#039;Evénements&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Utilisez l&#039;onglet &#039;&#039;&#039;Propriétés&#039;&#039;&#039; pour modifier les attributs physiques des composants. Selon votre sélection, certaines catégories d&#039;options vous permettent d&#039;entrer une valeur dans une zone de texte, alors que d&#039;autres attendent que vous sélectionniez une valeur dans une liste déroulante. Pour les opérations booléennes, vous passez de True à False, et vice-versa. Après avoir modifié les attributs physiques de vos composants, vous créez des gestionnaires d&#039;événements qui gèrent les composants.&lt;br /&gt;
&lt;br /&gt;
Utilisez l&#039;onglet &#039;&#039;&#039;Evénements&#039;&#039;&#039; pour spécifier les événements d&#039;un objet spécifique que vous sélectionnez. S&#039;il existe un gestionnaire d&#039;événement, utilisez la liste déroulante pour le sélectionner. Par défaut, certaines options de &#039;&#039;&#039;l&#039;inspecteur d&#039;objets&#039;&#039;&#039; sont repliées. Pour développer les options, cliquez sur le signe plus (+) en regard de la catégorie.&lt;br /&gt;
&lt;br /&gt;
Certains composants non visuels, comme les fournisseurs de données Borland offrent un accès rapide à des éditeurs comme &#039;&#039;&#039;l&#039;éditeur de connexion&#039;&#039;&#039; et &#039;&#039;&#039;l&#039;éditeur de texte de commande&#039;&#039;&#039;. Vous pouvez accéder à ces éditeurs dans la zone &#039;&#039;&#039;Verbe du concepteur&#039;&#039;&#039; en bas de &#039;&#039;&#039;l&#039;inspecteur d&#039;objets&#039;&#039;&#039;. Pour ouvrir les éditeurs, placez votre curseur sur le nom de l&#039;éditeur jusqu&#039;à ce que le curseur prenne la forme d&#039;une main et l&#039;éditeur se change en un lien. Vous pouvez aussi cliquer avec le bouton droit sur le composant non visuel et défiler jusqu&#039;à l&#039;éditeur associé et le sélectionner. Sachez que les composants non visuels n&#039;ont pas tous d&#039;éditeur associé. En plus des éditeurs, cette zone peut aussi afficher des hyperliens pour montrer des éditeurs de composants personnalisés, lancer une page web et afficher des boîtes de dialogue.&lt;br /&gt;
&lt;br /&gt;
==Référentiel d&#039;objets==&lt;br /&gt;
&lt;br /&gt;
Pour simplifier le développement, {{Variables|Product}} propose des templates prédéfinis, des fiches et d&#039;autres éléments auxquels vous avez accès et que vous pouvez utiliser dans vos applications.&lt;br /&gt;
&lt;br /&gt;
===Contenu du référentiel d&#039;objets===&lt;br /&gt;
&lt;br /&gt;
Le &#039;&#039;&#039;[[Référentiel d&#039;objets|Référentiel d&#039;objets]]&#039;&#039;&#039; contient des éléments qui correspondent aux types d&#039;applications que vous pouvez développer. Il contient des templates, des fiches et bien d&#039;autres éléments. Vous pouvez créer des projets tels qu&#039;une bibliothèque de classes, une bibliothèque de contrôles, des applications console et autres en accédant aux templates disponibles.&lt;br /&gt;
&lt;br /&gt;
Pour ouvrir le &#039;&#039;&#039;référentiel d&#039;objets&#039;&#039;&#039;, choisissez &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Fichier &amp;amp;gt; Nouveau &amp;amp;gt; Autre&#039;&#039;&#039;&amp;lt;/font&amp;gt;. La boîte de dialogue &#039;&#039;&#039;Nouveaux éléments&#039;&#039;&#039; affiche le contenu du &#039;&#039;&#039;référentiel d’objets&#039;&#039;&#039;. Vous pouvez aussi modifier ou retirer des objets existants du &#039;&#039;&#039;référentiel d&#039;objets&#039;&#039;&#039; en cliquant avec le bouton droit dans le &#039;&#039;&#039;référentiel d&#039;objets&#039;&#039;&#039; afin d&#039;afficher les options d&#039;édition.&lt;br /&gt;
&lt;br /&gt;
===Templates du référentiel d&#039;objets===&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ajouter vos propres objets au &#039;&#039;&#039;référentiel d&#039;objets&#039;&#039;&#039; en tant que templates que vous réutilisez ou partagez avec d&#039;autres développeurs. La réutilisation d&#039;objets vous permet de concevoir des familles d&#039;applications ayant une interface utilisateur et des fonctionnalités communes, afin de réduire les temps de développement et d&#039;améliorer la qualité.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez ajouter dans le &#039;&#039;&#039;référentiel d&#039;objets&#039;&#039;&#039; un projet de démarrage, une démo, un template ou tout autre fichier utile et le rendre accessible depuis le menu Nouveau. Choisissez &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Projet  &amp;amp;gt; Ajouter au référentiel&#039;&#039;&#039;&amp;lt;/font&amp;gt;. Sélectionnez votre fichier. Ensuite, lorsque vous sélectionnez la commande &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Fichier &amp;amp;gt; Nouveau&#039;&#039;&#039;&amp;lt;/font&amp;gt;, vous pouvez choisir le fichier que vous venez d&#039;ajouter et en utiliser un nouvel exemplaire.&lt;br /&gt;
&lt;br /&gt;
{{Variables|Product}} vous permet de créer plusieurs bibliothèques de templates personnalisées servant de base à la création de futurs projets. Les bibliothèques de templates vous permettent de définir l&#039;apparence des projets et d&#039;ajouter de nouveaux types de projets dans le &#039;&#039;&#039;référentiel d&#039;objets&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Gestionnaire de projets==&lt;br /&gt;
&lt;br /&gt;
Un &#039;&#039;&#039;projet&#039;&#039;&#039; est constitué de plusieurs fichiers d&#039;application. La &#039;&#039;&#039;[[Fenêtre Projets|Fenêtre Projets]]&#039;&#039;&#039;, située dans la colonne supérieure droite, permet de visualiser et d&#039;organiser les fichiers de votre projet, comme les fiches, les exécutables, les assemblages, les objets et les fichiers bibliothèque. Dans le &#039;&#039;&#039;Gestionnaire de projets&#039;&#039;&#039;, vous pouvez ajouter, retirer et renommer des fichiers en utilisant la barre d&#039;outils ou le menu contextuel. Vous pouvez même appeler la boîte de dialogue Options de projet depuis le menu contextuel du &#039;&#039;&#039;Gestionnaire de projets&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Groupes de projets===&lt;br /&gt;
&lt;br /&gt;
Vous pouvez combiner des projets associés pour former un &#039;&#039;&#039;groupe de projets&#039;&#039;&#039;. Pour ce faire, cliquez avec le bouton droit sur le noeud groupe de projets par défaut ([[File:Project Group.png]]) dans le &#039;&#039;&#039;Gestionnaire de projets&#039;&#039;&#039; et sélectionnez &#039;&#039;&#039;[[Ajouter un nouveau projet|Ajouter un nouveau projet]]&#039;&#039;&#039; ou &#039;&#039;&#039;Ajouter un projet existant&#039;&#039;&#039;. La liaison de plusieurs projets en un groupe de projets vous permet de compiler le groupe de projets entier en une seule fois. Mais vous pouvez aussi compiler tout projet unique en cliquant avec le bouton droit sur un noeud de projet et en sélectionnant une des commandes de compilation ou de construction sur le menu contextuel. &lt;br /&gt;
&lt;br /&gt;
Après la création délibérée d&#039;un groupe de projets, vous êtes invité à enregistrer le fichier &amp;lt;code&amp;gt;.groupproj&amp;lt;/code&amp;gt; quand vous quittez l&#039;EDI ou entrez une commande d&#039;enregistrement pour un des projets inclus. Vous pouvez aussi enregistrer explicitement un groupe de projets en utilisant les commandes du menu contextuel.&lt;br /&gt;
&lt;br /&gt;
==Explorateur de données==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
[[Explorateur de données|L&#039;explorateur de données]]&#039;&#039;&#039; permet de parcourir des objets de schéma spécifiques au serveur de base de données, notamment les tables, les champs, les définitions de procédures stockées, les déclencheurs et les index. Les menus contextuels vous permettent de créer et de gérer les connexions aux bases de données. Vous pouvez aussi faire glisser et déposer des données depuis une source de données vers la plupart des fiches pour construire rapidement votre application de base de données.&lt;br /&gt;
&lt;br /&gt;
==Vue Structure==&lt;br /&gt;
&lt;br /&gt;
La &#039;&#039;&#039;[[Vue Structure|Vue Structure]]&#039;&#039;&#039; présente la hiérarchie du code source ou le langage HTML affiché dans &#039;&#039;&#039;l&#039;éditeur de code&#039;&#039;&#039;, ou les composants affichés sur le concepteur. Si la vue affiche la structure du code source ou le langage HTML, vous pouvez double-cliquer sur un élément pour accéder à sa déclaration ou à son emplacement dans &#039;&#039;&#039;l&#039;éditeur de code&#039;&#039;&#039;. Si la vue affiche des composants, vous pouvez double-cliquer sur un composant pour le sélectionner sur la fiche.&lt;br /&gt;
&lt;br /&gt;
Si votre code contient des erreurs de syntaxe, elles s&#039;affichent dans le dossier &#039;&#039;&#039;Erreurs&#039;&#039;&#039; de la vue &#039;&#039;&#039;Structure&#039;&#039;&#039;. Double-cliquez sur une erreur pour localiser sa source dans &#039;&#039;&#039;l&#039;éditeur de code&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez contrôler le contenu et l&#039;aspect de la &#039;&#039;&#039;vue Structure&#039;&#039;&#039; en choisissant {{Menu| Outils &amp;amp;gt; Options &amp;amp;gt; Interface utilisateur &amp;amp;gt; [[Structure|Structure]]}}, puis en modifiant les paramètres.&lt;br /&gt;
&lt;br /&gt;
==[[Smart CodeInsight|Fenêtre de chat IA]]==&lt;br /&gt;
&lt;br /&gt;
La fenêtre de chat IA est une fiche ancrable de l&#039;EDI, qui fonctionne comme n&#039;importe quelle fenêtre de chat LLM. Vous pouvez taper une requête, choisir un moteur et attendre la réponse.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir utiliser cette fonctionnalité, vous devez toutefois l&#039;activer dans l&#039;option [[Smart CodeInsight Options|Audit de code intelligent]]. &lt;br /&gt;
&lt;br /&gt;
==Gestionnaire de l&#039;historique==&lt;br /&gt;
&lt;br /&gt;
Le &#039;&#039;&#039;[[Gestionnaire de l&#039;historique|Gestionnaire de l&#039;historique]]&#039;&#039;&#039;, situé dans le volet central, vous permet de voir et de comparer les versions d&#039;un fichier, y compris les diverses versions sauvegardées, les modifications enregistrées localement et le tampon mémoire des modifications non enregistrées d&#039;un fichier actif. Si le fichier en cours est sous contrôle de version, tous les types des révisions sont disponibles dans le &#039;&#039;&#039;gestionnaire de l&#039;historique&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
[[Intégration de Subversion dans l&#039;EDI|L&#039;intégration de Subversion dans l&#039;EDI]]&#039;&#039;&#039; est implémentée sur le &#039;&#039;&#039;gestionnaire de l&#039;historique&#039;&#039;&#039;, qui affiche les informations Subversion chaque fois qu&#039;elles sont disponibles dans le système de fichiers.&lt;br /&gt;
&lt;br /&gt;
Le &#039;&#039;&#039;gestionnaire de l&#039;historique&#039;&#039;&#039; se trouve à droite de l&#039;onglet &#039;&#039;&#039;Code&#039;&#039;&#039; et contient les pages à onglets suivantes :&lt;br /&gt;
&lt;br /&gt;
*La page &#039;&#039;&#039;Contenu&#039;&#039;&#039; affiche les versions actuelle et précédente du fichier.&lt;br /&gt;
*La page &#039;&#039;&#039;Diff&#039;&#039;&#039; affiche les différences entre les versions sélectionnées du fichier.&lt;br /&gt;
*La page &#039;&#039;&#039;Info&#039;&#039;&#039; affiche tous les libellés et commentaires associés au fichier actif.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez utiliser la barre d&#039;outils du &#039;&#039;&#039;gestionnaire de l&#039;historique&#039;&#039;&#039; pour actualiser les informations de révision, rétablir une version sélectionnée à la version la plus actuelle et synchroniser le défilement entre les visualiseurs source de la page &#039;&#039;&#039;Contenu&#039;&#039;&#039; ou &#039;&#039;&#039;Diff&#039;&#039;&#039;, et &#039;&#039;&#039;l&#039;éditeur de code&#039;&#039;&#039;, et pour la navigation de fenêtre (comme Aller à la différence suivante).&lt;br /&gt;
&lt;br /&gt;
==Editeur de code==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
[[Editeur de code|L&#039;éditeur de code]]&#039;&#039;&#039;, situé dans le volet central, propose un moyen pratique de visualiser et de modifier le code source. C&#039;est un éditeur UTF8 complet et personnalisable qui comprend entre autres les sauvegardes automatiques, l&#039;audit de code, la mise en surbrillance syntaxique, de multiples capacités d&#039;annulation, l&#039;aide contextuelle, les templates dynamiques, la saisie semi-automatique de blocs (achèvement de bloc), la recherche de classe, la recherche d&#039;unités et l&#039;importation d&#039;un espace de nommage.&lt;br /&gt;
&lt;br /&gt;
==Débogueur==&lt;br /&gt;
&lt;br /&gt;
Les débogueurs intégrés vous permettent de trouver et de corriger les erreurs d&#039;exécution et de logique dans votre application {{Variables|Product}}. En utilisant les débogueurs, vous pouvez parcourir le code pas à pas, définir des points d&#039;arrêt et de suivi et inspecter ou modifier les valeurs du programme. Quand vous déboguez votre application, les [[Fenêtres de débogage - Index|fenêtres de débogage]] sont disponibles pour vous aider à gérer la session de débogage et vous donnent des informations sur l&#039;état de votre application.&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Aperçu et page d&#039;accueil|Aperçu et page d&#039;accueil]]&lt;br /&gt;
*[[Référence EDI et utilitaires|Référence EDI et utilitaires]]&lt;br /&gt;
*[[Démarrage d&#039;un projet - Présentation|Démarrage d&#039;un projet - Présentation]]&lt;br /&gt;
*[[Enregistrement des dispositions du bureau|Enregistrement des dispositions du bureau]]&lt;br /&gt;
*[[Concepteur de fiches|Concepteur de fiches]]&lt;br /&gt;
*[[Ajout de composants à une fiche|Ajout de composants à une fiche]]&lt;br /&gt;
*[[Définition des propriétés et des événements|Définition des propriétés et des événements]]&lt;br /&gt;
*[[Editeur de code|Editeur de code]]&lt;br /&gt;
*[[Personnalisation de l&#039;éditeur de code|Personnalisation de l&#039;éditeur de code]]&lt;br /&gt;
*[[Fractionnement de l&#039;éditeur|Fractionnement de l&#039;éditeur]]&lt;br /&gt;
*[[Débogage des applications - Index|Débogage des applications]]&lt;br /&gt;
*[[Utilisation du Gestionnaire de l&#039;historique|Utilisation du Gestionnaire de l&#039;historique]]&lt;br /&gt;
*[[Rubriques de l&#039;explorateur de classes Delphi|Rubriques de l&#039;explorateur de classes Delphi]]&lt;br /&gt;
*[[Rubriques de l&#039;explorateur de classes C++|Rubriques de l&#039;explorateur de classes C++]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Prise en main]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Fractionnement_de_l%27%C3%A9diteur&amp;diff=218892</id>
		<title>Fractionnement de l&#039;éditeur</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Fractionnement_de_l%27%C3%A9diteur&amp;diff=218892"/>
		<updated>2026-05-09T03:34:40Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : 1 révision importée : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;La vue [[Fractionnement de l&#039;éditeur|Fractionnement de l&#039;éditeur]] permet d’utiliser plusieurs éditeurs côte à côte, les uns au-dessus des autres, ou de façon combinée, le tout dans une même fenêtre. Cela inclut la possibilité de faire glisser des ensembles d&#039;onglets vers des fenêtres flottantes, puis de les replacer dans l&#039;EDI. &lt;br /&gt;
Elle permet aussi d&#039;avoir plusieurs dispositions personnalisées et offre diverses possibilités de manipulation : disposition simple en deux colonnes, disposition sur plusieurs lignes, ou une configuration particulièrement adaptée à votre flux de travail.&lt;br /&gt;
Vous pouvez travailler en ayant plusieurs onglets ouverts, et ouvrir la même unité dans chacun de ces onglets. Vous pouvez aussi avoir plusieurs onglets ouverts : l&#039;un avec le concepteur de fiche et plusieurs autres avec le code de l&#039;unité correspondante. L&#039;onglet contenant le concepteur de fiche peut aussi être déplacé. &lt;br /&gt;
Il n&#039;y a &#039;&#039;&#039;aucune limite&#039;&#039;&#039; quant au nombre de vues fractionnées, que ce soit horizontalement ou verticalement.&lt;br /&gt;
&lt;br /&gt;
===Utilisation du fractionnement de l&#039;éditeur===&lt;br /&gt;
&lt;br /&gt;
Vous pouvez accéder à la vue Fractionnement de l&#039;éditeur en cliquant avec le bouton droit sur un onglet et en choisissant &#039;&#039;&#039;Fractionner    &amp;amp;gt;&#039;&#039;&#039; ou &#039;&#039;&#039;Déplacer &amp;amp;gt;&#039;&#039;&#039;. Le fractionnement crée une nouvelle version de l&#039;onglet sélectionné, et le déplacement provoque son ouverture à l&#039;endroit sélectionné dans l&#039;EDI.&lt;br /&gt;
&lt;br /&gt;
[[File:Using-spliteditor.png|=link|400px|border]]&lt;br /&gt;
&lt;br /&gt;
Les raccourcis suivants peuvent être utilisés pour les deux options :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Fractionner en haut :&#039;&#039;&#039; Alt+Maj+T&lt;br /&gt;
* &#039;&#039;&#039;Fractionner en bas :&#039;&#039;&#039; Alt+Maj+B&lt;br /&gt;
* &#039;&#039;&#039;Fractionner à droite :&#039;&#039;&#039; Alt+Maj+R&lt;br /&gt;
* &#039;&#039;&#039;Fractionner à gauche :&#039;&#039;&#039; Alt+Maj+L&lt;br /&gt;
* &#039;&#039;&#039;Déplacer en haut :&#039;&#039;&#039; Ctrl+Alt+Maj+T&lt;br /&gt;
* &#039;&#039;&#039;Déplacer à gauche :&#039;&#039;&#039; Ctrl+Alt+Maj+L&lt;br /&gt;
* &#039;&#039;&#039;Déplacer à droite :&#039;&#039;&#039; Ctrl+Alt+Maj+R&lt;br /&gt;
* &#039;&#039;&#039;Déplacer en bas :&#039;&#039;&#039; Ctrl+Alt+Maj+B&lt;br /&gt;
&lt;br /&gt;
Alternativement, vous pouvez utiliser [[Fractionnement de l&#039;éditeur|Fractionnement de l&#039;éditeur]] en faisant glisser un fichier de la vue Projets dans un onglet de l&#039;éditeur. Vous pouvez aussi effectuer un clic droit sur le fichier du projet, puis sélectionner l&#039;option &#039;&#039;&#039;Ouvrir dans&#039;&#039;&#039; et choisir l&#039;onglet de l&#039;éditeur dans lequel vous souhaitez ouvrir le fichier.&lt;br /&gt;
&lt;br /&gt;
Lorsque deux onglets sont dans une fenêtre, chacun a une barre de titre. &lt;br /&gt;
&lt;br /&gt;
Le fractionnement de l&#039;éditeur vous permet de :&lt;br /&gt;
&lt;br /&gt;
*Faire glisser un onglet de l&#039;éditeur, ou un ensemble d&#039;onglets, en faisant glisser la barre de titre et en l&#039;ancrant sur n&#039;importe quel côté de la fenêtre de l&#039;EDI.&lt;br /&gt;
*Le faire glisser et l&#039;ancrer sur n&#039;importe côté de l&#039;éditeur (gauche, droit, haut, bas).&lt;br /&gt;
*Le fusionner avec un ensemble d&#039;onglets en le faisant glisser au centre d&#039;un éditeur existant, y compris une fenêtre flottante d&#039;onglets.&lt;br /&gt;
*Le faire glisser en dehors de sa propre fenêtre (soit un seul onglet ou un ensemble d&#039;onglets).&lt;br /&gt;
&lt;br /&gt;
La plupart des opérations peuvent être réalisées sur des onglets individuels. Il peut s&#039;agir par exemple de déplacer un onglet entre des ensembles d&#039;onglets ancrés en faisant glisser l&#039;onglet individuel d&#039;un emplacement à un autre.&lt;br /&gt;
&lt;br /&gt;
Chaque ensemble d&#039;onglets peut être déplacé à l&#039;extérieur de sa propre fenêtre. Faites glisser la barre de titre pour le déplacer.&lt;br /&gt;
 {{Tip| Vous pouvez appuyer sur Ctrl tout en faisant glisser l&#039;ensemble d&#039;onglets pour vous assurer qu&#039;il ne s&#039;ancre pas.}}&lt;br /&gt;
&lt;br /&gt;
De la même façon, chaque fenêtre peut être ancrée à côté d&#039;un autre ensemble d&#039;onglets. Pour cela, vous devez faire glisser la barre de titre.&lt;br /&gt;
&lt;br /&gt;
{{Note|La plupart des éditeurs/groupes disparaissent de la vue lorsqu&#039;ils sont fermés. Toutefois, la fermeture du premier éditeur (celui qui était auparavant l&#039;éditeur de la fenêtre principale) avec le bouton ‘X’ provoque la fermeture de tous les onglets qu&#039;il contient. L&#039;espace qu&#039;il occupait reste ouvert, car l&#039;éditeur original ne peut pas être fermé. Cela n&#039;a aucune incidence tant que les groupes d&#039;onglets ne sont pas fermés. Il n&#039;y a aucun impact visible lorsque vous créez, déplacez ou ancrez les onglets dans vos tâches.}}&lt;br /&gt;
&lt;br /&gt;
[[File:Split_Editor_Example.png|800px|&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;C&#039;est l&#039;une des nombreuses façons de configurer la vue Fractionnement de l&#039;éditeur. Elle comporte une fenêtre d&#039;édition sur la gauche, deux à droite, et les volets sont masqués mais apparaissent s&#039;ils peuvent s&#039;afficher lorsqu&#039;ils sont survolés par la souris.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Concepteur et code===&lt;br /&gt;
&lt;br /&gt;
Les vues Fractionnement de l&#039;éditeur permettent de modifier un même fichier dans deux fenêtres d&#039;édition affichées côte à côte, chacune affichant le même contenu de fichier. Lorsque vous tapez dans l&#039;une et que vous faites défiler le texte jusqu&#039;à un emplacement, le texte apparaît dans l&#039;autre fenêtre. Vous pouvez faire défiler les deux fenêtres indépendamment l&#039;une de l&#039;autre, ce qui permet de modifier le fichier à plusieurs endroits. &lt;br /&gt;
Vous pouvez ainsi ouvrir un même fichier dans autant d&#039;onglets que vous le souhaitez.&lt;br /&gt;
{{Note|Gardez toujours à l&#039;esprit qu&#039;il n&#039;y a qu&#039;un seul fichier (module ou tampon de fichier en termes internes) affiché dans plusieurs vues. Ainsi, toute modification effectuée dans l&#039;une de ces vues sera répercutée dans les autres vues (il ne s&#039;agit pas de copier ou de dupliquer une modification). &amp;amp;lt;/br&amp;amp;gt;&lt;br /&gt;
Autrement dit, toute modification de fichier depuis une fenêtre d&#039;édition concerne le fichier lui-même et pas la fenêtre. Cette modification sera répercutée dans les autres vues. }}&lt;br /&gt;
&lt;br /&gt;
===Conseils et astuces===&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
 &#039;&#039;&#039;Enregistrez&#039;&#039;&#039; la configuration des éditeurs en tant que disposition du bureau. Sinon, vous risquez de passer beaucoup de temps à définir une présentation qui ne sera pas sauvegardée.&lt;br /&gt;
&lt;br /&gt;
{{Notes|&lt;br /&gt;
&lt;br /&gt;
*Lorsque la disposition de bureau est modifiée, la configuration change également (par ex. lorsque l&#039;EDI commence le débogage et passe en &#039;&#039;&#039;Disposition de débogage&#039;&#039;&#039;.&lt;br /&gt;
*Lorsque vous changez de disposition, tout groupe d&#039;onglets qui ne trouve pas sa place dans la disposition est détaché et devient une fenêtre flottante.}}&lt;br /&gt;
*Activez &#039;&#039;&#039;Options&#039;&#039;&#039; &amp;amp;gt; &#039;&#039;&#039;Enregistrement et récupération&#039;&#039;&#039; &amp;amp;gt; &#039;&#039;&#039;Enregistrer le bureau du projet lors de la fermeture&#039;&#039;&#039; et &#039;&#039;&#039;Enregistrer l&#039;état de l&#039;éditeur à la fermeture d&#039;un onglet&#039;&#039;&#039;.&lt;br /&gt;
*Lorsque vous enregistrez l&#039;état de l&#039;éditeur, vous enregistrez également la position de défilement, les zones réduites ou développées, etc. C&#039;est très pratique lorsque plusieurs fenêtres d&#039;édition du même fichier sont ouvertes. Ainsi, lorsque vous rouvrez votre bureau et rouvrez le projet (ou tout simplement, lorsque vous rouvrez un éditeur précédemment fermé), la nouvelle fenêtre d&#039;édition s&#039;affiche telle qu&#039;elle était au moment de la fermeture.&lt;br /&gt;
*Pensez à désancrer les volets ancrables d&#039;ancienne génération. Ils sont réduits sous forme de petit onglet sur un côté de la fenêtre principale. Vous pouvez les rendre visibles à nouveau en cliquant dessus, et ils restent affichés tant qu’ils ont la focalisation. Pour cela, vous devez cliquer sur le bouton d&#039;épinglage dans la barre de titre du volet, à côté du bouton X. Cette fonctionnalité existe depuis de nombreuses années, mais elle n’était vraiment utile que lorsque l’espace à l&#039;écran était limité. Maintenant que plusieurs fenêtres d&#039;édition peuvent être fractionnées et ancrées ensemble, il devient très pratique de pouvoir désépingler les volets latéraux pour libérer de l’espace horizontal. &lt;br /&gt;
*Pensez à faire un clic droit sur un onglet &#039;&#039;&#039;&amp;amp;gt; Fractionner &amp;amp;gt; A droite&#039;&#039;&#039; (ou &#039;&#039;&#039;A gauche&#039;&#039;&#039;). L&#039;utilisation de plusieurs colonnes est certainement la configuration la plus courante pour les vues fractionnées. Plus vous utiliserez cette fonctionnalité, plus vous constaterez son utilité.&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
[[Présentation de l&#039;EDI|Présentation de l&#039;EDI]]&lt;br /&gt;
*&lt;br /&gt;
[[Aperçu et page d&#039;accueil|Aperçu et page d&#039;accueil]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Fractionnement_de_l%27%C3%A9diteur&amp;diff=218891</id>
		<title>Fractionnement de l&#039;éditeur</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Fractionnement_de_l%27%C3%A9diteur&amp;diff=218891"/>
		<updated>2026-05-09T03:34:37Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;La vue [[Fractionnement de l&#039;éditeur|Fractionnement de l&#039;éditeur]] permet d’utiliser plusieurs éditeurs côte à côte, les uns au-dessus des autres, ou de façon combinée, le tout dans une même fenêtre. Cela inclut la possibilité de faire glisser des ensembles d&#039;onglets vers des fenêtres flottantes, puis de les replacer dans l&#039;EDI. &lt;br /&gt;
Elle permet aussi d&#039;avoir plusieurs dispositions personnalisées et offre diverses possibilités de manipulation : disposition simple en deux colonnes, disposition sur plusieurs lignes, ou une configuration particulièrement adaptée à votre flux de travail.&lt;br /&gt;
Vous pouvez travailler en ayant plusieurs onglets ouverts, et ouvrir la même unité dans chacun de ces onglets. Vous pouvez aussi avoir plusieurs onglets ouverts : l&#039;un avec le concepteur de fiche et plusieurs autres avec le code de l&#039;unité correspondante. L&#039;onglet contenant le concepteur de fiche peut aussi être déplacé. &lt;br /&gt;
Il n&#039;y a &#039;&#039;&#039;aucune limite&#039;&#039;&#039; quant au nombre de vues fractionnées, que ce soit horizontalement ou verticalement.&lt;br /&gt;
&lt;br /&gt;
===Utilisation du fractionnement de l&#039;éditeur===&lt;br /&gt;
&lt;br /&gt;
Vous pouvez accéder à la vue Fractionnement de l&#039;éditeur en cliquant avec le bouton droit sur un onglet et en choisissant &#039;&#039;&#039;Fractionner    &amp;amp;gt;&#039;&#039;&#039; ou &#039;&#039;&#039;Déplacer &amp;amp;gt;&#039;&#039;&#039;. Le fractionnement crée une nouvelle version de l&#039;onglet sélectionné, et le déplacement provoque son ouverture à l&#039;endroit sélectionné dans l&#039;EDI.&lt;br /&gt;
&lt;br /&gt;
[[File:Using-spliteditor.png|=link|400px|border]]&lt;br /&gt;
&lt;br /&gt;
Les raccourcis suivants peuvent être utilisés pour les deux options :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Fractionner en haut :&#039;&#039;&#039; Alt+Maj+T&lt;br /&gt;
* &#039;&#039;&#039;Fractionner en bas :&#039;&#039;&#039; Alt+Maj+B&lt;br /&gt;
* &#039;&#039;&#039;Fractionner à droite :&#039;&#039;&#039; Alt+Maj+R&lt;br /&gt;
* &#039;&#039;&#039;Fractionner à gauche :&#039;&#039;&#039; Alt+Maj+L&lt;br /&gt;
* &#039;&#039;&#039;Déplacer en haut :&#039;&#039;&#039; Ctrl+Alt+Maj+T&lt;br /&gt;
* &#039;&#039;&#039;Déplacer à gauche :&#039;&#039;&#039; Ctrl+Alt+Maj+L&lt;br /&gt;
* &#039;&#039;&#039;Déplacer à droite :&#039;&#039;&#039; Ctrl+Alt+Maj+R&lt;br /&gt;
* &#039;&#039;&#039;Déplacer en bas :&#039;&#039;&#039; Ctrl+Alt+Maj+B&lt;br /&gt;
&lt;br /&gt;
Alternativement, vous pouvez utiliser [[Fractionnement de l&#039;éditeur|Fractionnement de l&#039;éditeur]] en faisant glisser un fichier de la vue Projets dans un onglet de l&#039;éditeur. Vous pouvez aussi effectuer un clic droit sur le fichier du projet, puis sélectionner l&#039;option &#039;&#039;&#039;Ouvrir dans&#039;&#039;&#039; et choisir l&#039;onglet de l&#039;éditeur dans lequel vous souhaitez ouvrir le fichier.&lt;br /&gt;
&lt;br /&gt;
Lorsque deux onglets sont dans une fenêtre, chacun a une barre de titre. &lt;br /&gt;
&lt;br /&gt;
Le fractionnement de l&#039;éditeur vous permet de :&lt;br /&gt;
&lt;br /&gt;
*Faire glisser un onglet de l&#039;éditeur, ou un ensemble d&#039;onglets, en faisant glisser la barre de titre et en l&#039;ancrant sur n&#039;importe quel côté de la fenêtre de l&#039;EDI.&lt;br /&gt;
*Le faire glisser et l&#039;ancrer sur n&#039;importe côté de l&#039;éditeur (gauche, droit, haut, bas).&lt;br /&gt;
*Le fusionner avec un ensemble d&#039;onglets en le faisant glisser au centre d&#039;un éditeur existant, y compris une fenêtre flottante d&#039;onglets.&lt;br /&gt;
*Le faire glisser en dehors de sa propre fenêtre (soit un seul onglet ou un ensemble d&#039;onglets).&lt;br /&gt;
&lt;br /&gt;
La plupart des opérations peuvent être réalisées sur des onglets individuels. Il peut s&#039;agir par exemple de déplacer un onglet entre des ensembles d&#039;onglets ancrés en faisant glisser l&#039;onglet individuel d&#039;un emplacement à un autre.&lt;br /&gt;
&lt;br /&gt;
Chaque ensemble d&#039;onglets peut être déplacé à l&#039;extérieur de sa propre fenêtre. Faites glisser la barre de titre pour le déplacer.&lt;br /&gt;
 {{Tip| Vous pouvez appuyer sur Ctrl tout en faisant glisser l&#039;ensemble d&#039;onglets pour vous assurer qu&#039;il ne s&#039;ancre pas.}}&lt;br /&gt;
&lt;br /&gt;
De la même façon, chaque fenêtre peut être ancrée à côté d&#039;un autre ensemble d&#039;onglets. Pour cela, vous devez faire glisser la barre de titre.&lt;br /&gt;
&lt;br /&gt;
{{Note|La plupart des éditeurs/groupes disparaissent de la vue lorsqu&#039;ils sont fermés. Toutefois, la fermeture du premier éditeur (celui qui était auparavant l&#039;éditeur de la fenêtre principale) avec le bouton ‘X’ provoque la fermeture de tous les onglets qu&#039;il contient. L&#039;espace qu&#039;il occupait reste ouvert, car l&#039;éditeur original ne peut pas être fermé. Cela n&#039;a aucune incidence tant que les groupes d&#039;onglets ne sont pas fermés. Il n&#039;y a aucun impact visible lorsque vous créez, déplacez ou ancrez les onglets dans vos tâches.}}&lt;br /&gt;
&lt;br /&gt;
[[File:Split_Editor_Example.png|800px|&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;C&#039;est l&#039;une des nombreuses façons de configurer la vue Fractionnement de l&#039;éditeur. Elle comporte une fenêtre d&#039;édition sur la gauche, deux à droite, et les volets sont masqués mais apparaissent s&#039;ils peuvent s&#039;afficher lorsqu&#039;ils sont survolés par la souris.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Concepteur et code===&lt;br /&gt;
&lt;br /&gt;
Les vues Fractionnement de l&#039;éditeur permettent de modifier un même fichier dans deux fenêtres d&#039;édition affichées côte à côte, chacune affichant le même contenu de fichier. Lorsque vous tapez dans l&#039;une et que vous faites défiler le texte jusqu&#039;à un emplacement, le texte apparaît dans l&#039;autre fenêtre. Vous pouvez faire défiler les deux fenêtres indépendamment l&#039;une de l&#039;autre, ce qui permet de modifier le fichier à plusieurs endroits. &lt;br /&gt;
Vous pouvez ainsi ouvrir un même fichier dans autant d&#039;onglets que vous le souhaitez.&lt;br /&gt;
{{Note|Gardez toujours à l&#039;esprit qu&#039;il n&#039;y a qu&#039;un seul fichier (module ou tampon de fichier en termes internes) affiché dans plusieurs vues. Ainsi, toute modification effectuée dans l&#039;une de ces vues sera répercutée dans les autres vues (il ne s&#039;agit pas de copier ou de dupliquer une modification). &amp;amp;lt;/br&amp;amp;gt;&lt;br /&gt;
Autrement dit, toute modification de fichier depuis une fenêtre d&#039;édition concerne le fichier lui-même et pas la fenêtre. Cette modification sera répercutée dans les autres vues. }}&lt;br /&gt;
&lt;br /&gt;
===Conseils et astuces===&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
 &#039;&#039;&#039;Enregistrez&#039;&#039;&#039; la configuration des éditeurs en tant que disposition du bureau. Sinon, vous risquez de passer beaucoup de temps à définir une présentation qui ne sera pas sauvegardée.&lt;br /&gt;
&lt;br /&gt;
{{Notes|&lt;br /&gt;
&lt;br /&gt;
*Lorsque la disposition de bureau est modifiée, la configuration change également (par ex. lorsque l&#039;EDI commence le débogage et passe en &#039;&#039;&#039;Disposition de débogage&#039;&#039;&#039;.&lt;br /&gt;
*Lorsque vous changez de disposition, tout groupe d&#039;onglets qui ne trouve pas sa place dans la disposition est détaché et devient une fenêtre flottante.}}&lt;br /&gt;
*Activez &#039;&#039;&#039;Options&#039;&#039;&#039; &amp;amp;gt; &#039;&#039;&#039;Enregistrement et récupération&#039;&#039;&#039; &amp;amp;gt; &#039;&#039;&#039;Enregistrer le bureau du projet lors de la fermeture&#039;&#039;&#039; et &#039;&#039;&#039;Enregistrer l&#039;état de l&#039;éditeur à la fermeture d&#039;un onglet&#039;&#039;&#039;.&lt;br /&gt;
*Lorsque vous enregistrez l&#039;état de l&#039;éditeur, vous enregistrez également la position de défilement, les zones réduites ou développées, etc. C&#039;est très pratique lorsque plusieurs fenêtres d&#039;édition du même fichier sont ouvertes. Ainsi, lorsque vous rouvrez votre bureau et rouvrez le projet (ou tout simplement, lorsque vous rouvrez un éditeur précédemment fermé), la nouvelle fenêtre d&#039;édition s&#039;affiche telle qu&#039;elle était au moment de la fermeture.&lt;br /&gt;
*Pensez à désancrer les volets ancrables d&#039;ancienne génération. Ils sont réduits sous forme de petit onglet sur un côté de la fenêtre principale. Vous pouvez les rendre visibles à nouveau en cliquant dessus, et ils restent affichés tant qu’ils ont la focalisation. Pour cela, vous devez cliquer sur le bouton d&#039;épinglage dans la barre de titre du volet, à côté du bouton X. Cette fonctionnalité existe depuis de nombreuses années, mais elle n’était vraiment utile que lorsque l’espace à l&#039;écran était limité. Maintenant que plusieurs fenêtres d&#039;édition peuvent être fractionnées et ancrées ensemble, il devient très pratique de pouvoir désépingler les volets latéraux pour libérer de l’espace horizontal. &lt;br /&gt;
*Pensez à faire un clic droit sur un onglet &#039;&#039;&#039;&amp;amp;gt; Fractionner &amp;amp;gt; A droite&#039;&#039;&#039; (ou &#039;&#039;&#039;A gauche&#039;&#039;&#039;). L&#039;utilisation de plusieurs colonnes est certainement la configuration la plus courante pour les vues fractionnées. Plus vous utiliserez cette fonctionnalité, plus vous constaterez son utilité.&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
[[Présentation de l&#039;EDI|Présentation de l&#039;EDI]]&lt;br /&gt;
*&lt;br /&gt;
[[Aperçu et page d&#039;accueil|Aperçu et page d&#039;accueil]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Prise_en_charge_de_ToolsAPI_pour_l%27%C3%A9diteur_de_code&amp;diff=218890</id>
		<title>Prise en charge de ToolsAPI pour l&#039;éditeur de code</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Prise_en_charge_de_ToolsAPI_pour_l%27%C3%A9diteur_de_code&amp;diff=218890"/>
		<updated>2026-05-09T03:34:37Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : 1 révision importée : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Extension de l&#039;EDI par l&#039;utilisation de l&#039;API Tools}}&lt;br /&gt;
&lt;br /&gt;
A partir de {{Product}} 11.3, les utilisateurs disposent d&#039;un ensemble complet d&#039;outils API (ToolsAPI) pour personnaliser l&#039;éditeur de code (opérations Paint, demande d&#039;informations, obtention d&#039;événements pour l&#039;éditeur de code, etc.).&lt;br /&gt;
&lt;br /&gt;
==Comment les utiliser==&lt;br /&gt;
&lt;br /&gt;
Des plugins très pratiques et intéressants fonctionnent désormais depuis l&#039;éditeur. Nous souhaitons par conséquent fournir une API complète qui stimulera l&#039;innovation et facilitera l&#039;écriture de plugins qui réaliseront des tâches auxquelles nous n&#039;avons même pas pensé.&lt;br /&gt;
&lt;br /&gt;
Ces API permettent aux utilisateurs d&#039;intercepter toutes les étapes du rendu visuel dans l&#039;éditeur (ligne, gouttière, texte). Des événements sont appelés avant et après chaque étape pour que les éléments créés viennent s&#039;ajouter à ce qui existe déjà dans l&#039;EDI ou viennent remplacer des éléments existants (en empêchant l&#039;EDI d&#039;afficher ce qui s&#039;affiche habituellement par défaut).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez obtenir la liste complète des éditeurs, des vues d&#039;édition et établir des correspondances entre eux. Les utilisateurs peuvent lancer des requêtes sur l&#039;état d&#039;un éditeur ou bien lancer des requêtes sur l&#039;état de chaque ligne. Les événements Paint incluent le contexte entier. Utilisez-les pour les opérations de dessin dans l&#039;éditeur ou pour obtenir des informations sur les éditeurs et les éléments qu&#039;ils contiennent, même en dehors de toute opération de dessin.&lt;br /&gt;
&lt;br /&gt;
==Concepts fondamentaux==&lt;br /&gt;
&lt;br /&gt;
Le texte/code est stocké dans le tampon de l&#039;éditeur (IOTAEditView.Buffer fournit un [[lib_fr:ToolsAPI.IOTAEditBuffer|IOTAEditBuffer]]). Une vue ([[lib_fr:ToolsAPI.IOTAEditView|IOTAEditView]]) représente une fenêtre d&#039;affichage sur ce tampon. Elle est utilisée par un contrôle d&#039;éditeur (le contrôle VCL qui implémente l&#039;éditeur). Il n&#039;y a qu&#039;un seul tampon pour le contenu d&#039;un fichier, mais les utilisateurs peuvent utiliser plusieurs vues pour y accéder et le modifier, ce qui entraîne l&#039;ouverture de nombreuses fenêtres d&#039;éditeur du même fichier. Chaque contrôle d&#039;éditeur correspond à une vue, et vice-versa.&lt;br /&gt;
&lt;br /&gt;
===Numéros de ligne de l&#039;éditeur et numéros de ligne logique===&lt;br /&gt;
&lt;br /&gt;
Il ne faut pas confondre les numéros de ligne de l&#039;éditeur et les numéros de ligne logique. La différence est importante lorsque des lignes sont élidées (repliées). Dans l&#039;EDI, le terme &amp;lt;code&amp;gt;élidé&amp;lt;/code&amp;gt; désigne du code replié. Un éditeur peut contenir de nombreuses lignes visibles à l&#039;écran, mais au point de pliage, les numéros de ligne de l&#039;éditeur et les numéros de ligne logique divergent, de sorte que le point de pliage se retrouve en dehors de l&#039;écran.&lt;br /&gt;
&lt;br /&gt;
Les lignes logiques sont des numéros de ligne &amp;quot;réels&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Les lignes de l&#039;éditeur sont celles qui sont affichées dans l&#039;éditeur ou qui le seraient si vous faisiez défiler l&#039;éditeur.&lt;br /&gt;
&lt;br /&gt;
Par exemple, dans un fichier comportant dix lignes (lignes logiques), les lignes 4-7 étant repliées/élidées, les lignes logiques vont jusqu&#039;à dix, mais les lignes de l&#039;éditeur vont jusqu&#039;à sept (pour les sections élidées, une ligne est toujours présente). Les lignes visibles correspondent à celles effectivement affichées à l&#039;écran dans l&#039;éditeur. En raison du pliage, ces lignes peuvent être un sous-ensemble des lignes dans le tampon. Par conséquent, les lignes visibles de l&#039;éditeur sont toujours continues, mais les numéros de ligne logique peuvent avoir des intervalles et comporter des sauts aux points de pliage.&lt;br /&gt;
&lt;br /&gt;
Il est possible de convertir un numéro de ligne logique en numéro de ligne de l&#039;éditeur en utilisant l&#039;état d&#039;une ligne. Les deux types de numérotation peuvent être utilisés pour interroger l&#039;état. Vous obtenez ainsi l&#039;état de la ligne logique ou de la ligne de l&#039;éditeur, et pouvez lui demander à quelle ligne logique ou ligne de l&#039;éditeur il correspond.&lt;br /&gt;
&lt;br /&gt;
==Services de l&#039;éditeur de code==&lt;br /&gt;
&lt;br /&gt;
Le point de départ est l&#039;interface [[lib_fr:ToolsAPI.Editor.INTACodeEditorServices280|INTACodeEditorServices]]. Cette interface vous permet de :&lt;br /&gt;
&lt;br /&gt;
*Vous inscrire aux événements de l&#039;éditeur, tels que : souris, défilement, redimensionnement et dessin.&lt;br /&gt;
*Rechercher la vue d&#039;un contrôle d&#039;éditeur et le contrôle d&#039;éditeur qui lui est associé. Il n&#039;y a qu&#039;un seul tampon, mais plusieurs vues de ce tampon peuvent exister, et chaque contrôle d&#039;éditeur utilise une seule vue.&lt;br /&gt;
*Lister tous les contrôles de l&#039;éditeur et toutes les vues d&#039;édition.&lt;br /&gt;
*Obtenir le contrôle d&#039;éditeur supérieur (le dernier avec lequel vous avez interagi).&lt;br /&gt;
*Obtenir l&#039;état de l&#039;éditeur pour un contrôle. Vous pouvez obtenir l&#039;état de n&#039;importe quelle ligne à partir de l&#039;état de l&#039;éditeur.&lt;br /&gt;
*Obtenir diverses informations concernant l&#039;éditeur.&lt;br /&gt;
*Réserver une partie de la gouttière de l&#039;éditeur à l&#039;usage de vos plugins.&lt;br /&gt;
*Accéder à [[lib_fr:ToolsAPI.Editor.INTACodeEditorServices280|INTACodeEditorServices]] à partir de &amp;lt;code&amp;gt;BorlandIDEServices&amp;lt;/code&amp;gt; comme avec les autres interfaces.&lt;br /&gt;
*Invalider (c&#039;est-à-dire forcer le rafraîchissement) des parties d&#039;un éditeur : par ligne logique, pour un rectangle ou l&#039;intégralité de l&#039;éditeur.&lt;br /&gt;
&lt;br /&gt;
{{Note| En général, l&#039;éditeur met en cache et redessine uniquement les lignes récemment affichées dans la vue ou celles affectées par un changement de ligne. La sollicitation excessive du rafraîchissement peut entraîner des problèmes de performance.}}&lt;br /&gt;
&lt;br /&gt;
==Optimiser les opérations de lecture et d&#039;écriture de l&#039;éditeur de code==&lt;br /&gt;
&lt;br /&gt;
===Lecture à partir du tampon de l&#039;éditeur===&lt;br /&gt;
&lt;br /&gt;
Utilisez l&#039;interface &amp;lt;code&amp;gt;IOTAEditReader&amp;lt;/code&amp;gt; pour lire depuis le tampon de l&#039;éditeur. Cette API de bas niveau est très performante. Elle permet un accès direct au contenu de l&#039;éditeur. Si vous devez analyser le code par l&#039;intermédiaire de chaînes basées sur des pointeurs, vous pouvez le faire sans allocation ni copie de chaînes.&lt;br /&gt;
&lt;br /&gt;
Pour obtenir le contenu du tampon de l&#039;éditeur pour un ensemble de lignes, appelez &amp;lt;code&amp;gt;GetLineData&amp;lt;/code&amp;gt;, en transmettant le numéro de la première ligne, le numéro de la dernière ligne, le rappel et un pointeur arbitraire qui peut représenter n&#039;importe quelle donnée de votre choix, qui sera transmise telle quelle au rappel. Cette méthode est utilisée pour pointer sur une instance d&#039;objet afin de la convertir en méthode orientée objet dans le rappel.&lt;br /&gt;
&lt;br /&gt;
Le rappel obtient le numéro de la ligne, le pointeur inchangé transmis et un pointeur vers les informations de la ligne. Cette structure d&#039;informations contient la longueur de la ligne, le type de fin de ligne (une énumération représentant &amp;lt;code&amp;gt;CRLF&amp;lt;/code&amp;gt;, seulement &amp;lt;code&amp;gt;CR&amp;lt;/code&amp;gt;, seulement &amp;lt;code&amp;gt;LF&amp;lt;/code&amp;gt;, etc.) et un pointeur sur la chaîne ligne.&lt;br /&gt;
&lt;br /&gt;
La chaîne ligne est au format UTF8 sans caractère de fin nul et sans octets de fin de ligne. Il s&#039;agit simplement d&#039;un pointeur direct vers le contenu de la ligne dans la mémoire du tampon de l&#039;éditeur.&lt;br /&gt;
&lt;br /&gt;
{{Attention| N&#039;écrivez pas dans ce pointeur et ne modifiez en aucune façon son contenu. Cela altérerait le tampon de l&#039;éditeur. Utilisez-le uniquement pour lire la mémoire, par exemple pour analyser ou copier une chaîne. Le pointeur n&#039;est pas vivant en dehors du contexte du rappel ; ne stockez pas le pointeur et utilisez-le ultérieurement.}}&lt;br /&gt;
&lt;br /&gt;
L&#039;interface &amp;lt;code&amp;gt;IOTAEditReader&amp;lt;/code&amp;gt; vous permet de :&lt;br /&gt;
&lt;br /&gt;
*Obtenir le nombre de lignes dans le tampon via la propriété &amp;lt;code&amp;gt;LinesInBuffer&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
*Obtenir les données d&#039;une seule ligne ou d&#039;une série de lignes en utilisant la procédure suivante :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt; &lt;br /&gt;
procedure GetLineData(AFirstLine: Integer; ARange; Integer; &lt;br /&gt;
ACallBack: TOTALineDataCallback; AUserData: Pointer);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*L&#039;obtention des données d&#039;une ligne requiert un rappel tel que :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
TOTALineDataCallback = procedure(ALine: Longint; ALineInfo:&lt;br /&gt;
POTALineInfo; AUserData: Pointer)&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez également effectuer des tâches comme calculer le nombre de lignes sans transférer ni analyser la totalité du tampon (ce qui était obligatoire avec la précédente API), ainsi que calculer la taille du tampon en octets, là encore sans streaming.&lt;br /&gt;
&lt;br /&gt;
===Ecrire à partir du tampon de l&#039;éditeur===&lt;br /&gt;
&lt;br /&gt;
Voici différentes méthodes pour écrire dans le tampon de l&#039;éditeur :&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;IOTAEditWriter&amp;lt;/code&amp;gt; : une interface qui fournit une API de type flux avec une position, puis permet de copier, d&#039;insérer, de supprimer, etc. des primitives. Cette méthode requiert la rationalisation du texte de l&#039;éditeur pour les opérations à implémenter.&lt;br /&gt;
*&amp;lt;code&amp;gt;Insert()&amp;lt;/code&amp;gt; : surcharges prenant un UTF8String. Cette méthode est davantage orientée numéros de lignes.&lt;br /&gt;
&lt;br /&gt;
Méthodes plus performantes :&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;InsertBlankLine&amp;lt;/code&amp;gt; : insère une ligne vide à un numéro de ligne spécifique.&lt;br /&gt;
*&amp;lt;code&amp;gt;InsertLine&amp;lt;/code&amp;gt; :  insère une ligne à un numéro de ligne spécifique. Cette méthode amène un pointeur vers un contenu UTF8 ou UTF8String et insère ce contenu dans la nouvelle ligne.&lt;br /&gt;
*&amp;lt;code&amp;gt;DeleteLine&amp;lt;/code&amp;gt; :  supprime une ligne à un numéro de ligne spécifique.&lt;br /&gt;
*&amp;lt;code&amp;gt;ReplaceLine&amp;lt;/code&amp;gt; : remplace une ligne à un numéro de ligne spécifique avec un pointeur sur un contenu UTF8 ou UTF8String.&lt;br /&gt;
&lt;br /&gt;
{{Note|D&#039;autres primitives d&#039;écriture sont disponibles via &amp;lt;code&amp;gt;IOTAEditPosition&amp;lt;/code&amp;gt;. Ces primitives sont plus proches de la façon dont un humain interagit avec l&#039;éditeur ; leurs performances sont raisonnablement élevées et elles sont une alternative à &amp;lt;code&amp;gt;IOTAEditWriter&amp;lt;/code&amp;gt;.}}&lt;br /&gt;
&lt;br /&gt;
==Evénements de l&#039;éditeur de code==&lt;br /&gt;
&lt;br /&gt;
Recensez une instance de l&#039;interface de notification [[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents|INTACodeEditorEvents]] en utilisant [[lib_fr:ToolsAPI.Editor.INTACodeEditorServices280.AddEditorEventsNotifier|AddEditorEventsNotifier]]. Cela vous permet d&#039;être notifié lorsqu&#039;une grande variété d&#039;événements se produisent, notamment des événements en lien avec la souris, les fenêtres, les changements d&#039;état de l&#039;éditeur et le dessin.&lt;br /&gt;
&lt;br /&gt;
===Considérations à prendre en compte pour les performances===&lt;br /&gt;
&lt;br /&gt;
De nombreux événements se produisent pendant que l&#039;utilisateur interagit avec l&#039;éditeur. Pour optimiser les performances, le notificateur ne vous informe que des types d&#039;événements pour lesquels vous avez demandé à recevoir des notifications. Pour ce faire, implémentez {{code|AllowedEvents}}, qui renvoie un ensemble d&#039;événements (souris, fenêtre, etc.) pour lesquels vous souhaitez être averti. Par exemple, pour recevoir des notifications à propos des événements de la souris, {{code|AllowedEvents}} doit renvoyer un ensemble incluant {{code|cevMouseEvents}}. Tous les événements en relation avec la souris (enfoncement du bouton de la souris, déplacement de la souris, relâchement du bouton de la souris) sont ainsi renvoyés. Il n&#039;est pas possible de s&#039;abonner à un événement spécifique, seulement à des types d&#039;événements regroupés.&lt;br /&gt;
&lt;br /&gt;
Si possible, limitez les notifications en ne surveillant que les types d&#039;événements dont vous avez besoin. En effet, une surabondance de notifications peut entraîner des problèmes de performances. De même, assurez-vous que les méthodes qui gèrent les événements sont aussi légères que possible et effectuent un minimum d&#039;opérations. Chaque fois que possible, différez les processus longs (par exemple, en utilisant {{code|TThread.ForceQueue}} pour exécuter une méthode ultérieurement). Un traitement long pendant la gestion des événements engendrera un décalage lors de la saisie, un ralentissement du dessin ou d&#039;autres effets similaires.&lt;br /&gt;
&lt;br /&gt;
Les méthodes d&#039;optimisation suivantes permettent de réduire la sur-notification.&lt;br /&gt;
&lt;br /&gt;
*[[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents.AllowedEvents|AllowedEvents]] : renvoie les événements auxquels le plugin s&#039;intéresse.&lt;br /&gt;
*[[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents.AllowedGutterStages|AllowedGutterStages]] et [[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents.AllowedLineStages|AllowedLineStages]] : masques similaires pour les étapes du dessin (gouttière, ligne et texte) durant lesquelles vous souhaitez que votre plugin soit appelé.&lt;br /&gt;
&lt;br /&gt;
Pour éviter un impact sur les performances, utilisez le résultat de ces méthodes pour vous assurer que votre plugin est uniquement appelé pour les événements nécessaires.&lt;br /&gt;
&lt;br /&gt;
===Evénements des fenêtres===&lt;br /&gt;
&lt;br /&gt;
Les API suivantes vous permettent de vérifier si un élément devrait se trouver sur l&#039;écran de l&#039;éditeur. Vous pouvez demander la nouvelle taille de l&#039;éditeur en utilisant les propriétés TWinControl Width et Height de l&#039;éditeur, comme pour n&#039;importe quel composant visuel normal.&lt;br /&gt;
&lt;br /&gt;
*Redimensionnez l&#039;éditeur avec [[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents.EditorResized|EditorResized]].&lt;br /&gt;
*Faites défiler l&#039;éditeur avec [[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents.EditorScrolled|EditorScrolled]].&lt;br /&gt;
&lt;br /&gt;
Ces événements sont uniquement appelés lorsque cevWindowEvents est renvoyé dans AllowedEvents.&lt;br /&gt;
&lt;br /&gt;
===Evénements de la souris===&lt;br /&gt;
&lt;br /&gt;
Les événements de la souris permettent aux utilisateurs d&#039;implémenter des éléments interactifs à l&#039;intérieur de l&#039;éditeur. Ils peuvent être interceptés en tant que clics. Les événements de la souris incluent :&lt;br /&gt;
&lt;br /&gt;
*[[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents370.EditorMouseDown|EditorMouseDown]]&lt;br /&gt;
*[[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents370.EditorMouseUp|EditorMouseUp]]&lt;br /&gt;
*[[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents.EditorMouseMove|EditorMouseMove]]&lt;br /&gt;
&lt;br /&gt;
Ces événements sont uniquement appelés lorsque {{code|cevMouseEvents}} est renvoyé dans AllowedEvents.&lt;br /&gt;
&lt;br /&gt;
===Evénement Frappe de touche===&lt;br /&gt;
&lt;br /&gt;
Cet événement se déclenche lorsqu&#039;une touche est frappée. Les événements frappe de touche incluent l&#039;interface {{code|ToolsAPI.Editor.INTACodeEditorEvents370}} et les événements suivants :&lt;br /&gt;
&lt;br /&gt;
*[[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents370.EditorKeyDown|EditorKeyDown]]&lt;br /&gt;
*[[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents370.EditorKeyUp|EditorKeyUp]]&lt;br /&gt;
&lt;br /&gt;
===Evénement Curseur déplacé===&lt;br /&gt;
&lt;br /&gt;
L&#039;événement curseur se déclenche à chaque fois que le curseur de l&#039;éditeur change de position. Les événements curseur incluent :&lt;br /&gt;
&lt;br /&gt;
*[[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents370.EditorSetCaretPos|EditorSetCaretPos]]&lt;br /&gt;
&lt;br /&gt;
===Evénements de changement d&#039;état===&lt;br /&gt;
&lt;br /&gt;
Les événements de changement d&#039;état se produisent quand des lignes sont élidées ou réaffichées, et indiquent sur quelle ligne cela se produit.&lt;br /&gt;
&lt;br /&gt;
*[[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents.EditorElided|EditorElided]]&lt;br /&gt;
*[[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents.EditorUnElided|EditorUnElided]]&lt;br /&gt;
&lt;br /&gt;
===Evénements de dessin===&lt;br /&gt;
&lt;br /&gt;
Il existe différentes méthodes de dessin selon que vous vouliez dessiner une ligne, le texte d&#039;une ligne et la gouttière de l&#039;éditeur. Le dessin est basé sur des lignes. Il suit le modèle interne de l&#039;éditeur, qui ne permet pas de dessiner quelque chose qui n&#039;est pas associé à une ligne, même si c&#039;est possible en dessinant un rectangle dans chaque ligne.&lt;br /&gt;
&lt;br /&gt;
Pour chacun de ces trois éléments (gouttière, ligne, texte), les méthodes :&lt;br /&gt;
&lt;br /&gt;
* Sont appelées plusieurs fois : une par étape du dessin, et avant et après cette étape.&lt;br /&gt;
**L&#039;étape du dessin inclut le début et la fin (c&#039;est-à-dire avant et après le dessin), l&#039;arrière-plan de la ligne, le balisage général, les paires en surbrillance, la marge droite et les indicateurs de ligne repliée.&lt;br /&gt;
*Sont transmises avec le contexte, qui donne accès au rectangle de dessin, au canevas, au numéro de ligne, au numéro de ligne logique, au nom de fichier, au contrôle et à la vue d&#039;édition. Elles permettent également de demander l&#039;état des lignes et de l&#039;éditeur.&lt;br /&gt;
*Peuvent empêcher l&#039;EDI de gérer une étape de dessin qu&#039;elle gère normalement par défaut. Si plusieurs plugins sont impliqués dans le dessin, vous ne pouvez pas empêcher les autres plugins d&#039;effectuer le dessin.&lt;br /&gt;
&lt;br /&gt;
====Méthodes Paint====&lt;br /&gt;
&lt;br /&gt;
L&#039;interface [[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents|INTACodeEditorEvents]] inclut les méthodes de dessin suivantes :&lt;br /&gt;
&lt;br /&gt;
*[[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents.BeginPaint|BeginPaint]] et [[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents.EndPaint|EndPaint]] : ces méthodes sont appelées avant et après l&#039;intégralité des opérations Paint dans l&#039;éditeur. &#039;&#039;&#039;BeginPaint&#039;&#039;&#039; force un rafraîchissement complet du dessin de l&#039;éditeur.&lt;br /&gt;
**Ces méthodes sont uniquement appelées lorsque &amp;lt;code&amp;gt;cevBeginEndPaintEvents&amp;lt;/code&amp;gt; est renvoyé dans &amp;lt;code&amp;gt;AllowedEvents&amp;lt;/code&amp;gt;.&lt;br /&gt;
*[[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents.PaintGutter|PaintGutter]] : utilisez cette méthode pour dessiner la gouttière de l&#039;éditeur.&lt;br /&gt;
**Cette méthode est uniquement appelée lorsque &amp;lt;code&amp;gt;cevPaintGutterEvents&amp;lt;/code&amp;gt; est renvoyé dans &amp;lt;code&amp;gt;AllowedEvents&amp;lt;/code&amp;gt;.&lt;br /&gt;
*[[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents.PaintLine|PaintLine]] : il s&#039;agit de la méthode générale pour dessiner une ligne. Une utilisation courante de cette méthode consiste à modifier le dessin de l&#039;arrière-plan ou à ajouter un balisage supplémentaire une fois le texte dessiné.&lt;br /&gt;
**Cette méthode est uniquement appelée lorsque &amp;lt;code&amp;gt;cevPaintLineEvents&amp;lt;/code&amp;gt; est renvoyé dans &amp;lt;code&amp;gt;AllowedEvents&amp;lt;/code&amp;gt;.&lt;br /&gt;
*&lt;br /&gt;
[[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents.PaintText|PaintText]] : cette méthode est appelée lorsque le contenu du code (c&#039;est-à-dire le texte) est dessiné dans une ligne de l&#039;éditeur. Appelez-la pour chaque segment de texte logique, par exemple chaque symbole ou commentaire. Les paramètres fournissent également des informations sur le numéro de la colonne dans laquelle le texte est dessiné, sur le texte lui-même, sur la mise en évidence de la syntaxe et indiquent si le texte est sélectionné. Comme pour toutes les méthodes, son utilisation peut empêcher le dessin par l&#039;EDI, et elle peut aussi être utilisée pour modifier le formatage du code de l&#039;EDI.&lt;br /&gt;
**Cette méthode est uniquement appelée lorsque &amp;lt;code&amp;gt;cevPaintTextEvents&amp;lt;/code&amp;gt; est renvoyé dans &amp;lt;code&amp;gt;AllowedEvents&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Evénements de recensement et étapes de dessin====&lt;br /&gt;
&lt;br /&gt;
Comme ces méthodes peuvent être utilisées de manière très granulaire (dans de nombreuses étapes de dessin, avant et après le traitement de l&#039;EDI, pour les trois différentes zones de dessin), cela peut avoir un impact sur les performances pendant le dessin. Ce problème peut être réglé en s&#039;abonnant à un sous-ensemble granulaire d&#039;événements , qui correspond aux méthodes qui seront appelées. Implémentez [[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents.AllowedEvents|AllowedEvents]] pour renvoyer les événements à appeler.&lt;br /&gt;
&lt;br /&gt;
Ensuite, ces événements peuvent être appelés pour plusieurs étapes du processus de dessin. Là encore, vous devez spécifier à quelles étapes les appeler pour des raisons d&#039;optimisation. Implémentez [[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents.AllowedGutterStages|AllowedGutterStages]] pour renvoyer les étapes du dessin de la gouttière de l&#039;éditeur pour lesquelles vous voulez être averti et [[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents.AllowedLineStages|AllowedLineStages]] pour les étapes du dessin d&#039;une ligne pour lesquelles vous voulez être averti. PaintText n&#039;implique pas plusieurs étapes.&lt;br /&gt;
&lt;br /&gt;
==Etat de l&#039;éditeur==&lt;br /&gt;
&lt;br /&gt;
L&#039;interface [[lib_fr:ToolsAPI.Editor.INTACodeEditorState|INTACodeEditorState]] permet à l&#039;utilisateur d&#039;obtenir des informations sur les éléments affichés pour un éditeur spécifique, notamment :&lt;br /&gt;
&lt;br /&gt;
*Le rectangle de l&#039;éditeur.&lt;br /&gt;
*La taille de la gouttière.&lt;br /&gt;
*Le bord gauche où le code est dessiné.&lt;br /&gt;
*Le composant de l&#039;éditeur de code (comme un TWinControl) et la vue d&#039;édition utilisée.&lt;br /&gt;
*Les lignes inférieure et supérieure visibles.&lt;br /&gt;
*Les colonnes droite et gauche visibles (défilement horizontal).&lt;br /&gt;
*La largeur (en caractères) de la plus grande ligne visible.&lt;br /&gt;
*Conversion d&#039;un point en pixels en position de caractère (index et ligne).&lt;br /&gt;
*Conversion de la position d&#039;un caractère (index et ligne) en rectangle de délimitation du caractère.&lt;br /&gt;
*Demander si une ligne spécifique est visible.&lt;br /&gt;
*Demander des informations sur les lignes élidées.&lt;br /&gt;
*Obtenir l&#039;état d&#039;une ligne spécifique.&lt;br /&gt;
&lt;br /&gt;
Pour obtenir l&#039;état de l&#039;éditeur, lancez une requête avec [[lib_fr:ToolsAPI.Editor.INTACodeEditorServices280|INTACodeEditorServices]] ou via le paramètre Context dans les méthodes Paint, qui fournit l&#039;état de l&#039;éditeur et des lignes, ainsi que d&#039;autres informations de contexte de dessin. L&#039;état de l&#039;éditeur est créé lorsqu&#039;il est demandé.&lt;br /&gt;
&lt;br /&gt;
==Etat des lignes==&lt;br /&gt;
&lt;br /&gt;
L&#039;interface [[lib_fr:ToolsAPI.Editor.INTACodeEditorLineState|INTACodeEditorLineState]] permet à l&#039;utilisateur de demander des informations pour une ligne spécifique. Vous pouvez obtenir l&#039;état d&#039;une ligne par l&#039;intermédiaire de l&#039;interface [[lib_fr:ToolsAPI.Editor.INTACodeEditorState|INTACodeEditorState]]. Pour n&#039;importe quelle ligne, vous pouvez demander :&lt;br /&gt;
&lt;br /&gt;
*Le numéro de ligne de l&#039;éditeur et le numéro de ligne logique.&lt;br /&gt;
*S&#039;il s&#039;agit d&#039;une ligne élidée : la ligne visible représentant une section élidée de lignes, ainsi que le début et la fin de cette section élidée.&lt;br /&gt;
*Divers rectangles : la totalité du rectangle de la ligne sur toute la largeur de l&#039;éditeur, le rectangle de la gouttière, le rectangle de balisage de la gouttière (par exemple, l&#039;endroit où les numéros de ligne et les symboles +/- de pliage sont dessinés), le rectangle de la zone du code, un rectangle qui limite le texte.&lt;br /&gt;
*Le texte d&#039;une ligne et le sous-ensemble de texte qui est visible pour la ligne.&lt;br /&gt;
&lt;br /&gt;
INTACodeEditorLineState possède désormais une propriété State, qui vous indique si :&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;eleLineHighlight&amp;lt;/code&amp;gt; : la ligne est en surbrillance.&lt;br /&gt;
*&amp;lt;code&amp;gt;eleErrorLine&amp;lt;/code&amp;gt; : la ligne contient une erreur.&lt;br /&gt;
*&amp;lt;code&amp;gt;eleExecution&amp;lt;/code&amp;gt; : la ligne est en cours d&#039;exécution.&lt;br /&gt;
*&amp;lt;code&amp;gt;eleBreakpoint&amp;lt;/code&amp;gt; : la ligne contient un point d&#039;arrêt.&lt;br /&gt;
*&amp;lt;code&amp;gt;eleInvalidBreakpoint&amp;lt;/code&amp;gt; : la ligne contient un point d&#039;arrêt non valide.&lt;br /&gt;
*&amp;lt;code&amp;gt;eleDisabledBreakpoint&amp;lt;/code&amp;gt; : la ligne contient un point d&#039;arrêt désactivé.&lt;br /&gt;
*&amp;lt;code&amp;gt;eleCompiled&amp;lt;/code&amp;gt; : la ligne a été compilée et peut contenir un point d&#039;arrêt.&lt;br /&gt;
&lt;br /&gt;
Pour obtenir l&#039;état de la ligne, lancez une requête avec [[lib_fr:ToolsAPI.Editor.INTACodeEditorState|INTACodeEditorState]] pour un éditeur spécifique ou via le paramètre Context dans les méthodes Paint, qui fournit l&#039;état de l&#039;éditeur et des lignes, ainsi que d&#039;autres informations de contexte du dessin. L&#039;état de la ligne est créé lorsqu&#039;il est demandé.&lt;br /&gt;
&lt;br /&gt;
INTACodeEditorLineState possède maintenant une propriété CellState, indexée par colonne, qui vous indique si la cellule spécifique a l&#039;un des états suivants :&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;eceSelected&amp;lt;/code&amp;gt; : la cellule est actuellement sélectionnée.&lt;br /&gt;
*&amp;lt;code&amp;gt;eceHotLink&amp;lt;/code&amp;gt; : la cellule contient un lien hypertexte actif.&lt;br /&gt;
*&amp;lt;code&amp;gt;eceHotLinkable&amp;lt;/code&amp;gt; : la cellule prend en charge les liens hypertexte.&lt;br /&gt;
*&amp;lt;code&amp;gt;eceSyncEditBackground&amp;lt;/code&amp;gt; : la cellule se trouve dans l&#039;arrière-plan d&#039;un groupe d&#039;édition synchronisé.&lt;br /&gt;
*&amp;lt;code&amp;gt;eceSyncEditSearch&amp;lt;/code&amp;gt; : la cellule fait partie d&#039;un groupe d&#039;édition synchronisé actuellement recherché.&lt;br /&gt;
*&amp;lt;code&amp;gt;eceSyncEditMatch&amp;lt;/code&amp;gt; : la cellule fait partie d&#039;un groupe d&#039;édition synchronisé qui contient un élément correspondant.&lt;br /&gt;
*&amp;lt;code&amp;gt;eceSearchMatch&amp;lt;/code&amp;gt; : la cellule est une correspondance pour une requête de recherche.&lt;br /&gt;
*&amp;lt;code&amp;gt;eceExtraMatch&amp;lt;/code&amp;gt; : la cellule est une correspondance secondaire pour une requête de recherche.&lt;br /&gt;
*&amp;lt;code&amp;gt;eceBraceMatch&amp;lt;/code&amp;gt; : la cellule est une accolade correspondante ou un crochet correspondant.&lt;br /&gt;
*&amp;lt;code&amp;gt;eceHint&amp;lt;/code&amp;gt; : la cellule contient un conseil.&lt;br /&gt;
*&amp;lt;code&amp;gt;eceWarning&amp;lt;/code&amp;gt; : la cellule contient un message d&#039;avertissement.&lt;br /&gt;
*&amp;lt;code&amp;gt;eceError&amp;lt;/code&amp;gt; : la cellule contient un message d&#039;erreur.&lt;br /&gt;
*&amp;lt;code&amp;gt;eceDisabledCode&amp;lt;/code&amp;gt; : la cellule contient du code désactivé.&lt;br /&gt;
*&amp;lt;code&amp;gt;eceFoldBox&amp;lt;/code&amp;gt; : la cellule correspond à une zone qui permet de replier ou déplier une section de code.&lt;br /&gt;
&lt;br /&gt;
==Menu contextuel de l&#039;éditeur==&lt;br /&gt;
&lt;br /&gt;
Les constantes cEdMenuCat répertoriées ci-dessous définissent les différentes catégories de listes d&#039;actions utilisées pour construire le menu local de l&#039;éditeur. &amp;lt;code&amp;gt;INTAEditorLocalMenu&amp;lt;/code&amp;gt; permet d&#039;ajouter le menu local de l&#039;éditeur, et ces constantes peuvent être utilisées pour contrôler l&#039;emplacement où une nouvelle liste d&#039;actions est ajoutée.&lt;br /&gt;
&lt;br /&gt;
Voici la liste des actions dans chaque catégorie de menu :&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;cEdMenuCatIdentifier&amp;lt;/code&amp;gt; : Chercher la déclaration.&lt;br /&gt;
*&amp;lt;code&amp;gt;cEdMenuCatBreakPoint&amp;lt;/code&amp;gt; : Activé, Propriétés du point d&#039;arrêt.&lt;br /&gt;
*&amp;lt;code&amp;gt;cEdMenuCatDebugDebug&amp;lt;/code&amp;gt; : Exécuter jusqu&#039;au curseur.&lt;br /&gt;
*&amp;lt;code&amp;gt;cEdMenuCatBase&amp;lt;/code&amp;gt; : Ouvrir le fichier source/en-tête, Ouvrir le fichier sous le curseur, Rechercher le symbole sous le curseur, Rechercher une rubrique, Vue tampon suivante, Vue tampon précédente, Modification suivante, Modification précédente, Modification non enregistrée suivante, Modification non enregistrée précédente&lt;br /&gt;
*&amp;lt;code&amp;gt;cEdMenuCatModule&amp;lt;/code&amp;gt; : Ouvrir le fichier source/en-tête, Voir les messages et Afficher dans l&#039;explorateur.&lt;br /&gt;
*&amp;lt;code&amp;gt;cEdMenuCatClipboard&amp;lt;/code&amp;gt; : Couper, Copier et Coller.&lt;br /&gt;
*&amp;lt;code&amp;gt;cEdMenuCatBookMarks&amp;lt;/code&amp;gt; : Tous les éléments Aller à et Basculer le signet.&lt;br /&gt;
*&amp;lt;code&amp;gt;cEdMenuCatDebug&amp;lt;/code&amp;gt; : Déboguer et Exécuter jusqu&#039;au curseur.&lt;br /&gt;
*&amp;lt;code&amp;gt;cEdMenuCatDebug&amp;lt;/code&amp;gt; : Voir, Message, Lecture seule, Voir comme fiche.&lt;br /&gt;
*&amp;lt;code&amp;gt;cEdMenuCatView&amp;lt;/code&amp;gt; : Voir comme fiche.&lt;br /&gt;
*&amp;lt;code&amp;gt;cEdMenuCatElide&amp;lt;/code&amp;gt; : Plier, Commentaires de documentation, Méthodes, Plus proche, Imbriqué, Régions, Espace de nommage, Types, Déplier, Tous, Plus proche.&lt;br /&gt;
*&amp;lt;code&amp;gt;cEdMenuCatVersionControl&amp;lt;/code&amp;gt; : Tous les éléments de menu liés aux plugins de contrôle de version.&lt;br /&gt;
*&amp;lt;code&amp;gt;cEdMenuCatRefactor&amp;lt;/code&amp;gt; : Chercher, Chercher les références, Chercher les références locales, Rechercher le symbole de déclaration, Refactoring.&lt;br /&gt;
*&amp;lt;code&amp;gt;cEdMenuCatFormat&amp;lt;/code&amp;gt; : Englober, Synchroniser les prototypes.&lt;br /&gt;
*&amp;lt;code&amp;gt;cEdMenuCatRepository&amp;lt;/code&amp;gt; : Ajouter au référentiel.&lt;br /&gt;
*&amp;lt;code&amp;gt;cEdMenuCatLast&amp;lt;/code&amp;gt; : Voir les messages, Lecture seule, Options de l&#039;éditeur.&lt;br /&gt;
&lt;br /&gt;
==Options de l&#039;éditeur de code==&lt;br /&gt;
&lt;br /&gt;
L&#039;interface [[lib_fr:ToolsAPI.Editor.INTACodeEditorOptions|INTACodeEditorOptions]] permet aux utilisateurs de demander des informations sur les couleurs, la gouttière visible, les fontes, les tailles, etc.&lt;br /&gt;
&lt;br /&gt;
===Intégration de Bookmarks===&lt;br /&gt;
&lt;br /&gt;
Comme la release {{Product}} Florence 13.1 inclut Bookmarks ToolsAPI, l&#039;EDI de Parnassus Bookmarks est maintenant intégrée dans l&#039;interface.&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
IOTAEditView140 = interface(IOTAEditView40)&lt;br /&gt;
[&#039;{9C510462-C7BC-11D2-9AEB-00A02457621F}&#039;]&lt;br /&gt;
  function BookmarkGoto(BookmarkID: Integer): Boolean;&lt;br /&gt;
  function BookmarkRecord(BookmarkID: Integer): Boolean;&lt;br /&gt;
  function BookmarkToggle(BookmarkID: Integer): Boolean;&lt;br /&gt;
  function GetBookmarkPos(BookmarkID: Integer): TOTACharPos;&lt;br /&gt;
  ...&lt;br /&gt;
end;&lt;br /&gt;
IOTAEditView145 = interface(IOTAEditView140)&lt;br /&gt;
[&#039;{5EBBA00C-059D-4571-B30A-328D1264BBB8}&#039;]&lt;br /&gt;
  procedure ClearAllBookmarks;&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Espace de la gouttière de l&#039;éditeur==&lt;br /&gt;
&lt;br /&gt;
La gouttière de l&#039;éditeur est actuellement le meilleur endroit pour dessiner des informations par ligne. RAD Studio l&#039;utilise pour les numéros de ligne, les marqueurs de pliage de ligne, les indications de modification de ligne, les points d&#039;arrêt, les signets, etc. Réservez une partie de la gouttière de l&#039;éditeur, car cela augmentera la largeur de la gouttière pour votre plugin. Pour ce faire, utilisez [[lib_fr:ToolsAPI.Editor.INTACodeEditorServices280.RequestGutterColumn|RequestGutterColumn]], en spécifiant une taille en pixels. Cette partie peut se trouver avant ou après (à gauche ou à droite), là où les points d&#039;arrêt ou les numéros de ligne sont dessinés.&lt;br /&gt;
&lt;br /&gt;
La méthode [[lib_fr:ToolsAPI.Editor.INTACodeEditorState.GetGutterColumnRect|GetGutterColumnRect]] permet aux utilisateurs d&#039;obtenir le rectangle pour une zone recensée spécifique de la gouttière. Ou utilisez la méthode [[lib_fr:ToolsAPI.Editor.INTACodeEditorState.GetGutterColumnRect|GetGutterColumnRect]] pour obtenir le rectangle de la zone recensée dans la gouttière de l&#039;éditeur.&lt;br /&gt;
&lt;br /&gt;
===Autres améliorations relatives à ToolsAPI===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Améliorations et modifications apportées à {{Product}} Florence 13.0&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Ajout d&#039;une nouvelle méthode pour mettre à jour l&#039;interface utilisateur dans ToolsAPI pour la page d&#039;accueil.&lt;br /&gt;
**{{code|INTAWelcomePageDataPluginListView370.Invalidate}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fonctionnalités et améliorations apportées à {{Product} Athens 12.0&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Depuis 11.3, les ToolsAPI suivantes pour le dessin de l&#039;éditeur sont obsolètes :&lt;br /&gt;
**&amp;lt;code&amp;gt;INTAEditViewModifier.BeginPaint&amp;lt;/code&amp;gt;&lt;br /&gt;
**&amp;lt;code&amp;gt;INTAEditViewModifier.EndPaint&amp;lt;/code&amp;gt;&lt;br /&gt;
**&amp;lt;code&amp;gt;INTAEditViewModifier.PaintLine&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous recommandons d&#039;utiliser le nouvel ensemble d&#039;API.&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Extension de l&#039;EDI par l&#039;utilisation de l&#039;API Tools|Extension de l&#039;EDI par l&#039;utilisation de l&#039;API Tools]]&lt;br /&gt;
*[[Création ou extension d&#039;un package pour utiliser l&#039;API Tools|Création ou extension d&#039;un package pour utiliser l&#039;API Tools]]&lt;br /&gt;
*[[Accès aux services de l&#039;API Tools|Accès aux services de l&#039;API Tools]]&lt;br /&gt;
*[[Utilisation d&#039;interfaces spéciales pour étendre l&#039;EDI|Utilisation d&#039;interfaces spéciales pour étendre l&#039;EDI]]&lt;br /&gt;
*[[Utilisation des styles de l&#039;EDI dans des Plugins tierces parties|Utilisation des styles de l&#039;EDI dans des Plugins tierces parties]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Prise_en_charge_de_ToolsAPI_pour_l%27%C3%A9diteur_de_code&amp;diff=218889</id>
		<title>Prise en charge de ToolsAPI pour l&#039;éditeur de code</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Prise_en_charge_de_ToolsAPI_pour_l%27%C3%A9diteur_de_code&amp;diff=218889"/>
		<updated>2026-05-09T03:34:26Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Extension de l&#039;EDI par l&#039;utilisation de l&#039;API Tools}}&lt;br /&gt;
&lt;br /&gt;
A partir de {{Product}} 11.3, les utilisateurs disposent d&#039;un ensemble complet d&#039;outils API (ToolsAPI) pour personnaliser l&#039;éditeur de code (opérations Paint, demande d&#039;informations, obtention d&#039;événements pour l&#039;éditeur de code, etc.).&lt;br /&gt;
&lt;br /&gt;
==Comment les utiliser==&lt;br /&gt;
&lt;br /&gt;
Des plugins très pratiques et intéressants fonctionnent désormais depuis l&#039;éditeur. Nous souhaitons par conséquent fournir une API complète qui stimulera l&#039;innovation et facilitera l&#039;écriture de plugins qui réaliseront des tâches auxquelles nous n&#039;avons même pas pensé.&lt;br /&gt;
&lt;br /&gt;
Ces API permettent aux utilisateurs d&#039;intercepter toutes les étapes du rendu visuel dans l&#039;éditeur (ligne, gouttière, texte). Des événements sont appelés avant et après chaque étape pour que les éléments créés viennent s&#039;ajouter à ce qui existe déjà dans l&#039;EDI ou viennent remplacer des éléments existants (en empêchant l&#039;EDI d&#039;afficher ce qui s&#039;affiche habituellement par défaut).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez obtenir la liste complète des éditeurs, des vues d&#039;édition et établir des correspondances entre eux. Les utilisateurs peuvent lancer des requêtes sur l&#039;état d&#039;un éditeur ou bien lancer des requêtes sur l&#039;état de chaque ligne. Les événements Paint incluent le contexte entier. Utilisez-les pour les opérations de dessin dans l&#039;éditeur ou pour obtenir des informations sur les éditeurs et les éléments qu&#039;ils contiennent, même en dehors de toute opération de dessin.&lt;br /&gt;
&lt;br /&gt;
==Concepts fondamentaux==&lt;br /&gt;
&lt;br /&gt;
Le texte/code est stocké dans le tampon de l&#039;éditeur (IOTAEditView.Buffer fournit un [[lib_fr:ToolsAPI.IOTAEditBuffer|IOTAEditBuffer]]). Une vue ([[lib_fr:ToolsAPI.IOTAEditView|IOTAEditView]]) représente une fenêtre d&#039;affichage sur ce tampon. Elle est utilisée par un contrôle d&#039;éditeur (le contrôle VCL qui implémente l&#039;éditeur). Il n&#039;y a qu&#039;un seul tampon pour le contenu d&#039;un fichier, mais les utilisateurs peuvent utiliser plusieurs vues pour y accéder et le modifier, ce qui entraîne l&#039;ouverture de nombreuses fenêtres d&#039;éditeur du même fichier. Chaque contrôle d&#039;éditeur correspond à une vue, et vice-versa.&lt;br /&gt;
&lt;br /&gt;
===Numéros de ligne de l&#039;éditeur et numéros de ligne logique===&lt;br /&gt;
&lt;br /&gt;
Il ne faut pas confondre les numéros de ligne de l&#039;éditeur et les numéros de ligne logique. La différence est importante lorsque des lignes sont élidées (repliées). Dans l&#039;EDI, le terme &amp;lt;code&amp;gt;élidé&amp;lt;/code&amp;gt; désigne du code replié. Un éditeur peut contenir de nombreuses lignes visibles à l&#039;écran, mais au point de pliage, les numéros de ligne de l&#039;éditeur et les numéros de ligne logique divergent, de sorte que le point de pliage se retrouve en dehors de l&#039;écran.&lt;br /&gt;
&lt;br /&gt;
Les lignes logiques sont des numéros de ligne &amp;quot;réels&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Les lignes de l&#039;éditeur sont celles qui sont affichées dans l&#039;éditeur ou qui le seraient si vous faisiez défiler l&#039;éditeur.&lt;br /&gt;
&lt;br /&gt;
Par exemple, dans un fichier comportant dix lignes (lignes logiques), les lignes 4-7 étant repliées/élidées, les lignes logiques vont jusqu&#039;à dix, mais les lignes de l&#039;éditeur vont jusqu&#039;à sept (pour les sections élidées, une ligne est toujours présente). Les lignes visibles correspondent à celles effectivement affichées à l&#039;écran dans l&#039;éditeur. En raison du pliage, ces lignes peuvent être un sous-ensemble des lignes dans le tampon. Par conséquent, les lignes visibles de l&#039;éditeur sont toujours continues, mais les numéros de ligne logique peuvent avoir des intervalles et comporter des sauts aux points de pliage.&lt;br /&gt;
&lt;br /&gt;
Il est possible de convertir un numéro de ligne logique en numéro de ligne de l&#039;éditeur en utilisant l&#039;état d&#039;une ligne. Les deux types de numérotation peuvent être utilisés pour interroger l&#039;état. Vous obtenez ainsi l&#039;état de la ligne logique ou de la ligne de l&#039;éditeur, et pouvez lui demander à quelle ligne logique ou ligne de l&#039;éditeur il correspond.&lt;br /&gt;
&lt;br /&gt;
==Services de l&#039;éditeur de code==&lt;br /&gt;
&lt;br /&gt;
Le point de départ est l&#039;interface [[lib_fr:ToolsAPI.Editor.INTACodeEditorServices280|INTACodeEditorServices]]. Cette interface vous permet de :&lt;br /&gt;
&lt;br /&gt;
*Vous inscrire aux événements de l&#039;éditeur, tels que : souris, défilement, redimensionnement et dessin.&lt;br /&gt;
*Rechercher la vue d&#039;un contrôle d&#039;éditeur et le contrôle d&#039;éditeur qui lui est associé. Il n&#039;y a qu&#039;un seul tampon, mais plusieurs vues de ce tampon peuvent exister, et chaque contrôle d&#039;éditeur utilise une seule vue.&lt;br /&gt;
*Lister tous les contrôles de l&#039;éditeur et toutes les vues d&#039;édition.&lt;br /&gt;
*Obtenir le contrôle d&#039;éditeur supérieur (le dernier avec lequel vous avez interagi).&lt;br /&gt;
*Obtenir l&#039;état de l&#039;éditeur pour un contrôle. Vous pouvez obtenir l&#039;état de n&#039;importe quelle ligne à partir de l&#039;état de l&#039;éditeur.&lt;br /&gt;
*Obtenir diverses informations concernant l&#039;éditeur.&lt;br /&gt;
*Réserver une partie de la gouttière de l&#039;éditeur à l&#039;usage de vos plugins.&lt;br /&gt;
*Accéder à [[lib_fr:ToolsAPI.Editor.INTACodeEditorServices280|INTACodeEditorServices]] à partir de &amp;lt;code&amp;gt;BorlandIDEServices&amp;lt;/code&amp;gt; comme avec les autres interfaces.&lt;br /&gt;
*Invalider (c&#039;est-à-dire forcer le rafraîchissement) des parties d&#039;un éditeur : par ligne logique, pour un rectangle ou l&#039;intégralité de l&#039;éditeur.&lt;br /&gt;
&lt;br /&gt;
{{Note| En général, l&#039;éditeur met en cache et redessine uniquement les lignes récemment affichées dans la vue ou celles affectées par un changement de ligne. La sollicitation excessive du rafraîchissement peut entraîner des problèmes de performance.}}&lt;br /&gt;
&lt;br /&gt;
==Optimiser les opérations de lecture et d&#039;écriture de l&#039;éditeur de code==&lt;br /&gt;
&lt;br /&gt;
===Lecture à partir du tampon de l&#039;éditeur===&lt;br /&gt;
&lt;br /&gt;
Utilisez l&#039;interface &amp;lt;code&amp;gt;IOTAEditReader&amp;lt;/code&amp;gt; pour lire depuis le tampon de l&#039;éditeur. Cette API de bas niveau est très performante. Elle permet un accès direct au contenu de l&#039;éditeur. Si vous devez analyser le code par l&#039;intermédiaire de chaînes basées sur des pointeurs, vous pouvez le faire sans allocation ni copie de chaînes.&lt;br /&gt;
&lt;br /&gt;
Pour obtenir le contenu du tampon de l&#039;éditeur pour un ensemble de lignes, appelez &amp;lt;code&amp;gt;GetLineData&amp;lt;/code&amp;gt;, en transmettant le numéro de la première ligne, le numéro de la dernière ligne, le rappel et un pointeur arbitraire qui peut représenter n&#039;importe quelle donnée de votre choix, qui sera transmise telle quelle au rappel. Cette méthode est utilisée pour pointer sur une instance d&#039;objet afin de la convertir en méthode orientée objet dans le rappel.&lt;br /&gt;
&lt;br /&gt;
Le rappel obtient le numéro de la ligne, le pointeur inchangé transmis et un pointeur vers les informations de la ligne. Cette structure d&#039;informations contient la longueur de la ligne, le type de fin de ligne (une énumération représentant &amp;lt;code&amp;gt;CRLF&amp;lt;/code&amp;gt;, seulement &amp;lt;code&amp;gt;CR&amp;lt;/code&amp;gt;, seulement &amp;lt;code&amp;gt;LF&amp;lt;/code&amp;gt;, etc.) et un pointeur sur la chaîne ligne.&lt;br /&gt;
&lt;br /&gt;
La chaîne ligne est au format UTF8 sans caractère de fin nul et sans octets de fin de ligne. Il s&#039;agit simplement d&#039;un pointeur direct vers le contenu de la ligne dans la mémoire du tampon de l&#039;éditeur.&lt;br /&gt;
&lt;br /&gt;
{{Attention| N&#039;écrivez pas dans ce pointeur et ne modifiez en aucune façon son contenu. Cela altérerait le tampon de l&#039;éditeur. Utilisez-le uniquement pour lire la mémoire, par exemple pour analyser ou copier une chaîne. Le pointeur n&#039;est pas vivant en dehors du contexte du rappel ; ne stockez pas le pointeur et utilisez-le ultérieurement.}}&lt;br /&gt;
&lt;br /&gt;
L&#039;interface &amp;lt;code&amp;gt;IOTAEditReader&amp;lt;/code&amp;gt; vous permet de :&lt;br /&gt;
&lt;br /&gt;
*Obtenir le nombre de lignes dans le tampon via la propriété &amp;lt;code&amp;gt;LinesInBuffer&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
*Obtenir les données d&#039;une seule ligne ou d&#039;une série de lignes en utilisant la procédure suivante :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt; &lt;br /&gt;
procedure GetLineData(AFirstLine: Integer; ARange; Integer; &lt;br /&gt;
ACallBack: TOTALineDataCallback; AUserData: Pointer);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*L&#039;obtention des données d&#039;une ligne requiert un rappel tel que :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
TOTALineDataCallback = procedure(ALine: Longint; ALineInfo:&lt;br /&gt;
POTALineInfo; AUserData: Pointer)&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez également effectuer des tâches comme calculer le nombre de lignes sans transférer ni analyser la totalité du tampon (ce qui était obligatoire avec la précédente API), ainsi que calculer la taille du tampon en octets, là encore sans streaming.&lt;br /&gt;
&lt;br /&gt;
===Ecrire à partir du tampon de l&#039;éditeur===&lt;br /&gt;
&lt;br /&gt;
Voici différentes méthodes pour écrire dans le tampon de l&#039;éditeur :&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;IOTAEditWriter&amp;lt;/code&amp;gt; : une interface qui fournit une API de type flux avec une position, puis permet de copier, d&#039;insérer, de supprimer, etc. des primitives. Cette méthode requiert la rationalisation du texte de l&#039;éditeur pour les opérations à implémenter.&lt;br /&gt;
*&amp;lt;code&amp;gt;Insert()&amp;lt;/code&amp;gt; : surcharges prenant un UTF8String. Cette méthode est davantage orientée numéros de lignes.&lt;br /&gt;
&lt;br /&gt;
Méthodes plus performantes :&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;InsertBlankLine&amp;lt;/code&amp;gt; : insère une ligne vide à un numéro de ligne spécifique.&lt;br /&gt;
*&amp;lt;code&amp;gt;InsertLine&amp;lt;/code&amp;gt; :  insère une ligne à un numéro de ligne spécifique. Cette méthode amène un pointeur vers un contenu UTF8 ou UTF8String et insère ce contenu dans la nouvelle ligne.&lt;br /&gt;
*&amp;lt;code&amp;gt;DeleteLine&amp;lt;/code&amp;gt; :  supprime une ligne à un numéro de ligne spécifique.&lt;br /&gt;
*&amp;lt;code&amp;gt;ReplaceLine&amp;lt;/code&amp;gt; : remplace une ligne à un numéro de ligne spécifique avec un pointeur sur un contenu UTF8 ou UTF8String.&lt;br /&gt;
&lt;br /&gt;
{{Note|D&#039;autres primitives d&#039;écriture sont disponibles via &amp;lt;code&amp;gt;IOTAEditPosition&amp;lt;/code&amp;gt;. Ces primitives sont plus proches de la façon dont un humain interagit avec l&#039;éditeur ; leurs performances sont raisonnablement élevées et elles sont une alternative à &amp;lt;code&amp;gt;IOTAEditWriter&amp;lt;/code&amp;gt;.}}&lt;br /&gt;
&lt;br /&gt;
==Evénements de l&#039;éditeur de code==&lt;br /&gt;
&lt;br /&gt;
Recensez une instance de l&#039;interface de notification [[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents|INTACodeEditorEvents]] en utilisant [[lib_fr:ToolsAPI.Editor.INTACodeEditorServices280.AddEditorEventsNotifier|AddEditorEventsNotifier]]. Cela vous permet d&#039;être notifié lorsqu&#039;une grande variété d&#039;événements se produisent, notamment des événements en lien avec la souris, les fenêtres, les changements d&#039;état de l&#039;éditeur et le dessin.&lt;br /&gt;
&lt;br /&gt;
===Considérations à prendre en compte pour les performances===&lt;br /&gt;
&lt;br /&gt;
De nombreux événements se produisent pendant que l&#039;utilisateur interagit avec l&#039;éditeur. Pour optimiser les performances, le notificateur ne vous informe que des types d&#039;événements pour lesquels vous avez demandé à recevoir des notifications. Pour ce faire, implémentez {{code|AllowedEvents}}, qui renvoie un ensemble d&#039;événements (souris, fenêtre, etc.) pour lesquels vous souhaitez être averti. Par exemple, pour recevoir des notifications à propos des événements de la souris, {{code|AllowedEvents}} doit renvoyer un ensemble incluant {{code|cevMouseEvents}}. Tous les événements en relation avec la souris (enfoncement du bouton de la souris, déplacement de la souris, relâchement du bouton de la souris) sont ainsi renvoyés. Il n&#039;est pas possible de s&#039;abonner à un événement spécifique, seulement à des types d&#039;événements regroupés.&lt;br /&gt;
&lt;br /&gt;
Si possible, limitez les notifications en ne surveillant que les types d&#039;événements dont vous avez besoin. En effet, une surabondance de notifications peut entraîner des problèmes de performances. De même, assurez-vous que les méthodes qui gèrent les événements sont aussi légères que possible et effectuent un minimum d&#039;opérations. Chaque fois que possible, différez les processus longs (par exemple, en utilisant {{code|TThread.ForceQueue}} pour exécuter une méthode ultérieurement). Un traitement long pendant la gestion des événements engendrera un décalage lors de la saisie, un ralentissement du dessin ou d&#039;autres effets similaires.&lt;br /&gt;
&lt;br /&gt;
Les méthodes d&#039;optimisation suivantes permettent de réduire la sur-notification.&lt;br /&gt;
&lt;br /&gt;
*[[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents.AllowedEvents|AllowedEvents]] : renvoie les événements auxquels le plugin s&#039;intéresse.&lt;br /&gt;
*[[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents.AllowedGutterStages|AllowedGutterStages]] et [[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents.AllowedLineStages|AllowedLineStages]] : masques similaires pour les étapes du dessin (gouttière, ligne et texte) durant lesquelles vous souhaitez que votre plugin soit appelé.&lt;br /&gt;
&lt;br /&gt;
Pour éviter un impact sur les performances, utilisez le résultat de ces méthodes pour vous assurer que votre plugin est uniquement appelé pour les événements nécessaires.&lt;br /&gt;
&lt;br /&gt;
===Evénements des fenêtres===&lt;br /&gt;
&lt;br /&gt;
Les API suivantes vous permettent de vérifier si un élément devrait se trouver sur l&#039;écran de l&#039;éditeur. Vous pouvez demander la nouvelle taille de l&#039;éditeur en utilisant les propriétés TWinControl Width et Height de l&#039;éditeur, comme pour n&#039;importe quel composant visuel normal.&lt;br /&gt;
&lt;br /&gt;
*Redimensionnez l&#039;éditeur avec [[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents.EditorResized|EditorResized]].&lt;br /&gt;
*Faites défiler l&#039;éditeur avec [[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents.EditorScrolled|EditorScrolled]].&lt;br /&gt;
&lt;br /&gt;
Ces événements sont uniquement appelés lorsque cevWindowEvents est renvoyé dans AllowedEvents.&lt;br /&gt;
&lt;br /&gt;
===Evénements de la souris===&lt;br /&gt;
&lt;br /&gt;
Les événements de la souris permettent aux utilisateurs d&#039;implémenter des éléments interactifs à l&#039;intérieur de l&#039;éditeur. Ils peuvent être interceptés en tant que clics. Les événements de la souris incluent :&lt;br /&gt;
&lt;br /&gt;
*[[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents370.EditorMouseDown|EditorMouseDown]]&lt;br /&gt;
*[[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents370.EditorMouseUp|EditorMouseUp]]&lt;br /&gt;
*[[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents.EditorMouseMove|EditorMouseMove]]&lt;br /&gt;
&lt;br /&gt;
Ces événements sont uniquement appelés lorsque {{code|cevMouseEvents}} est renvoyé dans AllowedEvents.&lt;br /&gt;
&lt;br /&gt;
===Evénement Frappe de touche===&lt;br /&gt;
&lt;br /&gt;
Cet événement se déclenche lorsqu&#039;une touche est frappée. Les événements frappe de touche incluent l&#039;interface {{code|ToolsAPI.Editor.INTACodeEditorEvents370}} et les événements suivants :&lt;br /&gt;
&lt;br /&gt;
*[[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents370.EditorKeyDown|EditorKeyDown]]&lt;br /&gt;
*[[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents370.EditorKeyUp|EditorKeyUp]]&lt;br /&gt;
&lt;br /&gt;
===Evénement Curseur déplacé===&lt;br /&gt;
&lt;br /&gt;
L&#039;événement curseur se déclenche à chaque fois que le curseur de l&#039;éditeur change de position. Les événements curseur incluent :&lt;br /&gt;
&lt;br /&gt;
*[[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents370.EditorSetCaretPos|EditorSetCaretPos]]&lt;br /&gt;
&lt;br /&gt;
===Evénements de changement d&#039;état===&lt;br /&gt;
&lt;br /&gt;
Les événements de changement d&#039;état se produisent quand des lignes sont élidées ou réaffichées, et indiquent sur quelle ligne cela se produit.&lt;br /&gt;
&lt;br /&gt;
*[[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents.EditorElided|EditorElided]]&lt;br /&gt;
*[[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents.EditorUnElided|EditorUnElided]]&lt;br /&gt;
&lt;br /&gt;
===Evénements de dessin===&lt;br /&gt;
&lt;br /&gt;
Il existe différentes méthodes de dessin selon que vous vouliez dessiner une ligne, le texte d&#039;une ligne et la gouttière de l&#039;éditeur. Le dessin est basé sur des lignes. Il suit le modèle interne de l&#039;éditeur, qui ne permet pas de dessiner quelque chose qui n&#039;est pas associé à une ligne, même si c&#039;est possible en dessinant un rectangle dans chaque ligne.&lt;br /&gt;
&lt;br /&gt;
Pour chacun de ces trois éléments (gouttière, ligne, texte), les méthodes :&lt;br /&gt;
&lt;br /&gt;
* Sont appelées plusieurs fois : une par étape du dessin, et avant et après cette étape.&lt;br /&gt;
**L&#039;étape du dessin inclut le début et la fin (c&#039;est-à-dire avant et après le dessin), l&#039;arrière-plan de la ligne, le balisage général, les paires en surbrillance, la marge droite et les indicateurs de ligne repliée.&lt;br /&gt;
*Sont transmises avec le contexte, qui donne accès au rectangle de dessin, au canevas, au numéro de ligne, au numéro de ligne logique, au nom de fichier, au contrôle et à la vue d&#039;édition. Elles permettent également de demander l&#039;état des lignes et de l&#039;éditeur.&lt;br /&gt;
*Peuvent empêcher l&#039;EDI de gérer une étape de dessin qu&#039;elle gère normalement par défaut. Si plusieurs plugins sont impliqués dans le dessin, vous ne pouvez pas empêcher les autres plugins d&#039;effectuer le dessin.&lt;br /&gt;
&lt;br /&gt;
====Méthodes Paint====&lt;br /&gt;
&lt;br /&gt;
L&#039;interface [[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents|INTACodeEditorEvents]] inclut les méthodes de dessin suivantes :&lt;br /&gt;
&lt;br /&gt;
*[[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents.BeginPaint|BeginPaint]] et [[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents.EndPaint|EndPaint]] : ces méthodes sont appelées avant et après l&#039;intégralité des opérations Paint dans l&#039;éditeur. &#039;&#039;&#039;BeginPaint&#039;&#039;&#039; force un rafraîchissement complet du dessin de l&#039;éditeur.&lt;br /&gt;
**Ces méthodes sont uniquement appelées lorsque &amp;lt;code&amp;gt;cevBeginEndPaintEvents&amp;lt;/code&amp;gt; est renvoyé dans &amp;lt;code&amp;gt;AllowedEvents&amp;lt;/code&amp;gt;.&lt;br /&gt;
*[[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents.PaintGutter|PaintGutter]] : utilisez cette méthode pour dessiner la gouttière de l&#039;éditeur.&lt;br /&gt;
**Cette méthode est uniquement appelée lorsque &amp;lt;code&amp;gt;cevPaintGutterEvents&amp;lt;/code&amp;gt; est renvoyé dans &amp;lt;code&amp;gt;AllowedEvents&amp;lt;/code&amp;gt;.&lt;br /&gt;
*[[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents.PaintLine|PaintLine]] : il s&#039;agit de la méthode générale pour dessiner une ligne. Une utilisation courante de cette méthode consiste à modifier le dessin de l&#039;arrière-plan ou à ajouter un balisage supplémentaire une fois le texte dessiné.&lt;br /&gt;
**Cette méthode est uniquement appelée lorsque &amp;lt;code&amp;gt;cevPaintLineEvents&amp;lt;/code&amp;gt; est renvoyé dans &amp;lt;code&amp;gt;AllowedEvents&amp;lt;/code&amp;gt;.&lt;br /&gt;
*&lt;br /&gt;
[[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents.PaintText|PaintText]] : cette méthode est appelée lorsque le contenu du code (c&#039;est-à-dire le texte) est dessiné dans une ligne de l&#039;éditeur. Appelez-la pour chaque segment de texte logique, par exemple chaque symbole ou commentaire. Les paramètres fournissent également des informations sur le numéro de la colonne dans laquelle le texte est dessiné, sur le texte lui-même, sur la mise en évidence de la syntaxe et indiquent si le texte est sélectionné. Comme pour toutes les méthodes, son utilisation peut empêcher le dessin par l&#039;EDI, et elle peut aussi être utilisée pour modifier le formatage du code de l&#039;EDI.&lt;br /&gt;
**Cette méthode est uniquement appelée lorsque &amp;lt;code&amp;gt;cevPaintTextEvents&amp;lt;/code&amp;gt; est renvoyé dans &amp;lt;code&amp;gt;AllowedEvents&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Evénements de recensement et étapes de dessin====&lt;br /&gt;
&lt;br /&gt;
Comme ces méthodes peuvent être utilisées de manière très granulaire (dans de nombreuses étapes de dessin, avant et après le traitement de l&#039;EDI, pour les trois différentes zones de dessin), cela peut avoir un impact sur les performances pendant le dessin. Ce problème peut être réglé en s&#039;abonnant à un sous-ensemble granulaire d&#039;événements , qui correspond aux méthodes qui seront appelées. Implémentez [[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents.AllowedEvents|AllowedEvents]] pour renvoyer les événements à appeler.&lt;br /&gt;
&lt;br /&gt;
Ensuite, ces événements peuvent être appelés pour plusieurs étapes du processus de dessin. Là encore, vous devez spécifier à quelles étapes les appeler pour des raisons d&#039;optimisation. Implémentez [[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents.AllowedGutterStages|AllowedGutterStages]] pour renvoyer les étapes du dessin de la gouttière de l&#039;éditeur pour lesquelles vous voulez être averti et [[lib_fr:ToolsAPI.Editor.INTACodeEditorEvents.AllowedLineStages|AllowedLineStages]] pour les étapes du dessin d&#039;une ligne pour lesquelles vous voulez être averti. PaintText n&#039;implique pas plusieurs étapes.&lt;br /&gt;
&lt;br /&gt;
==Etat de l&#039;éditeur==&lt;br /&gt;
&lt;br /&gt;
L&#039;interface [[lib_fr:ToolsAPI.Editor.INTACodeEditorState|INTACodeEditorState]] permet à l&#039;utilisateur d&#039;obtenir des informations sur les éléments affichés pour un éditeur spécifique, notamment :&lt;br /&gt;
&lt;br /&gt;
*Le rectangle de l&#039;éditeur.&lt;br /&gt;
*La taille de la gouttière.&lt;br /&gt;
*Le bord gauche où le code est dessiné.&lt;br /&gt;
*Le composant de l&#039;éditeur de code (comme un TWinControl) et la vue d&#039;édition utilisée.&lt;br /&gt;
*Les lignes inférieure et supérieure visibles.&lt;br /&gt;
*Les colonnes droite et gauche visibles (défilement horizontal).&lt;br /&gt;
*La largeur (en caractères) de la plus grande ligne visible.&lt;br /&gt;
*Conversion d&#039;un point en pixels en position de caractère (index et ligne).&lt;br /&gt;
*Conversion de la position d&#039;un caractère (index et ligne) en rectangle de délimitation du caractère.&lt;br /&gt;
*Demander si une ligne spécifique est visible.&lt;br /&gt;
*Demander des informations sur les lignes élidées.&lt;br /&gt;
*Obtenir l&#039;état d&#039;une ligne spécifique.&lt;br /&gt;
&lt;br /&gt;
Pour obtenir l&#039;état de l&#039;éditeur, lancez une requête avec [[lib_fr:ToolsAPI.Editor.INTACodeEditorServices280|INTACodeEditorServices]] ou via le paramètre Context dans les méthodes Paint, qui fournit l&#039;état de l&#039;éditeur et des lignes, ainsi que d&#039;autres informations de contexte de dessin. L&#039;état de l&#039;éditeur est créé lorsqu&#039;il est demandé.&lt;br /&gt;
&lt;br /&gt;
==Etat des lignes==&lt;br /&gt;
&lt;br /&gt;
L&#039;interface [[lib_fr:ToolsAPI.Editor.INTACodeEditorLineState|INTACodeEditorLineState]] permet à l&#039;utilisateur de demander des informations pour une ligne spécifique. Vous pouvez obtenir l&#039;état d&#039;une ligne par l&#039;intermédiaire de l&#039;interface [[lib_fr:ToolsAPI.Editor.INTACodeEditorState|INTACodeEditorState]]. Pour n&#039;importe quelle ligne, vous pouvez demander :&lt;br /&gt;
&lt;br /&gt;
*Le numéro de ligne de l&#039;éditeur et le numéro de ligne logique.&lt;br /&gt;
*S&#039;il s&#039;agit d&#039;une ligne élidée : la ligne visible représentant une section élidée de lignes, ainsi que le début et la fin de cette section élidée.&lt;br /&gt;
*Divers rectangles : la totalité du rectangle de la ligne sur toute la largeur de l&#039;éditeur, le rectangle de la gouttière, le rectangle de balisage de la gouttière (par exemple, l&#039;endroit où les numéros de ligne et les symboles +/- de pliage sont dessinés), le rectangle de la zone du code, un rectangle qui limite le texte.&lt;br /&gt;
*Le texte d&#039;une ligne et le sous-ensemble de texte qui est visible pour la ligne.&lt;br /&gt;
&lt;br /&gt;
INTACodeEditorLineState possède désormais une propriété State, qui vous indique si :&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;eleLineHighlight&amp;lt;/code&amp;gt; : la ligne est en surbrillance.&lt;br /&gt;
*&amp;lt;code&amp;gt;eleErrorLine&amp;lt;/code&amp;gt; : la ligne contient une erreur.&lt;br /&gt;
*&amp;lt;code&amp;gt;eleExecution&amp;lt;/code&amp;gt; : la ligne est en cours d&#039;exécution.&lt;br /&gt;
*&amp;lt;code&amp;gt;eleBreakpoint&amp;lt;/code&amp;gt; : la ligne contient un point d&#039;arrêt.&lt;br /&gt;
*&amp;lt;code&amp;gt;eleInvalidBreakpoint&amp;lt;/code&amp;gt; : la ligne contient un point d&#039;arrêt non valide.&lt;br /&gt;
*&amp;lt;code&amp;gt;eleDisabledBreakpoint&amp;lt;/code&amp;gt; : la ligne contient un point d&#039;arrêt désactivé.&lt;br /&gt;
*&amp;lt;code&amp;gt;eleCompiled&amp;lt;/code&amp;gt; : la ligne a été compilée et peut contenir un point d&#039;arrêt.&lt;br /&gt;
&lt;br /&gt;
Pour obtenir l&#039;état de la ligne, lancez une requête avec [[lib_fr:ToolsAPI.Editor.INTACodeEditorState|INTACodeEditorState]] pour un éditeur spécifique ou via le paramètre Context dans les méthodes Paint, qui fournit l&#039;état de l&#039;éditeur et des lignes, ainsi que d&#039;autres informations de contexte du dessin. L&#039;état de la ligne est créé lorsqu&#039;il est demandé.&lt;br /&gt;
&lt;br /&gt;
INTACodeEditorLineState possède maintenant une propriété CellState, indexée par colonne, qui vous indique si la cellule spécifique a l&#039;un des états suivants :&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;eceSelected&amp;lt;/code&amp;gt; : la cellule est actuellement sélectionnée.&lt;br /&gt;
*&amp;lt;code&amp;gt;eceHotLink&amp;lt;/code&amp;gt; : la cellule contient un lien hypertexte actif.&lt;br /&gt;
*&amp;lt;code&amp;gt;eceHotLinkable&amp;lt;/code&amp;gt; : la cellule prend en charge les liens hypertexte.&lt;br /&gt;
*&amp;lt;code&amp;gt;eceSyncEditBackground&amp;lt;/code&amp;gt; : la cellule se trouve dans l&#039;arrière-plan d&#039;un groupe d&#039;édition synchronisé.&lt;br /&gt;
*&amp;lt;code&amp;gt;eceSyncEditSearch&amp;lt;/code&amp;gt; : la cellule fait partie d&#039;un groupe d&#039;édition synchronisé actuellement recherché.&lt;br /&gt;
*&amp;lt;code&amp;gt;eceSyncEditMatch&amp;lt;/code&amp;gt; : la cellule fait partie d&#039;un groupe d&#039;édition synchronisé qui contient un élément correspondant.&lt;br /&gt;
*&amp;lt;code&amp;gt;eceSearchMatch&amp;lt;/code&amp;gt; : la cellule est une correspondance pour une requête de recherche.&lt;br /&gt;
*&amp;lt;code&amp;gt;eceExtraMatch&amp;lt;/code&amp;gt; : la cellule est une correspondance secondaire pour une requête de recherche.&lt;br /&gt;
*&amp;lt;code&amp;gt;eceBraceMatch&amp;lt;/code&amp;gt; : la cellule est une accolade correspondante ou un crochet correspondant.&lt;br /&gt;
*&amp;lt;code&amp;gt;eceHint&amp;lt;/code&amp;gt; : la cellule contient un conseil.&lt;br /&gt;
*&amp;lt;code&amp;gt;eceWarning&amp;lt;/code&amp;gt; : la cellule contient un message d&#039;avertissement.&lt;br /&gt;
*&amp;lt;code&amp;gt;eceError&amp;lt;/code&amp;gt; : la cellule contient un message d&#039;erreur.&lt;br /&gt;
*&amp;lt;code&amp;gt;eceDisabledCode&amp;lt;/code&amp;gt; : la cellule contient du code désactivé.&lt;br /&gt;
*&amp;lt;code&amp;gt;eceFoldBox&amp;lt;/code&amp;gt; : la cellule correspond à une zone qui permet de replier ou déplier une section de code.&lt;br /&gt;
&lt;br /&gt;
==Menu contextuel de l&#039;éditeur==&lt;br /&gt;
&lt;br /&gt;
Les constantes cEdMenuCat répertoriées ci-dessous définissent les différentes catégories de listes d&#039;actions utilisées pour construire le menu local de l&#039;éditeur. &amp;lt;code&amp;gt;INTAEditorLocalMenu&amp;lt;/code&amp;gt; permet d&#039;ajouter le menu local de l&#039;éditeur, et ces constantes peuvent être utilisées pour contrôler l&#039;emplacement où une nouvelle liste d&#039;actions est ajoutée.&lt;br /&gt;
&lt;br /&gt;
Voici la liste des actions dans chaque catégorie de menu :&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;cEdMenuCatIdentifier&amp;lt;/code&amp;gt; : Chercher la déclaration.&lt;br /&gt;
*&amp;lt;code&amp;gt;cEdMenuCatBreakPoint&amp;lt;/code&amp;gt; : Activé, Propriétés du point d&#039;arrêt.&lt;br /&gt;
*&amp;lt;code&amp;gt;cEdMenuCatDebugDebug&amp;lt;/code&amp;gt; : Exécuter jusqu&#039;au curseur.&lt;br /&gt;
*&amp;lt;code&amp;gt;cEdMenuCatBase&amp;lt;/code&amp;gt; : Ouvrir le fichier source/en-tête, Ouvrir le fichier sous le curseur, Rechercher le symbole sous le curseur, Rechercher une rubrique, Vue tampon suivante, Vue tampon précédente, Modification suivante, Modification précédente, Modification non enregistrée suivante, Modification non enregistrée précédente&lt;br /&gt;
*&amp;lt;code&amp;gt;cEdMenuCatModule&amp;lt;/code&amp;gt; : Ouvrir le fichier source/en-tête, Voir les messages et Afficher dans l&#039;explorateur.&lt;br /&gt;
*&amp;lt;code&amp;gt;cEdMenuCatClipboard&amp;lt;/code&amp;gt; : Couper, Copier et Coller.&lt;br /&gt;
*&amp;lt;code&amp;gt;cEdMenuCatBookMarks&amp;lt;/code&amp;gt; : Tous les éléments Aller à et Basculer le signet.&lt;br /&gt;
*&amp;lt;code&amp;gt;cEdMenuCatDebug&amp;lt;/code&amp;gt; : Déboguer et Exécuter jusqu&#039;au curseur.&lt;br /&gt;
*&amp;lt;code&amp;gt;cEdMenuCatDebug&amp;lt;/code&amp;gt; : Voir, Message, Lecture seule, Voir comme fiche.&lt;br /&gt;
*&amp;lt;code&amp;gt;cEdMenuCatView&amp;lt;/code&amp;gt; : Voir comme fiche.&lt;br /&gt;
*&amp;lt;code&amp;gt;cEdMenuCatElide&amp;lt;/code&amp;gt; : Plier, Commentaires de documentation, Méthodes, Plus proche, Imbriqué, Régions, Espace de nommage, Types, Déplier, Tous, Plus proche.&lt;br /&gt;
*&amp;lt;code&amp;gt;cEdMenuCatVersionControl&amp;lt;/code&amp;gt; : Tous les éléments de menu liés aux plugins de contrôle de version.&lt;br /&gt;
*&amp;lt;code&amp;gt;cEdMenuCatRefactor&amp;lt;/code&amp;gt; : Chercher, Chercher les références, Chercher les références locales, Rechercher le symbole de déclaration, Refactoring.&lt;br /&gt;
*&amp;lt;code&amp;gt;cEdMenuCatFormat&amp;lt;/code&amp;gt; : Englober, Synchroniser les prototypes.&lt;br /&gt;
*&amp;lt;code&amp;gt;cEdMenuCatRepository&amp;lt;/code&amp;gt; : Ajouter au référentiel.&lt;br /&gt;
*&amp;lt;code&amp;gt;cEdMenuCatLast&amp;lt;/code&amp;gt; : Voir les messages, Lecture seule, Options de l&#039;éditeur.&lt;br /&gt;
&lt;br /&gt;
==Options de l&#039;éditeur de code==&lt;br /&gt;
&lt;br /&gt;
L&#039;interface [[lib_fr:ToolsAPI.Editor.INTACodeEditorOptions|INTACodeEditorOptions]] permet aux utilisateurs de demander des informations sur les couleurs, la gouttière visible, les fontes, les tailles, etc.&lt;br /&gt;
&lt;br /&gt;
===Intégration de Bookmarks===&lt;br /&gt;
&lt;br /&gt;
Comme la release {{Product}} Florence 13.1 inclut Bookmarks ToolsAPI, l&#039;EDI de Parnassus Bookmarks est maintenant intégrée dans l&#039;interface.&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
IOTAEditView140 = interface(IOTAEditView40)&lt;br /&gt;
[&#039;{9C510462-C7BC-11D2-9AEB-00A02457621F}&#039;]&lt;br /&gt;
  function BookmarkGoto(BookmarkID: Integer): Boolean;&lt;br /&gt;
  function BookmarkRecord(BookmarkID: Integer): Boolean;&lt;br /&gt;
  function BookmarkToggle(BookmarkID: Integer): Boolean;&lt;br /&gt;
  function GetBookmarkPos(BookmarkID: Integer): TOTACharPos;&lt;br /&gt;
  ...&lt;br /&gt;
end;&lt;br /&gt;
IOTAEditView145 = interface(IOTAEditView140)&lt;br /&gt;
[&#039;{5EBBA00C-059D-4571-B30A-328D1264BBB8}&#039;]&lt;br /&gt;
  procedure ClearAllBookmarks;&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Espace de la gouttière de l&#039;éditeur==&lt;br /&gt;
&lt;br /&gt;
La gouttière de l&#039;éditeur est actuellement le meilleur endroit pour dessiner des informations par ligne. RAD Studio l&#039;utilise pour les numéros de ligne, les marqueurs de pliage de ligne, les indications de modification de ligne, les points d&#039;arrêt, les signets, etc. Réservez une partie de la gouttière de l&#039;éditeur, car cela augmentera la largeur de la gouttière pour votre plugin. Pour ce faire, utilisez [[lib_fr:ToolsAPI.Editor.INTACodeEditorServices280.RequestGutterColumn|RequestGutterColumn]], en spécifiant une taille en pixels. Cette partie peut se trouver avant ou après (à gauche ou à droite), là où les points d&#039;arrêt ou les numéros de ligne sont dessinés.&lt;br /&gt;
&lt;br /&gt;
La méthode [[lib_fr:ToolsAPI.Editor.INTACodeEditorState.GetGutterColumnRect|GetGutterColumnRect]] permet aux utilisateurs d&#039;obtenir le rectangle pour une zone recensée spécifique de la gouttière. Ou utilisez la méthode [[lib_fr:ToolsAPI.Editor.INTACodeEditorState.GetGutterColumnRect|GetGutterColumnRect]] pour obtenir le rectangle de la zone recensée dans la gouttière de l&#039;éditeur.&lt;br /&gt;
&lt;br /&gt;
===Autres améliorations relatives à ToolsAPI===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Améliorations et modifications apportées à {{Product}} Florence 13.0&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Ajout d&#039;une nouvelle méthode pour mettre à jour l&#039;interface utilisateur dans ToolsAPI pour la page d&#039;accueil.&lt;br /&gt;
**{{code|INTAWelcomePageDataPluginListView370.Invalidate}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fonctionnalités et améliorations apportées à {{Product} Athens 12.0&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Depuis 11.3, les ToolsAPI suivantes pour le dessin de l&#039;éditeur sont obsolètes :&lt;br /&gt;
**&amp;lt;code&amp;gt;INTAEditViewModifier.BeginPaint&amp;lt;/code&amp;gt;&lt;br /&gt;
**&amp;lt;code&amp;gt;INTAEditViewModifier.EndPaint&amp;lt;/code&amp;gt;&lt;br /&gt;
**&amp;lt;code&amp;gt;INTAEditViewModifier.PaintLine&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous recommandons d&#039;utiliser le nouvel ensemble d&#039;API.&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Extension de l&#039;EDI par l&#039;utilisation de l&#039;API Tools|Extension de l&#039;EDI par l&#039;utilisation de l&#039;API Tools]]&lt;br /&gt;
*[[Création ou extension d&#039;un package pour utiliser l&#039;API Tools|Création ou extension d&#039;un package pour utiliser l&#039;API Tools]]&lt;br /&gt;
*[[Accès aux services de l&#039;API Tools|Accès aux services de l&#039;API Tools]]&lt;br /&gt;
*[[Utilisation d&#039;interfaces spéciales pour étendre l&#039;EDI|Utilisation d&#039;interfaces spéciales pour étendre l&#039;EDI]]&lt;br /&gt;
*[[Utilisation des styles de l&#039;EDI dans des Plugins tierces parties|Utilisation des styles de l&#039;EDI dans des Plugins tierces parties]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Propri%C3%A9t%C3%A9s_du_menu_Rouvrir&amp;diff=218888</id>
		<title>Propriétés du menu Rouvrir</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Propri%C3%A9t%C3%A9s_du_menu_Rouvrir&amp;diff=218888"/>
		<updated>2026-05-09T02:12:25Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : 1 révision importée : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Menu Fichier}}&lt;br /&gt;
{{Parent|Interface utilisateur}}&lt;br /&gt;
&lt;br /&gt;
{{Menu|Fichier &amp;amp;gt; Ouvrir Récents &amp;amp;gt; Propriétés}} &amp;amp;lt;/br&amp;amp;gt;&lt;br /&gt;
{{Menu|Fichier &amp;amp;gt; Ouvrir Favoris &amp;amp;gt; Propriétés}} &amp;amp;lt;/br&amp;amp;gt;&lt;br /&gt;
{{Menu|Outils &amp;amp;gt; Options &amp;amp;gt; Interface utilisateur &amp;amp;gt; Menu Rouvrir}} &amp;amp;lt;/br&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Affiche le contenu en cours de la &#039;&#039;&#039;liste Rouvrir&#039;&#039;&#039; (c&#039;est-à-dire la liste déroulante {{Menu|Fichier &amp;amp;gt; [[Rouvrir|Ouvrir Récents]]}}) et vous permet de :&lt;br /&gt;
&lt;br /&gt;
*Spécifier le nombre maximal de fichiers et de projets qui peuvent être listés dans la liste Rouvrir.&lt;br /&gt;
*Supprimer des fichiers ou des projets spécifiques de la liste Rouvrir.&lt;br /&gt;
*Supprimer les fichiers qui n&#039;existent plus de la liste Rouvrir.&lt;br /&gt;
&lt;br /&gt;
[[File:Reopen properties.png|link=]]&lt;br /&gt;
&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;Elément&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Nombre de projets&lt;br /&gt;
|&lt;br /&gt;
Spécifie le nombre de projets autorisé sur la liste Rouvrir. La valeur maximale que vous pouvez spécifier est de 100 projets.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Nombre de fichiers&lt;br /&gt;
|&lt;br /&gt;
Spécifie le nombre de fichiers autorisé sur la liste Rouvrir. La valeur maximale que vous pouvez spécifier est de 100 fichiers.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Rouvrir les éléments&lt;br /&gt;
|&lt;br /&gt;
Liste les fichiers et les projets qui ont été récemment ouverts. &amp;amp;lt;/br&amp;amp;gt;&lt;br /&gt;
Dans cette section, vous pouvez marquer un élément comme &#039;&#039;&#039;&amp;quot;Favori&amp;quot;&#039;&#039;&#039; en cliquant sur le symbole Coeur qui suit son nom.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Supprimer les fichiers non existants&lt;br /&gt;
|&lt;br /&gt;
S&#039;il est activé, ce bouton indique qu&#039;un ou plusieurs fichiers de la liste Rouvrir n&#039;existent plus à l&#039;emplacement spécifié. Les éléments qui n&#039;existent plus sont affichés en gris dans la liste Rouvrir. Cliquez sur ce bouton pour retirer les fichiers inexistants de la liste Rouvrir.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Supprimer&lt;br /&gt;
|&lt;br /&gt;
Supprime l&#039;élément sélectionné de la liste Rouvrir.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Effacer&lt;br /&gt;
|&lt;br /&gt;
Supprime tous les éléments de la liste Rouvrir.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Note| &lt;br /&gt;
{{Menu|File &amp;amp;gt; Open Favorite}} &amp;amp;lt;/br&amp;amp;gt;&lt;br /&gt;
Items marked as &#039;&#039;&#039;Favorite&#039;&#039;&#039; will be listed on the &#039;&#039;Open Favorite&#039;&#039; list in the File Menu.}}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Rouvrir|Rouvrir]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Référence EDI]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Propri%C3%A9t%C3%A9s_du_menu_Rouvrir&amp;diff=218887</id>
		<title>Propriétés du menu Rouvrir</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Propri%C3%A9t%C3%A9s_du_menu_Rouvrir&amp;diff=218887"/>
		<updated>2026-05-09T02:12:25Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Menu Fichier}}&lt;br /&gt;
{{Parent|Interface utilisateur}}&lt;br /&gt;
&lt;br /&gt;
{{Menu|Fichier &amp;amp;gt; Ouvrir Récents &amp;amp;gt; Propriétés}} &amp;amp;lt;/br&amp;amp;gt;&lt;br /&gt;
{{Menu|Fichier &amp;amp;gt; Ouvrir Favoris &amp;amp;gt; Propriétés}} &amp;amp;lt;/br&amp;amp;gt;&lt;br /&gt;
{{Menu|Outils &amp;amp;gt; Options &amp;amp;gt; Interface utilisateur &amp;amp;gt; Menu Rouvrir}} &amp;amp;lt;/br&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Affiche le contenu en cours de la &#039;&#039;&#039;liste Rouvrir&#039;&#039;&#039; (c&#039;est-à-dire la liste déroulante {{Menu|Fichier &amp;amp;gt; [[Rouvrir|Ouvrir Récents]]}}) et vous permet de :&lt;br /&gt;
&lt;br /&gt;
*Spécifier le nombre maximal de fichiers et de projets qui peuvent être listés dans la liste Rouvrir.&lt;br /&gt;
*Supprimer des fichiers ou des projets spécifiques de la liste Rouvrir.&lt;br /&gt;
*Supprimer les fichiers qui n&#039;existent plus de la liste Rouvrir.&lt;br /&gt;
&lt;br /&gt;
[[File:Reopen properties.png|link=]]&lt;br /&gt;
&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;Elément&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Nombre de projets&lt;br /&gt;
|&lt;br /&gt;
Spécifie le nombre de projets autorisé sur la liste Rouvrir. La valeur maximale que vous pouvez spécifier est de 100 projets.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Nombre de fichiers&lt;br /&gt;
|&lt;br /&gt;
Spécifie le nombre de fichiers autorisé sur la liste Rouvrir. La valeur maximale que vous pouvez spécifier est de 100 fichiers.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Rouvrir les éléments&lt;br /&gt;
|&lt;br /&gt;
Liste les fichiers et les projets qui ont été récemment ouverts. &amp;amp;lt;/br&amp;amp;gt;&lt;br /&gt;
Dans cette section, vous pouvez marquer un élément comme &#039;&#039;&#039;&amp;quot;Favori&amp;quot;&#039;&#039;&#039; en cliquant sur le symbole Coeur qui suit son nom.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Supprimer les fichiers non existants&lt;br /&gt;
|&lt;br /&gt;
S&#039;il est activé, ce bouton indique qu&#039;un ou plusieurs fichiers de la liste Rouvrir n&#039;existent plus à l&#039;emplacement spécifié. Les éléments qui n&#039;existent plus sont affichés en gris dans la liste Rouvrir. Cliquez sur ce bouton pour retirer les fichiers inexistants de la liste Rouvrir.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Supprimer&lt;br /&gt;
|&lt;br /&gt;
Supprime l&#039;élément sélectionné de la liste Rouvrir.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Effacer&lt;br /&gt;
|&lt;br /&gt;
Supprime tous les éléments de la liste Rouvrir.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Note| &lt;br /&gt;
{{Menu|File &amp;amp;gt; Open Favorite}} &amp;amp;lt;/br&amp;amp;gt;&lt;br /&gt;
Items marked as &#039;&#039;&#039;Favorite&#039;&#039;&#039; will be listed on the &#039;&#039;Open Favorite&#039;&#039; list in the File Menu.}}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Rouvrir|Rouvrir]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Référence EDI]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Rouvrir&amp;diff=218886</id>
		<title>Rouvrir</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Rouvrir&amp;diff=218886"/>
		<updated>2026-05-09T02:12:25Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : 1 révision importée : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Ouvrir Récents (Rouvrir)}}&lt;br /&gt;
{{Parent|Menu Fichier}}&lt;br /&gt;
&lt;br /&gt;
{{Menu|Fichier &amp;amp;gt; Ouvrir Récents}}&lt;br /&gt;
&lt;br /&gt;
Liste les fichiers et les projets récemment ouverts afin de vous permettre de les sélectionner et de les rouvrir.&lt;br /&gt;
&lt;br /&gt;
La &#039;&#039;&#039;liste Rouvrir&#039;&#039;&#039; est organisée en deux groupes séparés par une ligne.&lt;br /&gt;
&lt;br /&gt;
*Les projets sont listés au-dessus de la ligne (par exemple, {{Path|MyBigApp.dproj}} ou {{Path|MyFastApp.cbproj}}).&lt;br /&gt;
*Les fichiers source sont listés en dessous de la ligne (par exemple, {{Path|MyControl.pas}} ou {{Path|MyClass.cpp}}).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez gérer la &#039;&#039;&#039;liste Rouvrir&#039;&#039;&#039; sur la boîte de dialogue &#039;&#039;&#039;[[Propriétés du menu Rouvrir|Propriétés du menu Rouvrir]]&#039;&#039;&#039; en utilisant l&#039;une des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
* {{Menu|Fichier &amp;amp;gt; Ouvrir Récents &amp;amp;gt; Propriétés}}&lt;br /&gt;
* {{Menu|Fichier &amp;amp;gt; Ouvrir Favoris &amp;amp;gt; Propriétés}}&lt;br /&gt;
* {{Menu|Outils &amp;amp;gt; Options &amp;amp;gt; Interface utilisateur &amp;amp;gt; Menu Rouvrir}}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Propriétés du menu Rouvrir|Menu Rouvrir, Propriétés du menu Rouvrir]] &lt;br /&gt;
&lt;br /&gt;
[[Category:Référence EDI]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Rouvrir&amp;diff=218885</id>
		<title>Rouvrir</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Rouvrir&amp;diff=218885"/>
		<updated>2026-05-09T02:12:25Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE: Ouvrir Récents (Rouvrir)}}&lt;br /&gt;
{{Parent|Menu Fichier}}&lt;br /&gt;
&lt;br /&gt;
{{Menu|Fichier &amp;amp;gt; Ouvrir Récents}}&lt;br /&gt;
&lt;br /&gt;
Liste les fichiers et les projets récemment ouverts afin de vous permettre de les sélectionner et de les rouvrir.&lt;br /&gt;
&lt;br /&gt;
La &#039;&#039;&#039;liste Rouvrir&#039;&#039;&#039; est organisée en deux groupes séparés par une ligne.&lt;br /&gt;
&lt;br /&gt;
*Les projets sont listés au-dessus de la ligne (par exemple, {{Path|MyBigApp.dproj}} ou {{Path|MyFastApp.cbproj}}).&lt;br /&gt;
*Les fichiers source sont listés en dessous de la ligne (par exemple, {{Path|MyControl.pas}} ou {{Path|MyClass.cpp}}).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez gérer la &#039;&#039;&#039;liste Rouvrir&#039;&#039;&#039; sur la boîte de dialogue &#039;&#039;&#039;[[Propriétés du menu Rouvrir|Propriétés du menu Rouvrir]]&#039;&#039;&#039; en utilisant l&#039;une des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
* {{Menu|Fichier &amp;amp;gt; Ouvrir Récents &amp;amp;gt; Propriétés}}&lt;br /&gt;
* {{Menu|Fichier &amp;amp;gt; Ouvrir Favoris &amp;amp;gt; Propriétés}}&lt;br /&gt;
* {{Menu|Outils &amp;amp;gt; Options &amp;amp;gt; Interface utilisateur &amp;amp;gt; Menu Rouvrir}}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Propriétés du menu Rouvrir|Menu Rouvrir, Propriétés du menu Rouvrir]] &lt;br /&gt;
&lt;br /&gt;
[[Category:Référence EDI]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Application_multi-p%C3%A9riph%C3%A9rique_pour_recevoir_des_notifications_push&amp;diff=218884</id>
		<title>Application multi-périphérique pour recevoir des notifications push</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Application_multi-p%C3%A9riph%C3%A9rique_pour_recevoir_des_notifications_push&amp;diff=218884"/>
		<updated>2026-05-09T02:12:25Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : 1 révision importée : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Tutoriel mobile : Utilisation des notifications distantes (iOS et Android)}}&lt;br /&gt;
__TOC__&lt;br /&gt;
Vous allez créer une application élémentaire pour recevoir une notification push avec des éléments génériques à Android et iOS. Vous ajouterez ensuite le code qui permettra de définir les caractéristiques de chacune des plates-formes.&lt;br /&gt;
&lt;br /&gt;
Notre implémentation étant basée sur le framework BAAS REST, {{Product}} vous permet d&#039;utiliser dans vos apps iOS ou Android l&#039;un des fournisseurs de services suivants :&lt;br /&gt;
&lt;br /&gt;
:&lt;br /&gt;
:*Kinvey&lt;br /&gt;
:*Parse&lt;br /&gt;
:*[[RAD Server (EMS)|RAD Server (EMS)]]&lt;br /&gt;
&lt;br /&gt;
Avant de créer votre application pour recevoir des notifications push, assurez-vous de terminer ces deux étapes nécessaires :&lt;br /&gt;
&lt;br /&gt;
*[[Configuration du service de messagerie|Configuration du service de messagerie]]&lt;br /&gt;
*Choix du fournisseur :&lt;br /&gt;
**[[Utilisation du service Cloud pour envoyer des notifications push|Utilisation du service Cloud pour envoyer des notifications push]]&lt;br /&gt;
**[[Notifications Push de RAD Server|Utilisation de RAD pour envoyer des notifications push]]&lt;br /&gt;
&lt;br /&gt;
==Conception et configuration de l&#039;interface utilisateur==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Pour créer une [[Application multi-périphérique|application multi-périphérique]], sélectionnez l&#039;une des options suivantes :&lt;br /&gt;
:{{Menu|Fichier &amp;amp;gt; Nouveau &amp;amp;gt; Application multi-périphérique - {{Delphi}} &amp;amp;gt; Application vide}}&lt;br /&gt;
:{{Menu|Fichier &amp;amp;gt; Nouveau &amp;amp;gt; Application multi-périphérique - {{CBuilderUI}} &amp;amp;gt; Application vide}}&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Déposez un composant [[lib_fr:FMX.StdCtrls.TCheckBox|TCheckBox]] sur la fiche.&lt;br /&gt;
:Dans [[Inspecteur d&#039;objets|l&#039;inspecteur d&#039;objets]], définissez les propriétés suivantes pour la &#039;&#039;&#039;case à cocher&#039;&#039;&#039; :&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Définissez [[lib_fr:FMX.StdCtrls.TCheckBox.Align|Align]] sur &#039;&#039;&#039;Top&#039;&#039;&#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Définissez la propriété [[lib_fr:FMX.StdCtrls.TCheckBox.IsChecked|IsChecked]] sur &#039;&#039;&#039;False&#039;&#039;&#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Définissez la propriété [[lib_fr:FMX.StdCtrls.TCheckBox.Text|Text]] sur &#039;&#039;&#039;Active&#039;&#039;&#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Ajoutez un composant [[lib_fr:FMX.Memo.TMemo|TMemo]] à la fiche et définissez la propriété [[lib_fr:FMX.Controls.TControl.Align|Align]] sur &#039;&#039;&#039;Client&#039;&#039;&#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Déposez un objet [[lib_fr:REST.Backend.PushDevice.TPushEvents|TPushEvents]].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Définissez la propriété [[lib_fr:REST.Backend.PushDevice.TCustomPushEvents.AutoActivate|AutoActivate]] sur &#039;&#039;&#039;False&#039;&#039;&#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Dans le Concepteur LiveBindings, ajoutez un lien depuis &#039;&#039;&#039;Active&#039;&#039;&#039; de [[lib_fr:REST.Backend.PushDevice.TPushEvents|PushEvents]] vers &#039;&#039;&#039;IsChecked&#039;&#039;&#039; de [[lib_fr:FMX.StdCtrls.TCheckBox|CheckBox]]. La propriété [[lib_fr:REST.Backend.PushDevice.TCustomPushEvents.Active|Active]] de [[lib_fr:REST.Backend.PushDevice.TPushEvents|PushEvents]] est définie sur &#039;&#039;&#039;True&#039;&#039;&#039; lorsque le composant [[lib_fr:FMX.StdCtrls.TCheckBox|CheckBox]] est coché.&lt;br /&gt;
:[[File:Link.png]]&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Selon le fournisseur de services que vous souhaitez utiliser, ajoutez :&lt;br /&gt;
*Pour &#039;&#039;&#039;Parse&#039;&#039;&#039; : un [[lib_fr:REST.Backend.ParseProvider.TParseProvider|TParseProvider]].&lt;br /&gt;
*Pour &#039;&#039;&#039;Kinvey&#039;&#039;&#039; : un [[lib_fr:REST.Backend.KinveyProvider.TKinveyProvider|TKinveyProvider]].&lt;br /&gt;
*Pour &#039;&#039;&#039;RAD Server (EMS)&#039;&#039;&#039; : un [[lib_fr:REST.Backend.EMSProvider.TEMSProvider|TEMSProvider]].&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;&#039;&#039;&#039;Utilisation de [[lib_fr:REST.Backend.KinveyProvider.TKinveyProvider|TKinveyProvider]]&#039;&#039;&#039; (iOS ou Android)&lt;br /&gt;
:[[File:KinveyProvider.png]]&lt;br /&gt;
Dans [[Inspecteur d&#039;objets|l&#039;inspecteur d&#039;objets]], définissez les propriétés suivantes pour le &#039;&#039;&#039;KinveyProvider&#039;&#039;&#039; :&lt;br /&gt;
*Développez le noeud &#039;&#039;&#039;Android Push&#039;&#039;&#039; et copiez dans &#039;&#039;&#039;GCMAppID&#039;&#039;&#039; le &#039;&#039;&#039;numéro de projet&#039;&#039;&#039; indiqué dans la procédure [[Configuration du service de messagerie#S&#039;enregistrer chez Google|S&#039;enregistrer chez Google]].&lt;br /&gt;
*Définissez [[lib_fr:REST.Backend.KinveyProvider.TCustomKinveyConnectionInfo.AppKey|AppKey]], [[lib_fr:REST.Backend.KinveyProvider.TCustomKinveyConnectionInfo.AppSecret|AppSecret]] et [[lib_fr:REST.Backend.KinveyProvider.TCustomKinveyConnectionInfo.MasterSecret|MasterSecret]] avec les valeurs des clés API [[Utilisation du service Cloud pour envoyer des notifications push#Configuration de votre projet|fournies lors de la configuration de votre projet dans Kinvey]].&lt;br /&gt;
*Définissez [[lib_fr:REST.Backend.KinveyProvider.TCustomKinveyConnectionInfo.UserName|UserName]] et [[lib_fr:REST.Backend.KinveyProvider.TCustomKinveyConnectionInfo.Password|Password]] avec les valeurs définies dans [[Utilisation du service Cloud pour envoyer des notifications push#Ajout d&#039;un utilisateur|Ajout d&#039;un utilisateur dans Kinvey]].&lt;br /&gt;
:[[File:KnvProv.png|300px]]&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;Utilisation de [[lib_fr:REST.Backend.ParseProvider.TParseProvider|TParseProvider]]&#039;&#039;&#039; (iOS ou Android)&lt;br /&gt;
:[[File:ParseProvider.png]]&lt;br /&gt;
Dans [[Inspecteur d&#039;objets|l&#039;inspecteur d&#039;objets]], définissez les propriétés suivantes pour &#039;&#039;&#039;ParseProvider&#039;&#039;&#039; :&lt;br /&gt;
*Définissez les paramètres [[lib_fr:REST.Backend.ParseProvider.TCustomParseConnectionInfo.ApplicationID|ApplicationID]], [[lib_fr:REST.Backend.ParseProvider.TCustomParseConnectionInfo.MasterKey|MasterKey]] et [[lib_fr:REST.Backend.ParseProvider.TCustomParseConnectionInfo.RestApiKey|RestApiKey]] conformément aux clés API indiquées dans [[Utilisation du service Cloud pour envoyer des notifications push#Création d&#039;un projet avec Parse|Création d&#039;un projet avec Parse]].&lt;br /&gt;
&lt;br /&gt;
{{Note| Il n&#039;est pas nécessaire d&#039;ajouter &#039;&#039;&#039;GCM AppID&#039;&#039;&#039; lors du développement des apps Android et de l&#039;utilisation de Parse.}}&lt;br /&gt;
:[[File:ParsePorviderSett.png]]&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;Utilisation de [[lib_fr:REST.Backend.EMSProvider.TEMSProvider|TEMSProvider]]&#039;&#039;&#039; (iOS ou Android)&lt;br /&gt;
:[[File:EMSProvider.png]]&lt;br /&gt;
Dans [[Inspecteur d&#039;objets|l&#039;inspecteur d&#039;objets]], définissez les propriétés suivantes du &#039;&#039;&#039;EMSProvider&#039;&#039;&#039; :&lt;br /&gt;
*Développez le noeud &#039;&#039;&#039;Android Push&#039;&#039;&#039; et copiez dans &#039;&#039;&#039;GCMAppID&#039;&#039;&#039; le &#039;&#039;numéro de projet&#039;&#039; indiqué dans la procédure [[Configuration du service de messagerie#S&#039;enregistrer chez Google|S&#039;enregistrer chez Google]].&lt;br /&gt;
* Définissez [[lib_fr:REST.Backend.EMSProvider.TCustomEMSConnectionInfo.ApplicationId|ApplicationId]], [[lib_fr:REST.Backend.EMSProvider.TEMSProvider.AppSecret|AppSecret]] et [[lib_fr:REST.Backend.EMSProvider.TEMSProvider.MasterSecret|MasterSecret]] avec les valeurs des clés API fournies lors de la [[Notifications Push de RAD Server|configuration de RAD Server Engine]].&lt;br /&gt;
:[[File:EMSProv.png|300px]]&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Création des gestionnaires d&#039;événement==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Sur la fiche, sélectionnez &#039;&#039;&#039;PushEvents1&#039;&#039;&#039; et accédez à [[Inspecteur d&#039;objets|l&#039;inspecteur d&#039;objets]] :&lt;br /&gt;
*Vérifiez si la propriété [[lib_fr:REST.Backend.BindSource.TBackendBindSourceComponent.Provider|Provider]] est définie sur &#039;&#039;&#039;KinveyProvider1&#039;&#039;&#039;, &#039;&#039;&#039;ParseProvider1&#039;&#039;&#039; ou &#039;&#039;&#039;EMSProvider1&#039;&#039;&#039;, selon le fournisseur que vous avez choisi d&#039;utiliser.&lt;br /&gt;
*Accédez à l&#039;onglet &#039;&#039;&#039;Evénements&#039;&#039;&#039; et créez un gestionnaire d&#039;événement pour chaque événement en double-cliquant sur le champ Valeur.&lt;br /&gt;
:&lt;br /&gt;
::[[File:PushEvents.png]]&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Passez à l&#039;onglet &#039;&#039;&#039;Code&#039;&#039;&#039; en appuyant sur F12.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Définissez les gestionnaires d&#039;événement comme suit :&lt;br /&gt;
:&#039;&#039;&#039;{{Delphi}}&#039;&#039;&#039; :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
implementation&lt;br /&gt;
&lt;br /&gt;
{$R *.fmx}&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.PushEvents1DeviceRegistered(Sender: TObject);&lt;br /&gt;
begin&lt;br /&gt;
  Memo1.Lines.Add(&#039;Device Registered&#039;);&lt;br /&gt;
  Memo1.Lines.Add(&#039;&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.PushEvents1DeviceTokenReceived(Sender: TObject);&lt;br /&gt;
begin&lt;br /&gt;
  Memo1.Lines.Add(&#039;Device Token Received&#039;);&lt;br /&gt;
  Memo1.Lines.Add(&#039;&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.PushEvents1DeviceTokenRequestFailed(Sender: TObject;&lt;br /&gt;
  const AErrorMessage: string);&lt;br /&gt;
begin&lt;br /&gt;
  Memo1.Lines.Add(&#039;Device Token Request Failed&#039;);&lt;br /&gt;
  Memo1.Lines.Add(AErrorMessage);&lt;br /&gt;
  Memo1.Lines.Add(&#039;&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.PushEvents1PushReceived(Sender: TObject;&lt;br /&gt;
  const AData: TPushData);&lt;br /&gt;
begin&lt;br /&gt;
  Memo1.Lines.Add(&#039;Device push received&#039;);&lt;br /&gt;
  Memo1.Lines.Add(AData.Message);&lt;br /&gt;
  Memo1.Lines.Add(&#039;&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
end.&amp;lt;/source&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;C++&#039;&#039;&#039; :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
//--------------------------------------------------------------------------&lt;br /&gt;
void __fastcall TForm1::PushEvents1DeviceRegistered(TObject *Sender)&lt;br /&gt;
{&lt;br /&gt;
   Memo1-&amp;gt;Lines-&amp;gt;Add(&amp;quot;Device Registered&amp;quot;);&lt;br /&gt;
   Memo1-&amp;gt;Lines-&amp;gt;Add(&amp;quot;&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
//--------------------------------------------------------------------------&lt;br /&gt;
void __fastcall TForm1::PushEvents1DeviceTokenReceived(TObject *Sender)&lt;br /&gt;
{&lt;br /&gt;
   Memo1-&amp;gt;Lines-&amp;gt;Add(&amp;quot;Device Token Received&amp;quot;);&lt;br /&gt;
   Memo1-&amp;gt;Lines-&amp;gt;Add(&amp;quot;&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
//--------------------------------------------------------------------------&lt;br /&gt;
void __fastcall TForm1::PushEvents1DeviceTokenRequestFailed(TObject *Sender, const UnicodeString AErrorMessage)&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  Memo1-&amp;gt;Lines-&amp;gt;Add(&amp;quot;Device Token Request Failed&amp;quot;);&lt;br /&gt;
  Memo1-&amp;gt;Lines-&amp;gt;Add(AErrorMessage);&lt;br /&gt;
  Memo1-&amp;gt;Lines-&amp;gt;Add(&amp;quot;&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
//--------------------------------------------------------------------------&lt;br /&gt;
void __fastcall TForm1::PushEvents1PushReceived(TObject *Sender, TPushData * const AData)&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  Memo1-&amp;gt;Lines-&amp;gt;Add(&amp;quot;Push Received&amp;quot;);&lt;br /&gt;
  Memo1-&amp;gt;Lines-&amp;gt;Add(AData-&amp;gt;Message);&lt;br /&gt;
  Memo1-&amp;gt;Lines-&amp;gt;Add(&amp;quot;&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
//--------------------------------------------------------------------------&amp;lt;/source&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Paramètres Android==&lt;br /&gt;
&lt;br /&gt;
{{Note| Pour savoir si votre périphérique Android prend en charge GCM, consultez [http://developer.android.com/google/gcm/gcm.html GCM Overview]}}. &lt;br /&gt;
&lt;br /&gt;
===Paramètres du projet===&lt;br /&gt;
&lt;br /&gt;
Pour permettre à votre application de recevoir des notifications distantes :&lt;br /&gt;
&lt;br /&gt;
#Cliquez avec le bouton droit sur votre projet dans le &#039;&#039;&#039;Gestionnaire de projets&#039;&#039;&#039;.&lt;br /&gt;
#Choisissez {{menu| Projet &amp;amp;gt; Options &amp;amp;gt; Liste des droits}}.&lt;br /&gt;
#Définissez la valeur &#039;&#039;&#039;Recevoir les notifications push&#039;&#039;&#039; sur {{True}}.&lt;br /&gt;
&lt;br /&gt;
{{Note| Si vous voulez activer une notification même lorsque l&#039;application n&#039;est pas en cours d&#039;exécution au moment où la notification distante est reçue, vous devez recenser une classe de service. Cette classe de service Java va créer une entrée dans le centre de notification du périphérique Android. Si vous ne voulez pas avoir d&#039;éléments dans le centre de notifications, vous pouvez ignorer cette étape.}}&lt;br /&gt;
&lt;br /&gt;
Vous devez inclure une entrée supplémentaire dans le fichier [[Fichier manifest d&#039;application Android (AndroidManifest.xml)|AndroidManifest.xml]] du projet, en [[Préparation d&#039;une application Android pour son déploiement#Personnalisation de votre fichier AndroidManifest.xml|personnalisant le fichier AndroidManifest.template.xml]]. Recherchez l&#039;indicateur suivant dans le fichier &#039;&#039;&#039;AndroidManifest.template.xml&#039;&#039;&#039; de votre projet :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;%receivers%&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ajoutez le code suivant sous la balise :&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;service android:name=&amp;quot;com.embarcadero.gcm.notifications.GCMIntentService&amp;quot; /&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pensez à apporter les modifications suivantes à votre code :&lt;br /&gt;
&lt;br /&gt;
* Avant d&#039;appliquer vos paramètres de projet, vous devez recenser le GCM sur un thread d&#039;arrière-plan.&lt;br /&gt;
** Vous pouvez assigner la propriété {{Path|&#039;TPushEvents.Active&#039;}} sur le thread principal sans déclencher d&#039;instance de l&#039;exception Java {{Path|&#039;IOException&#039;}}.&lt;br /&gt;
** Vous pouvez assigner la propriété {{Path|&#039;TPushServiceConnection.Active&#039;}} sur le thread principal sans déclencher d&#039;instance de l&#039;exception Java {{Path|&#039;IOException&#039;}}.&lt;br /&gt;
&lt;br /&gt;
* Le changement d&#039;état en {{Path|&#039;Starting&#039;}} est maintenant supporté.&lt;br /&gt;
** Les plates-formes {{Path|&#039;Android&#039;}} et {{Path|&#039;iOS&#039;}} commencent à avoir un comportement identique par rapport au cycle de vie du {{Path|push service}}.&lt;br /&gt;
** Vous pouvez maintenant tester si le {{Path|&#039;push service&#039;}} saisi est passé à l&#039;état {{Path|&#039;Starting&#039;}} lors d&#039;un changement de connexion, en utilisant le code suivant :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm1.OnServiceConnectionChange(Sender: TObject; PushChanges: TPushService.TChanges);&lt;br /&gt;
begin&lt;br /&gt;
  if TPushService.TChange.Status in PushChanges then&lt;br /&gt;
  begin&lt;br /&gt;
    if FPushService.Status = TPushService.TStatus.Starting then&lt;br /&gt;
    begin&lt;br /&gt;
      Memo1.Lines.Add(&#039;GCM registration is going to start.&#039;); &lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Les {{Path|gestionnaires d&#039;événement}} sont maintenant appelés sur le thread principal.&lt;br /&gt;
** Les gestionnaires d&#039;événement {{Path|&#039;TPushEvents.OnDeviceRegistered&#039;}}, {{Path|&#039;TPushEvents.OnDeviceTokenReceived&#039;}}, {{Path|&#039;TPushEvents.OnDeviceTokenRequestFailed&#039;}} et {{Path|&#039;TPushEvents.OnPushReceived&#039;}} n&#039;ont plus besoin d&#039;utiliser {{Path|&#039;TThread.Synchronize&#039;}} lorsqu&#039;ils interagissent avec des contrôles visuels.&lt;br /&gt;
** Les gestionnaires d&#039;événement {{Path|&#039;TPushServiceConnection.OnChange&#039;}} et {{Path|&#039;TPushServiceConnection.OnReceiveNotification&#039;}} n&#039;ont plus besoin d&#039;utiliser {{Path|&#039;TThread.Synchronize&#039;}} lorsqu&#039;ils interagissent avec des contrôles visuels.&lt;br /&gt;
&lt;br /&gt;
==Paramètres iOS==&lt;br /&gt;
&lt;br /&gt;
===Paramètres du projet===&lt;br /&gt;
&lt;br /&gt;
#Cliquez avec le bouton droit sur votre projet dans le &#039;&#039;&#039;Gestionnaire de projets&#039;&#039;&#039;.&lt;br /&gt;
#Choisissez {{menu|Projet &amp;amp;gt; Options &amp;amp;gt; Informations de version}}, et définissez la clé &#039;&#039;&#039;CFBundleIdentifier&#039;&#039;&#039;. La valeur doit être identique à celle de l&#039;identificateur de votre app. C&#039;est la valeur &#039;&#039;&#039;Bundle ID&#039;&#039;&#039; de [[Configuration du service de messagerie#Création d&#039;un ID d&#039;app iOS sur le site Apple Developer Program|la section Création d&#039;un ID d&#039;app iOS sur le site Apple Developer Program]].&lt;br /&gt;
&lt;br /&gt;
:[[File:VersionInfo.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==Exécution de votre application sur un périphérique mobile==&lt;br /&gt;
&lt;br /&gt;
Votre application est maintenant prête pour s&#039;exécuter sur un simulateur ou votre périphérique mobile connecté.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Pour exécuter votre application&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Dans la [[Fenêtre Projets|fenêtre Projets]], sélectionnez votre plate-forme cible.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Choisissez l&#039;une des commandes suivantes :&lt;br /&gt;
*&amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt; &#039;&#039;&#039;Exécuter &amp;amp;gt; Exécuter&#039;&#039;&#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt; &#039;&#039;&#039;Exécuter &amp;amp;gt; Exécuter sans déboguer&#039;&#039;&#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Cliquez sur la case à cocher &#039;&#039;&#039;Active&#039;&#039;&#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Accédez à Parse, Kinvey ou [[Envoi de messages Push de RAD Server|Envoi de messages Push de RAD Server]] et envoyez un nouveau message Push :&amp;lt;br /&amp;gt;&lt;br /&gt;
{{Note| Vous pouvez utiliser votre propre application RAD Server pour envoyer [[Notifications Push de RAD Server|des messages de notification Push RAD Server]].}}&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039; Parse&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[File:ParseHello.png|550px]]&lt;br /&gt;
|}&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039; Kinvey&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[File:HelloKinvey.png|550px]]&lt;br /&gt;
|}&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039; RAD Server (EMS)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[File:HelloEMS.png|550px]]&lt;br /&gt;
|}&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Passez à votre périphérique mobile :&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039; iOS&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[File:IosDevice.png|450px]]&lt;br /&gt;
|}&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039; Android&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[File:AndroidHello.png|400px]]&lt;br /&gt;
|}&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039; iOS RAD Server (EMS)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[File:IOSEMSHello.png|400px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mettez votre app en arrière-plan et envoyez une autre notification Push depuis Parse ou Kinvey. Accédez maintenant à &#039;&#039;&#039;Notifications&#039;&#039;&#039; :&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039; iOS&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[File:Pushios.png|500px]]&lt;br /&gt;
|}&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039; Android&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[File:AndNotificationCenter.png|400px]]&lt;br /&gt;
|}&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Tutoriel mobile : Utilisation des notifications (iOS et Android)|Tutoriel mobile : Utilisation des notifications (iOS et Android)]]&lt;br /&gt;
*[[Tutoriel mobile : Utilisation de BaaS pour le stockage backend (iOS et Android)|Tutoriel mobile : Utilisation de BaaS pour le stockage backend (iOS et Android)]]&lt;br /&gt;
*[[RAD Server (EMS)|RAD Server (EMS)]]&lt;br /&gt;
*[[Notifications Push de RAD Server|Notifications Push de RAD Server]]&lt;br /&gt;
*[[Liste des droits|Liste des droits]]&lt;br /&gt;
&lt;br /&gt;
===Exemples de code===&lt;br /&gt;
&lt;br /&gt;
*[[samp_en:REST.BaaS ToDo Sample|Exemple BaaS ToDo]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Delphi]]&lt;br /&gt;
[[Category:FMX]]&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:IOS]]&lt;br /&gt;
[[Category:XE6]]&lt;br /&gt;
[[Category:Android]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Application_multi-p%C3%A9riph%C3%A9rique_pour_recevoir_des_notifications_push&amp;diff=218883</id>
		<title>Application multi-périphérique pour recevoir des notifications push</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Application_multi-p%C3%A9riph%C3%A9rique_pour_recevoir_des_notifications_push&amp;diff=218883"/>
		<updated>2026-05-09T02:12:23Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Tutoriel mobile : Utilisation des notifications distantes (iOS et Android)}}&lt;br /&gt;
__TOC__&lt;br /&gt;
Vous allez créer une application élémentaire pour recevoir une notification push avec des éléments génériques à Android et iOS. Vous ajouterez ensuite le code qui permettra de définir les caractéristiques de chacune des plates-formes.&lt;br /&gt;
&lt;br /&gt;
Notre implémentation étant basée sur le framework BAAS REST, {{Product}} vous permet d&#039;utiliser dans vos apps iOS ou Android l&#039;un des fournisseurs de services suivants :&lt;br /&gt;
&lt;br /&gt;
:&lt;br /&gt;
:*Kinvey&lt;br /&gt;
:*Parse&lt;br /&gt;
:*[[RAD Server (EMS)|RAD Server (EMS)]]&lt;br /&gt;
&lt;br /&gt;
Avant de créer votre application pour recevoir des notifications push, assurez-vous de terminer ces deux étapes nécessaires :&lt;br /&gt;
&lt;br /&gt;
*[[Configuration du service de messagerie|Configuration du service de messagerie]]&lt;br /&gt;
*Choix du fournisseur :&lt;br /&gt;
**[[Utilisation du service Cloud pour envoyer des notifications push|Utilisation du service Cloud pour envoyer des notifications push]]&lt;br /&gt;
**[[Notifications Push de RAD Server|Utilisation de RAD pour envoyer des notifications push]]&lt;br /&gt;
&lt;br /&gt;
==Conception et configuration de l&#039;interface utilisateur==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Pour créer une [[Application multi-périphérique|application multi-périphérique]], sélectionnez l&#039;une des options suivantes :&lt;br /&gt;
:{{Menu|Fichier &amp;amp;gt; Nouveau &amp;amp;gt; Application multi-périphérique - {{Delphi}} &amp;amp;gt; Application vide}}&lt;br /&gt;
:{{Menu|Fichier &amp;amp;gt; Nouveau &amp;amp;gt; Application multi-périphérique - {{CBuilderUI}} &amp;amp;gt; Application vide}}&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Déposez un composant [[lib_fr:FMX.StdCtrls.TCheckBox|TCheckBox]] sur la fiche.&lt;br /&gt;
:Dans [[Inspecteur d&#039;objets|l&#039;inspecteur d&#039;objets]], définissez les propriétés suivantes pour la &#039;&#039;&#039;case à cocher&#039;&#039;&#039; :&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Définissez [[lib_fr:FMX.StdCtrls.TCheckBox.Align|Align]] sur &#039;&#039;&#039;Top&#039;&#039;&#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Définissez la propriété [[lib_fr:FMX.StdCtrls.TCheckBox.IsChecked|IsChecked]] sur &#039;&#039;&#039;False&#039;&#039;&#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Définissez la propriété [[lib_fr:FMX.StdCtrls.TCheckBox.Text|Text]] sur &#039;&#039;&#039;Active&#039;&#039;&#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Ajoutez un composant [[lib_fr:FMX.Memo.TMemo|TMemo]] à la fiche et définissez la propriété [[lib_fr:FMX.Controls.TControl.Align|Align]] sur &#039;&#039;&#039;Client&#039;&#039;&#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Déposez un objet [[lib_fr:REST.Backend.PushDevice.TPushEvents|TPushEvents]].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Définissez la propriété [[lib_fr:REST.Backend.PushDevice.TCustomPushEvents.AutoActivate|AutoActivate]] sur &#039;&#039;&#039;False&#039;&#039;&#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Dans le Concepteur LiveBindings, ajoutez un lien depuis &#039;&#039;&#039;Active&#039;&#039;&#039; de [[lib_fr:REST.Backend.PushDevice.TPushEvents|PushEvents]] vers &#039;&#039;&#039;IsChecked&#039;&#039;&#039; de [[lib_fr:FMX.StdCtrls.TCheckBox|CheckBox]]. La propriété [[lib_fr:REST.Backend.PushDevice.TCustomPushEvents.Active|Active]] de [[lib_fr:REST.Backend.PushDevice.TPushEvents|PushEvents]] est définie sur &#039;&#039;&#039;True&#039;&#039;&#039; lorsque le composant [[lib_fr:FMX.StdCtrls.TCheckBox|CheckBox]] est coché.&lt;br /&gt;
:[[File:Link.png]]&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Selon le fournisseur de services que vous souhaitez utiliser, ajoutez :&lt;br /&gt;
*Pour &#039;&#039;&#039;Parse&#039;&#039;&#039; : un [[lib_fr:REST.Backend.ParseProvider.TParseProvider|TParseProvider]].&lt;br /&gt;
*Pour &#039;&#039;&#039;Kinvey&#039;&#039;&#039; : un [[lib_fr:REST.Backend.KinveyProvider.TKinveyProvider|TKinveyProvider]].&lt;br /&gt;
*Pour &#039;&#039;&#039;RAD Server (EMS)&#039;&#039;&#039; : un [[lib_fr:REST.Backend.EMSProvider.TEMSProvider|TEMSProvider]].&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;&#039;&#039;&#039;Utilisation de [[lib_fr:REST.Backend.KinveyProvider.TKinveyProvider|TKinveyProvider]]&#039;&#039;&#039; (iOS ou Android)&lt;br /&gt;
:[[File:KinveyProvider.png]]&lt;br /&gt;
Dans [[Inspecteur d&#039;objets|l&#039;inspecteur d&#039;objets]], définissez les propriétés suivantes pour le &#039;&#039;&#039;KinveyProvider&#039;&#039;&#039; :&lt;br /&gt;
*Développez le noeud &#039;&#039;&#039;Android Push&#039;&#039;&#039; et copiez dans &#039;&#039;&#039;GCMAppID&#039;&#039;&#039; le &#039;&#039;&#039;numéro de projet&#039;&#039;&#039; indiqué dans la procédure [[Configuration du service de messagerie#S&#039;enregistrer chez Google|S&#039;enregistrer chez Google]].&lt;br /&gt;
*Définissez [[lib_fr:REST.Backend.KinveyProvider.TCustomKinveyConnectionInfo.AppKey|AppKey]], [[lib_fr:REST.Backend.KinveyProvider.TCustomKinveyConnectionInfo.AppSecret|AppSecret]] et [[lib_fr:REST.Backend.KinveyProvider.TCustomKinveyConnectionInfo.MasterSecret|MasterSecret]] avec les valeurs des clés API [[Utilisation du service Cloud pour envoyer des notifications push#Configuration de votre projet|fournies lors de la configuration de votre projet dans Kinvey]].&lt;br /&gt;
*Définissez [[lib_fr:REST.Backend.KinveyProvider.TCustomKinveyConnectionInfo.UserName|UserName]] et [[lib_fr:REST.Backend.KinveyProvider.TCustomKinveyConnectionInfo.Password|Password]] avec les valeurs définies dans [[Utilisation du service Cloud pour envoyer des notifications push#Ajout d&#039;un utilisateur|Ajout d&#039;un utilisateur dans Kinvey]].&lt;br /&gt;
:[[File:KnvProv.png|300px]]&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;Utilisation de [[lib_fr:REST.Backend.ParseProvider.TParseProvider|TParseProvider]]&#039;&#039;&#039; (iOS ou Android)&lt;br /&gt;
:[[File:ParseProvider.png]]&lt;br /&gt;
Dans [[Inspecteur d&#039;objets|l&#039;inspecteur d&#039;objets]], définissez les propriétés suivantes pour &#039;&#039;&#039;ParseProvider&#039;&#039;&#039; :&lt;br /&gt;
*Définissez les paramètres [[lib_fr:REST.Backend.ParseProvider.TCustomParseConnectionInfo.ApplicationID|ApplicationID]], [[lib_fr:REST.Backend.ParseProvider.TCustomParseConnectionInfo.MasterKey|MasterKey]] et [[lib_fr:REST.Backend.ParseProvider.TCustomParseConnectionInfo.RestApiKey|RestApiKey]] conformément aux clés API indiquées dans [[Utilisation du service Cloud pour envoyer des notifications push#Création d&#039;un projet avec Parse|Création d&#039;un projet avec Parse]].&lt;br /&gt;
&lt;br /&gt;
{{Note| Il n&#039;est pas nécessaire d&#039;ajouter &#039;&#039;&#039;GCM AppID&#039;&#039;&#039; lors du développement des apps Android et de l&#039;utilisation de Parse.}}&lt;br /&gt;
:[[File:ParsePorviderSett.png]]&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;Utilisation de [[lib_fr:REST.Backend.EMSProvider.TEMSProvider|TEMSProvider]]&#039;&#039;&#039; (iOS ou Android)&lt;br /&gt;
:[[File:EMSProvider.png]]&lt;br /&gt;
Dans [[Inspecteur d&#039;objets|l&#039;inspecteur d&#039;objets]], définissez les propriétés suivantes du &#039;&#039;&#039;EMSProvider&#039;&#039;&#039; :&lt;br /&gt;
*Développez le noeud &#039;&#039;&#039;Android Push&#039;&#039;&#039; et copiez dans &#039;&#039;&#039;GCMAppID&#039;&#039;&#039; le &#039;&#039;numéro de projet&#039;&#039; indiqué dans la procédure [[Configuration du service de messagerie#S&#039;enregistrer chez Google|S&#039;enregistrer chez Google]].&lt;br /&gt;
* Définissez [[lib_fr:REST.Backend.EMSProvider.TCustomEMSConnectionInfo.ApplicationId|ApplicationId]], [[lib_fr:REST.Backend.EMSProvider.TEMSProvider.AppSecret|AppSecret]] et [[lib_fr:REST.Backend.EMSProvider.TEMSProvider.MasterSecret|MasterSecret]] avec les valeurs des clés API fournies lors de la [[Notifications Push de RAD Server|configuration de RAD Server Engine]].&lt;br /&gt;
:[[File:EMSProv.png|300px]]&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Création des gestionnaires d&#039;événement==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Sur la fiche, sélectionnez &#039;&#039;&#039;PushEvents1&#039;&#039;&#039; et accédez à [[Inspecteur d&#039;objets|l&#039;inspecteur d&#039;objets]] :&lt;br /&gt;
*Vérifiez si la propriété [[lib_fr:REST.Backend.BindSource.TBackendBindSourceComponent.Provider|Provider]] est définie sur &#039;&#039;&#039;KinveyProvider1&#039;&#039;&#039;, &#039;&#039;&#039;ParseProvider1&#039;&#039;&#039; ou &#039;&#039;&#039;EMSProvider1&#039;&#039;&#039;, selon le fournisseur que vous avez choisi d&#039;utiliser.&lt;br /&gt;
*Accédez à l&#039;onglet &#039;&#039;&#039;Evénements&#039;&#039;&#039; et créez un gestionnaire d&#039;événement pour chaque événement en double-cliquant sur le champ Valeur.&lt;br /&gt;
:&lt;br /&gt;
::[[File:PushEvents.png]]&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Passez à l&#039;onglet &#039;&#039;&#039;Code&#039;&#039;&#039; en appuyant sur F12.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Définissez les gestionnaires d&#039;événement comme suit :&lt;br /&gt;
:&#039;&#039;&#039;{{Delphi}}&#039;&#039;&#039; :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
implementation&lt;br /&gt;
&lt;br /&gt;
{$R *.fmx}&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.PushEvents1DeviceRegistered(Sender: TObject);&lt;br /&gt;
begin&lt;br /&gt;
  Memo1.Lines.Add(&#039;Device Registered&#039;);&lt;br /&gt;
  Memo1.Lines.Add(&#039;&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.PushEvents1DeviceTokenReceived(Sender: TObject);&lt;br /&gt;
begin&lt;br /&gt;
  Memo1.Lines.Add(&#039;Device Token Received&#039;);&lt;br /&gt;
  Memo1.Lines.Add(&#039;&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.PushEvents1DeviceTokenRequestFailed(Sender: TObject;&lt;br /&gt;
  const AErrorMessage: string);&lt;br /&gt;
begin&lt;br /&gt;
  Memo1.Lines.Add(&#039;Device Token Request Failed&#039;);&lt;br /&gt;
  Memo1.Lines.Add(AErrorMessage);&lt;br /&gt;
  Memo1.Lines.Add(&#039;&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.PushEvents1PushReceived(Sender: TObject;&lt;br /&gt;
  const AData: TPushData);&lt;br /&gt;
begin&lt;br /&gt;
  Memo1.Lines.Add(&#039;Device push received&#039;);&lt;br /&gt;
  Memo1.Lines.Add(AData.Message);&lt;br /&gt;
  Memo1.Lines.Add(&#039;&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
end.&amp;lt;/source&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;C++&#039;&#039;&#039; :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
//--------------------------------------------------------------------------&lt;br /&gt;
void __fastcall TForm1::PushEvents1DeviceRegistered(TObject *Sender)&lt;br /&gt;
{&lt;br /&gt;
   Memo1-&amp;gt;Lines-&amp;gt;Add(&amp;quot;Device Registered&amp;quot;);&lt;br /&gt;
   Memo1-&amp;gt;Lines-&amp;gt;Add(&amp;quot;&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
//--------------------------------------------------------------------------&lt;br /&gt;
void __fastcall TForm1::PushEvents1DeviceTokenReceived(TObject *Sender)&lt;br /&gt;
{&lt;br /&gt;
   Memo1-&amp;gt;Lines-&amp;gt;Add(&amp;quot;Device Token Received&amp;quot;);&lt;br /&gt;
   Memo1-&amp;gt;Lines-&amp;gt;Add(&amp;quot;&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
//--------------------------------------------------------------------------&lt;br /&gt;
void __fastcall TForm1::PushEvents1DeviceTokenRequestFailed(TObject *Sender, const UnicodeString AErrorMessage)&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  Memo1-&amp;gt;Lines-&amp;gt;Add(&amp;quot;Device Token Request Failed&amp;quot;);&lt;br /&gt;
  Memo1-&amp;gt;Lines-&amp;gt;Add(AErrorMessage);&lt;br /&gt;
  Memo1-&amp;gt;Lines-&amp;gt;Add(&amp;quot;&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
//--------------------------------------------------------------------------&lt;br /&gt;
void __fastcall TForm1::PushEvents1PushReceived(TObject *Sender, TPushData * const AData)&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  Memo1-&amp;gt;Lines-&amp;gt;Add(&amp;quot;Push Received&amp;quot;);&lt;br /&gt;
  Memo1-&amp;gt;Lines-&amp;gt;Add(AData-&amp;gt;Message);&lt;br /&gt;
  Memo1-&amp;gt;Lines-&amp;gt;Add(&amp;quot;&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
//--------------------------------------------------------------------------&amp;lt;/source&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Paramètres Android==&lt;br /&gt;
&lt;br /&gt;
{{Note| Pour savoir si votre périphérique Android prend en charge GCM, consultez [http://developer.android.com/google/gcm/gcm.html GCM Overview]}}. &lt;br /&gt;
&lt;br /&gt;
===Paramètres du projet===&lt;br /&gt;
&lt;br /&gt;
Pour permettre à votre application de recevoir des notifications distantes :&lt;br /&gt;
&lt;br /&gt;
#Cliquez avec le bouton droit sur votre projet dans le &#039;&#039;&#039;Gestionnaire de projets&#039;&#039;&#039;.&lt;br /&gt;
#Choisissez {{menu| Projet &amp;amp;gt; Options &amp;amp;gt; Liste des droits}}.&lt;br /&gt;
#Définissez la valeur &#039;&#039;&#039;Recevoir les notifications push&#039;&#039;&#039; sur {{True}}.&lt;br /&gt;
&lt;br /&gt;
{{Note| Si vous voulez activer une notification même lorsque l&#039;application n&#039;est pas en cours d&#039;exécution au moment où la notification distante est reçue, vous devez recenser une classe de service. Cette classe de service Java va créer une entrée dans le centre de notification du périphérique Android. Si vous ne voulez pas avoir d&#039;éléments dans le centre de notifications, vous pouvez ignorer cette étape.}}&lt;br /&gt;
&lt;br /&gt;
Vous devez inclure une entrée supplémentaire dans le fichier [[Fichier manifest d&#039;application Android (AndroidManifest.xml)|AndroidManifest.xml]] du projet, en [[Préparation d&#039;une application Android pour son déploiement#Personnalisation de votre fichier AndroidManifest.xml|personnalisant le fichier AndroidManifest.template.xml]]. Recherchez l&#039;indicateur suivant dans le fichier &#039;&#039;&#039;AndroidManifest.template.xml&#039;&#039;&#039; de votre projet :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;%receivers%&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ajoutez le code suivant sous la balise :&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;service android:name=&amp;quot;com.embarcadero.gcm.notifications.GCMIntentService&amp;quot; /&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pensez à apporter les modifications suivantes à votre code :&lt;br /&gt;
&lt;br /&gt;
* Avant d&#039;appliquer vos paramètres de projet, vous devez recenser le GCM sur un thread d&#039;arrière-plan.&lt;br /&gt;
** Vous pouvez assigner la propriété {{Path|&#039;TPushEvents.Active&#039;}} sur le thread principal sans déclencher d&#039;instance de l&#039;exception Java {{Path|&#039;IOException&#039;}}.&lt;br /&gt;
** Vous pouvez assigner la propriété {{Path|&#039;TPushServiceConnection.Active&#039;}} sur le thread principal sans déclencher d&#039;instance de l&#039;exception Java {{Path|&#039;IOException&#039;}}.&lt;br /&gt;
&lt;br /&gt;
* Le changement d&#039;état en {{Path|&#039;Starting&#039;}} est maintenant supporté.&lt;br /&gt;
** Les plates-formes {{Path|&#039;Android&#039;}} et {{Path|&#039;iOS&#039;}} commencent à avoir un comportement identique par rapport au cycle de vie du {{Path|push service}}.&lt;br /&gt;
** Vous pouvez maintenant tester si le {{Path|&#039;push service&#039;}} saisi est passé à l&#039;état {{Path|&#039;Starting&#039;}} lors d&#039;un changement de connexion, en utilisant le code suivant :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm1.OnServiceConnectionChange(Sender: TObject; PushChanges: TPushService.TChanges);&lt;br /&gt;
begin&lt;br /&gt;
  if TPushService.TChange.Status in PushChanges then&lt;br /&gt;
  begin&lt;br /&gt;
    if FPushService.Status = TPushService.TStatus.Starting then&lt;br /&gt;
    begin&lt;br /&gt;
      Memo1.Lines.Add(&#039;GCM registration is going to start.&#039;); &lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Les {{Path|gestionnaires d&#039;événement}} sont maintenant appelés sur le thread principal.&lt;br /&gt;
** Les gestionnaires d&#039;événement {{Path|&#039;TPushEvents.OnDeviceRegistered&#039;}}, {{Path|&#039;TPushEvents.OnDeviceTokenReceived&#039;}}, {{Path|&#039;TPushEvents.OnDeviceTokenRequestFailed&#039;}} et {{Path|&#039;TPushEvents.OnPushReceived&#039;}} n&#039;ont plus besoin d&#039;utiliser {{Path|&#039;TThread.Synchronize&#039;}} lorsqu&#039;ils interagissent avec des contrôles visuels.&lt;br /&gt;
** Les gestionnaires d&#039;événement {{Path|&#039;TPushServiceConnection.OnChange&#039;}} et {{Path|&#039;TPushServiceConnection.OnReceiveNotification&#039;}} n&#039;ont plus besoin d&#039;utiliser {{Path|&#039;TThread.Synchronize&#039;}} lorsqu&#039;ils interagissent avec des contrôles visuels.&lt;br /&gt;
&lt;br /&gt;
==Paramètres iOS==&lt;br /&gt;
&lt;br /&gt;
===Paramètres du projet===&lt;br /&gt;
&lt;br /&gt;
#Cliquez avec le bouton droit sur votre projet dans le &#039;&#039;&#039;Gestionnaire de projets&#039;&#039;&#039;.&lt;br /&gt;
#Choisissez {{menu|Projet &amp;amp;gt; Options &amp;amp;gt; Informations de version}}, et définissez la clé &#039;&#039;&#039;CFBundleIdentifier&#039;&#039;&#039;. La valeur doit être identique à celle de l&#039;identificateur de votre app. C&#039;est la valeur &#039;&#039;&#039;Bundle ID&#039;&#039;&#039; de [[Configuration du service de messagerie#Création d&#039;un ID d&#039;app iOS sur le site Apple Developer Program|la section Création d&#039;un ID d&#039;app iOS sur le site Apple Developer Program]].&lt;br /&gt;
&lt;br /&gt;
:[[File:VersionInfo.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==Exécution de votre application sur un périphérique mobile==&lt;br /&gt;
&lt;br /&gt;
Votre application est maintenant prête pour s&#039;exécuter sur un simulateur ou votre périphérique mobile connecté.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Pour exécuter votre application&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Dans la [[Fenêtre Projets|fenêtre Projets]], sélectionnez votre plate-forme cible.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Choisissez l&#039;une des commandes suivantes :&lt;br /&gt;
*&amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt; &#039;&#039;&#039;Exécuter &amp;amp;gt; Exécuter&#039;&#039;&#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt; &#039;&#039;&#039;Exécuter &amp;amp;gt; Exécuter sans déboguer&#039;&#039;&#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Cliquez sur la case à cocher &#039;&#039;&#039;Active&#039;&#039;&#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Accédez à Parse, Kinvey ou [[Envoi de messages Push de RAD Server|Envoi de messages Push de RAD Server]] et envoyez un nouveau message Push :&amp;lt;br /&amp;gt;&lt;br /&gt;
{{Note| Vous pouvez utiliser votre propre application RAD Server pour envoyer [[Notifications Push de RAD Server|des messages de notification Push RAD Server]].}}&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039; Parse&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[File:ParseHello.png|550px]]&lt;br /&gt;
|}&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039; Kinvey&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[File:HelloKinvey.png|550px]]&lt;br /&gt;
|}&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039; RAD Server (EMS)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[File:HelloEMS.png|550px]]&lt;br /&gt;
|}&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Passez à votre périphérique mobile :&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039; iOS&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[File:IosDevice.png|450px]]&lt;br /&gt;
|}&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039; Android&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[File:AndroidHello.png|400px]]&lt;br /&gt;
|}&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039; iOS RAD Server (EMS)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[File:IOSEMSHello.png|400px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mettez votre app en arrière-plan et envoyez une autre notification Push depuis Parse ou Kinvey. Accédez maintenant à &#039;&#039;&#039;Notifications&#039;&#039;&#039; :&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039; iOS&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[File:Pushios.png|500px]]&lt;br /&gt;
|}&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039; Android&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[File:AndNotificationCenter.png|400px]]&lt;br /&gt;
|}&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Tutoriel mobile : Utilisation des notifications (iOS et Android)|Tutoriel mobile : Utilisation des notifications (iOS et Android)]]&lt;br /&gt;
*[[Tutoriel mobile : Utilisation de BaaS pour le stockage backend (iOS et Android)|Tutoriel mobile : Utilisation de BaaS pour le stockage backend (iOS et Android)]]&lt;br /&gt;
*[[RAD Server (EMS)|RAD Server (EMS)]]&lt;br /&gt;
*[[Notifications Push de RAD Server|Notifications Push de RAD Server]]&lt;br /&gt;
*[[Liste des droits|Liste des droits]]&lt;br /&gt;
&lt;br /&gt;
===Exemples de code===&lt;br /&gt;
&lt;br /&gt;
*[[samp_en:REST.BaaS ToDo Sample|Exemple BaaS ToDo]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Delphi]]&lt;br /&gt;
[[Category:FMX]]&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:IOS]]&lt;br /&gt;
[[Category:XE6]]&lt;br /&gt;
[[Category:Android]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Prendre_des_photos_en_utilisant_des_interfaces_FireMonkey&amp;diff=218882</id>
		<title>Prendre des photos en utilisant des interfaces FireMonkey</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Prendre_des_photos_en_utilisant_des_interfaces_FireMonkey&amp;diff=218882"/>
		<updated>2026-05-09T02:12:23Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : 1 révision importée : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Tutoriel mobile : Prendre une photo et la partager, et partager du texte (iOS et Android)}}&lt;br /&gt;
&lt;br /&gt;
Ce tutoriel explique comment prendre et gérer des photos sur vos périphériques mobiles en utilisant les interfaces [[lib_fr:FMX.MediaLibrary.IFMXPhotoLibrary|IFMXPhotoLibrary]] et [[lib_fr:FMX.MediaLibrary.IFMXCameraService|IFMXCameraService]].&amp;lt;br /&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Construction de l&#039;interface utilisateur pour votre application==&lt;br /&gt;
&lt;br /&gt;
Déposez les composants suivants sur le [[Concepteur de fiches|Concepteur de fiches]] :&lt;br /&gt;
&lt;br /&gt;
*Composant [[lib_fr:FMX.StdCtrls.TToolBar|TToolBar]]&lt;br /&gt;
**Sur la barre d&#039;outils, placez deux composants [[lib_fr:FMX.StdCtrls.TSpeedButton|TSpeedButton]]. Vous allez utiliser ces boutons pour prendre des photos avec la caméra du périphérique et les sélectionner dans la bibliothèque de photos du périphérique.&lt;br /&gt;
**Dans [[Inspecteur d&#039;objets|l&#039;inspecteur d&#039;objets]], spécifiez les propriétés suivantes pour ces boutons :&lt;br /&gt;
***Définissez la propriété &#039;&#039;&#039;StyleLookup&#039;&#039;&#039; sur &#039;&#039;&#039;cameratoolbuttonbordered&#039;&#039;&#039; et &#039;&#039;&#039;searchtoolbuttonbordered&#039;&#039;&#039;, respectivement.&lt;br /&gt;
***Définissez la propriété &#039;&#039;&#039;Align&#039;&#039;&#039; sur &#039;&#039;&#039;Left&#039;&#039;&#039; et &#039;&#039;&#039;Right&#039;&#039;&#039;, respectivement.&lt;br /&gt;
*Composant [[lib_fr:FMX.Objects.TImage|TImage]]&lt;br /&gt;
**Définissez la propriété &#039;&#039;&#039;Align&#039;&#039;&#039; sur &#039;&#039;&#039;Client&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Avant que vous définissiez le &#039;&#039;&#039;style&#039;&#039;&#039; ou la &#039;&#039;&#039;vue&#039;&#039;&#039; dans le [[Concepteur de fiches|Concepteur de fiches]], la fiche de cette application exemple doit maintenant ressembler à l&#039;écran suivant :&lt;br /&gt;
&lt;br /&gt;
[[File:AppMasterUserInterface.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{{Note| Pour plus d&#039;informations sur la sélection du &#039;&#039;&#039;style&#039;&#039;&#039; et des &#039;&#039;&#039;vues&#039;&#039;&#039;, voir [[Concepteur de fiches#Sélecteur de style|Sélecteur de style]] et [[Utilisation des vues FireMonkey|Utilisation des vues FireMonkey]].}}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Prise d&#039;une photo avec la caméra du périphérique==&lt;br /&gt;
&lt;br /&gt;
Pour prendre des photos avec une caméra de périphérique mobile, vous pouvez utiliser l&#039;interface [[lib_fr:FMX.MediaLibrary.IFMXCameraService|IFMXCameraService]]. Procédez comme suit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Ouvrez [[Editeur de code|l&#039;éditeur de code]] et ajoutez les lignes suivantes à votre code si elles ne sont pas déjà présentes :&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&#039;&#039;&#039;{{Delphi}}&#039;&#039;&#039; :&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
uses&lt;br /&gt;
  System.Messaging, System.Permissions, FMX.MediaLibrary, FMX.Platform;&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&#039;&#039;&#039;C++ :&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;System.Messaging.hpp&amp;gt;&lt;br /&gt;
#include &amp;lt;System.Permissions.hpp&amp;gt;&lt;br /&gt;
#include &amp;lt;FMX.MediaLibrary.hpp&amp;gt;&lt;br /&gt;
#include &amp;lt;FMX.Platform.hpp&amp;gt;&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Ajoutez l&#039;en-tête de procédure suivant à la section private de la définition de fiche :&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&#039;&#039;&#039;{{Delphi}}&#039;&#039;&#039; :&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
 procedure DoDidFinish(Image: TBitmap);&lt;br /&gt;
 procedure DoMessageListener(const Sender: TObject; const M: TMessage);&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&#039;&#039;&#039;C++ :&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void __fastcall DoDidFinish(TBitmap *Image);&lt;br /&gt;
void __fastcall DoMessageListener(const TObject *Sender, TMessage const *M);&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Dans la section implementation, définissez &#039;&#039;&#039;DoDidFinish&#039;&#039;&#039; et &#039;&#039;&#039;DoMessageListener&#039;&#039;&#039; comme suit :&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&#039;&#039;&#039;{{Delphi}}&#039;&#039;&#039; :&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
 procedure TForm1.DoDidFinish(Image: TBitmap);&lt;br /&gt;
begin&lt;br /&gt;
  Image1.Bitmap.Assign(Image);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.DoMessageListener(const Sender: TObject; const M: TMessage);&lt;br /&gt;
begin&lt;br /&gt;
  if M is TMessageDidFinishTakingImageFromLibrary then&lt;br /&gt;
    Image1.Bitmap.Assign(TMessageDidFinishTakingImageFromLibrary(M).Value);&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&#039;&#039;&#039;C++ :&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void __fastcall TForm1::DoDidFinish(TBitmap *Image) {&lt;br /&gt;
	Image1-&amp;gt;Bitmap-&amp;gt;Assign(Image);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void __fastcall TForm1::DoMessageListener(const TObject *Sender, TMessage const *M) {&lt;br /&gt;
	TMessageDidFinishTakingImageFromLibrary const *v = dynamic_cast&amp;lt;TMessageDidFinishTakingImageFromLibrary const *&amp;gt;(M);&lt;br /&gt;
	if (v) {&lt;br /&gt;
		Image1-&amp;gt;Bitmap-&amp;gt;Assign(v-&amp;gt;Value);&lt;br /&gt;
	}&lt;br /&gt;
}&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Sur le [[Concepteur de fiches|Concepteur de fiches]], double-cliquez sur le bouton &#039;&#039;&#039;SpeedButton1&#039;&#039;&#039; puis, dans [[Editeur de code|l&#039;éditeur de code]], implémentez le gestionnaire d&#039;événement &#039;&#039;&#039;onClick&#039;&#039;&#039; suivant :&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&#039;&#039;&#039;{{Delphi}}&#039;&#039;&#039; :&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm1.SpeedButton1Click(Sender: TObject);&lt;br /&gt;
var&lt;br /&gt;
  Service: IFMXCameraService;&lt;br /&gt;
  Params: TParamsPhotoQuery;&lt;br /&gt;
begin&lt;br /&gt;
  if TPlatformServices.Current.SupportsPlatformService(IFMXCameraService, Service) then&lt;br /&gt;
  begin&lt;br /&gt;
    Params.Editable := True;&lt;br /&gt;
    // Specifies whether to save a picture to device Photo Library&lt;br /&gt;
    Params.NeedSaveToAlbum := True;&lt;br /&gt;
    Params.RequiredResolution := TSize.Create(640, 640);&lt;br /&gt;
    Params.OnDidFinishTaking := DoDidFinish;&lt;br /&gt;
{$IF Defined(ANDROID)}&lt;br /&gt;
    if TOSVersion.Check(11) then&lt;br /&gt;
      Service.TakePhoto(SpeedButton1, Params)&lt;br /&gt;
    else&lt;br /&gt;
      PermissionsService.RequestPermissions([&#039;android.permission.WRITE_EXTERNAL_STORAGE&#039;],&lt;br /&gt;
        procedure(const Permissions: TClassicStringDynArray; const GrantResults: TClassicPermissionStatusDynArray)&lt;br /&gt;
        begin&lt;br /&gt;
          if (Length(GrantResults) = 1) and (GrantResults[0] = TPermissionStatus.Granted) then&lt;br /&gt;
            Service.TakePhoto(SpeedButton1, Params)&lt;br /&gt;
          else&lt;br /&gt;
            ShowMessage(&#039;Cannot take a photo because the required permission has not been granted&#039;)&lt;br /&gt;
        end);&lt;br /&gt;
{$ELSE}&lt;br /&gt;
    Service.TakePhoto(SpeedButton1, Params);&lt;br /&gt;
{$ENDIF}&lt;br /&gt;
  end&lt;br /&gt;
  else&lt;br /&gt;
    ShowMessage(&#039;This device does not support the camera service&#039;);&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&#039;&#039;&#039;C++ :&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void __fastcall TForm1::SpeedButton1Click(TObject *Sender) {&lt;br /&gt;
    _di_IFMXCameraService service;&lt;br /&gt;
    TParamsPhotoQuery params;&lt;br /&gt;
    if (TPlatformServices::Current-&amp;gt;SupportsPlatformService(__uuidof(IFMXCameraService), &amp;amp;service)) {&lt;br /&gt;
        params.Editable = true;&lt;br /&gt;
        // Specifies whether to save a picture to device Photo Library&lt;br /&gt;
        params.NeedSaveToAlbum = true;&lt;br /&gt;
        params.RequiredResolution = TSize(640, 640);&lt;br /&gt;
        params.OnDidFinishTaking = DoDidFinish;&lt;br /&gt;
#if defined(_PLAT_ANDROID)&lt;br /&gt;
        if (TOSVersion::Check(11)) {&lt;br /&gt;
            service-&amp;gt;TakePhoto(SpeedButton1, params);&lt;br /&gt;
        } else {&lt;br /&gt;
            PermissionsService()-&amp;gt;RequestPermissions({ &amp;quot;android.permission.WRITE_EXTERNAL_STORAGE&amp;quot; },&lt;br /&gt;
                [this, service, params](const TClassicStringDynArray Permissions, const TClassicPermissionStatusDynArray GrantResults) {&lt;br /&gt;
                    if (GrantResults.Length == 1 &amp;amp;&amp;amp; GrantResults[0] == TPermissionStatus::Granted) {&lt;br /&gt;
                        service-&amp;gt;TakePhoto(SpeedButton1, params);&lt;br /&gt;
                    } else {&lt;br /&gt;
                        ShowMessage(&amp;quot;Cannot take a photo because the required permission has not been granted&amp;quot;);&lt;br /&gt;
                    }&lt;br /&gt;
                });&lt;br /&gt;
        }&lt;br /&gt;
#else&lt;br /&gt;
        service-&amp;gt;TakePhoto(SpeedButton1, params);&lt;br /&gt;
#endif&lt;br /&gt;
    } else {&lt;br /&gt;
        ShowMessage(&amp;quot;This device does not support the camera service&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note| Lors de la création d&#039;un projet d&#039;application FireMonkey, l&#039;option &#039;&#039;&#039;’Camera project’&#039;&#039;&#039; qui se trouve dans {{Menu|Projet &amp;amp;gt; Options &amp;amp;gt; Application &amp;amp;gt; [[Permissions d&#039;utilisation|Permissions d&#039;utilisation]]}} et qui est activée par défaut, a une incidence inattendue sur le comportement de l&#039;application. Même si l&#039;application n&#039;accède pas directement à l&#039;appareil photo (par ex. via le composant [[lib_fr:FMX.Media.TCameraComponent|TCameraComponent]]) et qu&#039;elle demande à une autre application, comme l&#039;application appareil photo intégrée, de le faire à sa place, dès que la permission d&#039;utilisation &amp;lt;code&amp;gt;CAMERA&amp;lt;/code&amp;gt; est déclarée dans le fichier manifeste, elle devient une permission d&#039;utilisation requise inattendue pour le service de plate-forme [[lib_fr:FMX.MediaLibrary.IFMXCameraService|IFMXCameraService]]. Il est donc conseillé de désactiver l&#039;option &#039;&#039;&#039;&#039;Camera project’&#039;&#039;&#039; afin d&#039;éviter que vos applications ne réclament une permission d&#039;utilisation non nécessaire.}}&lt;br /&gt;
&lt;br /&gt;
{{Note| Les nouvelles implémentations derrière les services de plate-forme [[lib_fr:FMX.MediaLibrary.IFMXCameraService|IFMXCameraService]] et [[lib_fr:FMX.MediaLibrary.IFMXTakenImageService|IFMXTakenImageService]] ne prennent plus en charge l&#039;édition de l&#039;image obtenue, car cette opération n&#039;est pas supportée par la plate-forme &#039;Android&#039;. En conséquence, le champ [[lib_fr:FMX.MediaLibrary.TParamsPhotoQuery.Editable|TParamsPhotoQuery.Editable]] est ignoré. }}&lt;br /&gt;
&lt;br /&gt;
===Exécution de l&#039;application===&lt;br /&gt;
&lt;br /&gt;
Exécutez l&#039;application sur votre périphérique mobile en appuyant sur &#039;&#039;&#039;F9&#039;&#039;&#039; ou en choisissant &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Exécuter &amp;amp;gt; Exécuter&#039;&#039;&#039;&amp;lt;/font&amp;gt;. Pour activer la caméra du périphérique, appuyez sur l&#039;icône de la caméra sur la barre d&#039;outils de votre application :&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039; iOS&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039; Android&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[File:TakePicture IOS.png|300px]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; |&lt;br /&gt;
[[File:TakePicture Android.png|300px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Pour utiliser cette photo :&lt;br /&gt;
&lt;br /&gt;
*Sur les périphériques Android, cliquez sur &#039;&#039;&#039;OK&#039;&#039;&#039;.&lt;br /&gt;
*Sur les périphériques iOS, cliquez sur &#039;&#039;&#039;Use&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Enregistrement d&#039;une photo dans la bibliothèque de photos du périphérique===&lt;br /&gt;
&lt;br /&gt;
Pour que votre application enregistre automatiquement les photos prises par la caméra du périphérique dans la bibliothèque de photos de ce périphérique, définissez le champ &#039;&#039;&#039;[[lib_fr:FMX.MediaLibrary.TParamsPhotoQuery.NeedSaveToAlbum|NeedSaveToAlbum]]&#039;&#039;&#039; du second paramètre de la méthode &#039;&#039;&#039;[[lib_fr:FMX.MediaLibrary.IFMXCameraService.TakePhoto|TakePhoto]]&#039;&#039;&#039; sur &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; (voir les extraits de code à [[#Prise d&#039;une photo avec la caméra du périphérique|l&#039;étape 4 de la procédure ci-dessus]]).&lt;br /&gt;
&lt;br /&gt;
Votre application enregistre les photos dans un album au sein de la bibliothèque de photos du périphérique. Le nom de l&#039;album dépend du système d&#039;exploitation du périphérique, comme indiqué ci-dessous :&lt;br /&gt;
&lt;br /&gt;
:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;padding-left: 2em&amp;quot; |&#039;&#039;&#039;Version du système d&#039;exploitation&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;&lt;br /&gt;
! style=&amp;quot;padding-left: 2em&amp;quot; |&#039;&#039;&#039;Nom de l&#039;album&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 2em&amp;quot; |iOS&lt;br /&gt;
| style=&amp;quot;padding-left: 2em&amp;quot; |Pellicule&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 2em&amp;quot; |Android&lt;br /&gt;
| style=&amp;quot;padding-left: 2em&amp;quot; |Caméra&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Sélection d&#039;une photo dans la bibliothèque de photos du périphérique==&lt;br /&gt;
&lt;br /&gt;
{{FM}} définit l&#039;interface [[lib_fr:FMX.MediaLibrary.IFMXTakenImageService|IFMXTakenImageService]] qui vous permet de sélectionner une photo à partir de la bibliothèque de photos du périphérique.&lt;br /&gt;
&lt;br /&gt;
Pour que votre application sélectionne une photo à partir de la bibliothèque de photos du périphérique, procédez comme suit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Sur le [[Concepteur de fiches|Concepteur de fiches]], double-cliquez sur le bouton &#039;&#039;&#039;SpeedButton2&#039;&#039;&#039; (afin de choisir une photo), puis dans [[Editeur de code|l&#039;éditeur de code]], implémentez le gestionnaire d&#039;événement &#039;&#039;&#039;onClick&#039;&#039;&#039; suivant :&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&#039;&#039;&#039;{{Delphi}}&#039;&#039;&#039; :&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm1.SpeedButton2Click(Sender: TObject);&lt;br /&gt;
var&lt;br /&gt;
  Service: IFMXTakenService;&lt;br /&gt;
  Params: TParamsPhotoQuery;&lt;br /&gt;
begin&lt;br /&gt;
  if TPlatformServices.Current.SupportsPlatformService(IFMXTakenService, Service) then&lt;br /&gt;
  begin&lt;br /&gt;
    Params.RequiredResolution := TSize.Create(640, 640);&lt;br /&gt;
    Params.OnDidFinishTaking := DoDidFinish;&lt;br /&gt;
    Service.TakeImageFromLibrary(SpeedButton2, Params);&lt;br /&gt;
  end;&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&#039;&#039;&#039;C++ :&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void __fastcall TForm1::SpeedButton2Click(TObject *Sender) {&lt;br /&gt;
    _di_IFMXTakenImageService service;&lt;br /&gt;
    TParamsPhotoQuery params;&lt;br /&gt;
    if (TPlatformServices::Current-&amp;gt;SupportsPlatformService(__uuidof(IFMXTakenImageService), &amp;amp;service) {&lt;br /&gt;
        params.RequiredResolution = TSize(640, 640);&lt;br /&gt;
        params.OnDidFinishTaking = DoDidFinish;&lt;br /&gt;
        service-&amp;gt;TakeImageFromLibrary(SpeedButton2, params);&lt;br /&gt;
    } else {&lt;br /&gt;
        ShowMessage(&amp;quot;This device does not support the photo library service&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Dans la vue [[Vue Structure|Structure]], sélectionnez &#039;&#039;&#039;Form1&#039;&#039;&#039;, puis dans [[Inspecteur d&#039;objets|l&#039;inspecteur d&#039;objets]], ouvrez l&#039;onglet &#039;&#039;&#039;Evénements&#039;&#039;&#039;, double-cliquez sur un champ vide en regard de &#039;&#039;&#039;OnCreate&#039;&#039;&#039;, et implémentez le gestionnaire d&#039;événement &#039;&#039;&#039;onFormCreate&#039;&#039;&#039; suivant : &amp;lt;br /&amp;gt;&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&#039;&#039;&#039;{{Delphi}}&#039;&#039;&#039; :&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
 procedure TForm1.FormCreate(Sender: TObject);&lt;br /&gt;
begin&lt;br /&gt;
TMessageManager.DefaultManager.SubscribeToMessage(TMessageDidFinishTakingImageFromLibrary, DoMessageListener);&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&#039;&#039;&#039;C++ :&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void __fastcall TForm1::FormCreate(TObject *Sender) {&lt;br /&gt;
	TMessageManager::DefaultManager-&amp;gt;SubscribeToMessage(__classid(TMessageDidFinishTakingImageFromLibrary),&lt;br /&gt;
		TMessageListenerMethod(&amp;amp;DoMessageListener));&lt;br /&gt;
}&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Compilez et exécutez votre application. Pour sélectionner une photo, appuyez sur le bouton de recherche, puis sélectionnez la photo de votre choix dans la bibliothèque de photos du périphérique.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039; iOS&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039; Android&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; |&lt;br /&gt;
[[File:TakePhotoFromLibraryAction.PNG|300px]] &amp;lt;br /&amp;gt;&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; |&lt;br /&gt;
[[File:Android SelectfromLibrary.png|300px]]&lt;br /&gt;
|}&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{{Note| Sur les iPad, l&#039;application affiche des miniatures des photos dans une fenêtre popup en regard de l&#039;élément de contrôle spécifié dans le premier paramètre de la méthode [[lib_fr:FMX.MediaLibrary.IFMXTakenImageService.TakeImageFromLibrary|TakeImageFromLibrary]]. Dans votre projet exemple, &#039;&#039;&#039;SpeedButton2&#039;&#039;&#039; fait référence au bouton de recherche.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note| Les nouvelles implémentations derrière les services de plate-forme [[lib_fr:FMX.MediaLibrary.IFMXCameraService|IFMXCameraService]] et [[lib_fr:FMX.MediaLibrary.IFMXTakenImageService|IFMXTakenImageService]] ne prennent plus en charge l&#039;édition de l&#039;image obtenue, car cette opération n&#039;est pas supportée par la plate-forme &#039;Android&#039;. En conséquence, le champ [[lib_fr:FMX.MediaLibrary.TParamsPhotoQuery.Editable|TParamsPhotoQuery.Editable]] est ignoré. }}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Prendre et partager des photos et du texte en utilisant les listes d&#039;actions|Prendre et partager des photos et du texte en utilisant les listes d&#039;actions]]&lt;br /&gt;
*[[samp_en:FMX.CameraComponent Sample|Exemple FMX.CameraComponent]]&lt;br /&gt;
&lt;br /&gt;
*[[lib_fr:FMX.StdCtrls.TButton|FMX.StdCtrls.TButton]]&lt;br /&gt;
*[[lib_fr:FMX.Objects.TImage|FMX.Objects.TImage]]&lt;br /&gt;
*[[lib_fr:FMX.MediaLibrary|FMX.MediaLibrary]]&lt;br /&gt;
*[[lib_fr:FMX.MediaLibrary.IFMXPhotoLibrary|IFMXPhotoLibrary]]&lt;br /&gt;
*[[lib_fr:FMX.MediaLibrary.IFMXCameraService|IFMXCameraService]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Delphi]]&lt;br /&gt;
[[Category:FMX]]&lt;br /&gt;
[[Category:IOS]]&lt;br /&gt;
[[Category:XE8]]&lt;br /&gt;
[[Category:Android]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Prendre_des_photos_en_utilisant_des_interfaces_FireMonkey&amp;diff=218881</id>
		<title>Prendre des photos en utilisant des interfaces FireMonkey</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Prendre_des_photos_en_utilisant_des_interfaces_FireMonkey&amp;diff=218881"/>
		<updated>2026-05-09T02:12:21Z</updated>

		<summary type="html">&lt;p&gt;Yukikoi : LOC-23446&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Tutoriel mobile : Prendre une photo et la partager, et partager du texte (iOS et Android)}}&lt;br /&gt;
&lt;br /&gt;
Ce tutoriel explique comment prendre et gérer des photos sur vos périphériques mobiles en utilisant les interfaces [[lib_fr:FMX.MediaLibrary.IFMXPhotoLibrary|IFMXPhotoLibrary]] et [[lib_fr:FMX.MediaLibrary.IFMXCameraService|IFMXCameraService]].&amp;lt;br /&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Construction de l&#039;interface utilisateur pour votre application==&lt;br /&gt;
&lt;br /&gt;
Déposez les composants suivants sur le [[Concepteur de fiches|Concepteur de fiches]] :&lt;br /&gt;
&lt;br /&gt;
*Composant [[lib_fr:FMX.StdCtrls.TToolBar|TToolBar]]&lt;br /&gt;
**Sur la barre d&#039;outils, placez deux composants [[lib_fr:FMX.StdCtrls.TSpeedButton|TSpeedButton]]. Vous allez utiliser ces boutons pour prendre des photos avec la caméra du périphérique et les sélectionner dans la bibliothèque de photos du périphérique.&lt;br /&gt;
**Dans [[Inspecteur d&#039;objets|l&#039;inspecteur d&#039;objets]], spécifiez les propriétés suivantes pour ces boutons :&lt;br /&gt;
***Définissez la propriété &#039;&#039;&#039;StyleLookup&#039;&#039;&#039; sur &#039;&#039;&#039;cameratoolbuttonbordered&#039;&#039;&#039; et &#039;&#039;&#039;searchtoolbuttonbordered&#039;&#039;&#039;, respectivement.&lt;br /&gt;
***Définissez la propriété &#039;&#039;&#039;Align&#039;&#039;&#039; sur &#039;&#039;&#039;Left&#039;&#039;&#039; et &#039;&#039;&#039;Right&#039;&#039;&#039;, respectivement.&lt;br /&gt;
*Composant [[lib_fr:FMX.Objects.TImage|TImage]]&lt;br /&gt;
**Définissez la propriété &#039;&#039;&#039;Align&#039;&#039;&#039; sur &#039;&#039;&#039;Client&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Avant que vous définissiez le &#039;&#039;&#039;style&#039;&#039;&#039; ou la &#039;&#039;&#039;vue&#039;&#039;&#039; dans le [[Concepteur de fiches|Concepteur de fiches]], la fiche de cette application exemple doit maintenant ressembler à l&#039;écran suivant :&lt;br /&gt;
&lt;br /&gt;
[[File:AppMasterUserInterface.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{{Note| Pour plus d&#039;informations sur la sélection du &#039;&#039;&#039;style&#039;&#039;&#039; et des &#039;&#039;&#039;vues&#039;&#039;&#039;, voir [[Concepteur de fiches#Sélecteur de style|Sélecteur de style]] et [[Utilisation des vues FireMonkey|Utilisation des vues FireMonkey]].}}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Prise d&#039;une photo avec la caméra du périphérique==&lt;br /&gt;
&lt;br /&gt;
Pour prendre des photos avec une caméra de périphérique mobile, vous pouvez utiliser l&#039;interface [[lib_fr:FMX.MediaLibrary.IFMXCameraService|IFMXCameraService]]. Procédez comme suit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Ouvrez [[Editeur de code|l&#039;éditeur de code]] et ajoutez les lignes suivantes à votre code si elles ne sont pas déjà présentes :&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&#039;&#039;&#039;{{Delphi}}&#039;&#039;&#039; :&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
uses&lt;br /&gt;
  System.Messaging, System.Permissions, FMX.MediaLibrary, FMX.Platform;&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&#039;&#039;&#039;C++ :&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;System.Messaging.hpp&amp;gt;&lt;br /&gt;
#include &amp;lt;System.Permissions.hpp&amp;gt;&lt;br /&gt;
#include &amp;lt;FMX.MediaLibrary.hpp&amp;gt;&lt;br /&gt;
#include &amp;lt;FMX.Platform.hpp&amp;gt;&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Ajoutez l&#039;en-tête de procédure suivant à la section private de la définition de fiche :&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&#039;&#039;&#039;{{Delphi}}&#039;&#039;&#039; :&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
 procedure DoDidFinish(Image: TBitmap);&lt;br /&gt;
 procedure DoMessageListener(const Sender: TObject; const M: TMessage);&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&#039;&#039;&#039;C++ :&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void __fastcall DoDidFinish(TBitmap *Image);&lt;br /&gt;
void __fastcall DoMessageListener(const TObject *Sender, TMessage const *M);&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Dans la section implementation, définissez &#039;&#039;&#039;DoDidFinish&#039;&#039;&#039; et &#039;&#039;&#039;DoMessageListener&#039;&#039;&#039; comme suit :&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&#039;&#039;&#039;{{Delphi}}&#039;&#039;&#039; :&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
 procedure TForm1.DoDidFinish(Image: TBitmap);&lt;br /&gt;
begin&lt;br /&gt;
  Image1.Bitmap.Assign(Image);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.DoMessageListener(const Sender: TObject; const M: TMessage);&lt;br /&gt;
begin&lt;br /&gt;
  if M is TMessageDidFinishTakingImageFromLibrary then&lt;br /&gt;
    Image1.Bitmap.Assign(TMessageDidFinishTakingImageFromLibrary(M).Value);&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&#039;&#039;&#039;C++ :&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void __fastcall TForm1::DoDidFinish(TBitmap *Image) {&lt;br /&gt;
	Image1-&amp;gt;Bitmap-&amp;gt;Assign(Image);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void __fastcall TForm1::DoMessageListener(const TObject *Sender, TMessage const *M) {&lt;br /&gt;
	TMessageDidFinishTakingImageFromLibrary const *v = dynamic_cast&amp;lt;TMessageDidFinishTakingImageFromLibrary const *&amp;gt;(M);&lt;br /&gt;
	if (v) {&lt;br /&gt;
		Image1-&amp;gt;Bitmap-&amp;gt;Assign(v-&amp;gt;Value);&lt;br /&gt;
	}&lt;br /&gt;
}&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Sur le [[Concepteur de fiches|Concepteur de fiches]], double-cliquez sur le bouton &#039;&#039;&#039;SpeedButton1&#039;&#039;&#039; puis, dans [[Editeur de code|l&#039;éditeur de code]], implémentez le gestionnaire d&#039;événement &#039;&#039;&#039;onClick&#039;&#039;&#039; suivant :&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&#039;&#039;&#039;{{Delphi}}&#039;&#039;&#039; :&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm1.SpeedButton1Click(Sender: TObject);&lt;br /&gt;
var&lt;br /&gt;
  Service: IFMXCameraService;&lt;br /&gt;
  Params: TParamsPhotoQuery;&lt;br /&gt;
begin&lt;br /&gt;
  if TPlatformServices.Current.SupportsPlatformService(IFMXCameraService, Service) then&lt;br /&gt;
  begin&lt;br /&gt;
    Params.Editable := True;&lt;br /&gt;
    // Specifies whether to save a picture to device Photo Library&lt;br /&gt;
    Params.NeedSaveToAlbum := True;&lt;br /&gt;
    Params.RequiredResolution := TSize.Create(640, 640);&lt;br /&gt;
    Params.OnDidFinishTaking := DoDidFinish;&lt;br /&gt;
{$IF Defined(ANDROID)}&lt;br /&gt;
    if TOSVersion.Check(11) then&lt;br /&gt;
      Service.TakePhoto(SpeedButton1, Params)&lt;br /&gt;
    else&lt;br /&gt;
      PermissionsService.RequestPermissions([&#039;android.permission.WRITE_EXTERNAL_STORAGE&#039;],&lt;br /&gt;
        procedure(const Permissions: TClassicStringDynArray; const GrantResults: TClassicPermissionStatusDynArray)&lt;br /&gt;
        begin&lt;br /&gt;
          if (Length(GrantResults) = 1) and (GrantResults[0] = TPermissionStatus.Granted) then&lt;br /&gt;
            Service.TakePhoto(SpeedButton1, Params)&lt;br /&gt;
          else&lt;br /&gt;
            ShowMessage(&#039;Cannot take a photo because the required permission has not been granted&#039;)&lt;br /&gt;
        end);&lt;br /&gt;
{$ELSE}&lt;br /&gt;
    Service.TakePhoto(SpeedButton1, Params);&lt;br /&gt;
{$ENDIF}&lt;br /&gt;
  end&lt;br /&gt;
  else&lt;br /&gt;
    ShowMessage(&#039;This device does not support the camera service&#039;);&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&#039;&#039;&#039;C++ :&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void __fastcall TForm1::SpeedButton1Click(TObject *Sender) {&lt;br /&gt;
    _di_IFMXCameraService service;&lt;br /&gt;
    TParamsPhotoQuery params;&lt;br /&gt;
    if (TPlatformServices::Current-&amp;gt;SupportsPlatformService(__uuidof(IFMXCameraService), &amp;amp;service)) {&lt;br /&gt;
        params.Editable = true;&lt;br /&gt;
        // Specifies whether to save a picture to device Photo Library&lt;br /&gt;
        params.NeedSaveToAlbum = true;&lt;br /&gt;
        params.RequiredResolution = TSize(640, 640);&lt;br /&gt;
        params.OnDidFinishTaking = DoDidFinish;&lt;br /&gt;
#if defined(_PLAT_ANDROID)&lt;br /&gt;
        if (TOSVersion::Check(11)) {&lt;br /&gt;
            service-&amp;gt;TakePhoto(SpeedButton1, params);&lt;br /&gt;
        } else {&lt;br /&gt;
            PermissionsService()-&amp;gt;RequestPermissions({ &amp;quot;android.permission.WRITE_EXTERNAL_STORAGE&amp;quot; },&lt;br /&gt;
                [this, service, params](const TClassicStringDynArray Permissions, const TClassicPermissionStatusDynArray GrantResults) {&lt;br /&gt;
                    if (GrantResults.Length == 1 &amp;amp;&amp;amp; GrantResults[0] == TPermissionStatus::Granted) {&lt;br /&gt;
                        service-&amp;gt;TakePhoto(SpeedButton1, params);&lt;br /&gt;
                    } else {&lt;br /&gt;
                        ShowMessage(&amp;quot;Cannot take a photo because the required permission has not been granted&amp;quot;);&lt;br /&gt;
                    }&lt;br /&gt;
                });&lt;br /&gt;
        }&lt;br /&gt;
#else&lt;br /&gt;
        service-&amp;gt;TakePhoto(SpeedButton1, params);&lt;br /&gt;
#endif&lt;br /&gt;
    } else {&lt;br /&gt;
        ShowMessage(&amp;quot;This device does not support the camera service&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note| Lors de la création d&#039;un projet d&#039;application FireMonkey, l&#039;option &#039;&#039;&#039;’Camera project’&#039;&#039;&#039; qui se trouve dans {{Menu|Projet &amp;amp;gt; Options &amp;amp;gt; Application &amp;amp;gt; [[Permissions d&#039;utilisation|Permissions d&#039;utilisation]]}} et qui est activée par défaut, a une incidence inattendue sur le comportement de l&#039;application. Même si l&#039;application n&#039;accède pas directement à l&#039;appareil photo (par ex. via le composant [[lib_fr:FMX.Media.TCameraComponent|TCameraComponent]]) et qu&#039;elle demande à une autre application, comme l&#039;application appareil photo intégrée, de le faire à sa place, dès que la permission d&#039;utilisation &amp;lt;code&amp;gt;CAMERA&amp;lt;/code&amp;gt; est déclarée dans le fichier manifeste, elle devient une permission d&#039;utilisation requise inattendue pour le service de plate-forme [[lib_fr:FMX.MediaLibrary.IFMXCameraService|IFMXCameraService]]. Il est donc conseillé de désactiver l&#039;option &#039;&#039;&#039;&#039;Camera project’&#039;&#039;&#039; afin d&#039;éviter que vos applications ne réclament une permission d&#039;utilisation non nécessaire.}}&lt;br /&gt;
&lt;br /&gt;
{{Note| Les nouvelles implémentations derrière les services de plate-forme [[lib_fr:FMX.MediaLibrary.IFMXCameraService|IFMXCameraService]] et [[lib_fr:FMX.MediaLibrary.IFMXTakenImageService|IFMXTakenImageService]] ne prennent plus en charge l&#039;édition de l&#039;image obtenue, car cette opération n&#039;est pas supportée par la plate-forme &#039;Android&#039;. En conséquence, le champ [[lib_fr:FMX.MediaLibrary.TParamsPhotoQuery.Editable|TParamsPhotoQuery.Editable]] est ignoré. }}&lt;br /&gt;
&lt;br /&gt;
===Exécution de l&#039;application===&lt;br /&gt;
&lt;br /&gt;
Exécutez l&#039;application sur votre périphérique mobile en appuyant sur &#039;&#039;&#039;F9&#039;&#039;&#039; ou en choisissant &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Exécuter &amp;amp;gt; Exécuter&#039;&#039;&#039;&amp;lt;/font&amp;gt;. Pour activer la caméra du périphérique, appuyez sur l&#039;icône de la caméra sur la barre d&#039;outils de votre application :&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039; iOS&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039; Android&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[File:TakePicture IOS.png|300px]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; |&lt;br /&gt;
[[File:TakePicture Android.png|300px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Pour utiliser cette photo :&lt;br /&gt;
&lt;br /&gt;
*Sur les périphériques Android, cliquez sur &#039;&#039;&#039;OK&#039;&#039;&#039;.&lt;br /&gt;
*Sur les périphériques iOS, cliquez sur &#039;&#039;&#039;Use&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Enregistrement d&#039;une photo dans la bibliothèque de photos du périphérique===&lt;br /&gt;
&lt;br /&gt;
Pour que votre application enregistre automatiquement les photos prises par la caméra du périphérique dans la bibliothèque de photos de ce périphérique, définissez le champ &#039;&#039;&#039;[[lib_fr:FMX.MediaLibrary.TParamsPhotoQuery.NeedSaveToAlbum|NeedSaveToAlbum]]&#039;&#039;&#039; du second paramètre de la méthode &#039;&#039;&#039;[[lib_fr:FMX.MediaLibrary.IFMXCameraService.TakePhoto|TakePhoto]]&#039;&#039;&#039; sur &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; (voir les extraits de code à [[#Prise d&#039;une photo avec la caméra du périphérique|l&#039;étape 4 de la procédure ci-dessus]]).&lt;br /&gt;
&lt;br /&gt;
Votre application enregistre les photos dans un album au sein de la bibliothèque de photos du périphérique. Le nom de l&#039;album dépend du système d&#039;exploitation du périphérique, comme indiqué ci-dessous :&lt;br /&gt;
&lt;br /&gt;
:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;padding-left: 2em&amp;quot; |&#039;&#039;&#039;Version du système d&#039;exploitation&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;&lt;br /&gt;
! style=&amp;quot;padding-left: 2em&amp;quot; |&#039;&#039;&#039;Nom de l&#039;album&amp;amp;nbsp;&amp;amp;nbsp;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 2em&amp;quot; |iOS&lt;br /&gt;
| style=&amp;quot;padding-left: 2em&amp;quot; |Pellicule&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 2em&amp;quot; |Android&lt;br /&gt;
| style=&amp;quot;padding-left: 2em&amp;quot; |Caméra&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Sélection d&#039;une photo dans la bibliothèque de photos du périphérique==&lt;br /&gt;
&lt;br /&gt;
{{FM}} définit l&#039;interface [[lib_fr:FMX.MediaLibrary.IFMXTakenImageService|IFMXTakenImageService]] qui vous permet de sélectionner une photo à partir de la bibliothèque de photos du périphérique.&lt;br /&gt;
&lt;br /&gt;
Pour que votre application sélectionne une photo à partir de la bibliothèque de photos du périphérique, procédez comme suit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Sur le [[Concepteur de fiches|Concepteur de fiches]], double-cliquez sur le bouton &#039;&#039;&#039;SpeedButton2&#039;&#039;&#039; (afin de choisir une photo), puis dans [[Editeur de code|l&#039;éditeur de code]], implémentez le gestionnaire d&#039;événement &#039;&#039;&#039;onClick&#039;&#039;&#039; suivant :&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&#039;&#039;&#039;{{Delphi}}&#039;&#039;&#039; :&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm1.SpeedButton2Click(Sender: TObject);&lt;br /&gt;
var&lt;br /&gt;
  Service: IFMXTakenService;&lt;br /&gt;
  Params: TParamsPhotoQuery;&lt;br /&gt;
begin&lt;br /&gt;
  if TPlatformServices.Current.SupportsPlatformService(IFMXTakenService, Service) then&lt;br /&gt;
  begin&lt;br /&gt;
    Params.RequiredResolution := TSize.Create(640, 640);&lt;br /&gt;
    Params.OnDidFinishTaking := DoDidFinish;&lt;br /&gt;
    Service.TakeImageFromLibrary(SpeedButton2, Params);&lt;br /&gt;
  end;&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&#039;&#039;&#039;C++ :&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void __fastcall TForm1::SpeedButton2Click(TObject *Sender) {&lt;br /&gt;
    _di_IFMXTakenImageService service;&lt;br /&gt;
    TParamsPhotoQuery params;&lt;br /&gt;
    if (TPlatformServices::Current-&amp;gt;SupportsPlatformService(__uuidof(IFMXTakenImageService), &amp;amp;service) {&lt;br /&gt;
        params.RequiredResolution = TSize(640, 640);&lt;br /&gt;
        params.OnDidFinishTaking = DoDidFinish;&lt;br /&gt;
        service-&amp;gt;TakeImageFromLibrary(SpeedButton2, params);&lt;br /&gt;
    } else {&lt;br /&gt;
        ShowMessage(&amp;quot;This device does not support the photo library service&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Dans la vue [[Vue Structure|Structure]], sélectionnez &#039;&#039;&#039;Form1&#039;&#039;&#039;, puis dans [[Inspecteur d&#039;objets|l&#039;inspecteur d&#039;objets]], ouvrez l&#039;onglet &#039;&#039;&#039;Evénements&#039;&#039;&#039;, double-cliquez sur un champ vide en regard de &#039;&#039;&#039;OnCreate&#039;&#039;&#039;, et implémentez le gestionnaire d&#039;événement &#039;&#039;&#039;onFormCreate&#039;&#039;&#039; suivant : &amp;lt;br /&amp;gt;&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&#039;&#039;&#039;{{Delphi}}&#039;&#039;&#039; :&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
 procedure TForm1.FormCreate(Sender: TObject);&lt;br /&gt;
begin&lt;br /&gt;
TMessageManager.DefaultManager.SubscribeToMessage(TMessageDidFinishTakingImageFromLibrary, DoMessageListener);&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&#039;&#039;&#039;C++ :&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void __fastcall TForm1::FormCreate(TObject *Sender) {&lt;br /&gt;
	TMessageManager::DefaultManager-&amp;gt;SubscribeToMessage(__classid(TMessageDidFinishTakingImageFromLibrary),&lt;br /&gt;
		TMessageListenerMethod(&amp;amp;DoMessageListener));&lt;br /&gt;
}&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Compilez et exécutez votre application. Pour sélectionner une photo, appuyez sur le bouton de recherche, puis sélectionnez la photo de votre choix dans la bibliothèque de photos du périphérique.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039; iOS&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039; Android&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; |&lt;br /&gt;
[[File:TakePhotoFromLibraryAction.PNG|300px]] &amp;lt;br /&amp;gt;&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; |&lt;br /&gt;
[[File:Android SelectfromLibrary.png|300px]]&lt;br /&gt;
|}&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{{Note| Sur les iPad, l&#039;application affiche des miniatures des photos dans une fenêtre popup en regard de l&#039;élément de contrôle spécifié dans le premier paramètre de la méthode [[lib_fr:FMX.MediaLibrary.IFMXTakenImageService.TakeImageFromLibrary|TakeImageFromLibrary]]. Dans votre projet exemple, &#039;&#039;&#039;SpeedButton2&#039;&#039;&#039; fait référence au bouton de recherche.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note| Les nouvelles implémentations derrière les services de plate-forme [[lib_fr:FMX.MediaLibrary.IFMXCameraService|IFMXCameraService]] et [[lib_fr:FMX.MediaLibrary.IFMXTakenImageService|IFMXTakenImageService]] ne prennent plus en charge l&#039;édition de l&#039;image obtenue, car cette opération n&#039;est pas supportée par la plate-forme &#039;Android&#039;. En conséquence, le champ [[lib_fr:FMX.MediaLibrary.TParamsPhotoQuery.Editable|TParamsPhotoQuery.Editable]] est ignoré. }}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Prendre et partager des photos et du texte en utilisant les listes d&#039;actions|Prendre et partager des photos et du texte en utilisant les listes d&#039;actions]]&lt;br /&gt;
*[[samp_en:FMX.CameraComponent Sample|Exemple FMX.CameraComponent]]&lt;br /&gt;
&lt;br /&gt;
*[[lib_fr:FMX.StdCtrls.TButton|FMX.StdCtrls.TButton]]&lt;br /&gt;
*[[lib_fr:FMX.Objects.TImage|FMX.Objects.TImage]]&lt;br /&gt;
*[[lib_fr:FMX.MediaLibrary|FMX.MediaLibrary]]&lt;br /&gt;
*[[lib_fr:FMX.MediaLibrary.IFMXPhotoLibrary|IFMXPhotoLibrary]]&lt;br /&gt;
*[[lib_fr:FMX.MediaLibrary.IFMXCameraService|IFMXCameraService]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Delphi]]&lt;br /&gt;
[[Category:FMX]]&lt;br /&gt;
[[Category:IOS]]&lt;br /&gt;
[[Category:XE8]]&lt;br /&gt;
[[Category:Android]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Yukikoi</name></author>
	</entry>
</feed>