<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Fabiola.Arias</id>
	<title>RAD Studio - Contributions [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Fabiola.Arias"/>
	<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/fr/Sp%C3%A9cial:Contributions/Fabiola.Arias"/>
	<updated>2026-08-15T21:50:48Z</updated>
	<subtitle>Contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Fichier_manifest_d%27application_Android_(AndroidManifest.xml)&amp;diff=213850</id>
		<title>Fichier manifest d&#039;application Android (AndroidManifest.xml)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Fichier_manifest_d%27application_Android_(AndroidManifest.xml)&amp;diff=213850"/>
		<updated>2022-08-23T05:26:05Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Types de fichiers - Index}}&lt;br /&gt;
&lt;br /&gt;
Lorsque vous construisez un projet pour la plate-forme cible [[Développement d&#039;applications mobiles Android|Android]], {{Product}} génère un fichier manifest d&#039;application Android. Ce fichier est nécessaire pour générer le bundle de votre application.&lt;br /&gt;
&lt;br /&gt;
Les fichiers manifest d&#039;application Android fournissent des informations à propos de votre application. Son contenu est généré à partir des informations des pages suivantes de la [[Boîte de dialogue Options de projet|configuration de votre projet]]&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[[Options de l&#039;application|Application]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[Permissions d&#039;utilisation|Permissions d&#039;utilisation]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[Informations de version|Informations de version]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Lorsque vous construisez votre projet, votre fichier manifest d&#039;application Android est généré par défaut sous {{Path|AndroidManifest.xml}}, dans le dossier suivant&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
* Dans les [[Packages|Packages]] :&lt;br /&gt;
*: {{Note| Fichier manifeste d&#039;application Android pour les [[Packages|Packages]].}}&lt;br /&gt;
** Pour {{Delphi}}&amp;amp;nbsp;: {{Path|{{PublicDocumentsPath}}\Bpl\{{Placeholder|plate-forme}}}}&lt;br /&gt;
** Pour C++&lt;br /&gt;
*** {{Path|{{PublicDocumentsPath}}\Bpl\{{Placeholder|plate-forme}}\{{Placeholder|configuration de construction}}}}&lt;br /&gt;
*** {{Path|{{PublicDocumentsPath}}\DCP\{{Placeholder|plate-forme}}\{{Placeholder|configuration de construction}}}}&lt;br /&gt;
* Dans les autres projets&amp;amp;nbsp;: {{Path|{{ProjectsPath}}\{{Placeholder|projet}}\{{Placeholder|plate-forme}}\{{Placeholder|configuration de construction}}}}&lt;br /&gt;
&lt;br /&gt;
Pour changer de répertoire de sortie&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
* Dans {{Delphi}}&amp;amp;nbsp;: utilisez l&#039;option &#039;&#039;&#039;Répertoire de sortie des packages&#039;&#039;&#039; de {{Menu|Projet &amp;amp;gt; Options &amp;amp;gt; [[Compilateur Delphi|Compilateur {{Delphi}}]]}}.&lt;br /&gt;
* Dans C++&amp;amp;nbsp;: utilisez l&#039;option &#039;&#039;&#039;Sortie BPI/LIB&#039;&#039;&#039; de {{Menu|Projet &amp;amp;gt; Options &amp;amp;gt; [[C++ (options partagées)|C++ (options partagées)]]}}.&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[Préparation d&#039;une application Android pour son déploiement#Personnalisation de votre fichier AndroidManifest.xml|Personnalisation de votre fichier AndroidManifest.xml]]&lt;br /&gt;
&lt;br /&gt;
* [[Fichier des informations d&#039;application Apple (*.info.plist)|Fichier des informations d&#039;application Apple (*.info.plist)]]&lt;br /&gt;
* [[Fichier des droits d&#039;application Apple (*.entitlements)|Fichier des droits d&#039;application Apple (*.entitlements)]]&lt;br /&gt;
* [[Fichier des règles de ressources d&#039;application Apple|Fichier des règles de ressources d&#039;application Apple  (ResourceRules.plist)]]&lt;br /&gt;
&lt;br /&gt;
* [[Fichiers de packages créés lors d&#039;une compilation|Fichiers de packages créés lors d&#039;une compilation]]&lt;br /&gt;
&lt;br /&gt;
* [http://developer.android.com/guide/topics/manifest/manifest-intro.html AndroidManifest.xml] (documentation Android)&lt;br /&gt;
&lt;br /&gt;
[[Category:Référence EDI]]&lt;br /&gt;
[[Category:XE7]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Android Application Manifest File (AndroidManifest.xml)]]&lt;br /&gt;
[[de:Anwendungsmanifestdatei für Android (AndroidManifest.xml)]]&lt;br /&gt;
[[ja:Android アプリケーションのマニフェスト ファイル（AndroidManifest.xml）]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Cr%C3%A9ation_de_templates_dynamiques&amp;diff=213844</id>
		<title>Création de templates dynamiques</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Cr%C3%A9ation_de_templates_dynamiques&amp;diff=213844"/>
		<updated>2021-09-25T02:31:41Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Comment modifier le code dans l&#039;éditeur de code}}&lt;br /&gt;
&lt;br /&gt;
Lorsque vous travaillez dans &#039;&#039;&#039;[[Editeur de code|l&#039;éditeur de code]]&#039;&#039;&#039;, vous pouvez ajouter vos constructions de code favorites au &#039;&#039;&#039;Gestionnaire de templates&#039;&#039;&#039; et créer une bibliothèque des templates que vous utilisez le plus souvent.&lt;br /&gt;
&lt;br /&gt;
==Pour ajouter un template dynamique==&lt;br /&gt;
&lt;br /&gt;
===Démarrer un template de code dans l&#039;éditeur de code===&lt;br /&gt;
&lt;br /&gt;
Dans &#039;&#039;&#039;l&#039;éditeur de code&#039;&#039;&#039;, effectuez l&#039;une des actions suivantes :&lt;br /&gt;
&lt;br /&gt;
* 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; Autres fichiers&#039;&#039;&#039; &amp;lt;/font&amp;gt; et sélectionnez l&#039;icône &#039;&#039;&#039;Template de code&#039;&#039;&#039;.&lt;br /&gt;
* Choisissez &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt; &#039;&#039;&#039;Voir &amp;amp;gt; Templates&#039;&#039;&#039;&amp;lt;/font&amp;gt;, puis cliquez sur le bouton &#039;&#039;&#039;Nouveau&#039;&#039;&#039; dans la fenêtre &#039;&#039;&#039;[[Fenêtre Templates|Templates]]&#039;&#039;&#039;, située à la position de la palette d&#039;outils, dans le coin inférieur droit de l&#039;EDI. &lt;br /&gt;
&lt;br /&gt;
Vous pouvez aussi sélectionner du code dans l&#039;éditeur avant de cliquer sur le bouton &#039;&#039;&#039;Nouveau&#039;&#039;&#039; ; le code sélectionné est placé à l&#039;intérieur des crochets [] du champ &amp;amp;lt;code&amp;amp;gt;&amp;amp;lt;![CDATA[]]&amp;amp;gt;&amp;amp;lt;/code&amp;amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Voici le code XML que l&#039;EDI affiche quand vous démarrez un template dynamique :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;
 &amp;lt;codetemplate	xmlns=&amp;quot;http://schemas.borland.com/Delphi/2005/codetemplates&amp;quot;&lt;br /&gt;
 				version=&amp;quot;1.0.0&amp;quot;&amp;gt;&lt;br /&gt;
 	&amp;lt;template &#039;&#039;&#039;name=&amp;quot;|&amp;quot;&#039;&#039;&#039; invoke=&amp;quot;manual&amp;quot;&amp;gt; &lt;br /&gt;
 		&amp;lt;description&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 		&amp;lt;/description&amp;gt;&lt;br /&gt;
 		&amp;lt;author&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 		&amp;lt;/author&amp;gt;&lt;br /&gt;
 		&amp;lt;code language=&amp;quot;&amp;quot;&amp;gt;&amp;lt;![CDATA[]]&amp;gt;&lt;br /&gt;
 		&amp;lt;/code&amp;gt;&lt;br /&gt;
 	&amp;lt;/template&amp;gt;&lt;br /&gt;
 &amp;lt;/codetemplate&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quand vous ouvrez pour la première fois le squelette du template dynamique, le champ &#039;&#039;&#039;name=&amp;quot; &amp;quot;&#039;&#039;&#039; apparaît en surbrillance, et le curseur est situé entre les deux guillemets (&#039;&#039;&#039;name=&amp;quot;|&amp;quot;&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
{{Note| Vous pouvez utiliser la &#039;&#039;&#039;[[Palette d&#039;outils|palette d&#039;outils]]&#039;&#039;&#039; pour ouvrir le squelette XML d&#039;un template dynamique dans [[Editeur de code|l&#039;éditeur de code]]. Entrez &#039;&#039;template&#039;&#039; dans le champ de recherche de la palette d&#039;outils, et appuyez sur &#039;&#039;&#039;Entrée&#039;&#039;&#039; ou double-cliquez sur &#039;&#039;&#039;Template de code&#039;&#039;&#039;.}}&lt;br /&gt;
&lt;br /&gt;
===Fournir les valeurs d&#039;attributs dans le XML===&lt;br /&gt;
&lt;br /&gt;
Remplissez maintenant les champs du template ; vous pouvez ajouter des champs spécifiques qui sont nécessaires à votre template.  &lt;br /&gt;
&lt;br /&gt;
# Commencez par assigner un nom à votre template. Les champs &#039;&#039;&#039;template name&#039;&#039;&#039; et &#039;&#039;&#039;code language&#039;&#039;&#039; du template sont obligatoires.&lt;br /&gt;
# Dans le champ &#039;&#039;&#039;invoke&#039;&#039;&#039;, spécifiez la façon dont ce template sera invoqué :&lt;br /&gt;
#:&lt;br /&gt;
#:* manual - invoqué par l&#039;appui sur la touche TAB&lt;br /&gt;
#:* auto - invoqué par l&#039;appui sur la touche ESPACE ou TAB&lt;br /&gt;
#:* none - invoqué en utilisant CTRL+J, CTRL+ESPACE, ou la fenêtre Templates&lt;br /&gt;
# Remplissez la description, l&#039;auteur et les attributs de langage de code (&#039;&#039;&#039;language=&amp;quot;{{Delphi}}&amp;quot;&#039;&#039;&#039; ou &#039;&#039;&#039;language=&amp;quot;C&amp;quot;&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
===Définir les points de saut===&lt;br /&gt;
&lt;br /&gt;
Les &#039;&#039;&#039;points de saut&#039;&#039;&#039; sont des espaces réservés navigables et facultatifs pour les champs d&#039;entrée. Si vous voulez que votre template contienne ces espaces réservés, vous devez alors définir un &#039;&#039;&#039;point&#039;&#039;&#039; pour chaque champ d&#039;entrée dans le template. Quand quelqu&#039;un utilise le template, il peut sauter d&#039;un point à un autre en utilisant la touche &#039;&#039;&#039;Tab&#039;&#039;&#039; ou la barre &#039;&#039;&#039;Espace&#039;&#039;&#039;.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pour définir des points de saut dans votre template :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Positionnez le curseur (les points de saut sont typiquement les premiers éléments définis dans un template dynamique, et doivent donc être situés avant le champ &#039;&#039;&#039;&amp;amp;lt;description&amp;amp;gt;&#039;&#039;&#039;).&lt;br /&gt;
# Double-cliquez sur le template &#039;&#039;&#039;point&#039;&#039;&#039;, qui est disponible dans la fenêtre [[Fenêtre Templates|Templates]] quand vous créez un template dynamique. &lt;br /&gt;
&lt;br /&gt;
:Le &#039;&#039;&#039;template point&#039;&#039;&#039; est affiché à la position du curseur dans l&#039;éditeur de code :&lt;br /&gt;
&lt;br /&gt;
[[Image:PointTemplateLive.png]]&lt;br /&gt;
&lt;br /&gt;
Chaque &#039;&#039;&#039;point&#039;&#039;&#039; a trois valeurs d&#039;attributs :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;PointName&#039;&#039;&#039; définit le nom du point de saut.&lt;br /&gt;
* &#039;&#039;&#039;PointText&#039;&#039;&#039; définit le texte descriptif affiché dans la fenêtre Templates. Dans l&#039;éditeur de code, le point de saut affiche de façon erronée PointName, mais le XML réel du point est correct.&lt;br /&gt;
* &#039;&#039;&#039;PointHint&#039;&#039;&#039; définit le conseil contextuel du point.&lt;br /&gt;
&lt;br /&gt;
qui sont définis en tant que points de saut dans ce template. Pour chaque point, ces valeurs d&#039;attributs définissent &lt;br /&gt;
le nom, le texte (la description affichée dans la fenêtre Templates) et un conseil (qui s&#039;affiche quand la souris passe au-dessus d&#039;un template dans la fenêtre Templates.&lt;br /&gt;
&lt;br /&gt;
===Entrer le code et enregistrer le template===&lt;br /&gt;
&lt;br /&gt;
# Tapez le code de votre template, à l&#039;intérieur des crochets imbriqués ([ ]) dans la balise &amp;amp;lt;code&amp;amp;gt;&amp;amp;lt;![CDATA[]]&amp;amp;gt;&amp;amp;lt;/code&amp;amp;gt;.  &lt;br /&gt;
#:Par exemple, voici le XML du template point lui-même. point.xml contient trois points (PointName, PointText, PointHint) et vous pouvez voir la représentation du code du template point dans &amp;amp;lt;code&amp;amp;gt;&amp;amp;lt;![CDATA[]]&amp;amp;gt;&amp;amp;lt;/code&amp;amp;gt; :&lt;br /&gt;
#:&lt;br /&gt;
#: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;codetemplate	xmlns=&amp;quot;http://schemas.borland.com/Delphi/2005/codetemplates&amp;quot;&lt;br /&gt;
				version=&amp;quot;1.0.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;template name=&amp;quot;point&amp;quot; invoke=&amp;quot;manual&amp;quot;&amp;gt;&lt;br /&gt;
		 &amp;lt;description&amp;gt;&lt;br /&gt;
			Create a point in code templates&lt;br /&gt;
		 &amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;author&amp;gt;&lt;br /&gt;
			Embarcadero&lt;br /&gt;
		&amp;lt;/author&amp;gt;&lt;br /&gt;
		 &amp;lt;point name=&amp;quot;PointName&amp;quot;&amp;gt;&lt;br /&gt;
			 &amp;lt;text&amp;gt;&lt;br /&gt;
				 PointName&lt;br /&gt;
			 &amp;lt;/text&amp;gt;&lt;br /&gt;
			 &amp;lt;hint&amp;gt;&lt;br /&gt;
                 Name of the point&lt;br /&gt;
			 &amp;lt;/hint&amp;gt;&lt;br /&gt;
		 &amp;lt;/point&amp;gt;&lt;br /&gt;
		 &amp;lt;point name=&amp;quot;PointText&amp;quot;&amp;gt;&lt;br /&gt;
			 &amp;lt;text&amp;gt;&lt;br /&gt;
				 PointText&lt;br /&gt;
			 &amp;lt;/text&amp;gt;&lt;br /&gt;
			 &amp;lt;hint&amp;gt;&lt;br /&gt;
			   Text for the point&lt;br /&gt;
			 &amp;lt;/hint&amp;gt;&lt;br /&gt;
		 &amp;lt;/point&amp;gt;&lt;br /&gt;
		 &amp;lt;point name=&amp;quot;PointHint&amp;quot;&amp;gt;&lt;br /&gt;
			 &amp;lt;text&amp;gt;&lt;br /&gt;
				 PointHint&lt;br /&gt;
			 &amp;lt;/text&amp;gt;&lt;br /&gt;
			 &amp;lt;hint&amp;gt;&lt;br /&gt;
               Text for the point&#039;s hint&lt;br /&gt;
			 &amp;lt;/hint&amp;gt;&lt;br /&gt;
		 &amp;lt;/point&amp;gt;&lt;br /&gt;
		 &amp;lt;code language=&amp;quot;XML&amp;quot; delimiter=&amp;quot;|&amp;quot;&amp;gt;&amp;lt;![CDATA[&#039;&#039;&#039;&amp;lt;point name=&amp;quot;|PointName|&amp;quot;&amp;gt;&lt;br /&gt;
|*|&amp;lt;text&amp;gt;&lt;br /&gt;
|*||*||PointName|&lt;br /&gt;
|*|&amp;lt;/text&amp;gt;&lt;br /&gt;
|*|&amp;lt;hint&amp;gt;&lt;br /&gt;
|*||*||PointHint|&lt;br /&gt;
|*|&amp;lt;/hint&amp;gt;&lt;br /&gt;
&amp;lt;/point&amp;gt;|end|&#039;&#039;&#039;]]&amp;gt;&lt;br /&gt;
		 &amp;lt;/code&amp;gt;&lt;br /&gt;
	&amp;lt;/template&amp;gt;&lt;br /&gt;
&amp;lt;/codetemplate&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:2. Choisissez la commande &#039;&#039;&#039;Enregistrer&#039;&#039;&#039; dans le menu &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt; &#039;&#039;&#039;Fichier&#039;&#039;&#039; &amp;lt;/font&amp;gt; de &#039;&#039;&#039;l&#039;éditeur de code&#039;&#039;&#039; (ou utilisez la combinaison de touches &amp;amp;lt;code&amp;amp;gt;CTRL + S&amp;amp;lt;/code&amp;amp;gt;). Votre nouveau template apparaît désormais dans l&#039;arborescence de la fenêtre &#039;&#039;&#039;[[Fenêtre Templates|Templates]]&#039;&#039;&#039;. &lt;br /&gt;
:Les templates sont enregistrés par défaut dans le répertoire {{Path|{{CodeTemplatesPath}}}}. Ils doivent être enregistrés dans ce répertoire afin d&#039;apparaître dans la liste Templates de l&#039;EDI. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations sur les &#039;&#039;&#039;templates dynamiques&#039;&#039;&#039;, notamment les liens vers des procédures plus détaillées et des démos, voir [http://delphi.wikia.com/wiki/Live_Templates_Technical_Info http://delphi.wikia.com/wiki/Live_Templates_Technical_Info]&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[Templates dynamiques|Templates dynamiques]]&lt;br /&gt;
*[[Utilisation des templates dynamiques|Utilisation des templates dynamiques]]&lt;br /&gt;
*[[Personnalisation de l&#039;éditeur de code|Personnalisation de l&#039;éditeur de code]]&lt;br /&gt;
* [[Fenêtre Templates|Fenêtre Templates]]&lt;br /&gt;
* [http://delphi.wikia.com/wiki/Live_Templates_Technical_Info http://delphi.wikia.com/wiki/Live_Templates_Technical_Info]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Creation de templates dynamiques}}&lt;br /&gt;
[[Category:Utilisation de RAD Studio]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Creating Live Templates]]&lt;br /&gt;
[[de:Erstellen von Live-Vorlagen]]&lt;br /&gt;
[[ja:ライブ テンプレートを作成する]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Utilisation_de_la_synchronisation_des_modifications&amp;diff=213843</id>
		<title>Utilisation de la synchronisation des modifications</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Utilisation_de_la_synchronisation_des_modifications&amp;diff=213843"/>
		<updated>2021-09-25T00:18:03Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Procédures de refactoring - Index}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Nouvelle vidéo 2010 !&#039;&#039;&#039; [http://www.youtube.com/watch?v=CoeSsbtJUHY Vidéo : Synchronisation des modifications dans {{Product}} 2010, par Mike Rozlog]&lt;br /&gt;
&lt;br /&gt;
La fonctionnalité de synchronisation des modifications vous permet de modifier simultanément des identificateurs identiques dans le code sélectionné. Par exemple, dans une procédure qui contient trois occurrences de &amp;lt;span class=&amp;quot;codeInline&amp;quot;&amp;gt;label1&amp;lt;/span&amp;gt;, vous pouvez modifier seulement la première occurrence et toutes les autres occurrences changeront automatiquement.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pour utiliser la synchronisation des modifications :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Dans &#039;&#039;&#039;l&#039;éditeur de code&#039;&#039;&#039;, sélectionnez un bloc de code contenant des identificateurs identiques.&lt;br /&gt;
# Cliquez sur l&#039;icône &#039;&#039;&#039;Mode Synchronisation des modifications&#039;&#039;&#039;[[Image:SyncEdit.jpg|Icône Synchronisation des modifications]] qui apparaît dans la gouttière de gauche, ou appuyez sur &amp;lt;code&amp;gt;Maj+Ctrl+J&amp;lt;/code&amp;gt;. &lt;br /&gt;
#:Le premier identificateur identique est en surbrillance et les autres sont soulignés. Le curseur se trouve sur le premier identificateur. Si le code contient plusieurs ensembles d&#039;identificateurs identiques, vous pouvez appuyer sur &amp;lt;code&amp;gt;Tab&amp;lt;/code&amp;gt; pour passer d&#039;un identificateur à l&#039;autre dans la sélection.&lt;br /&gt;
# Commencez à modifier le premier identificateur. Vos modifications sont automatiquement appliquées aux autres identificateurs. Par défaut, l&#039;identificateur est remplacé. Pour changer l&#039;identificateur sans le remplacer, utilisez les touches fléchées avant de commencer la saisie.&lt;br /&gt;
# Une fois les identificateurs modifiés, vous pouvez quitter le mode de synchronisation des modifications en cliquant sur l&#039;icône &#039;&#039;&#039;Mode Synchronisation des modifications&#039;&#039;&#039; ou en appuyant sur la touche &amp;lt;code&amp;gt;Echap&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Note| La fonction de synchronisation des modifications détermine les identificateurs identiques par correspondance des chaînes de texte ; elle n&#039;analyse pas les identificateurs. Par exemple, elle ne fait pas la différence entre deux identificateurs de même nom mais de types et de portées différents. Par conséquent, elle convient aux petites sections de code, par exemple une seule méthode ou une page de texte. Pour modifier des sections de code plus importantes, pensez à utiliser le refactoring (voir [[Refactoring des applications - Index|Refactoring des applications]]).}}&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
* [http://www.youtube.com/watch?v=CoeSsbtJUHY Vidéo : Synchronisation des modifications dans {{Product}} 2010, par Mike Rozlog]&lt;br /&gt;
&lt;br /&gt;
[[Category:Utilisation de {{Product}}]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Using Sync Edit]]&lt;br /&gt;
[[de:Sync-Bearbeitungsmodus verwenden]]&lt;br /&gt;
[[ja:同期編集を使用する]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Utilisation_de_la_pile_de_signets&amp;diff=213842</id>
		<title>Utilisation de la pile de signets</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Utilisation_de_la_pile_de_signets&amp;diff=213842"/>
		<updated>2021-09-24T23:38:12Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Comment modifier le code dans l&#039;éditeur de code}}&lt;br /&gt;
&lt;br /&gt;
La &#039;&#039;&#039;pile de signets&#039;&#039;&#039; est une méthode de navigation à travers votre code source. Elle permet de se déplacer dans un chemin prédéfini.&lt;br /&gt;
&lt;br /&gt;
{{Note| Cette documentation se rapporte à la fonction &#039;&#039;&#039;Pile de signets&#039;&#039;&#039;. Pour la fonction &#039;&#039;&#039;Basculer les signets&#039;&#039;&#039;, voir [[Utilisation des signets|Utilisation des signets]].}}&lt;br /&gt;
&lt;br /&gt;
La pile de signets est une fonctionnalité uniquement disponible par clavier qui vous permet d&#039;ajouter [[Editeur de code#Empiler les signets|des signets]] à votre code dans l&#039;ordre de la pile. Vous pouvez ensuite naviguer en arrière en accédant au dernier signet de la pile qui correspond donc au dernier signet ajouté.&lt;br /&gt;
&lt;br /&gt;
Les fonctionnalités de la pile de signets sont les suivantes :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
! Description&lt;br /&gt;
! Raccourci&lt;br /&gt;
! Remarques&lt;br /&gt;
|-&lt;br /&gt;
| Déposer un signet de pile&lt;br /&gt;
| {{Key|Ctrl+K &amp;amp;amp; Ctrl+G}}&lt;br /&gt;
| Définit un signet à l&#039;emplacement en cours du curseur.&lt;br /&gt;
|-&lt;br /&gt;
| Sélectionner et récupérer un signet de pile&lt;br /&gt;
| {{Key|Ctrl+Q &amp;amp;amp; Ctrl+G}}&lt;br /&gt;
| Déplace le curseur sur le dernier signet de la pile et retire le signet.&lt;br /&gt;
|-&lt;br /&gt;
| Permuter un signet de pile&lt;br /&gt;
| {{Key|Ctrl+Alt+Q &amp;amp;amp; Ctrl+Alt+G}}&lt;br /&gt;
| Permute le dernier signet placé et l&#039;emplacement du curseur.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Déposer des signets==&lt;br /&gt;
&lt;br /&gt;
# Placez le curseur là où vous voulez déposer un signet.&lt;br /&gt;
# Appuyez sur le raccourci clavier {{Key|Ctrl+K &amp;amp;amp; Ctrl+G}}.&lt;br /&gt;
#: La marque [[File:BookmarkStack.png|30px]] est placée à l&#039;emplacement du curseur.&lt;br /&gt;
&lt;br /&gt;
==Sélectionner des signets==&lt;br /&gt;
&lt;br /&gt;
# Placez le curseur où vous le souhaitez dans l&#039;éditeur de code.&lt;br /&gt;
# Appuyez sur le raccourci clavier {{Key|Ctrl+Q &amp;amp;amp; Ctrl+G}}.&lt;br /&gt;
#: L&#039;éditeur de code déplace le curseur à l&#039;emplacement du dernier signet déposé et retire ce signet.&lt;br /&gt;
&lt;br /&gt;
==Permuter des signets==&lt;br /&gt;
&lt;br /&gt;
# Placez le curseur où vous le souhaitez dans l&#039;éditeur de code.&lt;br /&gt;
# Appuyez sur le raccourci clavier {{Key|Ctrl+Alt+Q &amp;amp;amp; Ctrl+Alt+G}}.&lt;br /&gt;
#: L&#039;éditeur de code permute l&#039;emplacement en cours du curseur avec celui du dernier signet déposé :&lt;br /&gt;
#:* Un signet est déposé à l&#039;emplacement en cours du curseur.&lt;br /&gt;
#:* L&#039;éditeur de code déplace le curseur à l&#039;emplacement du dernier signet déposé et retire ce signet.&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[Utilisation des signets|Utilisation des signets]]&lt;br /&gt;
* [[Editeur de code#Signets|Signets (Editeur de code)]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Utilisation de RAD Studio]]&lt;br /&gt;
[[Category:Berlin]]&lt;br /&gt;
&lt;br /&gt;
[[en:Using the Bookmark Stack]]&lt;br /&gt;
[[de:Verwenden des Positionsmarkenstapels]]&lt;br /&gt;
[[ja:ブックマーク スタックの利用]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Utilisation_des_signets&amp;diff=213841</id>
		<title>Utilisation des signets</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Utilisation_des_signets&amp;diff=213841"/>
		<updated>2021-09-24T16:58:46Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Tip|}} and the {{Note|}} templates&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Comment modifier le code dans l&#039;éditeur de code}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note| Ces signets font référence à [[Editeur de code#Basculer les signets|Basculer les signets]]. Pour voir un autre type de signet, consultez [[Editeur de code#Empiler les signets|Empiler les signets]].}}&lt;br /&gt;
&lt;br /&gt;
Vous pouvez marquer un emplacement dans votre code avec un signet et y accéder directement depuis n&#039;importe où dans le fichier. Vous pouvez définir jusqu&#039;à dix signets. Les signets sont préservés lorsque vous enregistrez le fichier, et ils sont disponibles lorsque vous ouvrez à nouveau le fichier dans &#039;&#039;&#039;l&#039;éditeur de code&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pour définir un signet :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Dans &#039;&#039;&#039;l&#039;éditeur de code&#039;&#039;&#039;, cliquez avec le bouton droit sur la ligne de code dans laquelle vous voulez définir un signet. Le menu contextuel de &#039;&#039;&#039;l&#039;éditeur de code&#039;&#039;&#039; s&#039;affiche.&lt;br /&gt;
# Choisissez &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt; &#039;&#039;&#039;Basculer les signets &amp;amp;gt; Signet n&#039;&#039;&#039;&amp;lt;/font&amp;gt;, où &#039;&#039;n&#039;&#039; est un numéro de signet compris entre 0 et 9.&lt;br /&gt;
&lt;br /&gt;
:&lt;br /&gt;
::Une icône de signet est affichée dans la gouttière gauche de &#039;&#039;&#039;l&#039;éditeur de code&#039;&#039;&#039;. Par exemple, [[File:Bookmark0.jpg|l&#039;icône Signet]] est le signet n°1, alors que [[File:Bookmark9.jpg|l&#039;icône Signet]] est le signet n°9.&lt;br /&gt;
&lt;br /&gt;
{{Tip| Pour définir un signet avec les touches de raccourci, appuyez sur &amp;lt;code&amp;gt;Ctrl+Maj&amp;lt;/code&amp;gt; et tapez un chiffre de 0 à 9.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pour accéder à un signet :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Dans &#039;&#039;&#039;l&#039;éditeur de code&#039;&#039;&#039;, cliquez avec le bouton droit pour afficher le menu contextuel.&lt;br /&gt;
# Choisissez &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt; &#039;&#039;&#039;Aller au signet &amp;amp;gt; Signet n&#039;&#039;&#039;&amp;lt;/font&amp;gt;, où &#039;&#039;n&#039;&#039; est un numéro de signet compris entre 0 et 9.&lt;br /&gt;
&lt;br /&gt;
{{Tip| Pour accéder à un signet avec les touches de raccourci, appuyez sur &amp;lt;code&amp;gt;Ctrl&amp;lt;/code&amp;gt; et tapez le numéro du signet. Par exemple, &amp;lt;code&amp;gt;Ctrl+1&amp;lt;/code&amp;gt; ira sur la ligne de code définie par le signet 1. }}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pour retirer un signet :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Dans &#039;&#039;&#039;l&#039;éditeur de code&#039;&#039;&#039;, cliquez avec le bouton droit pour afficher le menu contextuel.&lt;br /&gt;
# Choisissez &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt; &#039;&#039;&#039;Basculer les signets &amp;amp;gt; Signet n&#039;&#039;&#039;&amp;lt;/font&amp;gt;, où &#039;&#039;n&#039;&#039; représente le numéro du signet à retirer.&lt;br /&gt;
&lt;br /&gt;
:&lt;br /&gt;
::L&#039;icône de signet est retirée de la gouttière gauche de &#039;&#039;&#039;l&#039;éditeur de code&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
{{Tip| Pour retirer tous les signets d&#039;un fichier, choisissez &amp;lt;font color&amp;lt;nowiki&amp;gt; = &amp;lt;/nowiki&amp;gt;&amp;quot;#598527&amp;quot;&amp;gt; &#039;&#039;&#039;Effacer les signets&#039;&#039;&#039;&amp;lt;/font&amp;gt;. }}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[Editeur de code#Basculer les signets|Basculer les signets]]&lt;br /&gt;
* [[Editeur de code#Empiler les signets|Empiler les signets]]&lt;br /&gt;
* [[Utilisation de la pile de signets|Utilisation de la pile de signets]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Utilisation de RAD Studio]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Using Bookmarks]]&lt;br /&gt;
[[de:Positionsmarken verwenden]]&lt;br /&gt;
[[ja:しおりを使用する]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Enregistrement_des_dispositions_du_bureau&amp;diff=213835</id>
		<title>Enregistrement des dispositions du bureau</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Enregistrement_des_dispositions_du_bureau&amp;diff=213835"/>
		<updated>2021-09-01T03:16:27Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Comment utiliser l&#039;EDI}}&lt;br /&gt;
&lt;br /&gt;
Pour basculer entre les dispositions de bureau, choisissez une disposition dans la liste déroulante située sur la barre d&#039;outils &#039;&#039;&#039;Bureau&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Cette procédure décrit comment enregistrer votre disposition de bureau en cours afin que votre propre disposition soit disponible à partir du sous-menu &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt; &#039;&#039;&#039;&#039;Voir &amp;amp;gt; Bureaux &#039;&#039;&#039; &amp;lt;/font&amp;gt;et de la barre d&#039;outils.&lt;br /&gt;
&lt;br /&gt;
{{Note| La disposition de bureau en cours est un des éléments enregistrés dans un fichier .dsk quand vous définissez l&#039;option d&#039;auto-enregistrement &#039;&#039;&#039;Bureau du projet&#039;&#039;&#039; sur &amp;lt;font color&amp;lt;nowiki&amp;gt; = &amp;lt;/nowiki&amp;gt;&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;.  A la prochaine ouverture du projet, le bureau enregistré et les autres paramètres sont restaurés, notamment les points d&#039;arrêt, les points de suivi et les fichiers ouverts. En mode multi-écrans, {{Product}} stocke également des informations concernant l&#039;écran utilisé pour afficher la fenêtre principale de l&#039;EDI.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pour enregistrer une disposition de bureau&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Choisissez &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt; &#039;&#039;&#039;Voir &amp;amp;gt; Bureaux &amp;amp;gt; [[Enregistrer le bureau|Enregistrer le bureau]]&#039;&#039;&#039;&amp;lt;/font&amp;gt;.&lt;br /&gt;
# Entrez le nom que vous souhaitez pour le bureau.&lt;br /&gt;
# Cliquez sur &#039;&#039;&#039;OK&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pour définir une disposition de bureau de débogage&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Choisissez &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt; &#039;&#039;&#039;Voir &amp;amp;gt; Bureaux &amp;amp;gt; [[Sélectionner le bureau de débogage|Définir le bureau de débogage]]&#039;&#039;&#039;&amp;lt;/font&amp;gt;.&lt;br /&gt;
# Dans la liste déroulante, sélectionnez la disposition que vous voulez utiliser en tant que disposition de bureau durant le débogage.&lt;br /&gt;
# Cliquez sur &#039;&#039;&#039;OK&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Définition des options de projet|Définition des options de projet]]&lt;br /&gt;
*[[Présentation du débogage|Présentation du débogage]]&lt;br /&gt;
*[[Barre d&#039;outils Bureau|Barre d&#039;outils Bureau]]&lt;br /&gt;
*[[Bureaux|Commande Voir les bureaux]]&lt;br /&gt;
* [[Options d&#039;environnement|Options d&#039;environnement]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Utilisation de RAD Studio]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Saving Desktop Layouts]]&lt;br /&gt;
[[de:Desktop-Layouts speichern]]&lt;br /&gt;
[[ja:デスクトップ レイアウトを保存する]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Enregistrement_d%27une_macro_de_touches&amp;diff=213834</id>
		<title>Enregistrement d&#039;une macro de touches</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Enregistrement_d%27une_macro_de_touches&amp;diff=213834"/>
		<updated>2021-08-31T07:07:47Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Comment modifier le code dans l&#039;éditeur de code}}&lt;br /&gt;
&lt;br /&gt;
Lors de l&#039;édition du code, vous pouvez enregistrer une série de séquences de touches sous forme de macro. Une fois enregistrée, la macro peut être réutilisée pour répéter des séquences de touches lors de la session de l&#039;EDI en cours. Vous disposez d&#039;une seule macro à la fois, donc elle remplace la macro existante lorsque vous en enregistrez une autre.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pour enregistrer une macro&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Dans &#039;&#039;&#039;l&#039;éditeur de code&#039;&#039;&#039;, lancez l&#039;enregistrement en cliquant sur le bouton Enregistrer une macro [[File:MacroRecord.png|Enregistrer une macro]] dans le bas de la fenêtre de code (ou appuyez sur &amp;lt;code&amp;gt;Ctrl+Maj+R&amp;lt;/code&amp;gt;).&lt;br /&gt;
# Entrez les frappes de touches que vous souhaitez enregistrer.&lt;br /&gt;
# Après avoir tapé la séquence de touches, cliquez sur le bouton Arrêter l&#039;enregistrement de macro [[File:MacroStop.png|Arrêter l&#039;enregistrement de macro]] (ou appuyez sur &amp;lt;code&amp;gt;Ctrl+Maj+R&amp;lt;/code&amp;gt; à nouveau).&lt;br /&gt;
# Pour enregistrer une autre macro, répétez les étapes précédentes.&lt;br /&gt;
&lt;br /&gt;
{{Note| L&#039;enregistrement d&#039;une macro remplace la macro précédemment enregistrée.}}&lt;br /&gt;
&lt;br /&gt;
La macro est à présent disponible lors de la session d&#039;IDE en cours.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pour exécuter une macro&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Dans &#039;&#039;&#039;l&#039;éditeur de macro&#039;&#039;&#039;, positionnez le curseur à l&#039;endroit où vous souhaitez lancer la macro.&lt;br /&gt;
# Faites l&#039;une des actions suivantes :&lt;br /&gt;
#* Cliquez sur le bouton Rejouer la macro [[File:MacroPlayback.png|Rejouer la macro]] dans le coin gauche inférieur de la fenêtre. Si le bouton s&#039;affiche en grisé, aucune macro n&#039;est disponible.&lt;br /&gt;
#* Alternativement, appuyez sur &amp;lt;code&amp;gt;Ctrl+Maj+P&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[Raccourcis clavier par défaut]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Utilisation de {{Product}}]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Recording a Keystroke Macro]]&lt;br /&gt;
[[de:Tastatur-Makro aufzeichnen]]&lt;br /&gt;
[[ja:キー入力マクロを記録する]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Cr%C3%A9ation_de_biblioth%C3%A8ques_de_templates&amp;diff=213833</id>
		<title>Création de bibliothèques de templates</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Cr%C3%A9ation_de_biblioth%C3%A8ques_de_templates&amp;diff=213833"/>
		<updated>2021-08-31T04:33:10Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Comment modifier le code dans l&#039;éditeur de code}}&lt;br /&gt;
&lt;br /&gt;
Les bibliothèques de templates sont des templates de projet personnalisés qui spécifient à quoi doit ressembler un projet et ce qu&#039;il doit contenir. Lorsque vous créez une bibliothèque de templates personnalisée, elle est placée dans la boîte de dialogue &#039;&#039;&#039;[[Nouveaux éléments|Nouveaux éléments]]&#039;&#039;&#039; où elle est accessible pour la création d&#039;un projet avec &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;
Vous pouvez créer des projets de bibliothèque de templates à partir de rien ou utiliser des projets préalablement créés par vous ou par d&#039;autres développeurs comme base des bibliothèques de templates. Pour utiliser un projet existant, créez simplement un fichier XML avec l&#039;extension &amp;lt;code&amp;gt;.bdstemplatelib&amp;lt;/code&amp;gt; qui décrit le projet et est utilisé pour créer la bibliothèque de templates utilisant ce projet.&lt;br /&gt;
&lt;br /&gt;
{{Note| Lors de la création d&#039;un projet à utiliser avec une bibliothèque de templates, le projet doit être situé dans un sous-répertoire ne contenant pas d&#039;autres projets. En outre, tous les fichiers du projet doivent résider dans le sous-répertoire ou ses sous-répertoires enfant.}}&lt;br /&gt;
&lt;br /&gt;
==Pour créer une bibliothèque de templates==&lt;br /&gt;
&lt;br /&gt;
# Créez un nouveau projet ou ouvrez un projet existant qui représentera la base de la bibliothèque de templates personnalisée.Apportez des modifications au projet afin de le personnaliser pour la bibliothèque de templates.&lt;br /&gt;
# Enregistrez et fermez le projet.&lt;br /&gt;
# 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; Documents Web&#039;&#039;&#039;&amp;lt;/font&amp;gt; et double-cliquez sur l&#039;icône &#039;&#039;&#039;Fichier XML&#039;&#039;&#039;.&lt;br /&gt;
# Remplacez le contenu par défaut du nouveau fichier XML par le contenu exemple suivant&amp;amp;nbsp;: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;TemplateLibrary Version=&amp;quot;1.0&amp;quot; id=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Description&amp;gt;&amp;lt;/Description&amp;gt;&lt;br /&gt;
    &amp;lt;Items&amp;gt;&lt;br /&gt;
      &amp;lt;Item id=&amp;quot;&amp;quot; Creator=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;Name of template library here &amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;Description&amp;gt;Custom Project Template&amp;lt;/Description&amp;gt;&lt;br /&gt;
        &amp;lt;Author&amp;gt;&amp;lt;/Author&amp;gt;&lt;br /&gt;
        &amp;lt;Icon&amp;gt;MyTemplate\MyTemplateIcon.ico&amp;lt;/Icon&amp;gt;&lt;br /&gt;
        &amp;lt;ProjectFile&amp;gt;MyTemplate.dproj&amp;lt;/ProjectFile&amp;gt;&lt;br /&gt;
        &amp;lt;DefaultProjectName&amp;gt;MyTemplate&amp;lt;/DefaultProjectName&amp;gt;&lt;br /&gt;
        &amp;lt;FilePath&amp;gt;MyTemplate&amp;lt;/FilePath&amp;gt;&lt;br /&gt;
        &amp;lt;Identities&amp;gt;RadStudio&amp;lt;/Identities&amp;gt;&lt;br /&gt;
      &amp;lt;/Item&amp;gt;&lt;br /&gt;
    &amp;lt;/Items&amp;gt;&lt;br /&gt;
  &amp;lt;/TemplateLibrary&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&lt;br /&gt;
{{Notes|&lt;br /&gt;
::* L&#039;attribut &amp;lt;code&amp;gt;id&amp;lt;nowiki&amp;gt; = &amp;lt;/nowiki&amp;gt;&amp;quot;&amp;quot;&amp;lt;/code&amp;gt; de l&#039;élément &amp;lt;code&amp;gt;&amp;amp;lt;TemplateLibrary&amp;amp;gt;&amp;lt;/code&amp;gt; doit être unique afin d&#039;éviter des conflits avec d&#039;autres bibliothèques de templates. Il est conseillé d&#039;inclure votre nom ou le nom de votre société dans &amp;lt;code&amp;gt;l&#039;id&amp;lt;/code&amp;gt;.&lt;br /&gt;
::* Pour les projets {{CBuilder}}, changez l&#039;extension dans l&#039;élément {{Code|{{Placeholder|ProjectFile}}}} par {{Code|cbproj}}.&lt;br /&gt;
::* L&#039;attribut &amp;lt;code&amp;gt;Creator&amp;lt;nowiki&amp;gt; = &amp;lt;/nowiki&amp;gt;&amp;quot;&amp;quot;&amp;lt;/code&amp;gt; de l&#039;élément &amp;lt;code&amp;gt;&amp;amp;lt;Item&amp;amp;gt;&amp;lt;/code&amp;gt; spécifie la page de la boîte de dialogue &#039;&#039;&#039;Nouveaux éléments&#039;&#039;&#039; qui affiche l&#039;icône de cette bibliothèque de templates. Vous pouvez placer l&#039;icône du projet sur une page spécifique au type de projet créé. }}&lt;br /&gt;
::Voici les valeurs possibles de l&#039;attribut &amp;lt;code&amp;gt;Creator=&amp;quot;&amp;quot;&amp;lt;/code&amp;gt;&amp;amp;nbsp;:&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;Type de projet&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Valeur de l&#039;attribut Creator de l&#039;élément&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Projets C++&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;Creator=&amp;quot;CBuilderProjectRepositoryCreator&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Projets {{Delphi}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&amp;lt;span class=&amp;quot;code&amp;quot;&amp;gt;Creator=&amp;quot;DelphiProjectRepositoryCreator&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;li&amp;gt;&lt;br /&gt;
Enregistrez le fichier xml &amp;lt;code&amp;gt;.bdstemplatelib&amp;lt;/code&amp;gt; dans un répertoire au-dessus du répertoire projet.&lt;br /&gt;
{{Note| L&#039;élément &amp;lt;code&amp;gt;&amp;amp;lt;FilePath&amp;amp;gt;&amp;lt;/code&amp;gt; du fichier &amp;lt;code&amp;gt;.bdstemplatelib&amp;lt;/code&amp;gt; indique l&#039;emplacement du répertoire projet relativement à l&#039;emplacement du fichier &amp;lt;code&amp;gt;.bdstemplatelib&amp;lt;/code&amp;gt;.}}&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Modifiez le contenu du XML &amp;lt;code&amp;gt;.bdstemplatelib&amp;lt;/code&amp;gt; de façon à le personnaliser pour votre propre bibliothèque de templates :&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Ajoutez le nom de la bibliothèque de templates, la description et la valeur de l&#039;attribut &amp;lt;code&amp;gt;Creator&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Modifiez le nom du projet, les informations de chemin du projet, le chemin de l&#039;icône et le nom du fichier. Vous pouvez facultativement ajouter votre nom comme auteur.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Spécifiez le chemin relatif au fichier XML &amp;lt;code&amp;gt;.bdstemplatelib&amp;lt;/code&amp;gt; dans la valeur &amp;lt;code&amp;gt;&amp;amp;lt;FilePath&amp;amp;gt;&amp;lt;/code&amp;gt;. Par exemple, si votre projet réside dans &amp;lt;code&amp;gt;C:\MyProjects\TemplateLibraries\MyTemplate&amp;lt;/code&amp;gt; et que vous placez le fichier XML dans &amp;lt;code&amp;gt;C:\MyProjects\TemplateLibraries&amp;lt;/code&amp;gt;, la valeur &amp;lt;code&amp;gt;&amp;amp;lt;FilePath&amp;amp;gt;&amp;lt;/code&amp;gt; dans le fichier XML est &amp;lt;code&amp;gt;&amp;amp;lt;FilePath&amp;amp;gt;TemplateLibraries\MyTemplate&amp;amp;lt;/FilePath&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Choisissez &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Outils &amp;amp;gt; Bibliothèques de templates&#039;&#039;&#039;&amp;lt;/font&amp;gt; pour ouvrir la boîte de dialogue &#039;&#039;&#039;[[Bibliothèques de templates|Bibliothèques de templates]]&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Cliquez sur le bouton &#039;&#039;&#039;Ajouter&#039;&#039;&#039;, naviguez jusqu&#039;au fichier XML &amp;lt;code&amp;gt;.bdstemplatelib&amp;lt;/code&amp;gt; nouvellement créé, sélectionnez-le et cliquez sur &#039;&#039;&#039;Ouvrir&#039;&#039;&#039;. La nouvelle bibliothèque de templates est ajoutée à la liste de la boîte de dialogue &#039;&#039;&#039;Bibliothèques de templates&#039;&#039;&#039;. Elle est également ajoutée dans la page spécifiée de la boîte de dialogue &#039;&#039;&#039;Nouveaux fichiers&#039;&#039;&#039;. Cliquez sur &#039;&#039;&#039;OK&#039;&#039;&#039; pour fermer la boîte de dialogue &#039;&#039;&#039;Bibliothèques de templates&#039;&#039;&#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Afin d&#039;utiliser cette bibliothèque de templates pour la création d&#039;un nouveau projet, 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; et sélectionnez votre bibliothèque de templates dans la boîte de dialogue &#039;&#039;&#039;Nouveaux fichiers&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Exemple===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;TemplateLibrary Version=&amp;quot;1.0&amp;quot; id=&amp;quot;CompanyNameDelphiVCLProject&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;DelphiVCLProject&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Description&amp;gt;Simple Delphi VCL Project&amp;lt;/Description&amp;gt;&lt;br /&gt;
    &amp;lt;Items&amp;gt;&lt;br /&gt;
      &amp;lt;Item id=&amp;quot;DelphiVCLProject&amp;quot; Creator=&amp;quot;DelphiProjectRepositoryCreator&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;Delphi VCL Project&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;Description&amp;gt;A simple Delphi VCL project.&amp;lt;/Description&amp;gt;&lt;br /&gt;
        &amp;lt;Author&amp;gt;John Doe&amp;lt;/Author&amp;gt;&lt;br /&gt;
        &amp;lt;ProjectFile&amp;gt;DelphiVCLProject.dproj&amp;lt;/ProjectFile&amp;gt;&lt;br /&gt;
        &amp;lt;DefaultProjectName&amp;gt;DelphiVCLProject&amp;lt;/DefaultProjectName&amp;gt;&lt;br /&gt;
        &amp;lt;FilePath&amp;gt;DelphiVCL&amp;lt;/FilePath&amp;gt;&lt;br /&gt;
        &amp;lt;Identities&amp;gt;RadStudio&amp;lt;/Identities&amp;gt;&lt;br /&gt;
      &amp;lt;/Item&amp;gt;&lt;br /&gt;
    &amp;lt;/Items&amp;gt;&lt;br /&gt;
  &amp;lt;/TemplateLibrary&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous avez plusieurs projets associés, vous pouvez utiliser un fichier bibliothèque de templates &amp;lt;code&amp;gt;.bdstemplatelib&amp;lt;/code&amp;gt; unique pour lister tous les projets.&lt;br /&gt;
&lt;br /&gt;
==Pour combiner plusieurs projets dans un seul fichier bibliothèque de templates==&lt;br /&gt;
&lt;br /&gt;
# Placez tous les dossiers projet au même niveau dans le même sous-dossier projet.&lt;br /&gt;
# Créez le fichier bibliothèque de templates &amp;lt;code&amp;gt;.bdstemplatelib&amp;lt;/code&amp;gt; au niveau situé au-dessus du dossier contenant tous les projets.&lt;br /&gt;
# Ajoutez le contenu pour le premier projet, comme décrit ci-dessus.&lt;br /&gt;
# Ajoutez un &amp;lt;code&amp;gt;&amp;amp;lt;Item&amp;amp;gt;&amp;amp;lt;/Item&amp;amp;gt;&amp;lt;/code&amp;gt; supplémentaire à l&#039;élément &amp;lt;code&amp;gt;&amp;amp;lt;Items&amp;amp;gt;&amp;amp;lt;/Items&amp;amp;gt;&amp;lt;/code&amp;gt; pour chaque projet du groupe, donnant à chaque &amp;lt;code&amp;gt;&amp;amp;lt;Item&amp;amp;gt;&amp;amp;lt;/Item&amp;amp;gt;&amp;lt;/code&amp;gt; un attribut &amp;lt;code&amp;gt;id=&amp;quot;&amp;lt;/code&amp;gt; unique.&lt;br /&gt;
&lt;br /&gt;
===Exemple===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;TemplateLibrary Version=&amp;quot;1.0&amp;quot; id=&amp;quot;Embarcadero&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;Name&amp;gt;MultipleProjectsTemplate&amp;lt;/Name&amp;gt;&lt;br /&gt;
    &amp;lt;Description&amp;gt;Template with multiple projects.&amp;lt;/Description&amp;gt;&lt;br /&gt;
    &amp;lt;Items&amp;gt;&lt;br /&gt;
      &amp;lt;Item id=&amp;quot;DelphiVCLProject&amp;quot; Creator=&amp;quot;DelphiProjectRepositoryCreator&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;Delphi VCL Project&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;Description&amp;gt;A simple Delphi VCL project.&amp;lt;/Description&amp;gt;&lt;br /&gt;
        &amp;lt;Author&amp;gt;John Doe&amp;lt;/Author&amp;gt;&lt;br /&gt;
        &amp;lt;ProjectFile&amp;gt;DelphiVCLProject.dproj&amp;lt;/ProjectFile&amp;gt;&lt;br /&gt;
        &amp;lt;DefaultProjectName&amp;gt;DelphiVCLProject1&amp;lt;/DefaultProjectName&amp;gt;&lt;br /&gt;
        &amp;lt;FilePath&amp;gt;DelphiVCL&amp;lt;/FilePath&amp;gt;&lt;br /&gt;
        &amp;lt;Identities&amp;gt;RadStudio&amp;lt;/Identities&amp;gt;&lt;br /&gt;
      &amp;lt;/Item&amp;gt;&lt;br /&gt;
      &amp;lt;Item id=&amp;quot;CppVCLProject&amp;quot; Creator=&amp;quot;CBuilderProjectRepositoryCreator&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Name&amp;gt;C++ VCL Project&amp;lt;/Name&amp;gt;&lt;br /&gt;
        &amp;lt;Description&amp;gt;A simple C++ VCL project.&amp;lt;/Description&amp;gt;&lt;br /&gt;
        &amp;lt;Author&amp;gt;John Doe&amp;lt;/Author&amp;gt;&lt;br /&gt;
        &amp;lt;ProjectFile&amp;gt;CPPVCLProject.cbproj&amp;lt;/ProjectFile&amp;gt;&lt;br /&gt;
        &amp;lt;DefaultProjectName&amp;gt;CPPVCLProject2&amp;lt;/DefaultProjectName&amp;gt;&lt;br /&gt;
        &amp;lt;FilePath&amp;gt;CPPVCL&amp;lt;/FilePath&amp;gt;&lt;br /&gt;
        &amp;lt;Identities&amp;gt;RadStudio&amp;lt;/Identities&amp;gt;&lt;br /&gt;
      &amp;lt;/Item&amp;gt;&lt;br /&gt;
    &amp;lt;/Items&amp;gt;&lt;br /&gt;
  &amp;lt;/TemplateLibrary&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[Présentation des bibliothèques de templates|Présentation des bibliothèques de templates]]&lt;br /&gt;
* [[Bibliothèques de templates|Bibliothèques de templates]]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Creation de bibliotheques de templates}}&lt;br /&gt;
[[Category:Utilisation de RAD Studio]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Creating Template Libraries]]&lt;br /&gt;
[[de:Vorlagenbibliotheken erstellen]]&lt;br /&gt;
[[ja:テンプレート ライブラリを作成する]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Mod%C3%A8le:Notes&amp;diff=213832</id>
		<title>Modèle:Notes</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Mod%C3%A8le:Notes&amp;diff=213832"/>
		<updated>2021-08-31T04:23:12Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;&lt;br /&gt;
    background-color: #def2f8;&lt;br /&gt;
    border-left: 10px solid #0f628a;&lt;br /&gt;
    color: black;&lt;br /&gt;
    font-size: 1em;&lt;br /&gt;
    font-style: italic;&lt;br /&gt;
    padding: 1em;&lt;br /&gt;
    margin: 1em 0;&lt;br /&gt;
    white-space: normal;&lt;br /&gt;
    word-wrap: break-word;&amp;quot;&amp;gt;&#039;&#039;&#039;Remarques:&#039;&#039;&#039; {{{1}}}&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Pr%C3%A9sentation_de_l%27EDI_-_Index_(tutoriel_de_l%27EDI)&amp;diff=213831</id>
		<title>Présentation de l&#039;EDI - Index (tutoriel de l&#039;EDI)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Pr%C3%A9sentation_de_l%27EDI_-_Index_(tutoriel_de_l%27EDI)&amp;diff=213831"/>
		<updated>2021-08-23T23:37:44Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Tutoriel&amp;amp;nbsp;: Utilisation de l&#039;EDI}}&lt;br /&gt;
&lt;br /&gt;
{{Note| Pour obtenir une vue globale des éléments de l&#039;EDI, voir aussi la rubrique d&#039;aide au nom similaire &#039;&#039;&#039;[[Présentation de l&#039;EDI|Présentation de l&#039;EDI]]&#039;&#039;&#039;.}}&lt;br /&gt;
&lt;br /&gt;
==Rubriques==&lt;br /&gt;
&lt;br /&gt;
* [[Aperçu et page d&#039;accueil|Aperçu et page d&#039;accueil]]&lt;br /&gt;
* [[Barres d&#039;outils (tutoriel de l&#039;EDI)|Barres d&#039;outils]]&lt;br /&gt;
*[[Outils - Index (tutoriel de l&#039;EDI)|Outils]]&lt;br /&gt;
** [[Options d&#039;accessibilité (tutoriel de l&#039;EDI)|Options d&#039;accessibilité]]&lt;br /&gt;
** [[Concepteur de fiches (tutoriel de l&#039;EDI)|Concepteur de fiches]]&lt;br /&gt;
** [[Palette d&#039;outils (tutoriel de l&#039;EDI)|Palette d&#039;outils]]&lt;br /&gt;
** [[Inspecteur d&#039;objets (tutoriel de l&#039;EDI)|Inspecteur d&#039;objets]]&lt;br /&gt;
** [[Gestionnaire de projets (tutoriel de l&#039;EDI)|Gestionnaire de projets]]&lt;br /&gt;
** [[Navigateur de fichiers (tutoriel de l&#039;EDI)|Navigateur de fichiers]]&lt;br /&gt;
** [[Vue Structure (tutoriel de l&#039;EDI)|Vue Structure]]&lt;br /&gt;
**[[L&#039;éditeur de code - Index (tutoriel de l&#039;EDI)|L&#039;éditeur de code]]&lt;br /&gt;
*** [[Navigation dans le code (tutoriel de l&#039;EDI)|Navigation dans le code]]&lt;br /&gt;
*** [[Formatage du code source (tutoriel de l&#039;EDI)|Formatage du code source]]&lt;br /&gt;
*** [[Pliage du code (tutoriel de l&#039;EDI)|Pliage du code]]&lt;br /&gt;
*** [[Barres de modification (tutoriel de l&#039;EDI)|Barres de modification]]&lt;br /&gt;
*** [[Commentaires de bloc (tutoriel de l&#039;EDI)|Commentaires de bloc]]&lt;br /&gt;
*** [[Templates dynamiques (tutoriel de l&#039;EDI)|Templates dynamiques]]&lt;br /&gt;
*** [[Synchronisation des modifications (tutoriel de l&#039;EDI)|Synchronisation des modifications]]&lt;br /&gt;
*** [[Audit de code (tutoriel de l&#039;EDI)|Audit de code]]&lt;br /&gt;
*** [[Refactoring (tutoriel de l&#039;EDI)|Refactoring]]&lt;br /&gt;
*** [[Macros clavier (tutoriel de l&#039;EDI)|Macros clavier]]&lt;br /&gt;
*** [[Listes A faire (tutoriel de l&#039;EDI)|Listes A faire]]&lt;br /&gt;
* [[Gestionnaire de l&#039;historique (tutoriel de l&#039;EDI)|Gestionnaire de l&#039;historique]]&lt;br /&gt;
* [[Intégration de Subversion dans l&#039;EDI (tutoriel de l&#039;EDI)|Intégration de Subversion dans l&#039;EDI]]&lt;br /&gt;
* [[Explorateur de données (tutoriel de l&#039;EDI)|Explorateur de données]]&lt;br /&gt;
* [[Référentiel d&#039;objets (tutoriel de l&#039;EDI)|Référentiel d&#039;objets]]&lt;br /&gt;
* [[IDE Insight (tutoriel de l&#039;EDI)|IDE Insight]]&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[Visites guidées de RAD Studio|Visites guidées de RAD Studio]] {{f|radstudio|&lt;br /&gt;
* &#039;&#039;&#039;[[Présentation de l&#039;EDI|Présentation de l&#039;EDI]]&#039;&#039;&#039; dans [[Introduction à {{Variables|Product}}|Introduction à {{Variables|Product}}]]}}&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Presentation de l&#039;EDI - Index (tutoriel de l&#039;EDI)}}&lt;br /&gt;
[[Category:Delphi]]&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Tour of the IDE Index (IDE Tutorial)]]&lt;br /&gt;
[[de:Ein erster Blick auf die IDE - Index (IDE-Tutorial)]]&lt;br /&gt;
[[ja:IDE の概要（IDE チュートリアル）：インデックス]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Contr%C3%B4les_Windows_natifs_de_FireMonkey&amp;diff=213820</id>
		<title>Contrôles Windows natifs de FireMonkey</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Contr%C3%B4les_Windows_natifs_de_FireMonkey&amp;diff=213820"/>
		<updated>2021-06-09T21:08:59Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Contrôles natifs de FireMonkey}}&lt;br /&gt;
&lt;br /&gt;
Cette rubrique décrit les &#039;&#039;&#039;contrôles Windows natifs&#039;&#039;&#039; de {{FM}}.&lt;br /&gt;
&lt;br /&gt;
==Présentation des contrôles Windows natifs de {{FM}}==&lt;br /&gt;
&lt;br /&gt;
{{FM}} fournit une présentation native pour certains composants visuels.&lt;br /&gt;
&lt;br /&gt;
* Définissez la propriété [[lib_fr:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]] sur {{Const|Styled}} pour avoir la présentation {{FM}} standard du contrôle. {{Const|Styled}} est la valeur par défaut de [[lib_fr:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]].&lt;br /&gt;
* Définissez la propriété [[lib_fr:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]] sur {{Const|Platform}} pour avoir le style natif de ce contrôle.&lt;br /&gt;
&lt;br /&gt;
==Contrôles Windows natifs de {{FM}} disponibles==&lt;br /&gt;
&lt;br /&gt;
La liste suivante contient tous les contrôles prenant en charge la présentation native :&lt;br /&gt;
&lt;br /&gt;
* [[lib_fr:FMX.Edit.TEdit|TEdit]]&lt;br /&gt;
* [[lib_fr:FMX.Memo.TMemo|TMemo]]&lt;br /&gt;
* [[lib_fr:FMX.ScrollBox.TPresentedScrollBox|TPresentedScrollBox]]&lt;br /&gt;
* [[lib_fr:FMX.ScrollBox.TPresentedVertScrollBox|TPresentedVertScrollBox]]&lt;br /&gt;
* [[lib_fr:FMX.ScrollBox.TPresentedHorzScrollBox|TPresentedHorzScrollBox]]&lt;br /&gt;
* [[lib_fr:FMX.ScrollBox.TPresentedFramedScrollBox|TPresentedFramedScrollBox]]&lt;br /&gt;
* [[lib_fr:FMX.ScrollBox.TPresentedFramedVertScrollBox|TPresentedFramedVertScrollBox]]&lt;br /&gt;
&lt;br /&gt;
==Changements visuels des contrôles Windows natifs==&lt;br /&gt;
&lt;br /&gt;
Lorsque la propriété [[lib_fr:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]] d&#039;un composant visuel est définie sur {{Const|Platform}}, la présentation de ce contrôle dans le [[Concepteur de fiches|Concepteur de fiches]] change pour indiquer qu&#039;il s&#039;agit d&#039;un contrôle natif et une icône représentant un petit téléphone apparaît dans l&#039;angle inférieur droit.&lt;br /&gt;
Les images suivantes montrent l&#039;apparence des contrôles Windows natifs avec la propriété [[lib_fr:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]] définie sur {{Const|Styled}} et {{Const|Platform}}, à la conception et à l&#039;exécution :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; |Contrôle&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |A la conception&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |A l&#039;exécution&lt;br /&gt;
|-&lt;br /&gt;
! {{Const|Styled}}&lt;br /&gt;
! {{Const|Platform}}&lt;br /&gt;
! {{Const|Styled}}&lt;br /&gt;
! {{Const|Platform}}&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_fr:FMX.Edit.TEdit|TEdit]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TEditStyled DT win.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TEditPlatform DT win.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TEditStyled RT win.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TEditPlatform RT win.png|200px]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_fr:FMX.Memo.TMemo|TMemo]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TMemo Styled DT win.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TMemo Platform DT win.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TMemo Styled RT win.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TMemo Platform RT win.png|200px]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_fr:FMX.ScrollBox.TPresentedScrollBox|TPresentedScrollBox]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TPresentedScrollBox Styled DT.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TPresentedScrollBox Platform DT.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TPresentedScrollBox Styled RT win.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TPresentedScrollBox Platform RT win.png|200px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Ajout de contrôles Windows natifs à votre application==&lt;br /&gt;
&lt;br /&gt;
Pour ajouter des contrôles Windows natifs à votre application :&lt;br /&gt;
&lt;br /&gt;
# Déposez sur la fiche un composant prenant en charge la présentation native ([[#Contrôles Windows natifs de FireMonkey disponibles|listes des contrôles pris en charge]]).&lt;br /&gt;
# Dans [[Inspecteur d&#039;objets|l&#039;inspecteur d&#039;objets]], sous &#039;&#039;&#039;Propriétés&#039;&#039;&#039;, définissez la propriété [[lib_fr:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]] sur {{Const|Platform}}. A la conception, la présentation du composant change (voir [[#Changements visuels des contrôles Windows natifs|Changements visuels des contrôles Windows natifs]]).&lt;br /&gt;
# Exécutez votre application.&lt;br /&gt;
&lt;br /&gt;
Sinon, vous pouvez changer la valeur de [[lib_fr:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]] à l&#039;exécution. Pour sélectionner la présentation native pour un contrôle [[lib_fr:FMX.Edit.TEdit|TEdit]], ajoutez le code suivant à votre application :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;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;
Edit1.ControlType := TPresentedControl.TControlType.Platform;&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;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;
Edit1-&amp;gt;ControlType = TPresentedControl::TControlType::Platform;&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Combinaison de contrôles Windows natifs et de contrôles non natifs==&lt;br /&gt;
&lt;br /&gt;
Il n&#039;est pas recommandé de combiner des contrôles non natifs avec des contrôles natifs, car ces derniers ne prennent pas en charge l&#039;ordre Z de la fiche : un contrôle natif est toujours placé au-dessus des autres contrôles sur votre fiche. Toutefois, il existe des contrôles non natifs que vous pouvez combiner avec des contrôles natifs, car ils prennent en charge l&#039;ordre Z des contrôles natifs.&lt;br /&gt;
&lt;br /&gt;
La liste suivante contient tous les contrôles ayant la propriété [[lib_fr:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]] et pouvant donc être combinés avec des contrôles natifs :&lt;br /&gt;
&lt;br /&gt;
* [[lib_fr:FMX.MultiView.TMultiView.ControlType|TMultiView]]&lt;br /&gt;
* [[lib_fr:FMX.StdCtrls.TButton|TButton]]&lt;br /&gt;
* [[lib_fr:FMX.StdCtrls.TSpeedButton|TSpeedButton]]&lt;br /&gt;
* [[lib_fr:FMX.Colors.TColorButton|TColorButton]]&lt;br /&gt;
* [[lib_fr:FMX.StdCtrls.TCornerButton|TCornerButton]]&lt;br /&gt;
* [[lib_fr:FMX.ExtCtrls.TPopupBox|TPopupBox]]&lt;br /&gt;
* &#039;&#039;&#039;TMagnifierGlass&#039;&#039;&#039;&lt;br /&gt;
* [[lib_fr:FMX.StdCtrls.TPanel|TPanel]]&lt;br /&gt;
* [[lib_fr:FMX.StdCtrls.TLabel|TLabel]]&lt;br /&gt;
* [[lib_fr:FMX.StdCtrls.TCheckBox|TCheckBox]]&lt;br /&gt;
* [[lib_fr:FMX.StdCtrls.TRadioButton|TRadioButton]]&lt;br /&gt;
* [[lib_fr:FMX.StdCtrls.TGroupBox|TGroupBox]]&lt;br /&gt;
* [[lib_fr:FMX.StdCtrls.TStatusBar|TStatusBar]]&lt;br /&gt;
* [[lib_fr:FMX.StdCtrls.TToolBar|TToolBar]]&lt;br /&gt;
* [[lib_fr:FMX.StdCtrls.TProgressBar|TProgressBar]]&lt;br /&gt;
* [[lib_fr:FMX.StdCtrls.TTrackBar|TTrackBar]]&lt;br /&gt;
* [[lib_fr:FMX.ListView.TListView|TListView]]&lt;br /&gt;
&lt;br /&gt;
La liste suivante contient tous les contrôles n&#039;ayant pas la propriété [[lib_fr:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]] mais pouvant également être combinés avec des contrôles natifs :&lt;br /&gt;
&lt;br /&gt;
* [[lib_fr:FMX.WebBrowser.TWebBrowser|TWebBrowser]]&lt;br /&gt;
* [[lib_fr:FMX.Media.TMediaPlayer|TMediaPlayer]]&lt;br /&gt;
&lt;br /&gt;
==Avantages des contrôles Windows natifs==&lt;br /&gt;
&lt;br /&gt;
Certains contrôles prennent en charge une fonctionnalité supplémentaire lorsque vous les utilisez comme contrôles natifs : &lt;br /&gt;
&lt;br /&gt;
===TMemo et TEdit===&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Eléments supplémentaires du menu contextuel :&#039;&#039;&#039;&lt;br /&gt;
** Annuler : annule la dernière action.&lt;br /&gt;
** Ordre de lecture de droite à gauche : change l&#039;ordre de lecture et justifie le texte sur le côté droit du contrôle. Voir [https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/lang_right_to_left.mspx?mfr=true la documentation Microsoft - To set right-to-left reading order (EN)] pour plus d&#039;informations.&lt;br /&gt;
** Afficher les caractères de contrôle Unicode : affiche les [[Wikipedia:Unicode control characters|caractères de contrôle Unicode]].&lt;br /&gt;
** Insérer un caractère de contrôle Unicode : insère un caractère de contrôle Unicode.&lt;br /&gt;
** Ouvrir IME : IME désigne {{Code|Microsoft Global Input Method Editor}}. Il permet la saisie de caractères japonais, chinois et coréens dans les applications les prenant en charge sur d&#039;autres versions de Windows.&lt;br /&gt;
&lt;br /&gt;
Les fonctionnalités ci-dessus sont fournies dans le menu contextuel du contrôle. Le menu contextuel du contrôle mémo ou du contrôle d&#039;édition est donc différent pour {{Const|Styled}} et {{Const|Platform}} :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Contrôle&lt;br /&gt;
! Menu contextuel ({{Const|Styled}})&lt;br /&gt;
! Menu contextuel ({{Const|Plateform}})&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_fr:FMX.Memo.TMemo|TMemo]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TMemo ContextMenu Styled RT win.png|150px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TMemo ContextMenu Platform RT win.png|300px]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_fr:FMX.Edit.TEdit|TEdit]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TEdit ContextMenu Styled RT win.png|150px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TEdit ContextMenu Platform RT win.png|300px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Limitations des contrôles Windows natifs==&lt;br /&gt;
&lt;br /&gt;
Avant d&#039;utiliser les contrôles natifs, pensez aux limitations suivantes :&lt;br /&gt;
&lt;br /&gt;
* Les contrôles natifs ne prennent pas en charge les styles personnalisés ou prédéfinis. Lorsque la propriété [[lib_fr:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]] d&#039;un contrôle natif est définie sur {{Const|Platform}}, la valeur de la propriété [[lib_fr:FMX.Controls.TStyledControl.StyleLookup|StyleLookup]] est ignorée.&lt;br /&gt;
* La prise en charge de l&#039;arrière-plan transparent par les contrôles natifs est limitée. Les contrôles transparents ne sont pas peints correctement.&lt;br /&gt;
* Les contrôles natifs ne prennent pas en charge l&#039;ordre Z de la fiche : un contrôle natif est toujours placé au-dessus des autres contrôles {{FM}} disponibles sur votre fiche. Voir [[#Combinaison de contrôles Windows natifs et de contrôles non natifs|Combinaison de contrôles Windows natifs et de contrôles non natifs]] pour plus d&#039;informations.&lt;br /&gt;
* Les gestionnaires d&#039;événement suivants ne sont pas pris en charge et ne peuvent pas être implémentés :&lt;br /&gt;
** [[lib_fr:FMX.Controls.TControl.OnApplyStyleLookup|OnApplyStyleLookup]]&lt;br /&gt;
** [[lib_fr:FMX.Controls.TControl.OnDblClick|OnDblClick]]&lt;br /&gt;
** [[lib_fr:FMX.Controls.TControl.OnGesture|OnGesture]]&lt;br /&gt;
* Les événements suivants se produisent mais vous ne pouvez pas les utiliser comme attendu (pour redéfinir la visualisation du contrôle). Cependant, vous pouvez les utiliser comme indication du moment auquel le système repeint le contrôle :&lt;br /&gt;
** [[lib_fr:FMX.Controls.TControl.OnPaint|OnPaint]]&lt;br /&gt;
** [[lib_fr:FMX.Controls.TControl.OnPainting|OnPainting]]&lt;br /&gt;
&lt;br /&gt;
Il existe également des limitations spécifiques aux contrôles : &lt;br /&gt;
&lt;br /&gt;
===TMemo===&lt;br /&gt;
&lt;br /&gt;
L&#039;événement suivant n&#039;est pas pris en charge et ne peut pas être implémenté dans [[lib_fr:FMX.Memo.TMemo|TMemo]] :&lt;br /&gt;
&lt;br /&gt;
* [[lib_fr:FMX.Memo.TMemo.OnViewportPositionChange|OnViewportPositionChange]]&lt;br /&gt;
&lt;br /&gt;
===TMemo et TEdit===&lt;br /&gt;
&lt;br /&gt;
La définition de valeurs de paramètre dans le gestionnaire d&#039;événement {{Code|OnKeyXX}} ne supprime pas la saisie au clavier.&lt;br /&gt;
Par exemple, si vous définissez {{Code|1=KeyChar&amp;amp;nbsp;:= #0;}} dans le gestionnaire d&#039;événement [[lib_fr:FMX.Controls.TControl.OnKeyDown|OnKeyDown]] puis appuyez sur la touche {{Const|s}}, la présentation native produit toujours le résultat {{Const|s}}, alors que la présentation stylée ne produit aucun résultat.&lt;br /&gt;
&lt;br /&gt;
La limitation ci-dessus s&#039;applique aux gestionnaires d&#039;événement suivants :&lt;br /&gt;
&lt;br /&gt;
* [[lib_fr:FMX.Controls.TControl.OnKeyDown|OnKeyDown]]&lt;br /&gt;
* [[lib_fr:FMX.Controls.TControl.OnKeyUp|OnKeyUp]]&lt;br /&gt;
&lt;br /&gt;
Les événements suivants ne sont pas pris en charge et ne peuvent pas être implémentés dans [[lib_fr:FMX.Memo.TMemo|TMemo]] et [[lib_fr:FMX.Edit.TEdit|TEdit]] :&lt;br /&gt;
&lt;br /&gt;
* {{Code|OnValidate}}&lt;br /&gt;
&lt;br /&gt;
{{Note| L&#039;événement {{Code|OnValidating}} se produit dans {{FM}} et dans la présentation native de [[lib_fr:FMX.Memo.TMemo|TMemo]] et [[lib_fr:FMX.Edit.TEdit|TEdit]].}}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[Contrôles natifs de FireMonkey|Contrôles natifs de FireMonkey]]&lt;br /&gt;
* [[Contrôles iOS natifs de FireMonkey|Contrôles iOS natifs de FireMonkey]]&lt;br /&gt;
* [[lib_fr:FMX.Controls.Presentation.TPresentedControl.ControlType|TPresentedControl.ControlType]]&lt;br /&gt;
* [[Personnalisation de l&#039;apparence de la vue liste FireMonkey|Personnalisation de l&#039;apparence de la vue liste {{FM}}]]&lt;br /&gt;
&lt;br /&gt;
===Exemples===&lt;br /&gt;
&lt;br /&gt;
* Exemple [[samp_en:FMX.NativeControls Sample|{{FM}} Native Controls]]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Controles Windows natifs de FireMonkey}}&lt;br /&gt;
[[Category:Multi-périphérique]]&lt;br /&gt;
[[Category:FMX]]&lt;br /&gt;
[[Category:Seattle]]&lt;br /&gt;
&lt;br /&gt;
[[en:FireMonkey Native Windows Controls]]&lt;br /&gt;
[[de:Native FireMonkey-Windows-Steuerelemente]]&lt;br /&gt;
[[ja:FireMonkey のネイティブ Windows コントロール]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Notifications_de_changements_de_donn%C3%A9es_(FireDAC)&amp;diff=213818</id>
		<title>Notifications de changements de données (FireDAC)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Notifications_de_changements_de_donn%C3%A9es_(FireDAC)&amp;diff=213818"/>
		<updated>2021-05-05T20:09:50Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
{{Parent|Utilisation des commandes (FireDAC)}}&lt;br /&gt;
&lt;br /&gt;
La fonctionnalité Notifications de changements de données peut être utilisée pour informer les clients de bases de données des changements de données dans certaines bases de données. Cette fonction fait le suivi des modifications de données dans une base de données (comme les opérations {{code|INSERT}}, {{code|UPDATE}} ou {{code|DELETE}}) et en informe le client de la base de données.&lt;br /&gt;
&lt;br /&gt;
FireDAC prend en charge la fonctionnalité Notifications de changements pour différentes base de données (voir [[#Prise en charge des notifications de changements|Prise en charge des notifications de changements]]). Toutefois, FireDAC utilise différentes méthodes pour implémenter cette fonctionnalité en fonction du type de base de données. Cette rubrique présente des informations générales concernant la fonctionnalité Notifications de changements de données de FireDAC, puis indique les [[#Notifications de changements de données pour les SGBD spécifiques|éléments à prendre en compte concernant des implémentations de SGBD spécifiques]].&lt;br /&gt;
&lt;br /&gt;
Pour plus d&#039;informations sur les mécanismes d&#039;alerte des bases de données, voir [[Alertes des bases de données (FireDAC)|Alertes des bases de données]].&lt;br /&gt;
&lt;br /&gt;
==Configurer une fonctionnalité Notifications de changements de données FireDAC==&lt;br /&gt;
&lt;br /&gt;
Pour configurer la fonctionnalité Notifications de changements de données sur une application FireDAC, vous devez inclure et configurer les composants principaux suivants :&lt;br /&gt;
&lt;br /&gt;
* Un objet [[lib_fr:FireDAC.Comp.Client.TFDConnection|TFDConnection]] - Il s&#039;agit de l&#039;objet connexion FireDAC utilisé pour établir la connexion à un SGBD.&lt;br /&gt;
{{Note| Cette section suppose que vous avez lu et compris la rubrique [[Premières étapes dans l&#039;utilisation de FireDAC|Premières étapes dans l&#039;utilisation de FireDAC]], qui fournit des instructions sur la façon de développer une application VCL simple pour se connecter à des bases de données exemple.}}&lt;br /&gt;
&lt;br /&gt;
* Un objet [[lib_fr:FireDAC.Comp.Client.TFDQuery|TFDQuery]] - Il s&#039;agit de l&#039;objet FireDAC utilisé pour implémenter des ensembles de données capables d&#039;exécuter des requêtes SQL. Vous devez configurer les propriétés de base suivantes de la requête SQL suivie :&lt;br /&gt;
** La propriété [[lib_fr:FireDAC.Comp.Client.TFDRdbmsDataSet.Connection|Connection]] doit être définie pour spécifier l&#039;objet connexion FireDAC.&lt;br /&gt;
** La propriété [[lib_fr:FireDAC.Comp.Client.TFDQuery.SQL|SQL]] doit être définie avec l&#039;instruction SQL souhaitée. &lt;br /&gt;
** La propriété [[lib_fr:FireDAC.Comp.Client.TFDQuery.ChangeAlerter|ChangeAlerter]] doit être définie pour spécifier l&#039;objet alerte FireDAC associé à votre ensemble de données.&lt;br /&gt;
** La propriété [[lib_fr:FireDAC.Comp.Client.TFDQuery.ChangeAlertName|ChangeAlertName]] peut être définie pour spécifier le nom de la table de base dont les changements sont suivis.&lt;br /&gt;
&lt;br /&gt;
* Un objet [[lib_fr:FireDAC.Comp.Client.TFDEventAlerter|TFDEventAlerter]] - Il s&#039;agit des objets utilisés pour gérer les notifications de changements de bases de données. Vous devez configurer les propriétés de base suivantes de l&#039;alerte d&#039;événement :&lt;br /&gt;
** La propriété [[lib_fr:FireDAC.Comp.Client.TFDEventAlerter.Options|Options]] peut être utilisée pour spécifier un [[lib_fr:FireDAC.Stan.Option.TFDEventAlerterOptions|ensemble de propriétés]] de contrôle du comportement de l&#039;alerte d&#039;événement.&lt;br /&gt;
** La propriété [[lib_fr:FireDAC.Comp.Client.TFDEventAlerter.SubscriptionName|SubscriptionName]] doit être définie pour spécifier le nom d&#039;abonnement de la notification de changement. Cela dépend du type de base de données que vous utilisez :&lt;br /&gt;
{{Note| Activez [[lib_fr:FireDAC.Comp.Client.TFDEventAlerter|TFDEventAlerter]] avant d&#039;exécuter le [[lib_fr:FireDAC.Comp.Client.TFDQuery|TFDQuery]] suivi. En effet, l&#039;instruction doit être recensée avec l&#039;API de notification de requête avant son exécution. C&#039;est une condition requise par SQL Server et Oracle.}}&lt;br /&gt;
&lt;br /&gt;
==Réponses aux notifications de changement==&lt;br /&gt;
&lt;br /&gt;
Dès qu&#039;il reçoit une notification de changement de données, FireDAC récupère automatiquement les changements et met à jour l&#039;ensemble de données. Ce processus est contrôlé par les propriétés suivantes du composant [[lib_fr:FireDAC.Comp.Client.TFDEventAlerter|TFDEventAlerter]] :&lt;br /&gt;
&lt;br /&gt;
* [[lib_fr:FireDAC.Comp.Client.TFDCustomEventAlerter.Options|FireDAC.Comp.Client.TFDCustomEventAlerter.Options]].[[lib_fr:FireDAC.Stan.Option.TFDEventAlerterOptions.AutoRefresh|AutoRefresh]]&lt;br /&gt;
* [[lib_fr:FireDAC.Comp.Client.TFDCustomEventAlerter.Options|FireDAC.Comp.Client.TFDCustomEventAlerter.Options]].[[lib_fr:FireDAC.Stan.Option.TFDEventAlerterOptions.Timeout|Timeout]]&lt;br /&gt;
* [[lib_fr:FireDAC.Comp.Client.TFDCustomEventAlerter.Options|FireDAC.Comp.Client.TFDCustomEventAlerter.Options]].[[lib_fr:FireDAC.Stan.Option.TFDEventAlerterOptions.MergeData|MergeData]]&lt;br /&gt;
&lt;br /&gt;
Les projets de démonstration listés sur [[#Notifications de changements de données pour les SGBD spécifiques|Notifications de changements de données pour les SGBD spécifiques]] montrent comment utiliser le scénario mentionné ci-dessus.&lt;br /&gt;
&lt;br /&gt;
Par ailleurs, vous pouvez utiliser le gestionnaire d&#039;événement [[lib_fr:FireDAC.Comp.Client.TFDCustomEventAlerter.OnAlert|TFDCustomEventAlerter.OnAlert]], qui est déclenché après la détection des changements effectués dans l&#039;ensemble de données suivi. Ce gestionnaire d&#039;événement vous permet d&#039;implémenter votre scénario personnalisé afin de répondre à une notification de changement de données. Le code suivant implémente un gestionnaire d&#039;événement [[lib_fr:FireDAC.Comp.Client.TFDCustomEventAlerter.OnAlert|OnAlert]] qui affiche un message lorsque des données de la base de données sont modifiées.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&#039;&#039;&#039;{{Delphi}}&#039;&#039;&#039; :&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm1.FDEventAlerter1Alert(ASender: TFDCustomEventAlerter;&lt;br /&gt;
  const AEventName: string; const AArgument: Variant);&lt;br /&gt;
begin&lt;br /&gt;
ShowMessage(&#039;Detected changes to the demo dataset.&#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;{{CBuilder}} :&#039;&#039;&#039; &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void __fastcall TForm1::FDEventAlerter1Alert(TFDCustomEventAlerter *ASender, const UnicodeString AEventName,&lt;br /&gt;
          const Variant &amp;amp;AArgument)&lt;br /&gt;
{&lt;br /&gt;
  ShowMessage(&amp;quot;Detected changes to the demo dataset. &amp;quot;);&lt;br /&gt;
}&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Prise en charge des notifications de changements==&lt;br /&gt;
&lt;br /&gt;
Le tableau suivant récapitule les informations sur les mécanismes de notifications de changements utilisés pour chaque SGBD.&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;SGBD&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Type de notification de changement&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Type Delta&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;TFDEventAlerter.SubscriptionName&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |InterBase&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Alerte d&#039;événement (notification manuelle)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Change Views (delta automatique)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Nom d&#039;abonnement InterBase Change View&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |MS SQL Server&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Notification des mises à jour de requête (notification automatique)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Aucun (actualisation complète de l&#039;ensemble de données)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Texte du message de notification&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left; vertical-align: middle;&amp;quot; | Oracle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |DBMS_ALERT / DBMS_PIPE (notification manuelle)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Aucun (actualisation complète de l&#039;ensemble de données)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Texte du message de notification&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Continuous Query Notification (CQN)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Delta automatique&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Toute valeur&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Advantage Database&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Alerte d&#039;événement (notification manuelle)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Aucun (actualisation complète de l&#039;ensemble de données)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Texte du message de notification&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Sybase SQL Anywhere&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Messages (notification manuelle)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Aucun (actualisation complète de l&#039;ensemble de données)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Texte du message de notification&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Serveur DataSnap&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Rappels (notification manuelle)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Aucun (actualisation complète de l&#039;ensemble de données)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Texte du message de notification&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |DB2&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |DBMS_ALERT / DBMS_PIPE (notification manuelle)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Aucun (actualisation complète de l&#039;ensemble de données)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Texte du message de notification&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Firebird&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Alerte d&#039;événement (notification manuelle)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Aucun (actualisation complète de l&#039;ensemble de données)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Texte du message de notification&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Informix&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |DBMS_ALERT (notification manuelle)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Aucun (actualisation complète de l&#039;ensemble de données)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Texte du message de notification&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |PostgreSQL&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Notification d&#039;événement (notification manuelle)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Aucun (actualisation complète de l&#039;ensemble de données)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Texte du message de notification&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |SQLite&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Alerte d&#039;événement (notification manuelle)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Aucun (actualisation complète de l&#039;ensemble de données)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Texte du message de notification&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Notifications de changements de données pour des SGBD spécifiques==&lt;br /&gt;
&lt;br /&gt;
Cette section indique les éléments spécifiques à prendre en compte pour implémenter une fonctionnalité Notifications de changements de données pour différentes bases de données.&lt;br /&gt;
&lt;br /&gt;
===InterBase Change Views===&lt;br /&gt;
&lt;br /&gt;
La fonctionnalité Change Views est la méthode Interbase d&#039;implémentation de la Notification de changements de données. Pour plus d&#039;informations, voir [http://docwiki.embarcadero.com/InterBase/XE7/en/Change_Views Change Views (EN)].&lt;br /&gt;
&lt;br /&gt;
Avant de développer une application InterBase qui utilise la fonctionnalité Change Views, vous devez créer un abonnement à Change Views. Le fragment de code suivant fournit un exemple de création de l&#039;abonnement :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
/* Create the xxx subscription to track changes to the &#039;yyy&#039; table */&lt;br /&gt;
CREATE SUBSCRIPTION xxx ON yyy FOR ROW (INSERT, UPDATE, DELETE);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour plus d&#039;informations sur la configuration de la fonctionnalité Change Views, consultez le projet de démonstration dans :&lt;br /&gt;
&lt;br /&gt;
* {{SamplesMenu}}, puis naviguez jusqu&#039;à &#039;&#039;&#039;Object Pascal\Database\FireDAC\Samples\DBMS Specific\InterBase\ChangeView\Generic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Oracle CQN===&lt;br /&gt;
&lt;br /&gt;
La fonctionnalité Continuous Query Notification (CQN) est l&#039;implémentation Oracle de la fonctionnalité Notifications de changements de données. Pour de plus amples informations, voir [http://docs.oracle.com/cd/B28359_01/appdev.111/b28395/oci10new.htm#CJGHFEDD Continuous Query Notification (EN)].&lt;br /&gt;
&lt;br /&gt;
Pour configurer la fonctionnalité Oracle CQN, vous devez prendre en compte les considérations suivantes :&lt;br /&gt;
&lt;br /&gt;
* Le client Oracle doit avoir le privilège &#039;&#039;&#039;notification de changement&#039;&#039;&#039;. Le fragment de code suivant montre comment donner à l&#039;utilisateur ce privilège :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
/* Give change notification privilege to the xxx Oracle user */&lt;br /&gt;
GRANT DBMS_CHANGE_NOTIFICATION TO xxx;&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*  La propriété [[lib_fr:FireDAC.Comp.Client.TFDQuery.SQL|SQL]] doit inclure les [[Utilisation d&#039;Oracle avec FireDAC#ROWID implicites|colonnes {{code|ROWID}}]] dans la liste {{code|SELECT}} de la table de base. Par exemple : {{code|SELECT t.ROWID, t.* FROM table t}}.&lt;br /&gt;
{{Note| L&#039;identifiant {{code|ROWID}} est un [[Champs d&#039;identification unique (FireDAC)|champ d&#039;identification unique (FireDAC)]] pour une ligne dans une base de données. Il est créé au moment où la ligne est insérée dans la table, et est détruit lorsqu&#039;elle est supprimée. Les valeurs ROWID ont plusieurs utilisations importantes. Par exemple, elles fournissent le moyen le plus rapide d&#039;accéder à une ligne unique.}}&lt;br /&gt;
&lt;br /&gt;
* Les propriétés suivantes de l&#039;objet [[lib_fr:FireDAC.Comp.Client.TFDEventAlerter|TFDEventAlerter]] doivent être configurées comme suit :&lt;br /&gt;
** Définissez la propriété [[lib_fr:FireDAC.Comp.Client.TFDEventAlerter.Options|Options]].[[lib_fr:FireDAC.Stan.Option.TFDEventAlerterOptions.Kind|Kind]] sur {{code|QueryNotifies}}.&lt;br /&gt;
** Définissez la propriété [[lib_fr:FireDAC.Comp.Client.TFDEventAlerter.SubscriptionName|SubscriptionName]] sur n&#039;importe quelle valeur. Cette propriété ne peut pas être vide. Sinon, la requête sera actualisée entièrement plutôt que de façon incrémentielle.&lt;br /&gt;
&lt;br /&gt;
Pour plus d&#039;informations sur la configuration de la fonctionnalité Oracle CQN, voir l&#039;exemple [[samp_en:FireDAC.Oracle CQN Sample|FireDAC Oracle CQN]].&lt;br /&gt;
&lt;br /&gt;
====Problèmes Oracle connus====&lt;br /&gt;
&lt;br /&gt;
Certaines versions du logiciel client 11.2 ne peuvent pas recevoir de notifications de changements, de notifications de rappels OCI ou de notifications Advanced Queuing (AQ) de certaines versions de bases de données 11.2. Il s&#039;agit d&#039;un problème Oracle connu. Vous trouverez plus d&#039;informations dans la [https://support.oracle.com/epmos/faces/DocumentDisplay?id=1310859.1 page (EN)] Oracle suivante.&lt;br /&gt;
&lt;br /&gt;
===Microsoft SQL===&lt;br /&gt;
&lt;br /&gt;
Pour plus d&#039;informations sur la configuration de la fonctionnalité Notifications de changements de données pour une base de données MSSQL, consultez le projet de démonstration dans :&lt;br /&gt;
&lt;br /&gt;
* {{SamplesMenu}}, puis naviguez jusqu&#039;à &#039;&#039;&#039;Object Pascal\Database\FireDAC\Samples\DBMS Specific\MSSQL\QueryNotify&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[Alertes des bases de données (FireDAC)|Alertes des bases de données (FireDAC)]]&lt;br /&gt;
* [[lib_fr:FireDAC.Comp.Client.TFDEventAlerter|FireDAC.Comp.Client.TFDEventAlerter]]&lt;br /&gt;
* [[lib_fr:FireDAC.Comp.Client.TFDQuery|FireDAC.Comp.Client.TFDQuery]]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Notifications de changements de donnees (FireDAC)}}&lt;br /&gt;
[[Category:FireDAC]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Data Change Notifications (FireDAC)]]&lt;br /&gt;
[[de:Benachrichtigungen über Datenänderungen (FireDAC)]]&lt;br /&gt;
[[ja:データ変更通知（FireDAC）]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Conversion_d%27un_thread_anonyme_en_thread_nomm%C3%A9&amp;diff=213817</id>
		<title>Conversion d&#039;un thread anonyme en thread nommé</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Conversion_d%27un_thread_anonyme_en_thread_nomm%C3%A9&amp;diff=213817"/>
		<updated>2021-05-05T18:38:04Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Nommer un thread}}&lt;br /&gt;
&lt;br /&gt;
Vous pouvez convertir un thread anonyme en thread nommé. Si, par exemple, vous avez une classe thread créée avec {{Delphi}} 6 ou une version antérieure, convertissez-la en thread nommé.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Pour convertir un thread anonyme en thread nommé dans {{Delphi}}&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;&lt;br /&gt;
Ajoutez l&#039;unité Windows à la clause &#039;&#039;&#039;uses&#039;&#039;&#039; de l&#039;unité dans laquelle votre thread est déclaré : &lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
uses&lt;br /&gt;
    Classes {$IFDEF MSWINDOWS} , Windows {$ENDIF};&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Ajoutez la méthode &#039;&#039;SetName&#039;&#039; à votre classe de thread dans la section &#039;&#039;&#039;interface&#039;&#039;&#039; : &lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
type&lt;br /&gt;
TMyThread = class(TThread)&lt;br /&gt;
private&lt;br /&gt;
  procedure SetName;&lt;br /&gt;
protected&lt;br /&gt;
  procedure Execute; override;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Ajoutez l&#039;enregistrement &#039;&#039;TThreadNameInfo&#039;&#039; et la méthode &#039;&#039;SetName&#039;&#039; dans la section &#039;&#039;&#039;implementation&#039;&#039;&#039; : &lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
 {$IFDEF MSWINDOWS}&lt;br /&gt;
 type&lt;br /&gt;
 TThreadNameInfo = record&lt;br /&gt;
 FType: LongWord;     // must be 0x1000&lt;br /&gt;
 FName: PChar;        // pointer to name (in user address space)&lt;br /&gt;
 FThreadID: LongWord; // thread ID (-1 indicates caller thread)&lt;br /&gt;
 FFlags: LongWord;    // reserved for future use, must be zero&lt;br /&gt;
   end;&lt;br /&gt;
 {$ENDIF}&lt;br /&gt;
 { TMyThread }&lt;br /&gt;
 procedure TMyThread.SetName;&lt;br /&gt;
 {$IFDEF MSWINDOWS}&lt;br /&gt;
 var&lt;br /&gt;
 ThreadNameInfo: TThreadNameInfo;&lt;br /&gt;
 {$ENDIF}&lt;br /&gt;
 begin&lt;br /&gt;
 {$IFDEF MSWINDOWS}&lt;br /&gt;
 ThreadNameInfo.FType := $1000;&lt;br /&gt;
 ThreadNameInfo.FName := &#039;MyThreadName&#039;;&lt;br /&gt;
 ThreadNameInfo.FThreadID := $FFFFFFFF;&lt;br /&gt;
 ThreadNameInfo.FFlags := 0;&lt;br /&gt;
 try&lt;br /&gt;
 RaiseException( $406D1388, 0, sizeof(ThreadNameInfo) div sizeof(LongWord), @ThreadNameInfo );&lt;br /&gt;
  except&lt;br /&gt;
   end;&lt;br /&gt;
 {$ENDIF}&lt;br /&gt;
 end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note| Définissez &#039;&#039;TThreadNameInfo&#039;&#039; sur le nom de votre classe thread.}}&lt;br /&gt;
:Le débogueur trouve l&#039;exception et recherche le nom du thread dans la structure transmise. Lors du débogage, le débogueur affiche le nom du thread dans le champ ID thread de la boîte Etat des threads.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Ajoutez un appel à la méthode &#039;&#039;SetName&#039;&#039; au début de la méthode &#039;&#039;Execute&#039;&#039; du thread : &lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TMyThread.Execute;&lt;br /&gt;
begin&lt;br /&gt;
  SetName;&lt;br /&gt;
  { Place thread code here }&lt;br /&gt;
end;&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;
&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Pour convertir un thread anonyme en thread nommé dans {{CBuilder}}&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous pouvez convertir un thread anonyme en thread nommé. Si, par exemple, vous avez une classe de thread créée avec {{CBuilder}} 5 ou une version antérieure, convertissez-la en thread nommé en suivant la procédure suivante.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Ajoutez la méthode &#039;&#039;SetName&#039;&#039; à votre classe de thread :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void TMyThread::SetName() {&lt;br /&gt;
	THREADNAME_INFO info;&lt;br /&gt;
	info.dwType = 0x1000;&lt;br /&gt;
	info.szName = &amp;quot;MyThreadName&amp;quot;;&lt;br /&gt;
	info.dwThreadID = -1;&lt;br /&gt;
	info.dwFlags = 0;&lt;br /&gt;
	__try {&lt;br /&gt;
		RaiseException(0x406D1388, 0, sizeof(info) / sizeof(DWORD),&lt;br /&gt;
			(DWORD*)&amp;amp;info);&lt;br /&gt;
	}&lt;br /&gt;
	__except (EXCEPTION_CONTINUE_EXECUTION) {&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note| Définissez &amp;lt;code&amp;gt;info.szName&amp;lt;/code&amp;gt; sur le nom de votre classe thread.}}&lt;br /&gt;
&lt;br /&gt;
Le débogueur trouve l&#039;exception et recherche le nom du thread dans la structure transmise. Lors du débogage, le débogueur affiche le nom du thread dans le champ ID thread de la boîte Etat des threads.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Ajoutez un appel à la méthode &#039;&#039;SetName&#039;&#039; au début de la méthode &#039;&#039;Execute&#039;&#039; du thread :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;void __fastcall TMyThread::Execute() {&lt;br /&gt;
	SetName();&lt;br /&gt;
	// ---- Place existing Execute method code here ----&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;
&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Nommer un thread|Nommer un thread]]&lt;br /&gt;
*[[Assignation de noms distincts à des threads similaires|Assignation de noms distincts à des threads similaires]]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Conversion d&#039;un thread anonyme en thread nomme}}&lt;br /&gt;
[[Category:Guide du développeur Windows]]&lt;br /&gt;
[[Category:Delphi]]&lt;br /&gt;
&lt;br /&gt;
[[en:Converting an Unnamed Thread to a Named Thread]]&lt;br /&gt;
[[de:Einen unbenannten Thread in einen benannten konvertieren]]&lt;br /&gt;
[[ja:名前のないスレッドを名前付きのスレッドに変換する]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Ex%C3%A9cution_des_commandes_(FireDAC)&amp;diff=213816</id>
		<title>Exécution des commandes (FireDAC)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Ex%C3%A9cution_des_commandes_(FireDAC)&amp;diff=213816"/>
		<updated>2021-04-14T02:54:54Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Utilisation des commandes (FireDAC)}}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Utilisation de TFDConnection==&lt;br /&gt;
&lt;br /&gt;
[[lib_fr:FireDAC.Comp.Client.TFDConnection|TFDConnection]] fournit des méthodes [[lib_fr:FireDAC.Comp.Client.TFDCustomConnection.ExecSQL|ExecSQL]]. Simples d&#039;emploi, ces méthodes surchargées sont utiles dans les cas suivants :&lt;br /&gt;
&lt;br /&gt;
* Aucun ensemble de résultats n&#039;est renvoyé.&lt;br /&gt;
* Une commande SQL n&#039;est exécutée qu&#039;une fois et n&#039;a donc pas besoin d&#039;être stockée dans un état préparé.&lt;br /&gt;
* Il n&#039;est pas nécessaire de définir des paramètres avancés.&lt;br /&gt;
* Il n&#039;est pas nécessaire de définir des commandes SQL à la conception.&lt;br /&gt;
&lt;br /&gt;
Par exemple, pour exécuter des commandes DDL, utilisez la syntaxe suivante : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
FDConnection1.ExecSQL(&#039;drop table testtab&#039;);&lt;br /&gt;
FDConnection1.ExecSQL(&#039;create table testtab (id integer, name varchar(10))&#039;);&lt;br /&gt;
FDConnection1.ExecSQL(&#039;insert into testtab values (1, &#039;&#039;FireDAC&#039;&#039;)&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter une requête paramétrée, utilisez l&#039;autre méthode surchargée : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
FDConnection1.ExecSQL(&#039;insert into testtab values (:id, :name)&#039;, [1, &#039;FireDAC&#039;]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De même, TFDConnection fournit des méthodes [[lib_fr:FireDAC.Comp.Client.TFDCustomConnection.ExecSQLScalar|ExecSQLScalar]] différentes des méthodes &#039;&#039;&#039;ExecSQL&#039;&#039;&#039;, dans la mesure où elles renvoient une valeur d&#039;ensemble de résultats unique : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
sName := FDConnection1.ExecSQLScalar(&#039;select name from testtab where id = :id&#039;, [1]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Utilisation de TFDQuery==&lt;br /&gt;
&lt;br /&gt;
En général, [[lib_fr:FireDAC.Comp.Client.TFDQuery|TFDQuery]] est défini à la conception et/ou à l&#039;exécution. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Définition de TFDQuery à la conception===&lt;br /&gt;
&lt;br /&gt;
Pour définir TFDQuery à la conception, déposez-le sur une fiche. [[lib_fr:FireDAC.Comp.Client.TFDRdbmsDataSet.Connection|TFDQuery.Connection]] sera automatiquement défini pour pointer vers un composant TFDConnection sur cette fiche, s&#039;il en existe un. Ensuite, double-cliquez sur TFDQuery pour invoquer l&#039;éditeur de requête FireDAC : &lt;br /&gt;
&lt;br /&gt;
[[File:AD QueryDlg.png]]&lt;br /&gt;
&lt;br /&gt;
De cet emplacement, vous pouvez spécifier du texte SQL et, en option, indiquer des valeurs de paramètre et de macro et définir des options. &lt;br /&gt;
&lt;br /&gt;
Appuyez sur le bouton &#039;&#039;&#039;Exécuter&#039;&#039;&#039; pour exécuter la requête. Si une commande renvoie un ensemble de résultats, celui-ci s&#039;affichera dans le volet &#039;&#039;&#039;Ensemble d&#039;enregistrements&#039;&#039;&#039; et la structure de l&#039;ensemble de résultats s&#039;affichera dans le volet &#039;&#039;&#039;Structure&#039;&#039;&#039;. Si le SGBD renvoie des messages ou des avertissements pour une commande, ceux-ci s&#039;afficheront dans le volet &#039;&#039;&#039;Messages&#039;&#039;&#039;. Le bouton &#039;&#039;&#039;Ensemble d&#039;enregistrements suivant&#039;&#039;&#039; vous permet de parcourir tous les ensembles de résultats renvoyés par la commande. &lt;br /&gt;
&lt;br /&gt;
Lorsque vous testez des commandes DML, telles que &#039;&#039;&#039;UPDATE&#039;&#039;&#039;/&#039;&#039;&#039;INSERT&#039;&#039;&#039;/&#039;&#039;&#039;DELETE&#039;&#039;&#039;, vous devez activer la case à cocher &#039;&#039;&#039;Restauration automatique&#039;&#039;&#039; pour annuler automatiquement les actions effectuées par une commande. &lt;br /&gt;
&lt;br /&gt;
Appuyez sur OK pour enregistrer les modifications dans le composant TFDQuery.&lt;br /&gt;
&lt;br /&gt;
===Utilisation des paramètres===&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisation des requêtes paramétrées est l&#039;une des meilleures pratiques du développement d&#039;applications de base de données SQL. Les principaux avantages sont les suivants :&lt;br /&gt;
&lt;br /&gt;
* Vous avez la possibilité de composer une commande SQL unique et de l&#039;utiliser plusieurs fois avec des valeurs de paramètre différentes. Le SGBD construira le plan d&#039;exécution de la commande une seule fois, Cela réduit la charge du moteur du SGBD.&lt;br /&gt;
* A la prochaine exécution de la commande, seules les valeurs de paramètre seront transférées au moteur du SGBD, réduisant ainsi la charge du réseau.&lt;br /&gt;
* Vous n&#039;avez pas besoin d&#039;écrire des formats de constante SQL sans erreur, par exemple une constante de date dans Microsoft Access SQL.&lt;br /&gt;
&lt;br /&gt;
Pour insérer un marqueur de paramètre dans le texte SQL, utilisez la syntaxe &#039;&#039;&#039;:&amp;amp;lt;name&amp;amp;gt;&#039;&#039;&#039;. Assignez ensuite les valeurs correspondantes à l&#039;aide de la collection Params. Par exemple : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
FDQuery1.SQL.Text := &#039;select * from tab where code = :Code&#039;;&lt;br /&gt;
FDQuery1.ParamByName(&#039;code&#039;).AsString := &#039;123&#039;;&lt;br /&gt;
FDQuery1.Open;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avant l&#039;exécution de la requête, chaque paramètre &#039;&#039;&#039;Name&#039;&#039;&#039;, &#039;&#039;&#039;DataType&#039;&#039;&#039; et &#039;&#039;&#039;ParamType&#039;&#039;&#039; doit être rempli. Le paramètre &#039;&#039;&#039;Position&#039;&#039;&#039; doit également être défini. &lt;br /&gt;
&lt;br /&gt;
Lorsque vous assignez la propriété SQL et que la propriété &#039;&#039;&#039;ResourceOptions.ParamCreate&#039;&#039;&#039; vaut &#039;&#039;&#039;True&#039;&#039;&#039;, la collection Params est automatiquement remplie. &lt;br /&gt;
&lt;br /&gt;
{{Note| Seules les propriétés &#039;&#039;&#039;TFDParam.Name&#039;&#039;&#039; et &#039;&#039;&#039;TFDParam.Position&#039;&#039;&#039; sont définies. Les propriétés &#039;&#039;&#039;DataType&#039;&#039;&#039;, &#039;&#039;&#039;ParamType&#039;&#039;&#039; et les autres propriétés doivent être définies dans votre application. Les paramètres de la collection Params apparaissent dans le même ordre que dans la commande SQL.}} &lt;br /&gt;
&lt;br /&gt;
Vous pouvez également remplir la collection Params par du code. Pour cela, vous devez désactiver la création automatique de paramètres en définissant la propriété &#039;&#039;&#039;ResourceOptions.ParamCreate&#039;&#039;&#039; sur &#039;&#039;&#039;False&#039;&#039;&#039;. Par exemple : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
FDQuery1.ResourceOptions.ParamCreate := False;&lt;br /&gt;
FDQuery1.SQL.Text := &#039;select * from tab where code = :Code&#039;;&lt;br /&gt;
with FDQuery1.Params do begin&lt;br /&gt;
  Clear;&lt;br /&gt;
  with Add do begin&lt;br /&gt;
    Name := &#039;CODE&#039;;&lt;br /&gt;
    DataType := ftString;&lt;br /&gt;
    Size := 10;&lt;br /&gt;
    ParamType := ptInput;&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les paramètres peuvent être liés à la commande SQL par nom ou par position. Pour contrôler les points suivants, utilisez la propriété Params.BindMode :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;pbByName&#039;&#039;&#039;. Les paramètres de la collection Params seront liés par la propriété &#039;&#039;&#039;Name&#039;&#039;&#039; aux marqueurs de paramètre correspondants. Si la commande SQL comporte des marqueurs de paramètre portant les mêmes noms, une seule instance apparaîtra dans la collection Params.&lt;br /&gt;
* &#039;&#039;&#039;pbByNumber&#039;&#039;&#039;. Les paramètres de la collection Params seront liés par la propriété &#039;&#039;&#039;Position&#039;&#039;&#039; aux marqueurs du texte de la commande SQL. Si la commande SQL comporte des marqueurs de paramètre portant les mêmes noms, chaque occurrence apparaîtra dans la collection Params. Si la propriété &#039;&#039;&#039;Position&#039;&#039;&#039; n&#039;est pas définie pour les paramètres, elle sera assignée automatiquement lors de la préparation de commande à l&#039;aide des index de paramètres. La propriété Position commence à 1.&lt;br /&gt;
&lt;br /&gt;
La propriété DataType est spécifiée soit explicitement, soit implicitement, par l&#039;assignation d&#039;une valeur de paramètre à la propriété &#039;&#039;&#039;Value&#039;&#039;&#039; ou &#039;&#039;&#039;AsXxxx&#039;&#039;&#039;. Sinon, la propriété [[lib_fr:FireDAC.Stan.Option.TFDFormatOptions.DefaultParamDataType|FormatOptions.DefaultParamDataType]] est utilisée. &lt;br /&gt;
&lt;br /&gt;
Lorsque la propriété &#039;&#039;&#039;ParamType&#039;&#039;&#039; n&#039;est pas spécifiée, la propriété [[lib_fr:FireDAC.Stan.Option.TFDResourceOptions.DefaultParamType|ResourceOptions.DefaultParamType]] est utilisée. Par défaut, tous les paramètres sont des paramètres d&#039;entrée uniquement. Si vous souhaitez utiliser des paramètres de sortie, vous devez spécifier la propriété ParamType de manière explicite. &lt;br /&gt;
&lt;br /&gt;
Les valeurs de paramètre d&#039;entrée doivent être définies avant l&#039;exécution de la requête. Pour cela, choisissez l&#039;une des options suivantes :&lt;br /&gt;
&lt;br /&gt;
* Assignez des valeurs de paramètre de manière explicite :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
FDQuery1.ParamByName(&#039;code&#039;).AsString := &#039;DA1001&#039;;&lt;br /&gt;
FDQuery1.Open;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Utilisez l&#039;une des méthodes &#039;&#039;&#039;ExecSQL&#039;&#039;&#039; ou &#039;&#039;&#039;Open&#039;&#039;&#039; surchargées :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
FDQuery1.Open(&#039;&#039;, [&#039;DA1001&#039;]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour définir la valeur du paramètre sur &#039;&#039;&#039;Null&#039;&#039;&#039;, spécifiez le type de données du paramètre, puis appelez la méthode &#039;&#039;&#039;Clear&#039;&#039;&#039; : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
with FDQuery1.ParamByName(&#039;name&#039;) do begin&lt;br /&gt;
  DataType := ftString;&lt;br /&gt;
  Clear;&lt;br /&gt;
end;&lt;br /&gt;
FDQuery1.ExecSQL;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les valeurs de paramètre de sortie sont accessibles après l&#039;exécution de la requête. Certaines commandes SQL et le SGBD peuvent requérir en premier lieu le traitement de tous les ensembles de résultats de commande, suivi de la réception des valeurs de paramètre de sortie. Pour forcer l&#039;obtention des valeurs de paramètre de sortie, utilisez la méthode [[lib_fr:FireDAC.Comp.Client.TFDAdaptedDataSet.GetResults|TFDAdaptedDataSet.GetResults]]. Consultez également la rubrique [[Support unifié de RETURNING (FireDAC)|Support unifié de RETURNING]] concernant les paramètres de sortie dans la phrase RETURNING sous Firebird et Oracle.&lt;br /&gt;
&lt;br /&gt;
===Préparation de la requête===&lt;br /&gt;
&lt;br /&gt;
Une requête doit être préparée avant d&#039;être exécutée. Pour cela, FireDAC réalise automatiquement les actions suivantes :&lt;br /&gt;
&lt;br /&gt;
* Met la connexion à l&#039;état [[Etablissement d&#039;une connexion (FireDAC)|active]] ou [[Connexion hors ligne (FireDAC)|en ligne]].&lt;br /&gt;
* Vérifie que tous les paramètres sont définis correctement.&lt;br /&gt;
* [[Prétraitement du texte des commandes (FireDAC)|Prétraite le texte des commandes]].&lt;br /&gt;
* En option, applique [[lib_fr:FireDAC.Stan.Option.TFDFetchOptions.RecsSkip|RecsSkip]] et [[lib_fr:FireDAC.Stan.Option.TFDFetchOptions.RecsMax|RecsMax]] au texte de la commande.&lt;br /&gt;
* En option, démarre une transaction pour le SGBD Firebird/InterBase, lorsqu&#039;il n&#039;y a pas de connexion active.&lt;br /&gt;
* Transfère le texte de commande final à l&#039;API du SGBD. Le texte final est obtenu à l&#039;aide de la propriété [[lib_fr:FireDAC.Comp.Client.TFDCustomQuery.Text|TFDQuery.Text]].&lt;br /&gt;
&lt;br /&gt;
Lors de la préparation de la commande, la connexion doit être active et la requête conserve les ressources du serveur. Pour annuler la préparation de la requête et libérer toutes les ressources, utilisez la méthode &#039;&#039;&#039;Unprepare&#039;&#039;&#039; ou &#039;&#039;&#039;Disconnect&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Si vous devez exécuter une commande une seule fois, définissez la propriété [[lib_fr:FireDAC.Stan.Option.TFDResourceOptions.DirectExecute|ResourceOptions.DirectExecute]] sur &#039;&#039;&#039;True&#039;&#039;&#039;. Pour certains SGBD (SQL Server, SQL Anywhere), cette action permet d&#039;accélérer l&#039;exécution car elle évite l&#039;opération coûteuse de préparation de commande SQL.&lt;br /&gt;
&lt;br /&gt;
===Exécution de la requête===&lt;br /&gt;
&lt;br /&gt;
Pour exécuter une requête qui ne renvoie aucun ensemble de résultats, utilisez les méthodes &#039;&#039;&#039;ExecSQL&#039;&#039;&#039;. Si une requête renvoie un ensemble de résultats, l&#039;exception &amp;quot;&#039;&#039;&#039;[FireDAC][Phys][MSAcc]-310. Impossible d&#039;exécuter la commande retournant un ensemble de résultats&#039;&#039;&#039;&amp;quot; est déclenchée. &lt;br /&gt;
&lt;br /&gt;
Pour exécuter une requête, renvoyer et ouvrir un ensemble de résultats, utilisez les méthodes &#039;&#039;&#039;Open&#039;&#039;&#039;. Si une requête ne renvoie aucun ensemble de résultats, l&#039;exception &amp;quot;&#039;&#039;&#039;[FireDAC][Phys][MSAcc]-308. Impossible d&#039;ouvrir / définir la commande, qui ne retourne aucun ensemble de résultats&#039;&#039;&#039;&amp;quot; est déclenchée. &lt;br /&gt;
&lt;br /&gt;
Pour exécuter une requête ad hoc, utilisez la méthode &#039;&#039;&#039;ExecuteOrOpen&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
{{Note| La requête peut être [[Exécution asynchrone (FireDAC)|exécutée de manière asynchrone]]. Si la requête est un groupe de commandes, consultez la rubrique &amp;quot;&#039;&#039;&#039;[[Groupes de commandes (FireDAC)|Groupes de commandes]]&#039;&#039;&#039;&amp;quot; pour plus d&#039;informations.}}&lt;br /&gt;
&lt;br /&gt;
===Exception &#039;&#039;&#039;Le type de données du paramètre est modifié&#039;&#039;&#039;===&lt;br /&gt;
&lt;br /&gt;
Si le type du paramètre a été modifié après le premier appel de la méthode Prepare/ExecSQL/Open, FireDAC déclenche une exception sur un appel suivant : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
[FireDAC][Phys][IB]-338. Parameter [Xxxx] data type is changed.&lt;br /&gt;
Query must be reprepared.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Au premier appel de la méthode Prepare/ExecSQL/Open, FireDAC mémorise le type de données du paramètre. Le type de données peut être spécifié soit explicitement en définissant la &#039;&#039;&#039;propriété TFDParam.DataType&#039;&#039;&#039;, soit implicitement en assignant une valeur à l&#039;aide de la propriété &#039;&#039;&#039;TFDParam.AsXxxx&#039;&#039;&#039; ou &#039;&#039;&#039;TFDParam.Value&#039;&#039;&#039;. Comme l&#039;application modifie le type de données du paramètre avant l&#039;appel suivant de la méthode ExecSQL/Open, lorsque ExecSQL/Open est rappelée, l&#039;exception &amp;quot;Le type de données du paramètre [xxxxx] est modifié&amp;quot; est déclenchée. &lt;br /&gt;
&lt;br /&gt;
La propriété &#039;&#039;&#039;TFDParam.Value&#039;&#039;&#039; ne modifie pas le type de données du paramètre lors de l&#039;appel suivant. Elle transtype la valeur assignée dans le type de données en cours. Par conséquent, pour éviter l&#039;exception ci-dessus, utilisez :&lt;br /&gt;
&lt;br /&gt;
* La valeur de la propriété &#039;&#039;&#039;TFDParam.Value&#039;&#039;&#039;.&lt;br /&gt;
* La propriété &#039;&#039;&#039;TFDParam.AsXxxx&#039;&#039;&#039;, puisque &#039;&#039;&#039;Xxxx&#039;&#039;&#039; a été utilisé la première fois.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Retour d&#039;informations du SGBD===&lt;br /&gt;
&lt;br /&gt;
Utilisez la propriété [[lib_fr:FireDAC.Comp.Client.TFDRdbmsDataSet.RowsAffected|TFDQuery.RowsAffected]] pour obtenir le nombre de lignes traitées par la commande (par exemple, le nombre de lignes supprimées par la commande DELETE). &lt;br /&gt;
&lt;br /&gt;
{{Note| Pour Microsoft SQL Server, la propriété &#039;&#039;&#039;RowsAffected&#039;&#039;&#039; peut inopinément être égale à -1 lorsqu&#039;une procédure stockée ou un déclencheur de table omet le paramètre SET NOCOUNT ON. Utilisez alors la propriété &#039;&#039;&#039;TFDQuery.RecordCount&#039;&#039;&#039; pour obtenir le nombre de lignes extraites. }}&lt;br /&gt;
&lt;br /&gt;
{{Note| FireDAC ne renvoie aucun message &amp;quot;N lignes traitées&amp;quot;. Si nécessaire, l&#039;application doit construire ce type de messages. }}&lt;br /&gt;
&lt;br /&gt;
Si la commande renvoie une erreur, une exception est déclenchée. Pour plus d&#039;informations, voir la rubrique [[Gestion des erreurs (FireDAC)|Gestion des erreurs]]. L&#039;exception peut être traitée selon l&#039;une des trois méthodes suivantes :&lt;br /&gt;
&lt;br /&gt;
* En utilisant la construction try/except/end. Par exemple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
try&lt;br /&gt;
  FDQuery1.ExecSQL;&lt;br /&gt;
except&lt;br /&gt;
  on E: EFDDBEngineException do&lt;br /&gt;
    ; // do something here&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* En définissant le gestionnaire d&#039;événement [[lib_fr:FireDAC.Comp.Client.TFDAdaptedDataSet.OnError|TFDQuery.OnError]].&lt;br /&gt;
* En définissant le gestionnaire d&#039;événement [[lib_fr:FireDAC.Comp.Client.TFDCustomConnection.OnError|TFDConnection.OnError]]. Par exemple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm1.FDConnection1Error(ASender: TObject; const AInitiator: IFDStanObject;&lt;br /&gt;
  var AException: Exception);&lt;br /&gt;
begin&lt;br /&gt;
  if (AException is EFDDBEngineException) and (EFDDBEngineException(AException).Kind = ekRecordLocked) then&lt;br /&gt;
    AException.Message := &#039;Please, try the operation later. At moment, the record is busy&#039;;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
FDConnection1.OnError := FDConnection1Error;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour la commande Array DML, la gestion des erreurs est plus complexe. &lt;br /&gt;
&lt;br /&gt;
En outre, la commande renvoie des avertissements, des conseils et des messages, selon le SGBD utilisé. Pour activer le traitement des messages, définissez [[lib_fr:FireDAC.Stan.Option.TFDTopResourceOptions.ServerOutput|ResourceOptions.ServerOutput]] sur &#039;&#039;&#039;True&#039;&#039;&#039;. Pour traiter les messages, utilisez la propriété [[lib_fr:FireDAC.Comp.Client.TFDCustomConnection.Messages|TFDConnection.Messages]]. Par exemple : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
var&lt;br /&gt;
  i: Integer;&lt;br /&gt;
begin&lt;br /&gt;
  FDConnection1.ResourceOptions.ServerOutput := True;&lt;br /&gt;
  FDQuery1.ExecSQL;&lt;br /&gt;
  if FDConnection1.Messages &amp;lt;&amp;gt; nil then&lt;br /&gt;
    for i := 0 to FDConnection1.Messages.ErrorCount - 1 do&lt;br /&gt;
      Memo1.Lines.Add(FDConnection1.Messages[i].Message);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Certains SGBD, tels SQL Server, renvoient des messages en tant qu&#039;ensemble de résultats supplémentaire. Pour traiter les messages, l&#039;application doit donc traiter plusieurs ensembles de résultats. Voici un exemple plus complexe qui fournit le statut et des messages pour SQL Server. Comme vous pouvez le constater, nous utilisons &#039;&#039;&#039;TFDMemTable&#039;&#039;&#039; pour stocker les ensembles de résultats avec les lignes. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
var&lt;br /&gt;
  i: Integer;&lt;br /&gt;
begin&lt;br /&gt;
  FDConnection1.ResourceOptions.ServerOutput := True;&lt;br /&gt;
  FDQuery1.FetchOptions.AutoClose := False;&lt;br /&gt;
  FDQuery1.Open(&#039;select * from Region; print &#039;&#039;Hello&#039;&#039;&#039;);&lt;br /&gt;
  FDMemTable1.Data := FDQuery1.Data;&lt;br /&gt;
  Memo1.Lines.Add(Format(&#039;%d rows processed&#039;, [FDMemTable1.RecordCount]));&lt;br /&gt;
  FDQuery1.NextRecordSet;&lt;br /&gt;
  if FDConnection1.Messages &amp;lt;&amp;gt; nil then&lt;br /&gt;
    for i := 0 to FDConnection1.Messages.ErrorCount - 1 do&lt;br /&gt;
      Memo1.Lines.Add(FDConnection1.Messages[i].Message);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Exécution de requêtes et transactions==&lt;br /&gt;
&lt;br /&gt;
Par défaut, toutes les exécutions de commande SQL sont effectuées en mode Validation automatique. Cela signifie que, s&#039;il n&#039;y a pas de transaction active juste avant l&#039;exécution d&#039;une commande, cette transaction implicite démarre. De la même façon, juste après l&#039;exécution de la commande, la transaction se termine :&lt;br /&gt;
&lt;br /&gt;
* par &#039;&#039;&#039;Commit&#039;&#039;&#039;, si l&#039;exécution a abouti.&lt;br /&gt;
* par &#039;&#039;&#039;Rollback&#039;&#039;&#039;, si l&#039;exécution a échoué.&lt;br /&gt;
&lt;br /&gt;
Pour Firebird et InterBase, une transaction implicite démarre juste avant la préparation de la requête. Il est inutile d&#039;encapsuler une exécution de commande unique dans des transactions explicites ; il suffit d&#039;utiliser le mode Validation automatique. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Avancées==&lt;br /&gt;
&lt;br /&gt;
La plupart des applications de base de données comportent des utilitaires d&#039;administration dorsaux qui doivent exécuter un script SQL. Les lignes contenues dans ces scripts sont compatibles avec la syntaxe des scripts SQL du SGBD. Pour exécuter les [[Exécution de scripts SQL (FireDAC)|scripts SQL]], utilisez le composant [[lib_fr:FireDAC.Comp.Script.TFDScript|TFDScript]]. &lt;br /&gt;
&lt;br /&gt;
Parfois, une application de base de données exécute des requêtes hétérogènes à l&#039;aide de tables provenant de plusieurs bases de données ou exécute des commandes SQL sur les descendants &#039;&#039;&#039;TDataSet&#039;&#039;&#039; à la place des tables de base de données. Pour exécuter de telles requêtes, utilisez [[SQL local (FireDAC)|le moteur SQL local]] et le composant [[lib_fr:FireDAC.Phys.SQLiteVDataSet.TFDLocalSQL|TFDLocalSQL]].&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Exécution des procédures stockées (FireDAC)|Exécution des procédures stockées]]&lt;br /&gt;
*[[Navigation dans la table (FireDAC)|Navigation dans la table]]&lt;br /&gt;
*[[Groupes de commandes (FireDAC)|Groupes de commandes]]&lt;br /&gt;
*[[Exécution asynchrone (FireDAC)|Exécution asynchrone]]&lt;br /&gt;
*[[SQL local (FireDAC)|SQL local]]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Execution des commandes (FireDAC)}}&lt;br /&gt;
[[Category:FireDAC]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Executing Commands (FireDAC)]]&lt;br /&gt;
[[de:Ausführen von Anweisungen (FireDAC)]]&lt;br /&gt;
[[ja:コマンドの実行（FireDAC）]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Fonctions_inline&amp;diff=213815</id>
		<title>Fonctions inline</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Fonctions_inline&amp;diff=213815"/>
		<updated>2021-04-12T20:59:29Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Classes - Index}}&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;inline&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;Vous pouvez déclarer des fonctions membres dans leur classe et les définir ailleurs. Vous pouvez aussi les déclarer et les définir dans leur classe : ces fonctions sont dites &#039;&#039;fonctions inline&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Le compilateur peut parfois réduire le temps d&#039;appel d&#039;une fonction en remplaçant l&#039;appel directement par le code compilé du corps de la fonction. Ce processus, dit de développement inline d&#039;un corps de fonction, n&#039;affecte pas la portée du nom ni les arguments de la fonction. Les développements inline ne sont pas toujours réalisables. Le spécificateur &#039;&#039;&#039;[[inline]]&#039;&#039;&#039; indique au compilateur que vous souhaitez un développement inline.&lt;br /&gt;
&lt;br /&gt;
{{Note| Le compilateur peut ignorer les demandes de développement inline.}}&lt;br /&gt;
&lt;br /&gt;
Les demandes explicites et implicites &#039;&#039;&#039;inline&#039;&#039;&#039; sont plutôt réservées à des petites fonctions, fréquemment utilisées, comme, par exemple, les fonctions opérateur qui implémentent des opérateurs de surcharge. La déclaration de classe de &#039;&#039;func&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 int i;                             // int global&lt;br /&gt;
 class X {&lt;br /&gt;
 public:&lt;br /&gt;
    char* func(void) { return i; }  // inline par défaut&lt;br /&gt;
    char* i;&lt;br /&gt;
 };&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
est l&#039;équivalent de :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
 inline char* X::func(void) { return i; }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;func&#039;&#039; est définie &amp;quot;hors&amp;quot; de la classe avec un spécificateur &#039;&#039;&#039;inline&#039;&#039;&#039; explicite. La valeur &#039;&#039;i&#039;&#039; renvoyée par &#039;&#039;func&#039;&#039; est le &amp;lt;code&amp;gt;char* i&amp;lt;/code&amp;gt; de la classe &#039;&#039;X&#039;&#039; (voir Portée des membres).&lt;br /&gt;
&lt;br /&gt;
==Fonctions inline et exceptions==&lt;br /&gt;
&lt;br /&gt;
Une fonction inline avec spécification d&#039;exception ne sera jamais développée en ligne par le compilateur. Par exemple,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
 inline void f1() throw(int)&lt;br /&gt;
 {&lt;br /&gt;
    // Avertissement : Les fonctions avec spécification d&#039;exception ne sont pas développées&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les restrictions restantes ne s&#039;appliquent que lorsque l&#039;élimination des destructeurs est activée.&lt;br /&gt;
&lt;br /&gt;
{{Note| Les destructeurs sont appelés par défaut. Voir Initialisation des options de gestion des exceptions pour de plus amples informations sur les options de gestion des exceptions.}}&lt;br /&gt;
&lt;br /&gt;
Une fonction inline qui accepte au moins un paramètre du type &amp;quot;classe avec un destructeur&amp;quot; ne sera pas développée inline. Remarquez que cette restriction ne s&#039;applique qu&#039;aux classes transmises par référence. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
 struct foo {&lt;br /&gt;
    foo();&lt;br /&gt;
    ~foo();&lt;br /&gt;
 };&lt;br /&gt;
 inline void f2(foo&amp;amp; x)&lt;br /&gt;
 {&lt;br /&gt;
    // pas d&#039;avertissement, f2() peut être développé inline&lt;br /&gt;
 }&lt;br /&gt;
 inline void f3(foo x)&lt;br /&gt;
 {&lt;br /&gt;
    // Avertissement : Les fonctions acceptant le ou les arguments classe-par-valeur&lt;br /&gt;
    //  ne sont pas développées inline dans la fonction f3(foo)&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fonction inline qui renvoie par valeur une classe contenant un destructeur ne sera pas développée inline chaque fois que des variables ou des objets temporaires devront être détruits dans l&#039;expression renvoyée :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
 struct foo {&lt;br /&gt;
    foo();&lt;br /&gt;
    ~foo();&lt;br /&gt;
 };&lt;br /&gt;
 inline foo f4()&lt;br /&gt;
 {&lt;br /&gt;
    return foo();&lt;br /&gt;
    // pas d&#039;avertissement, f4() peut être développée inline&lt;br /&gt;
 }&lt;br /&gt;
 inline foo f5()&lt;br /&gt;
 {&lt;br /&gt;
    foo X;&lt;br /&gt;
    return foo(); // L&#039;object X doit être détruit&lt;br /&gt;
    // Avertissement : Les fonctions contenant les instructions&lt;br /&gt;
    //          renvoyées ne sont pas développées inline dans la fonction f5()&lt;br /&gt;
 }&lt;br /&gt;
 inline foo f6()&lt;br /&gt;
 {&lt;br /&gt;
    return ( foo(), foo() );  // provisoire dans la valeur renvoyée&lt;br /&gt;
    // Avertissement : les fonctions contenant les instructions&lt;br /&gt;
    //         renvoyées ne sont pas développées inline dans la fonction f6()&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
* [[inline]]&lt;br /&gt;
* [[Pragma inline|#pragma inline]]&lt;br /&gt;
* [[Classes C++]]&lt;br /&gt;
* [[Types de classes]]&lt;br /&gt;
* [[Portée de classe]]&lt;br /&gt;
* [[Objets de classes]]&lt;br /&gt;
* [[Liste des membres de classe]]&lt;br /&gt;
* [[Fonctions membres]]&lt;br /&gt;
* [[Mot clé This]]&lt;br /&gt;
* [[Membres statiques (C++)]]&lt;br /&gt;
* [[Portée des membres]]&lt;br /&gt;
* [[Déclarations de types imbriqués]]&lt;br /&gt;
* [[Contrôle d&#039;accès aux membres]]&lt;br /&gt;
* [[Accès aux classes de base et dérivées]]&lt;br /&gt;
* [[Classes de base virtuelles]]&lt;br /&gt;
* [[Amies de classes]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Référence C++]]&lt;br /&gt;
[[Catégorie:C++]]&lt;br /&gt;
[[Catégorie:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Inline Functions]]&lt;br /&gt;
[[de:Inline-Funktionen]]&lt;br /&gt;
[[ja:インライン関数]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Acc%C3%A8s_aux_classes_de_base_et_d%C3%A9riv%C3%A9es&amp;diff=213814</id>
		<title>Accès aux classes de base et dérivées</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Acc%C3%A8s_aux_classes_de_base_et_d%C3%A9riv%C3%A9es&amp;diff=213814"/>
		<updated>2021-03-24T13:03:47Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Portée des membres - Index}}&lt;br /&gt;
&lt;br /&gt;
Lorsque vous déclarez une classe dérivée D, vous énumérez les classes de base B1, B2, ... dans une liste-bases dont le délimiteur est une virgule :&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;class-key D&amp;amp;nbsp;: base-list { &amp;amp;lt;member-list&amp;amp;gt; }&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
D hérite de tous les membres de ces classes de base. Les membres des classes de base redéfinies sont obtenus par héritage et sont accessibles via une redéfinition de portée. D ne peut utiliser que des membres &#039;&#039;&#039;public&#039;&#039;&#039; ou &#039;&#039;&#039;protected&#039;&#039;&#039; de ses classes de base. Mais quels vont être les attributs d&#039;accès des membres dérivés tels que les voit D ? D souhaitera, par exemple, utiliser un membre &#039;&#039;&#039;public&#039;&#039;&#039; d&#039;une classe de base, mais le rendre &#039;&#039;&#039;private&#039;&#039;&#039; dans la mesure où des fonctions extérieures sont impliquées. La solution consiste à appliquer des spécificateurs d&#039;accès dans la liste-bases.&lt;br /&gt;
&lt;br /&gt;
{{Note| Puisqu&#039;une classe de base peut être elle-même une classe dérivée, la question de l&#039;attribut d&#039;accès est récursive : vous revenez en arrière jusqu&#039;à ce que vous parveniez à la première des classes de base, celle qui n&#039;a hérité d&#039;aucune autre.}}&lt;br /&gt;
&lt;br /&gt;
Lorsque vous déclarez D, vous pouvez utiliser le spécificateur d&#039;accès &#039;&#039;&#039;public&#039;&#039;&#039;, &#039;&#039;&#039;protected&#039;&#039;&#039; ou &#039;&#039;&#039;private&#039;&#039;&#039; devant chaque classe de la liste-bases :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
class D : public B1, private B2 /* , … */ {&lt;br /&gt;
  // …&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ces modificateurs ne changent pas les attributs d&#039;accès des membres de base tels qu&#039;ils sont perçus par la classe de base, même s&#039;ils peuvent modifier ceux des membres de base tels que les voit la classe dérivée.&lt;br /&gt;
&lt;br /&gt;
La valeur par défaut est private si D est une déclaration class, et public si D est une déclaration struct.&lt;br /&gt;
&lt;br /&gt;
{{Note| Les unions ne peuvent contenir aucune classe de base ni être utilisées comme classes de base.}}&lt;br /&gt;
&lt;br /&gt;
La classe dérivée hérite des attributs d&#039;accès d&#039;une classe de base selon les principes suivants :&lt;br /&gt;
&lt;br /&gt;
* Classe de base &#039;&#039;&#039;public&#039;&#039;&#039; : les membres à accès &#039;&#039;&#039;public&#039;&#039;&#039; de la classe de base sont des membres &#039;&#039;&#039;public&#039;&#039;&#039; de la classe dérivée. Les membres à accès &#039;&#039;&#039;protected&#039;&#039;&#039; de la classe de base sont des membres &#039;&#039;&#039;protected&#039;&#039;&#039; de la classe dérivée. Les membres à accès &#039;&#039;&#039;private&#039;&#039;&#039; de la classe de base restent &#039;&#039;&#039;private&#039;&#039;&#039; pour cette classe.&lt;br /&gt;
* Classe de base &#039;&#039;&#039;protected&#039;&#039;&#039; : les membres à accès &#039;&#039;&#039;public&#039;&#039;&#039; et &#039;&#039;&#039;protected&#039;&#039;&#039; de la classe de base sont des membres &#039;&#039;&#039;protected&#039;&#039;&#039; de la classe dérivée. Les membres à accès &#039;&#039;&#039;private&#039;&#039;&#039; de la classe de base restent des membres &#039;&#039;&#039;private&#039;&#039;&#039; de cette classe.&lt;br /&gt;
* Classe de base &#039;&#039;&#039;private&#039;&#039;&#039; : les membres à accès &#039;&#039;&#039;public&#039;&#039;&#039; et &#039;&#039;&#039;protected&#039;&#039;&#039; de la classe de base sont des membres &#039;&#039;&#039;private&#039;&#039;&#039; de la classe dérivée. Les membres à accès &#039;&#039;&#039;private&#039;&#039;&#039; de la classe de base restent des membres &#039;&#039;&#039;private&#039;&#039;&#039; de cette classe.&lt;br /&gt;
&lt;br /&gt;
Vous remarquerez que les membres &#039;&#039;&#039;private&#039;&#039;&#039; d&#039;une classe de base sont, et restent, inaccessibles aux fonctions membres de la classe dérivée, à moins que vous ne déclariez explicitement un spécificateur &#039;&#039;&#039;friend&#039;&#039;&#039; dans la classe de base pour autoriser l&#039;accès. Par exemple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
/* class X is derived from class A */&lt;br /&gt;
class X : A {               // default for class is private A&lt;br /&gt;
  // …&lt;br /&gt;
}&lt;br /&gt;
/* class Y is derived (multiple inheritance) from B and C&lt;br /&gt;
   B defaults to private B */&lt;br /&gt;
class Y : B, public C {     // override default for C&lt;br /&gt;
  // …&lt;br /&gt;
}&lt;br /&gt;
/* struct S is derived from D */&lt;br /&gt;
struct S : D {              // default for struct is public D&lt;br /&gt;
  // …&lt;br /&gt;
}&lt;br /&gt;
/* struct T is derived (multiple inheritance) from D and E&lt;br /&gt;
   E defaults to public E */&lt;br /&gt;
struct T : private D, E {   // override default for D&lt;br /&gt;
                            // E is public by default&lt;br /&gt;
  // …&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les effets dus aux spécificateurs d&#039;accès dans la liste de base sont adaptables à l&#039;aide d&#039;un nom-qualifié dans les déclarations public ou protected de la classe dérivée. Par exemple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
class B {&lt;br /&gt;
   int a;               // private by default&lt;br /&gt;
public:&lt;br /&gt;
   int b, c;&lt;br /&gt;
   int Bfunc(void);&lt;br /&gt;
};&lt;br /&gt;
class X : private B {   // a, b, c, Bfunc are now private in X&lt;br /&gt;
   int d;               // private by default, NOTE: a is not&lt;br /&gt;
                        // accessible in X&lt;br /&gt;
public:&lt;br /&gt;
   B::c;                // c was private, now is public&lt;br /&gt;
   int e;&lt;br /&gt;
   int Xfunc(void);&lt;br /&gt;
};&lt;br /&gt;
int Efunc(X&amp;amp; x);        // external to B and X&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La fonction Efunc() ne peut utiliser que les noms publics c, e et Xfunc().&lt;br /&gt;
&lt;br /&gt;
La fonction Xfunc() de X, et dérivée de &#039;&#039;&#039;private&#039;&#039;&#039; B, a accès :&lt;br /&gt;
&lt;br /&gt;
* à c &amp;quot;devenu public&amp;quot;&lt;br /&gt;
* aux membres &amp;quot;private-pour-X&amp;quot; à partir de B : b et Bfunc()&lt;br /&gt;
* aux membres private et public de X : d, e et Xfunc()&lt;br /&gt;
&lt;br /&gt;
Cependant, Xfunc() ne peut pas accéder au membre &amp;quot;private-pour-B&amp;quot;, a.&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Classes C++|Classes C++]]&lt;br /&gt;
*[[Types de classes|Types classe]]&lt;br /&gt;
*[[Portée de classe|Portée de classe]]&lt;br /&gt;
*[[Objets de classes|Objets de classes]]&lt;br /&gt;
*[[Liste des membres de classe|Liste des membres de classe]]&lt;br /&gt;
*[[Fonctions membres|Fonctions membres]]&lt;br /&gt;
*[[Mot clé This|Mot clé This]]&lt;br /&gt;
* [[This|this]]&lt;br /&gt;
*[[Membres statiques (C++)|Membres statiques (C++)]]&lt;br /&gt;
*[[Fonctions inline|Fonctions inline]]&lt;br /&gt;
*[[Portée des membres|Portée des membres]]&lt;br /&gt;
*[[Types imbriqués|Types imbriqués]]&lt;br /&gt;
*[[Contrôle d&#039;accès aux membres|Contrôle d&#039;accès aux membres]]&lt;br /&gt;
*[[Classes de base virtuelles|Classes de base virtuelles]]&lt;br /&gt;
*[[Amies de classes|Amies de classes]]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Acces aux classes de base et derivees}}&lt;br /&gt;
[[Category:Référence C++]]&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Base And Derived Class Access]]&lt;br /&gt;
[[de:Zugriff auf Basisklassen und abgeleitete Klassen]]&lt;br /&gt;
[[ja:基底クラスと派生クラスへのアクセス]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Dynamic_cast_(op%C3%A9rateur_de_transtypage_C%2B%2B)&amp;diff=213813</id>
		<title>Dynamic cast (opérateur de transtypage C++)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Dynamic_cast_(op%C3%A9rateur_de_transtypage_C%2B%2B)&amp;diff=213813"/>
		<updated>2021-03-24T12:36:52Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Liste alphabétique des mots clés - Index}}&lt;br /&gt;
{{DISPLAYTITLE:dynamic_cast (opérateur de transtypage C++)}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Catégorie&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Mots clés spécifiques C++|Mots clés spécifiques C++]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dans l&#039;expression :&lt;br /&gt;
&lt;br /&gt;
 dynamic_cast&amp;amp;lt; T &amp;amp;gt; (ptr)&lt;br /&gt;
&lt;br /&gt;
T doit être un pointeur, ou une référence, à un type classe défini ou &#039;&#039;&#039;void&#039;&#039;&#039;*. L&#039;argument ptr doit être une expression résultant en un pointeur ou en une référence.&lt;br /&gt;
&lt;br /&gt;
Si T est void*, ptr doit aussi être un pointeur. Le pointeur qui en résulte peut alors accéder à tout élément de la classe la plus dérivée dans la hiérarchie. Une classe de ce genre ne peut servir de base à aucune autre classe.&lt;br /&gt;
&lt;br /&gt;
Les conversions de classe dérivée en classe de base, ou de classe dérivée en une autre, se présentent comme suit&amp;amp;nbsp;: si T est un pointeur et si ptr pointe sur une classe qui n&#039;est pas de base, mais qui entre dans la hiérarchie, le résultat est un pointeur sur la sous-classe unique. Les références sont traitées de la même manière&amp;amp;nbsp;: si T est une référence et ptr une référence à une classe non base, le résultat est une référence à l&#039;unique sous-classe.&lt;br /&gt;
&lt;br /&gt;
La conversion d&#039;une classe de base en classe dérivée ne peut être effectuée que si la base est de type polymorphe.&lt;br /&gt;
&lt;br /&gt;
La conversion en classe de base est résolue au moment de la compilation. La conversion d&#039;une classe de base en classe dérivée ou la conversion à travers une hiérarchie, est résolue au moment de l&#039;exécution.&lt;br /&gt;
&lt;br /&gt;
Si la conversion réussit, dynamic_cast&amp;amp;lt; T &amp;amp;gt; (ptr) convertit ptr au type souhaité. Si un transtypage de pointeur échoue, le pointeur a pour valeur 0 lorsqu&#039;il est renvoyé. Si un transtypage à un type référence échoue, l&#039;exception Bad_cast est déclenchée.&lt;br /&gt;
&lt;br /&gt;
{{Note| Les informations de type à l&#039;exécution (RTTI) sont nécessaires pour &#039;&#039;&#039;dynamic_cast&#039;&#039;&#039;.}}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[Const cast (opérateur de transtypage)|const_cast (opérateur de transtypage)]]&lt;br /&gt;
* [[Reinterpret cast (opérateur de transtypage)|reinterpret_cast (opérateur de transtypage)]]&lt;br /&gt;
* [[Static cast (opérateur de transtypage)|static_cast (opérateur de transtypage)]]&lt;br /&gt;
* [[Rtti et option -RT|Rtti et option -RT]]&lt;br /&gt;
&lt;br /&gt;
==Exemples de code==&lt;br /&gt;
&lt;br /&gt;
*[[Samp xe: ActivePage (C++)|Exemple de code ActivePage (C++)]]&lt;br /&gt;
*[[Samp xe: TStringBuilderClickCount (C++)|Exemple de code TStringBuilderClickCount (C++)]]&lt;br /&gt;
*[[Samp xe: BoundsRect (C++)|Exemple de code BoundsRect (C++)]]&lt;br /&gt;
*[[Samp xe: ComponentCount (C++)|Exemple de code ComponentCount (C++)]]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:dynamic_cast (operateur de transtypage C++)}}&lt;br /&gt;
[[Category:Référence C++]]&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:RTTI]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Dynamic cast (C++ Type Cast Operator)]]&lt;br /&gt;
[[de:Dynamic cast (Typumwandlungsoperator)]]&lt;br /&gt;
[[ja:Dynamic cast（型変換演算子）]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Utilisation_du_thread_VCL_principal&amp;diff=213812</id>
		<title>Utilisation du thread VCL principal</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Utilisation_du_thread_VCL_principal&amp;diff=213812"/>
		<updated>2021-03-18T04:40:29Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Comment construire des applications multithreads}}&lt;br /&gt;
L&#039;utilisation du thread VCL principal comprend les étapes de base suivantes :&lt;br /&gt;
&lt;br /&gt;
# Créer une routine distincte pour gérer les messages Windows reçus par les composants de votre application.&lt;br /&gt;
# Appeler régulièrement CheckSynchronize.&lt;br /&gt;
# Déclarer, si nécessaire, des variables locales aux threads pour une utilisation exclusive par votre thread.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pour créer une routine distincte&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Ecrivez une routine de thread principal qui gère l&#039;accès aux propriétés des objets et l&#039;exécution des méthodes de tous les objets de votre application.&lt;br /&gt;
# Appelez la routine en utilisant la méthode &amp;lt;span class=&amp;quot;codeInline&amp;quot;&amp;gt;TThread.Synchronize&amp;lt;/span&amp;gt; ({{Delphi}}) ou &amp;lt;span class=&amp;quot;codeInline&amp;quot;&amp;gt;TThread::Synchronize&amp;lt;/span&amp;gt; (C++). Le code suivant illustre un exemple de l&#039;appel d&#039;une méthode en utilisant &amp;lt;span class=&amp;quot;codeInline&amp;quot;&amp;gt;Synchronize&amp;lt;/span&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
 procedure TMyThread.PushTheButton&lt;br /&gt;
 begin&lt;br /&gt;
   Button1.Click;&lt;br /&gt;
 end;&lt;br /&gt;
 procedure TMyThread.Execute;&lt;br /&gt;
 begin&lt;br /&gt;
   ...&lt;br /&gt;
   Synchronize(PushThebutton);&lt;br /&gt;
   ...&lt;br /&gt;
 end; &lt;br /&gt;
&lt;br /&gt;
 void TMyThread::PushTheButton() &lt;br /&gt;
  { &lt;br /&gt;
   Form1-&amp;amp;gt;Button1-&amp;amp;gt;Click(); &lt;br /&gt;
  }&lt;br /&gt;
 void __fastcall TMyThread::Execute() &lt;br /&gt;
  {&lt;br /&gt;
   ...&lt;br /&gt;
   Synchronize( (TThreadMethod)&amp;amp;amp;PushTheButton );&lt;br /&gt;
   ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;codeInline&amp;quot;&amp;gt;Synchronize&amp;lt;/span&amp;gt; attend le thread principal pour entrer dans la boucle des messages, puis exécute la méthode qui lui est transmise.&lt;br /&gt;
&lt;br /&gt;
{{Note| Comme &amp;lt;span class&amp;lt;nowiki&amp;gt; = &amp;lt;/nowiki&amp;gt;&amp;quot;codeInline&amp;quot;&amp;gt;Synchronize&amp;lt;/span&amp;gt; utilise une boucle de messages, elle ne fonctionne pas dans les applications console. Pour les applications console, utilisez d&#039;autres mécanismes, comme les sections critiques, pour protéger l&#039;accès aux objets VCL.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pour appeler CheckSynchronize&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Appelez régulièrement &amp;lt;span class=&amp;quot;codeInline&amp;quot;&amp;gt;CheckSynchronize&amp;lt;/span&amp;gt; depuis le thread principal pour que les threads d&#039;arrière-plan synchronisent leur exécution avec le thread principal.&lt;br /&gt;
# Pour garantir la sécurité des appels aux threads d&#039;arrière-plan, appelez &amp;lt;span class=&amp;quot;codeInline&amp;quot;&amp;gt;CheckSynchronize&amp;lt;/span&amp;gt; lorsque l&#039;application est inactive (par exemple, dans un gestionnaire d&#039;événements &amp;lt;span class=&amp;quot;codeInline&amp;quot;&amp;gt;OnIdle&amp;lt;/span&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pour utiliser une variable locale au thread&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Identifiez les variables que vous voulez rendre globales pour toutes les routines exécutées dans votre thread sans qu&#039;elles ne soient partagées par les autres instances de la même classe de thread.&lt;br /&gt;
# Pour {{Delphi}}, déclarez ces variables dans une section &#039;&#039;&#039;threadvar&#039;&#039;&#039;, par exemple :&lt;br /&gt;
&lt;br /&gt;
 threadvar&lt;br /&gt;
   x: integer;&lt;br /&gt;
&lt;br /&gt;
Pour C++, déclarez ces variables avec le modificateur &#039;&#039;&#039;__thread&#039;&#039;&#039; :&lt;br /&gt;
 &lt;br /&gt;
 int __thread x;&lt;br /&gt;
&lt;br /&gt;
{{Note| Utilisez la section &#039;&#039;&#039;threadvar&#039;&#039;&#039; uniquement pour des variables globales. Ne l&#039;utilisez pas pour les variables Pointer et Function ou les types qui utilisent une sémantique de copie-sur-écriture, comme les chaînes longues.}}&lt;br /&gt;
&lt;br /&gt;
{{Note| Pour C++, si vous initialisez une variable &#039;&#039;&#039;__thread&#039;&#039;&#039;, vous devez l&#039;initialiser par une expression constante. Par exemple, &amp;lt;span class&amp;lt;nowiki&amp;gt; = &amp;lt;/nowiki&amp;gt;&amp;quot;codeInline&amp;quot;&amp;gt;int __thread foo &amp;lt;nowiki&amp;gt; = &amp;lt;/nowiki&amp;gt; 3;&amp;lt;/span&amp;gt; est une instruction correcte, mais &amp;lt;span class&amp;lt;nowiki&amp;gt; = &amp;lt;/nowiki&amp;gt;&amp;quot;codeInline&amp;quot;&amp;gt;int __thread foo &amp;lt;nowiki&amp;gt; = &amp;lt;/nowiki&amp;gt; get_value();&amp;lt;/span&amp;gt; est interdite car l&#039;initialisation se produit à l&#039;exécution.}}&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
&lt;br /&gt;
* [[Présentation de la VCL]]&lt;br /&gt;
* [[Ecriture de la fonction Thread]]&lt;br /&gt;
* [[Eviter les accès de threads simultanés dans la même mémoire]]&lt;br /&gt;
* [[Attente des threads]]&lt;br /&gt;
* [[Gérer les exceptions]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Utilisation de Delphi pour Windows]]&lt;br /&gt;
[[Category:{{Delphi}}]]&lt;br /&gt;
&lt;br /&gt;
[[en:Using the Main VCL Thread]]&lt;br /&gt;
[[de:Haupt-VCL-Thread benutzen]]&lt;br /&gt;
[[ja:メイン VCL スレッドを使用する]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Ex%C3%A9cution_d%27objets_thread&amp;diff=213811</id>
		<title>Exécution d&#039;objets thread</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Ex%C3%A9cution_d%27objets_thread&amp;diff=213811"/>
		<updated>2021-03-18T02:54:19Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Warning|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Exécution d&#039;objets thread - Index}}&lt;br /&gt;
Une fois une classe thread implémentée en définissant sa méthode &#039;&#039;Execute&#039;&#039;, vous pouvez l&#039;utiliser dans une application pour exécuter le code de sa méthode &#039;&#039;Execute&#039;&#039;. Pour utiliser un thread, créez une instance de la classe thread. L&#039;instance de thread peut être créée pour un démarrage immédiat ou placée en état d&#039;attente afin de n&#039;être exécutée qu&#039;avec l&#039;appel de la méthode [[lib_fr:System.Classes.TThread.Resume|Resume]]. Pour créer un thread s&#039;exécutant immédiatement, affectez la valeur &#039;&#039;False&#039;&#039; au paramètre &#039;&#039;CreateSuspended&#039;&#039; du constructeur. Par exemple, la ligne suivante crée un thread et commence son exécution.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 SecondThread := TMyThread.Create(false); {créer et exécuter le thread }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 TMyThread *SecondThread = new TMyThread(false); // crée et exécute le thread&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Warning| Ne créez pas trop de threads dans une application. Le surcoût lié à la gestion de plusieurs threads peut influer sur les performances. La limite recommandée est de 16 threads par processus sur une machine disposant d&#039;un seul processeur. Cette limite suppose que la plupart de ces threads attendent des événements externes. Si tous les threads sont actifs, il convient de réduire encore ce nombre.}}&lt;br /&gt;
&lt;br /&gt;
Vous pouvez créer plusieurs instances du même type de thread pour exécuter du code parallèle. Vous pouvez, par exemple, démarrer une nouvelle instance d&#039;un thread en réponse à une action de l&#039;utilisateur, ce qui permet à chaque thread de générer la réponse attendue.&lt;br /&gt;
&lt;br /&gt;
Les rubriques suivantes décrivent l&#039;utilisation des threads dans votre application :&lt;br /&gt;
&lt;br /&gt;
* [[Redéfinition de la priorité par défaut|Redéfinition de la priorité par défaut]].&lt;br /&gt;
* [[Démarrage et arrêt des threads|Démarrage et arrêt des threads]]&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[Définition d&#039;objets thread]]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Execution d&#039;objets thread}}&lt;br /&gt;
[[Category:Guide du développeur Windows]]&lt;br /&gt;
[[Category:{{Delphi}}]]&lt;br /&gt;
&lt;br /&gt;
[[en:Executing Thread Objects]]&lt;br /&gt;
[[de:Thread-Objekte ausführen]]&lt;br /&gt;
[[ja:スレッド オブジェクトの実行]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Validation_des_modifications_dans_le_contr%C3%B4le_de_version_Mercurial&amp;diff=213810</id>
		<title>Validation des modifications dans le contrôle de version Mercurial</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Validation_des_modifications_dans_le_contr%C3%B4le_de_version_Mercurial&amp;diff=213810"/>
		<updated>2021-03-09T18:53:06Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Intégration de Mercurial dans l&#039;EDI}}&lt;br /&gt;
&lt;br /&gt;
La validation des modifications d&#039;un fichier ou d&#039;un projet l&#039;enregistre dans le référentiel local.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pour valider un fichier spécifique&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Dans le [[Fenêtre Projets|Gestionnaire de projets]], cliquez avec le bouton droit sur le fichier à valider.&lt;br /&gt;
# Dans le menu contextuel, sélectionnez {{Menu|Mercurial &amp;amp;gt; Valider}}. Le volet [[Valider (Mercurial)|Valider (Mercurial)]] apparaît dans la fenêtre principale de l&#039;EDI.&lt;br /&gt;
# Entrez un commentaire pour le journal dans le champ &#039;&#039;&#039;Commentaire&#039;&#039;&#039;. Vous pouvez voir (ou sélectionner) des [[Commentaires récents|commentaires des versions préalablement validées]].&lt;br /&gt;
# Cliquez sur &#039;&#039;&#039;Valider&#039;&#039;&#039;. Le système de contrôle de version affiche les résultats dans la [[Vue Messages|vue Messages]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pour valider un répertoire ou un projet entier&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Dans le [[Fenêtre Projets|Gestionnaire de projets]], cliquez avec le bouton droit sur le dossier ou le projet à valider.  &lt;br /&gt;
# Dans le menu contextuel, sélectionnez {{Menu|Mercurial &amp;amp;gt; Valider}}.&lt;br /&gt;
# Sous la commande &#039;&#039;&#039;Valider&#039;&#039;&#039; du menu contextuel, sélectionnez l&#039;une des sous-commandes suivantes :&lt;br /&gt;
#* &#039;&#039;&#039;Depuis la racine du référentiel&#039;&#039;&#039; recherche dans l&#039;arborescence de répertoires le dernier répertoire géré par le même référentiel que le fichier projet, puis ajoute dans le volet de validation tous les fichiers de ce répertoire et ceux en dessous. &lt;br /&gt;
#* &#039;&#039;&#039;Depuis le répertoire du projet&#039;&#039;&#039; ajoute dans le volet de validation tous les fichiers du répertoire du projet, et ceux en-dessous.&lt;br /&gt;
# Le volet [[Valider (Mercurial)|Valider (Mercurial)]] apparaît dans la fenêtre principale de l&#039;EDI. Sélectionnez les fichiers que vous voulez valider dans le champ &#039;&#039;&#039;Valider dans : Emplacement&#039;&#039;&#039;.&lt;br /&gt;
# Entrez un commentaire pour le journal dans le champ &#039;&#039;&#039;Commentaire&#039;&#039;&#039;. Vous pouvez voir les commentaires des versions préalablement validées.&lt;br /&gt;
# Cliquez sur &#039;&#039;&#039;Valider&#039;&#039;&#039;. Le système de contrôle de version affiche les résultats dans la [[Vue Messages|vue Messages]].&lt;br /&gt;
&lt;br /&gt;
{{Note| Pour valider les modifications dans votre référentiel distant dans Mercurial, [[Valider (Mercurial)|envoyez vos modifications à un référentiel distant]].}}&lt;br /&gt;
{{Note| La boîte de dialogue Valider n&#039;affiche pas les fichiers renommés. Vous devez cliquer sur &#039;&#039;&#039;Afficher les fichiers non versionnés&#039;&#039;&#039; et sélectionner les fichiers renommés afin qu&#039;ils soient ajoutés à l&#039;opération de validation.}}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[Intégration de Mercurial dans l&#039;EDI|Intégration de Mercurial dans l&#039;EDI]]&lt;br /&gt;
* [[Valider (Mercurial)|Valider (Mercurial)]]&lt;br /&gt;
* [[Gestionnaire de l&#039;historique|Gestionnaire de l&#039;historique]]&lt;br /&gt;
* [[Ajout d&#039;un fichier au contrôle de version|Ajout d&#039;un fichier au contrôle de version]]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Validation des modifications dans le controle de version Mercurial}}&lt;br /&gt;
[[Category:Delphi]]&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:XE8]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Committing Changes to Mercurial Version Control]]&lt;br /&gt;
[[de:Übergeben von Änderungen an die Mercurial-Versionskontrolle]]&lt;br /&gt;
[[ja:変更を Mercurial バージョン管理にコミットする]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Int%C3%A9gration_de_Mercurial_dans_l%27EDI&amp;diff=213809</id>
		<title>Intégration de Mercurial dans l&#039;EDI</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Int%C3%A9gration_de_Mercurial_dans_l%27EDI&amp;diff=213809"/>
		<updated>2021-03-09T15:39:47Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Systèmes de contrôle de version dans l&#039;EDI}}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
La fonctionnalité &#039;&#039;&#039;Version Insight&#039;&#039;&#039; intègre le support du système de contrôle de version &#039;&#039;&#039;Mercurial&#039;&#039;&#039; dans l&#039;EDI. &lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations sur Mercurial SCM, voir [http://mercurial.selenic.com/ http://mercurial.selenic.com/]&lt;br /&gt;
&lt;br /&gt;
==Fonctionnalités de Mercurial dans l&#039;EDI==&lt;br /&gt;
&lt;br /&gt;
Pour tout fichier qui est géré par Mercurial dans l&#039;EDI :&lt;br /&gt;
&lt;br /&gt;
* Le &#039;&#039;&#039;[[Gestionnaire de l&#039;historique|Gestionnaire de l&#039;historique]]&#039;&#039;&#039; affiche les informations d&#039;historique du fichier local et les informations d&#039;historique de Mercurial. Par exemple, les commentaires Mercurial et l&#039;historique sont disponibles sur l&#039;onglet &#039;&#039;&#039;Informations&#039;&#039;&#039; du Gestionnaire de l&#039;historique.&lt;br /&gt;
* Vous pouvez comparer ou &#039;&#039;&#039;[[Comparaison (diff) des versions d&#039;un fichier|déterminer les différences entre]]&#039;&#039;&#039; les versions d&#039;un fichier créées et gérées par un système Mercurial, même si le fichier n&#039;a pas été créé ou sauvegardé par l&#039;EDI.&lt;br /&gt;
* Vous pouvez exécuter des commandes Mercurial communes telles que :&lt;br /&gt;
** [[Valider (Mercurial)|Valider (Mercurial)]] (envoie vos modifications locales dans votre référentiel local).&lt;br /&gt;
** Afficher le journal (clic sur l&#039;onglet &#039;&#039;&#039;Informations&#039;&#039;&#039; du &#039;&#039;&#039;Gestionnaire de l&#039;historique&#039;&#039;&#039;).&lt;br /&gt;
** [[Comparaison (diff) des versions d&#039;un fichier|Diff]] (compare deux versions d&#039;un fichier).&lt;br /&gt;
&lt;br /&gt;
==[[Commandes Mercurial dans RAD Studio|Commandes Mercurial dans {{Product}}]]==&lt;br /&gt;
&lt;br /&gt;
Si vous connaissez bien Mercurial, consultez ce &#039;&#039;&#039;[[Commandes Mercurial dans RAD Studio|tableau utile]]&#039;&#039;&#039; qui décrit comment effectuer les tâches Mercurial communes dans l&#039;EDI de {{Product}}.&lt;br /&gt;
&lt;br /&gt;
==Activation de Mercurial dans {{Product}}==&lt;br /&gt;
&lt;br /&gt;
Le support de Mercurial n&#039;est pas activé par défaut. Pour activer Mercurial dans l&#039;EDI, utilisez les étapes suivantes :&lt;br /&gt;
&lt;br /&gt;
# [http://mercurial.selenic.com/downloads Téléchargez et installez Mercurial] dans votre système.&lt;br /&gt;
# Dans l&#039;EDI, accédez à {{Menu|Outils &amp;amp;gt; Options &amp;amp;gt; Contrôle de version &amp;amp;gt; Mercurial}}.&lt;br /&gt;
# Insérez le chemin à l&#039;exécutable Mercurial installé (&#039;&#039;&#039;hg.exe&#039;&#039;&#039;) dans votre système. Par exemple, dans un système Windows l&#039;exécutable Hg réside à l&#039;adresse suivante :&lt;br /&gt;
#: {{Path|C:\Program Files\Mercurial\hg.exe}}&lt;br /&gt;
# Changez les autres paramètres à votre guise.&lt;br /&gt;
# Cliquez sur &#039;&#039;&#039;OK&#039;&#039;&#039; pour fermer l&#039;expert.&lt;br /&gt;
&lt;br /&gt;
Pour implémenter les fonctionnalités Mercurial, l&#039;EDI n&#039;ajoute rien à votre projet. A la place, l&#039;EDI utilise simplement les informations Mercurial qui sont stockées dans votre référentiel local.&lt;br /&gt;
&lt;br /&gt;
==Configuration de Mercurial==&lt;br /&gt;
&lt;br /&gt;
Dès que vous avez installé Mercurial sur votre système, vous devez définir votre &#039;&#039;&#039;nom d&#039;utilisateur&#039;&#039;&#039; et &#039;&#039;&#039;adresse e-mail&#039;&#039;&#039;. Mercurial utilise ces informations dans chaque validation.&lt;br /&gt;
&lt;br /&gt;
Pour configurer votre nom d&#039;utilisateur et adresse e-mail de votre référentiel Mercurial, vous devez modifier le fichier &#039;&#039;&#039;Mercurial.ini&#039;&#039;&#039; qui réside dans votre système ({{Path|C:\Users\&amp;amp;lt;nom_utilisateur&amp;amp;gt;\Mercurial.ini}}).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt; Ouvrez l&#039;outil de ligne de commande.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Tapez la commande suivante :&lt;br /&gt;
:&amp;lt;code&amp;gt; hg config --edit&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Ajoutez votre nom d&#039;utilisateur et email, comme détaillé dans le fichier :&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt; # username = Jane Doe &amp;amp;lt;jdoe@example.com&amp;amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt; username = &amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Vérifiez vos nouveaux paramètres en tapant : &lt;br /&gt;
:&amp;lt;code&amp;gt; hg config &amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mettre à jour votre référentiel local==&lt;br /&gt;
&lt;br /&gt;
Pour éviter un conflit entre versions, effectuez toujours une mise à jour sur vos fichiers locaux avant de commencer à faire des modifications :&lt;br /&gt;
&lt;br /&gt;
# Ouvrez l&#039;outil de ligne de commande.&lt;br /&gt;
# Naviguez jusqu&#039;au dossier local de votre référentiel Mercurial.&lt;br /&gt;
# Tapez la commande suivante :&lt;br /&gt;
#:&amp;lt;code&amp;gt;hg pull&amp;lt;/code&amp;gt;&lt;br /&gt;
# Effectuez une authentification dans le référentiel distant, si nécessaire.&lt;br /&gt;
# Mettez à jour le référentiel local (la commande &amp;lt;code&amp;gt;pull&amp;lt;/code&amp;gt; ne le met pas à jour automatiquement) :&lt;br /&gt;
#:&amp;lt;code&amp;gt;hg update&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note| Si vous utilisez la dernière révision des fichiers sous le contrôle de version, vous obtiendrez le message suivant : &#039;&#039;&#039;Aucune modification trouvée&#039;&#039;&#039;.}}&lt;br /&gt;
&lt;br /&gt;
==Résolution des problèmes Mercurial==&lt;br /&gt;
&lt;br /&gt;
===Impossible de récupérer le contenu de votre référentiel distant===&lt;br /&gt;
&lt;br /&gt;
Si votre référentiel Mercurial distant (référentiel privé) nécessite une authentification, vous devez cloner les données depuis la ligne de commande. Voir [[Clonage d&#039;une copie d&#039;un référentiel Mercurial|Clonage d&#039;une copie d&#039;un référentiel qui nécessite une authentification]].&lt;br /&gt;
&lt;br /&gt;
==Rubriques==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Commandes équivalentes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[Commandes Mercurial dans RAD Studio|Commandes Mercurial dans {{Product}}]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Actions liées au référentiel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[Clonage d&#039;une copie d&#039;un référentiel Mercurial|Clonage d&#039;une copie d&#039;un référentiel Mercurial]]&lt;br /&gt;
* [[Ajout d&#039;un fichier au contrôle de version|Ajout d&#039;un fichier au contrôle de version]]&lt;br /&gt;
* [[Validation des modifications dans le contrôle de version Mercurial|Validation des modifications dans le contrôle de version Mercurial]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Actions liées au journal et à l&#039;historique&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[Visualisation de l&#039;historique et des révisions|Visualisation de l&#039;historique et des révisions]]&lt;br /&gt;
* [[Visualisation des commentaires du contrôle de version|Visualisation des commentaires du contrôle de version]]&lt;br /&gt;
* [[Affichage du journal de Subversion|Affichage du journal du contrôle de version]]&lt;br /&gt;
* [[Utilisation de la fonctionnalité d&#039;annotation|Utilisation de la fonctionnalité d&#039;annotation]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Actions liées à l&#039;affichage des différences&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[Comparaison (diff) des versions d&#039;un fichier|Comparaison (diff) des versions d&#039;un fichier]]&lt;br /&gt;
* [[Ajout d&#039;une nouvelle visionneuse de différences|Ajout d&#039;une nouvelle visionneuse de différences]]&lt;br /&gt;
* [[Installation d&#039;une autre visionneuse de différences|Installation d&#039;une autre visionneuse de différences]]&lt;br /&gt;
* [[Utilisation d&#039;une visionneuse de différences externe|Utilisation d&#039;une visionneuse de différences externe]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Annulation des modifications&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[Annulation des modifications (contrôle de version)|Annulation des modifications]]&lt;br /&gt;
&lt;br /&gt;
===Boîtes de dialogue et volets===&lt;br /&gt;
&lt;br /&gt;
* [[Cloner (Mercurial)|Cloner (Mercurial)]]&lt;br /&gt;
* [[Valider (Mercurial)|Valider (Mercurial)]]&lt;br /&gt;
* [[Volet Journal|Volet Journal]]&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[Gestionnaire de l&#039;historique|Gestionnaire de l&#039;historique]]&lt;br /&gt;
* [[Valider (Mercurial)|Valider (Mercurial)]]&lt;br /&gt;
* [[Cloner (Mercurial)|Cloner (Mercurial)]] &lt;br /&gt;
* [[Volet Journal|Volet Journal]]&lt;br /&gt;
* [[Sélectionner un programme|Sélectionner un programme]]&lt;br /&gt;
* [[Sélectionner un projet ou un groupe de projets à ouvrir|Sélectionner un projet ou un groupe de projets à ouvrir]]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Integration de Mercurial dans l&#039;EDI}}&lt;br /&gt;
[[Category:Delphi]]&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
[[Category:XE8]]&lt;br /&gt;
&lt;br /&gt;
[[en:Mercurial Integration in the IDE]]&lt;br /&gt;
[[de:Mercurial-Integration in der IDE]]&lt;br /&gt;
[[ja:IDE 内の Mercurial インテグレーション]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Utilisation_du_Gestionnaire_de_l%27historique&amp;diff=213808</id>
		<title>Utilisation du Gestionnaire de l&#039;historique</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Utilisation_du_Gestionnaire_de_l%27historique&amp;diff=213808"/>
		<updated>2021-03-09T15:29:49Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Tip|}} and the {{Note|}} templates&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Comment modifier le code dans l&#039;éditeur de code}}&lt;br /&gt;
&lt;br /&gt;
Le &#039;&#039;&#039;Gestionnaire de l&#039;historique&#039;&#039;&#039; vous permet de voir et de comparer les versions d&#039;un fichier, notamment plusieurs versions de sauvegarde, les modifications locales enregistrées et le tampon d&#039;édition des modifications non enregistrées.&lt;br /&gt;
&lt;br /&gt;
{{Note| Pour de plus amples informations sur l&#039;utilisation d&#039;un [[Systèmes de contrôle de version dans l&#039;EDI|système de contrôle de version]] dans le &#039;&#039;&#039;Gestionnaire de l&#039;historique&#039;&#039;&#039;, voir :&lt;br /&gt;
&lt;br /&gt;
* Pour &#039;&#039;&#039;Subversion&#039;&#039;&#039; : [[Intégration de Subversion dans l&#039;EDI|Intégration de Subversion dans l&#039;EDI]].&lt;br /&gt;
* Pour &#039;&#039;&#039;Git&#039;&#039;&#039; : [[Intégration de Git dans l&#039;EDI|Intégration de Git dans l&#039;EDI]].&lt;br /&gt;
* Pour &#039;&#039;&#039;Mercurial&#039;&#039;&#039; : [[Intégration de Mercurial dans l&#039;EDI|Intégration de Mercurial dans l&#039;EDI]].}}&lt;br /&gt;
&lt;br /&gt;
Dans un souci de simplicité, cette rubrique a été écrite sous la forme d&#039;un tutoriel qui utilise un petit fichier texte pour introduire la fonctionnalité du &#039;&#039;&#039;Gestionnaire de l&#039;historique&#039;&#039;&#039;. Toutefois, le &#039;&#039;&#039;Gestionnaire de l&#039;historique&#039;&#039;&#039; est disponible pour la plupart des fichiers, notamment les fichiers HTML, XML et de code source.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etape 1 du tutoriel : Pour créer et afficher les versions d&#039;un fichier sur la page Contenu&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Choisissez la page {{Menu|Outils &amp;amp;gt; Options &amp;amp;gt; Options de l&#039;éditeur}} et vérifiez que l&#039;option &#039;&#039;&#039;Créer des fichiers de sauvegarde&#039;&#039;&#039; est cochée.&lt;br /&gt;
# Choisissez {{Menu|Fichier &amp;amp;gt; Nouveau &amp;amp;gt; Autre &amp;amp;gt; Autres fichiers &amp;amp;gt; Fichier texte}} et cliquez sur &#039;&#039;&#039;OK&#039;&#039;&#039; pour afficher un fichier texte vide dans &#039;&#039;&#039;l&#039;éditeur de code&#039;&#039;&#039;.&lt;br /&gt;
# Sur la première ligne du fichier, tapez &amp;lt;span class=&amp;quot;codeInline&amp;quot;&amp;gt;Première ligne de texte&amp;lt;/span&amp;gt; et enregistrez le fichier avec le nom et à l&#039;emplacement de votre choix.&lt;br /&gt;
# Sur la deuxième ligne, tapez &amp;lt;span class=&amp;quot;codeInline&amp;quot;&amp;gt;Deuxième ligne de texte&amp;lt;/span&amp;gt; et enregistrez le fichier.&lt;br /&gt;
# Sur la troisième ligne, tapez &amp;lt;span class=&amp;quot;codeInline&amp;quot;&amp;gt;Troisième ligne de texte&amp;lt;/span&amp;gt; et enregistrez le fichier. Il existe maintenant trois versions du fichier stockées dans un répertoire caché appelé &amp;lt;font face=&amp;quot;courier new,courier,monospace&amp;quot;&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#004A80&amp;quot;&amp;gt;__history&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/font&amp;gt; à l&#039;intérieur du répertoire en cours.&lt;br /&gt;
# Cliquez sur l&#039;onglet &#039;&#039;&#039;Historique&#039;&#039;&#039;, situé à côté de l&#039;onglet &#039;&#039;&#039;Code&#039;&#039;&#039;. La liste des révisions en haut de l&#039;onglet &#039;&#039;&#039;Contenu&#039;&#039;&#039; affiche les trois versions du fichier. La première version est appelée &amp;lt;font face=&amp;quot;courier new,courier,monospace&amp;quot;&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#004A80&amp;quot;&amp;gt;~1~&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/font&amp;gt;, la deuxième &amp;lt;font face=&amp;quot;courier new,courier,monospace&amp;quot;&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#004A80&amp;quot;&amp;gt;~2~&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/font&amp;gt; et la version en cours &amp;lt;font face=&amp;quot;courier new,courier,monospace&amp;quot;&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#004A80&amp;quot;&amp;gt;Fichier&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/font&amp;gt;. Le visualiseur de source en bas de l&#039;onglet affiche le source de la version sélectionnée.&lt;br /&gt;
# Sélectionnez les différentes versions pour afficher leur source dans le visualiseur de source.&lt;br /&gt;
# Cliquez sur l&#039;onglet &#039;&#039;&#039;Code&#039;&#039;&#039; pour revenir à &#039;&#039;&#039;l&#039;éditeur de code&#039;&#039;&#039; et, sur la quatrième ligne du fichier, tapez &amp;lt;span class=&amp;quot;codeInline&amp;quot;&amp;gt;Quatrième ligne de texte&amp;lt;/span&amp;gt; mais n&#039;enregistrez &#039;&#039;&#039;pas&#039;&#039;&#039; le fichier. Vos modifications sont stockées dans la mémoire tampon de l&#039;éditeur, mais ne sont pas enregistrées dans le fichier.&lt;br /&gt;
# Lisez les descriptions des barres d&#039;outils et icônes suivantes, puis utilisez la procédure qui suit pour comparer les versions du fichier que vous venez de créer.&lt;br /&gt;
&lt;br /&gt;
{{Tip| Pour trier une colonne sur une page du &#039;&#039;&#039;Gestionnaire de l&#039;historique&#039;&#039;&#039;, cliquez sur l&#039;en-tête de la colonne.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etape 2 du tutoriel : Pour comparer des versions d&#039;un fichier en utilisant la page Diff&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# En utilisant le fichier que vous avez créé dans la procédure précédente, cliquez sur l&#039;onglet &#039;&#039;&#039;Historique&#039;&#039;&#039;.&lt;br /&gt;
# Cliquez sur l&#039;onglet &#039;&#039;&#039;Différences&#039;&#039;&#039; en bas du &#039;&#039;&#039;Gestionnaire de l&#039;historique&#039;&#039;&#039;. Les volets &#039;&#039;&#039;Différences entre&#039;&#039;&#039; et &#039;&#039;&#039;Et&#039;&#039;&#039; en haut de la page présentent les versions du fichier que vous pouvez comparer. En bas de la page, les lignes de source qui ont été supprimées sont en surbrillance et marquées avec un signe moins (-). Les lignes qui ont été ajoutées sont en surbrillance et marquées avec un signe plus (+). Les couleurs de la surbrillance dépendent des couleurs de &#039;&#039;&#039;l&#039;éditeur de code&#039;&#039;&#039;.&lt;br /&gt;
# Sélectionnez les différentes versions du fichier dans les volets &#039;&#039;&#039;Différences entre&#039;&#039;&#039; et &#039;&#039;&#039;Et&#039;&#039;&#039; pour voir les résultats dans le visualiseur de source.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Etape 3 du tutoriel : Pour faire d&#039;une version précédente du fichier la version en cours&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# En utilisant le fichier résultant des procédures précédentes, cliquez sur l&#039;onglet &#039;&#039;&#039;Contenu&#039;&#039;&#039;.&lt;br /&gt;
# Cliquez avec le bouton droit sur la version &amp;lt;font face=&amp;quot;courier new,courier,monospace&amp;quot;&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#004A80&amp;quot;&amp;gt;~2~&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/font&amp;gt; du fichier et sélectionnez Rétablir, ou cliquez sur le bouton [[Image:HistViewRevert.jpg|Rétablir]] de la barre d&#039;outils. La boîte de dialogue de &#039;&#039;&#039;confirmation&#039;&#039;&#039; indique que le rétablissement du fichier entraînera la perte des modifications non enregistrées du tampon.&lt;br /&gt;
# Cliquez sur &#039;&#039;&#039;Oui&#039;&#039;&#039; dans la boîte de dialogue de &#039;&#039;&#039;confirmation&#039;&#039;&#039;. La version &amp;lt;font face=&amp;quot;courier new,courier,monospace&amp;quot;&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#004A80&amp;quot;&amp;gt;~2~&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/font&amp;gt; devient la version en cours.&lt;br /&gt;
# Revenez à &#039;&#039;&#039;l&#039;éditeur de code&#039;&#039;&#039; et enregistrez la modification.&lt;br /&gt;
&lt;br /&gt;
{{Tip| La commande Rétablir est aussi disponible sur la page &#039;&#039;&#039;Info&#039;&#039;&#039;.}}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Présentation de l&#039;EDI|Présentation de l&#039;EDI]]&lt;br /&gt;
*[[Gestionnaire de l&#039;historique|Gestionnaire de l&#039;historique]]&lt;br /&gt;
*[[Intégration de Subversion dans l&#039;EDI|Intégration de Subversion dans l&#039;EDI]]&lt;br /&gt;
*[[Intégration de Git dans l&#039;EDI|Intégration de Git dans l&#039;EDI]]&lt;br /&gt;
*[[Intégration de Mercurial dans l&#039;EDI|Intégration de Mercurial dans l&#039;EDI]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Utilisation de RAD Studio]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Using the History Manager]]&lt;br /&gt;
[[de:Mit der Versionsverwaltung arbeiten]]&lt;br /&gt;
[[ja:履歴マネージャを使用する]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Tutoriel_mobile_:_D%C3%A9finition_de_votre_environnement_de_d%C3%A9veloppement_sur_le_Mac_(iOS)&amp;diff=213807</id>
		<title>Tutoriel mobile : Définition de votre environnement de développement sur le Mac (iOS)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Tutoriel_mobile_:_D%C3%A9finition_de_votre_environnement_de_d%C3%A9veloppement_sur_le_Mac_(iOS)&amp;diff=213807"/>
		<updated>2021-03-09T14:16:12Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Tutoriels mobiles : Développement d&#039;applications mobiles (iOS et Android)}}&lt;br /&gt;
{{DISPLAYTITLE:Tutoriel mobile : Définition de votre environnement de développement sur le Mac (iOS)}}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
Une application {{Delphi}} {{FM}} destinée à la plate-forme cible iOS peut être facultativement testée sur le &#039;&#039;&#039;simulateur iOS&#039;&#039;&#039; disponible sur le Mac. Les applications C++ et {{Delphi}} {{FM}} peuvent être testées en utilisant la plate-forme cible &#039;&#039;&#039;Périphérique iOS&#039;&#039;&#039; ; pour ce test, un périphérique iOS test doit être connecté au Mac.&lt;br /&gt;
&lt;br /&gt;
* La première moitié de ce tutoriel décrit les étapes à effectuer afin d&#039;exécuter votre application iOS ({{Delphi}} seulement) sur le &#039;&#039;&#039;simulateur iOS&#039;&#039;&#039; sur le Mac.&lt;br /&gt;
* La deuxième moitié de ce tutoriel décrit les étapes supplémentaires requises afin d&#039;exécuter votre application iOS ({{Delphi}} ou C++) sur &#039;&#039;&#039;votre périphérique iOS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
{{Note| Le &#039;&#039;&#039;simulateur iOS&#039;&#039;&#039; n&#039;est pas pris en charge par [[BCCIOSARM.EXE, le compilateur C++ pour le périphérique iOS 32 bits|BCCIOSARM, le compilateur C++ pour le périphérique iOS]]. Seuls les périphériques iOS sont pris en charge par BCCIOSARM.}}&lt;br /&gt;
&lt;br /&gt;
==Exigences relatives au Mac et iOS==&lt;br /&gt;
&lt;br /&gt;
* 10.9 Mavericks&lt;br /&gt;
* 10.10 Yosemite&lt;br /&gt;
* 10.11 El Capitan&lt;br /&gt;
*:Aucun système d&#039;exploitation n&#039;est pris en charge sur les anciens systèmes Macintosh PowerPC- et 680x0. Tous les Mac depuis 2007 sont basés sur Intel ; tous les Mac depuis 2008 sont 64 bits.&lt;br /&gt;
* Pour le développement OS X, la dernière version de [[Installation de Xcode sur un Mac|Xcode]]&lt;br /&gt;
* Pour le développement iOS, la dernière version du SDK iOS et de &#039;&#039;&#039;[[Installation de Xcode sur un Mac|Xcode]]&#039;&#039;&#039; installée, ainsi que &#039;&#039;&#039;[[Installation des outils de ligne de commande Xcode sur un Mac|les outils de ligne de commande Xcode]]&#039;&#039;&#039;.&lt;br /&gt;
{{Note| {{Product}} ne prend pas en charge les versions de SDK iOS antérieures à la version 8.0.}}&lt;br /&gt;
* [[Rejoindre le programme Développeur Apple|Appartenance au programme Développeur Apple]].&lt;br /&gt;
* Un périphérique iOS connecté au Mac par le port USB (requis pour tester ou exécuter votre application iOS sur le périphérique)&lt;br /&gt;
&lt;br /&gt;
==Etapes de configuration de votre Mac afin d&#039;exécuter votre application iOS==&lt;br /&gt;
&lt;br /&gt;
Pour déployer une application iOS sur votre périphérique à des fins de débogage et de tests, votre système doit avoir la configuration présentée à la figure suivante. {{Product}} s&#039;exécute sur un PC sous Windows. Ce PC est connecté à un Mac exécutant &#039;&#039;&#039;[[PAServer, l&#039;application serveur Platform Assistant|Platform Assistant]]&#039;&#039;&#039; et équipé des versions appropriées de &#039;&#039;&#039;[[Installation de Xcode sur un Mac|Xcode]]&#039;&#039;&#039; et du SDK iOS (pour le développement iOS). Pour exécuter les apps iOS sur un périphérique iOS, ce dernier doit être connecté au Mac via un câble USB.&lt;br /&gt;
&lt;br /&gt;
[[File:Win2Mac2.png|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour déployer une application iOS vers le &#039;&#039;&#039;simulateur iOS&#039;&#039;&#039; sur le Mac ou vers un périphérique iOS, vous devez installer les outils suivants sur votre Mac :&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[PAServer, l&#039;application serveur Platform Assistant|Platform Assistant (PAServer)]]&#039;&#039;&#039;&lt;br /&gt;
** {{Product}} utilise &#039;&#039;&#039;[[PAServer, l&#039;application serveur Platform Assistant|Platform Assistant]]&#039;&#039;&#039; pour [[Débogage des applications multi-périphériques|exécuter et déboguer les applications multi-périphériques]] et pour [[Déploiement des applications multi-périphériques|déployer les applications multi-périphériques]] sur les périphériques OS X et iOS.&lt;br /&gt;
** [[Installation de Platform Assistant sur un Mac|Installez]] et [[Exécution de Platform Assistant sur un Mac|exécutez]] Platform Assistant sur votre Mac.&lt;br /&gt;
*&#039;&#039;&#039;[http://developer.apple.com/xcode/ Xcode]&#039;&#039;&#039;&lt;br /&gt;
*: Xcode est l&#039;environnement de développement et de débogage sur le Mac, qui fournit les fichiers de développement requis pour les applications OS X et iOS.&lt;br /&gt;
&lt;br /&gt;
===Etape 1 : Installer Platform Assistant===&lt;br /&gt;
&lt;br /&gt;
[[PAServer, l&#039;application serveur Platform Assistant|Platform Assistant]] doit s&#039;exécuter sur le Mac quand vous déployez une app iOS de votre PC vers le simulateur iOS ou un périphérique iOS.&lt;br /&gt;
&lt;br /&gt;
L&#039;installateur OS X pour Platform Assistant se nomme {{Path|{{PAServerOSXInstallerFile}}}} et est disponible à deux emplacements :&lt;br /&gt;
&lt;br /&gt;
* Dans le répertoire d&#039;installation de {{Product}} sur votre PC :&lt;br /&gt;
*: {{Path|{{PAServerOSXInstallerPath}}}}&lt;br /&gt;
* Sur le Web où vous pouvez le télécharger sur le Mac :&lt;br /&gt;
*: {{Path|{{PAServerOSXInstallerUrl}}}}&lt;br /&gt;
&lt;br /&gt;
: [[File:Installing PAServer1.png|400px|Installing PAServer]]&lt;br /&gt;
&lt;br /&gt;
Pour plus de détails, voir &#039;&#039;&#039;[[Installation de Platform Assistant sur un Mac|Installation de Platform Assistant sur un Mac]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Etape 2 : Exécuter Platform Assistant===&lt;br /&gt;
&lt;br /&gt;
Sur le Mac, dans le Finder, activez le fichier .app ({{Path|{{PAServerOSXAppFile}}}}) de la manière suivante :&lt;br /&gt;
&lt;br /&gt;
# Naviguez jusqu&#039;au dossier de niveau supérieur &#039;&#039;&#039;Applications&#039;&#039;&#039;.&lt;br /&gt;
# Double-cliquez sur {{Path|{{PAServerOSXAppFile}}}} pour démarrer Platform Assistant :&lt;br /&gt;
#:[[Image:SelectNewRADPAServer.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#:La fenêtre Terminal apparaît, affichant la bannière Platform Assistant et l&#039;invite de mot de passe : &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#::&amp;lt;code&amp;gt;Mot de passe du profil de connexion &amp;amp;lt;appuyez sur Entrée si aucun mot de passe&amp;amp;gt;&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#: Appuyez sur la touche &#039;&#039;&#039;Retour&#039;&#039;&#039; ou entrez un mot de passe pour PAServer, puis appuyez sur Retour.&amp;lt;br /&amp;gt;&lt;br /&gt;
# Vous êtes maintenant invité à entrer votre mot de passe d&#039;utilisateur Mac pour permettre à Platform Assistant de déboguer (prendre le contrôle d&#039;un autre processus) votre application.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&lt;br /&gt;
#:: [[File:TakeControl.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#::Entrez votre mot de passe et sélectionnez &#039;&#039;&#039;Take Control&#039;&#039;&#039; :&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#::[[Image:PAServerXE7.png||Message d&#039;identification PAServer]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour plus de détails sur l&#039;exécution de Platform Assistant, voir [[Exécution de Platform Assistant sur un Mac|Exécution de Platform Assistant sur un Mac]].&lt;br /&gt;
&lt;br /&gt;
===Etape 3 : Installer Xcode sur le Mac===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[http://developer.apple.com/xcode/ Xcode]&#039;&#039;&#039; est l&#039;environnement de développement et de débogage sur le Mac, qui fournit les fichiers de développement requis pour les applications [[Développement d&#039;applications OS X|OS X]] et [[Développement d&#039;applications mobiles iOS|iOS]].&lt;br /&gt;
&lt;br /&gt;
Vous pouvez installer Xcode depuis l&#039;une des sources suivantes :&lt;br /&gt;
&lt;br /&gt;
* Sur votre DVD &amp;quot;OS X Install&amp;quot;, sous &#039;&#039;&#039;Optional Installs&#039;&#039;&#039;, double-cliquez sur &#039;&#039;&#039;Xcode.mpkg&#039;&#039;&#039; pour installer Xcode sur votre système.&lt;br /&gt;
* Au niveau de [http://www.apple.com/mac/app-store/ l&#039;App Store Mac], téléchargez Xcode gratuitement.&lt;br /&gt;
* En tant que développeur Apple enregistré, vous pouvez télécharger la dernière version de Xcode sous forme de bundle (&amp;lt;code&amp;gt;.dmg&amp;lt;/code&amp;gt;). Pour s&#039;enregistrer puis télécharger Xcode :&lt;br /&gt;
*# Enregistrez-vous (gratuitement) en tant que développeur Apple sur [http://developer.apple.com/programs/register/ http://developer.apple.com/programs/register/].&lt;br /&gt;
*# Téléchargez Xcode sous forme de bundle à l&#039;adresse [https://developer.apple.com/downloads https://developer.apple.com/downloads].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Etapes suivantes===&lt;br /&gt;
&lt;br /&gt;
Vous avez configuré votre Mac pour exécuter une application iOS sur le &#039;&#039;&#039;simulateur iOS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
{{Note| Seules les applications {{Delphi}} peuvent être exécutées sur le &#039;&#039;&#039;simulateur iOS&#039;&#039;&#039;. {{CBuilder}} ne prend pas en charge le simulateur iOS.}}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simulateur iOS :&#039;&#039;&#039; Pour exécuter une application iOS ({{Delphi}} uniquement) sur le &#039;&#039;&#039;simulateur iOS&#039;&#039;&#039; sur le Mac, vous n&#039;avez pas besoin de mener à bien la deuxième partie de ce tutoriel. Vous pouvez passer directement au tutoriel suivant (&#039;&#039;&#039;[[Tutoriel mobile : Définition de votre environnement de développement sur un PC Windows (iOS)|Tutoriel mobile : Définition de votre environnement de développement sur un PC Windows (iOS)]]&#039;&#039;&#039; pour achever la configuration de l&#039;EDI de {{Product}}.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Périphérique iOS :&#039;&#039;&#039; pour exécuter votre application iOS ({{Delphi}} ou {{C++Builder}}) sur votre &#039;&#039;&#039;périphérique iOS&#039;&#039;&#039;, suivez les étapes de ce tutoriel pour achever la configuration de votre Mac. Passez ensuite au tutoriel suivant (&#039;&#039;&#039;[[Tutoriel mobile : Définition de votre environnement de développement sur un PC Windows (iOS)|Tutoriel mobile : Définition de votre environnement de développement sur un PC Windows (iOS)]]&#039;&#039;&#039;) pour achever la configuration de l&#039;EDI de {{Product}}.&lt;br /&gt;
&lt;br /&gt;
[[File:WhiteSpace50.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Etapes supplémentaires permettant de configurer votre Mac afin d&#039;exécuter votre application iOS sur votre périphérique iOS=&lt;br /&gt;
&lt;br /&gt;
Les étapes supplémentaires suivantes vous permettent d&#039;exécuter votre application iOS sur votre &#039;&#039;&#039;périphérique iOS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:Win2Mac2iOSDevice2.png|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Rappelez-vous que votre périphérique iOS doit être connecté à votre Mac via un câble USB.&lt;br /&gt;
&lt;br /&gt;
==Etape 1 : Vérifier que les outils de ligne de commande Xcode sont installés sur votre Mac==&lt;br /&gt;
&lt;br /&gt;
{{Note| A partir de la version 6.1 de Xcode, les outils de ligne de commande Xcode sont automatiquement installés pendant l&#039;installation de Xcode.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pour vérifier que les [[Installation des outils de ligne de commande Xcode sur un Mac|outils de ligne de commande Xcode sont installés sur votre Mac]] :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Démarrez Xcode sur le Mac.&lt;br /&gt;
# Choisissez {{Menu|Preferences}} dans le menu {{Menu|Xcode}}.&lt;br /&gt;
#: [[File:XcodePreference.png]]&lt;br /&gt;
# Dans la fenêtre &#039;&#039;&#039;General&#039;&#039;&#039;, cliquez sur l&#039;onglet &#039;&#039;&#039;Locations&#039;&#039;&#039;.&lt;br /&gt;
# Dans la fenêtre &#039;&#039;&#039;Location&#039;&#039;&#039;, vérifiez que le champ &#039;&#039;&#039;Command Line Tools&#039;&#039;&#039; indique la version de Xcode (avec laquelle les outils de ligne de commande ont été installés). Cela signifie que les outils de ligne de commande Xcode sont déjà installés et que vous n&#039;avez pas besoin de le faire.&lt;br /&gt;
#: [[File:XcodeLocations.png]]&lt;br /&gt;
# Si les outils de ligne de commande Xcode ne sont pas installés, le champ &#039;&#039;&#039;Command Line Tools&#039;&#039;&#039; n&#039;indique pas la version de Xcode.&lt;br /&gt;
## Dans ce cas, cliquez sur l&#039;onglet &#039;&#039;&#039;Downloads&#039;&#039;&#039; dans la fenêtre &#039;&#039;&#039;Locations&#039;&#039;&#039;.&lt;br /&gt;
## Dans la fenêtre &#039;&#039;&#039;Downloads&#039;&#039;&#039;, choisissez l&#039;onglet &#039;&#039;&#039;Components&#039;&#039;&#039;.&lt;br /&gt;
##: [[File:InstallingiOSCommandLineTools.png|600px]]&lt;br /&gt;
## Cliquez sur le bouton &#039;&#039;&#039;Install&#039;&#039;&#039; auprès de &#039;&#039;&#039;Command Line Tools&#039;&#039;&#039;.&lt;br /&gt;
#:Vous êtes invité à fournir votre identifiant de connexion développeur Apple pendant le processus d&#039;installation.&lt;br /&gt;
&lt;br /&gt;
Pour plus de détails, voir [[Installation des outils de ligne de commande Xcode sur un Mac|Installation des outils de ligne de commande Xcode sur un Mac]].&lt;br /&gt;
&lt;br /&gt;
==Etape 2 : S&#039;inscrire à un compte développeur==&lt;br /&gt;
&lt;br /&gt;
L&#039;appartenance à l&#039;un des programmes Développeur Apple est obligatoire pour construire, exécuter, déboguer et déployer des applications pour iOS.&lt;br /&gt;
&lt;br /&gt;
Suivez les étapes décrites dans [[Rejoindre le programme Développeur Apple|Rejoindre le programme Développeur Apple]].&lt;br /&gt;
&lt;br /&gt;
==Etape 3 : Demander, télécharger et installer votre certificat de développement==&lt;br /&gt;
&lt;br /&gt;
Les applications qui sont déployées sur le périphérique (ou sur le simulateur iOS) doivent être signées cryptographiquement avant leur exécution. Le &#039;&#039;&#039;certificat de développement&#039;&#039;&#039; contient des informations nécessaires à la signature des applications. Chaque individu (un développeur individuel ou un membre d&#039;équipe) doit avoir un certificat de développement unique, utilisable pour plusieurs applications.&lt;br /&gt;
&lt;br /&gt;
Pour les équipes de développement, les certificats de développement doivent être demandés par chaque membre d&#039;équipe, et ces demandes doivent être approuvées par un administrateur d&#039;équipe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Demander, télécharger et installer votre certificat===&lt;br /&gt;
&lt;br /&gt;
# Dans l&#039;application &#039;&#039;&#039;Trousseaux d&#039;accès&#039;&#039;&#039; de votre Mac, sélectionnez dans le menu &#039;&#039;&#039;Trousseaux d&#039;accès&#039;&#039;&#039; :  &#039;&#039;&#039;Assistant de certification &amp;amp;gt; Demander un certificat à une autorité de certificat&#039;&#039;&#039; :&lt;br /&gt;
#: [[File:RequestCertificateDev.png|500px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#* Si vous êtes un membre de l&#039;équipe de développement d&#039;un programme d&#039;entreprise/d&#039;organisation, l&#039;administrateur de votre équipe doit approuver votre demande. Dès que l&#039;administrateur de votre équipe l&#039;a approuvé, vous pouvez télécharger le certificat.&lt;br /&gt;
#* Si vous êtes un développeur individuel, une option de téléchargement de votre certificat devrait apparaître rapidement dès sa demande. Pour de plus amples détails, voir la documentation Apple : [https://developer.apple.com/library/ios/documentation/Security/Conceptual/CodeSigningGuide/Introduction/Introduction.html Code Signing Guide (EN)].&lt;br /&gt;
#: Enregistrez la demande de certificat dans un fichier CSR, puis envoyez-le à votre autorité de certificat via le [https://developer.apple.com/ios/my/certificates/index.action Portail d&#039;approvisionnement iOS] de la manière suivante :&lt;br /&gt;
## A l&#039;invite, entrez votre identifiant et votre mot de passe Apple, puis cliquez sur &#039;&#039;&#039;Sign In&#039;&#039;&#039;.&lt;br /&gt;
## Sous &#039;&#039;&#039;iOS Apps&#039;&#039;&#039;, cliquez sur &#039;&#039;&#039;Certificates&#039;&#039;&#039;.&lt;br /&gt;
## Sur la page qui s&#039;ouvre, cliquez sur l&#039;icône du signe plus (+).&amp;lt;br /&amp;gt;Cette action ouvre l&#039;expert &#039;&#039;&#039;Add iOS Certificate&#039;&#039;&#039;.&lt;br /&gt;
## Sur la page &#039;&#039;&#039;Select Type&#039;&#039;&#039;, cliquez sur &#039;&#039;&#039;Continue&#039;&#039;&#039; et suivez les instructions à l&#039;écran pour poursuivre dans l&#039;expert.&lt;br /&gt;
## A l&#039;invite, téléchargez le fichier CSR que vous avez enregistré sur votre Mac.&lt;br /&gt;
# Accédez au [https://developer.apple.com/ios/my/certificates/index.action Portail d&#039;approvisionnement iOS]. Vous pouvez télécharger le certificat de développement en cliquant sur le bouton &#039;&#039;&#039;Télécharger&#039;&#039;&#039; comme montré ci-dessous :&lt;br /&gt;
#: [[File:DownloadDevelopmentCertificate.png|500px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
# Lancez le certificat de développement en double-cliquant dessus. Il se charge automatiquement dans l&#039;application &#039;&#039;&#039;Trousseaux d&#039;accès&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Etape 4 : Recenser le périphérique pour le déploiement==&lt;br /&gt;
&lt;br /&gt;
Avant qu&#039;un périphérique puisse exécuter des applications utilisateur, il doit être recensé dans le [https://developer.apple.com/ios/my/devices/index.action Portail d&#039;approvisionnement Apple] (EN). Les périphériques sont recensés par leur identifiant de périphérique unique (UDID). Le UDID peut être déterminé par Xcode, comme suit :&lt;br /&gt;
&lt;br /&gt;
# Assurez-vous que votre périphérique iOS est connecté à votre machine Mac.&lt;br /&gt;
# Ouvrez Xcode et allez à &#039;&#039;&#039;Devices&#039;&#039;&#039; (&#039;&#039;&#039;Window &amp;amp;gt; Devices&#039;&#039;&#039;).&lt;br /&gt;
# Cliquez sur votre périphérique.&lt;br /&gt;
# Une chaîne de caractères se trouve auprès du libellé &#039;&#039;&#039;Identifier&#039;&#039;&#039; :&lt;br /&gt;
#: [[File:DeviceUDID.png|540px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#: La chaîne Identifier représente le UDID de votre périphérique.&lt;br /&gt;
#:* Si vous êtes un développeur individuel, recensez votre périphérique en ajoutant le UDID dans [https://developer.apple.com/ios/my/devices/index.action l&#039;onglet Devices du Portail d&#039;approvisionnement Apple].&lt;br /&gt;
#:* Si vous appartenez à une société/organisation, demandez à l&#039;administrateur de votre équipe de recenser votre périphérique.&lt;br /&gt;
&lt;br /&gt;
==Etape 5 : Créer et installer un profil d&#039;approvisionnement==&lt;br /&gt;
&lt;br /&gt;
Les profils d&#039;approvisionnement sont utilisés pour lier un développeur et des périphériques à une équipe de développement. Ce profil d&#039;approvisionnement est requis pour l&#039;exécution d&#039;applications sur un périphérique iOS.&lt;br /&gt;
&lt;br /&gt;
* Si vous êtes un développeur individuel, vous devez créer un profil d&#039;approvisionnement. Pour des informations spécifiques, voir : [https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppStoreDistributionTutorial/Introduction/Introduction.html Creating and Downloading a Distribution Provisioning Profile (EN)].&lt;br /&gt;
* Si vous appartenez à une société/organisation, l&#039;administrateur de votre équipe doit créer un profil d&#039;approvisionnement que vous pourrez utiliser.&lt;br /&gt;
&lt;br /&gt;
Dès que votre profil d&#039;approvisionnement est créé, vous devez l&#039;installer dans Xcode, comme suit :&lt;br /&gt;
&lt;br /&gt;
# Ouvrez Xcode sur le Mac et accédez aux périphériques (&#039;&#039;&#039;Window &amp;amp;gt; Devices&#039;&#039;&#039;).&lt;br /&gt;
# Cliquez avec le bouton droit sur le périphérique et sélectionnez &#039;&#039;&#039;Show Provisioning Profiles…&#039;&#039;&#039;&lt;br /&gt;
#:[[File:ShowProvisioningProfiles.png|600px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
# Cliquez sur le &#039;&#039;&#039;bouton du signe plus&#039;&#039;&#039; pour ajouter un profil d&#039;approvisionnement.&lt;br /&gt;
#:[[File:PlusButtonAddProvisioningProfiles.png|600px]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
# Recherchez votre profil d&#039;approvisionnement, sélectionnez-le et cliquez sur &#039;&#039;&#039;Install&#039;&#039;&#039;.&lt;br /&gt;
# Cliquez sur &#039;&#039;&#039;Done&#039;&#039;&#039; pour fermer la fenêtre.&lt;br /&gt;
&lt;br /&gt;
Vous avez configuré votre Mac pour exécuter votre application iOS sur votre &#039;&#039;&#039;périphérique iOS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Pour exécuter votre application iOS, voir [[Tutoriel mobile : Définition de votre environnement de développement sur un PC Windows (iOS)|Tutoriel mobile : Définition de votre environnement de développement sur un PC Windows (iOS)]] et achevez la configuration de l&#039;EDI de {{Product}}. (Si vous avez configuré votre PC pour l&#039;exécution de votre application sur le &#039;&#039;&#039;simulateur iOS&#039;&#039;&#039;, vous pouvez ignorer cette étape.)&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[Tutoriel mobile : Définition de votre environnement de développement sur un PC Windows (iOS)|Tutoriel mobile : Définition de votre environnement de développement sur un PC Windows (iOS)]]&lt;br /&gt;
* [[Tutoriel mobile : Création d&#039;une application pour les plates-formes mobiles (iOS et Android)|Tutoriel mobile : Création d&#039;une application pour les plates-formes mobiles (iOS et Android)]]&lt;br /&gt;
* [[PAServer, l&#039;application serveur Platform Assistant|paserver, l&#039;application serveur Platform Assistant]]&lt;br /&gt;
* [[Installation de Xcode sur un Mac|Installation de Xcode sur un Mac]]&lt;br /&gt;
* [[Installation des outils de ligne de commande Xcode sur un Mac|Installation des outils de ligne de commande Xcode sur un Mac]]&lt;br /&gt;
* [[Installation de Platform Assistant sur un Mac|Installation de Platform Assistant sur un Mac]]&lt;br /&gt;
* [[Exécution de Platform Assistant sur un Mac|Exécution de Platform Assistant sur un Mac]]&lt;br /&gt;
* [[Acquisition d&#039;un certificat Développeur iOS|Acquisition d&#039;un certificat Développeur iOS]]&lt;br /&gt;
* [[Dépannage : Impossible de déployer sur le périphérique iOS|Dépannage : Impossible de déployer sur le périphérique iOS]]&lt;br /&gt;
* Pages Web Apple utiles :&lt;br /&gt;
** [https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingProfiles/MaintainingProfiles.html Creating and Configuring App IDs (EN)]&lt;br /&gt;
** [https://developer.apple.com/library/ios/documentation/Security/Conceptual/CodeSigningGuide/Introduction/Introduction.html Creating signing certificates (Code Signing Guide) (EN)]&lt;br /&gt;
** [https://developer.apple.com/ios/my/certificates/index.action iOS Provisioning Portal (Requires your Apple Developer login) (EN)]&lt;br /&gt;
** [https://developer.apple.com/ios/my/devices/index.action Devices tab of the Apple Provisioning Portal (EN)]&lt;br /&gt;
** [https://appleid.apple.com/cgi-bin/WebObjects/MyAppleId.woa/wa/createAppleId Create an Apple ID (EN)]&lt;br /&gt;
 &lt;br /&gt;
** [https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingProfiles/MaintainingProfiles.html#//apple_ref/doc/uid/TP40012582-CH30-SW1 Creating and Downloading a Distribution Provisioning Profile (EN)]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Tutoriel mobile : Definition de votre environnement de developpement sur le Mac (iOS)}}&lt;br /&gt;
[[Category:XE4]]&lt;br /&gt;
[[Category:IOS]]&lt;br /&gt;
[[Category:OS X]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Mobile Tutorial: Set Up Your Development Environment on the Mac (iOS)]]&lt;br /&gt;
[[de:Mobile-Tutorial: Konfigurieren der Entwicklungsumgebung auf dem Mac (iOS)]]&lt;br /&gt;
[[ja:モバイル チュートリアル：Mac に開発環境をセットアップする（iOS）]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Pseudo-propri%C3%A9t%C3%A9_ClassGroup_de_TDataModule&amp;diff=213805</id>
		<title>Pseudo-propriété ClassGroup de TDataModule</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Pseudo-propri%C3%A9t%C3%A9_ClassGroup_de_TDataModule&amp;diff=213805"/>
		<updated>2021-02-26T15:44:37Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Création et modification de modules de données standard}}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Effets de la pseudo-propriété ClassGroup==&lt;br /&gt;
&lt;br /&gt;
[[lib_fr:System.Classes.TDataModule|System.Classes.TDataModule]] et ses classes descendantes, telles que [[lib_fr:Web.HTTPApp.TWebModule|Web.HTTPApp.TWebModule]], ont une pseudo-propriété nommée &#039;&#039;&#039;ClassGroup&#039;&#039;&#039; qui effectue les tâches suivantes&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
* Détermine l&#039;affinité de framework pour le module de données. Ainsi, &#039;&#039;&#039;ClassGroup&#039;&#039;&#039; spécifie que le module de données est indépendant du framework ou doit travailler avec un framework spécifique (à savoir VCL ou FMX).&lt;br /&gt;
* Active les composants non visuels spécifiques au framework dans la &#039;&#039;&#039;[[Palette d&#039;outils|Palette d&#039;outils]]&#039;&#039;&#039;.&lt;br /&gt;
*: Vous devez [[Définition de l&#039;affinité de framework pour un module de données|définir une valeur spécifique au framework pour &#039;&#039;&#039;ClassGroup&#039;&#039;&#039;]] dans &#039;&#039;&#039;[[Inspecteur d&#039;objets|l&#039;inspecteur d&#039;objets]]&#039;&#039;&#039; afin d&#039;activer les composants non visuels spécifiques au framework tels que&amp;amp;nbsp;:&lt;br /&gt;
** &#039;&#039;&#039;[[lib_fr:Vcl.ActnList.TActionList|TActionList]]&#039;&#039;&#039; est VCL-seulement. Ainsi, pour activer &#039;&#039;&#039;TActionList&#039;&#039;&#039; dans la Palette d&#039;outils, vous devez définir &#039;&#039;&#039;ClassGroup&#039;&#039;&#039; sur le paramètre VCL.&lt;br /&gt;
** &#039;&#039;&#039;TTimer&#039;&#039;&#039; existe à la fois dans FMX et VCL. Pour activer TTimer pour le framework correct, vous devez définir &#039;&#039;&#039;ClassGroup&#039;&#039;&#039; sur FMX ou VCL, afin de correspondre au framework de l&#039;application parent.&lt;br /&gt;
&lt;br /&gt;
:&lt;br /&gt;
:: (&#039;&#039;&#039;TTimer&#039;&#039;&#039; et &#039;&#039;&#039;TActionList&#039;&#039;&#039; sont traités plus loin dans cette rubrique.&lt;br /&gt;
&lt;br /&gt;
Puisque la pseudo-propriété &#039;&#039;&#039;ClassGroup&#039;&#039;&#039; est utilisée seulement par l&#039;EDI et n&#039;est pas une propriété générée par le compilateur (d&#039;où, &#039;pseudo-propriété&#039;), &#039;&#039;&#039;ClassGroup&#039;&#039;&#039; n&#039;est pas documentée dans la [[lib_fr:Accueil|Référence des bibliothèques]] générée par le compilateur. La page que vous lisez actuellement est la documentation relative à &#039;&#039;&#039;ClassGroup&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
{{Note| Les deux frameworks, &#039;&#039;&#039;VCL&#039;&#039;&#039; et &#039;&#039;&#039;FMX&#039;&#039;&#039;, ne sont pas mutuellement compatibles.  Pour cette raison, la combinaison de VCL et FMX dans une application n&#039;est pas supportée.  Voir [[FireMonkey#La VCL est incompatible avec FireMonkey|Plate-forme d&#039;applications FireMonkey]].}}&lt;br /&gt;
&lt;br /&gt;
==Valeurs de ClassGroup==&lt;br /&gt;
&lt;br /&gt;
Voici les valeurs de &#039;&#039;&#039;ClassGroup&#039;&#039;&#039; que vous pouvez choisir dans &#039;&#039;&#039;l&#039;inspecteur d&#039;objets&#039;&#039;&#039;, notamment le framework et les éléments de la RTL qui peuvent être utilisés avec chaque choix spécifique au framework&amp;amp;nbsp;:&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;ClassGroup&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Framework associé &#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Bibliothèque d&#039;exécution &#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
{{Code|System.Classes.TPersistent}}&lt;br /&gt;
|&lt;br /&gt;
Aucun (indépendant du framework)&lt;br /&gt;
|&lt;br /&gt;
RTL {{Delphi}}&lt;br /&gt;
&lt;br /&gt;
(à l&#039;exception des éléments spécifiques au framework non supportés)&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
{{Code|Vcl.Controls.TControl}}&lt;br /&gt;
|&lt;br /&gt;
Framework VCL&lt;br /&gt;
|&lt;br /&gt;
RTL {{Delphi}}&lt;br /&gt;
&lt;br /&gt;
(à l&#039;exception des éléments spécifiques au framework non supportés)&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
{{Code|FMX.Controls.TControl}}&lt;br /&gt;
|&lt;br /&gt;
Framework FMX&lt;br /&gt;
|&lt;br /&gt;
RTL {{Delphi}}&lt;br /&gt;
&lt;br /&gt;
(à l&#039;exception des éléments spécifiques au framework non supportés)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==TDataModule est initialement indépendant du framework&amp;amp;nbsp;; définissez l&#039;affinité de framework avec ClassGroup==&lt;br /&gt;
&lt;br /&gt;
Quand vous créez un module de données, le fichier d&#039;unité contient initialement une directive qui définit la pseudo-propriété &#039;&#039;&#039;ClassGroup&#039;&#039;&#039; sur une valeur de base indépendante du framework (&#039;&#039;&#039;System.Classes.TPersistent&#039;&#039;&#039;), comme suit&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;{{Delphi}}&amp;amp;nbsp;:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt; {%CLASSGROUP &#039;System.Classes.TPersistent&#039;} &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;C++&amp;amp;nbsp;:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt; #pragma classgroup &amp;quot;System.Classes.TPersistent&amp;quot; &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note| Cette directive est utilisée seulement par l&#039;EDI et indique les relations du module de données avec un éventuel framework de composants particulier. L&#039;EDI applique ensuite les types de composants que vous pouvez déposer sur le module de données.  &amp;lt;br /&amp;gt;&lt;br /&gt;
Quand vous changez la valeur &#039;&#039;&#039;ClassGroup&#039;&#039;&#039;, la directive est automatiquement changée dans votre code.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Puisque &#039;&#039;&#039;[[lib_fr:System.Classes.TDataModule|TDataModule]]&#039;&#039;&#039; est initialement indépendant du framework, vous pouvez utiliser un module de données avec la VCL ou le framework {{FM}}. Cela signifie aussi que les classes et les membres spécifiques au framework (comme &#039;&#039;&#039;[[lib_fr:Vcl.ActnList.TActionList|Vcl.ActnList.TActionList]]&#039;&#039;&#039; et &#039;&#039;&#039;[[lib_fr:FMX.Types.TTimer|FMX.Types.TTimer]]&#039;&#039;&#039;) ne sont pas disponibles dans la &#039;&#039;&#039;Palette d&#039;outils&#039;&#039;&#039; pour un module de données indépendant du framework.  Vous pouvez inclure les classes et membres appropriés, spécifiques au framework, en accédant à &#039;&#039;&#039;l&#039;inspecteur d&#039;objets&#039;&#039;&#039; et en définissant la propriété &#039;&#039;&#039;ClassGroup&#039;&#039;&#039; de votre module de données pour indiquer votre framework correct, comme l&#039;un des suivants&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
* Vcl.Controls.TControl&lt;br /&gt;
* FMX.Controls.TControl (OS X)&lt;br /&gt;
&lt;br /&gt;
===Exemples de composants non visuels spécifiques au framework===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[[lib_fr:Vcl.ActnList.TActionList|TActionList]]&#039;&#039;&#039; est un composant non visuel VCL, et en tant que tel, il n&#039;apparaît pas dans la &#039;&#039;&#039;Palette d&#039;outils&#039;&#039;&#039; pour un module de données dont la pseudo-propriété &#039;&#039;&#039;ClassGroup&#039;&#039;&#039; est &#039;&#039;&#039;System.Classes.TPersistent&#039;&#039;&#039; (indépendant du framework) plutôt que &#039;&#039;&#039;Vcl.Controls.TControl&#039;&#039;&#039; (spécifique au framework). De même, TActionList n&#039;est pas disponible si la propriété &#039;&#039;&#039;ClassGroup&#039;&#039;&#039; est définie sur &#039;&#039;&#039;FMX.Controls.TControl&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;TTimer&#039;&#039;&#039; a deux implémentations spécifiques au framework, comme suit&lt;br /&gt;
** [[lib_fr:FMX.Types.TTimer|FMX.Types.TTimer]]&lt;br /&gt;
** [[lib_fr:Vcl.ExtCtrls.TTimer|Vcl.ExtCtrls.TTimer]]&lt;br /&gt;
*: Dans les deux cas, &#039;&#039;&#039;TTimer&#039;&#039;&#039; est seulement disponible dans la &#039;&#039;&#039;Palette d&#039;outils&#039;&#039;&#039; quand la propriété &#039;&#039;&#039;ClassGroup&#039;&#039;&#039; est définie sur une valeur spécifique au framework, au lieu d&#039;une valeur &#039;&#039;&#039;System.Classes.TPersistent&#039;&#039;&#039; indépendante du framework. Mais puisque &#039;&#039;&#039;TTimer&#039;&#039;&#039; a une implémentation VCL et FMX, assurez-vous de sélectionner la valeur &#039;&#039;&#039;ClassGroup&#039;&#039;&#039; correcte pour votre module de données, afin de correspondre au framework de l&#039;application, sinon des erreurs peuvent se produire.&lt;br /&gt;
&lt;br /&gt;
* Exemples d&#039;autres composants spécifiques au framework, affectés par la valeur de &#039;&#039;&#039;ClassGroup&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039; TMainMenu&amp;amp;nbsp;:&#039;&#039;&#039; [[lib_fr:Vcl.Menus.TMainMenu|Vcl.Menus.TMainMenu]] et [[lib_fr:FMX.Menus.TMainMenu|FMX.Menus.TMainMenu]]&lt;br /&gt;
** &#039;&#039;&#039;TPopupMenu&amp;amp;nbsp;:&#039;&#039;&#039; [[lib_fr:Vcl.Menus.TPopupMenu|Vcl.Menus.TPopupMenu]] et [[lib_fr:FMX.Menus.TPopupMenu|FMX.Menus.TPopupMenu]]&lt;br /&gt;
** &#039;&#039;&#039;TOpenDialog&amp;amp;nbsp;:&#039;&#039;&#039; [[lib_fr:Vcl.Dialogs.TOpenDialog|Vcl.Dialogs.TOpenDialog]] et [[lib_fr:FMX.Dialogs.TOpenDialog|FMX.Dialogs.TOpenDialog]]&lt;br /&gt;
&lt;br /&gt;
Après avoir sélectionné le Classgroup voulu, vous pouvez activer l&#039;onglet Edition puis revenir à l&#039;onglet Conception afin d&#039;actualiser la &#039;&#039;&#039;Palette d&#039;outils&#039;&#039;&#039; afin de refléter votre choix de Classgroup.&lt;br /&gt;
&lt;br /&gt;
==Dépannage des situations d&#039;erreur==&lt;br /&gt;
&lt;br /&gt;
Si vous créez un module de données à l&#039;intérieur d&#039;une application fiches VCL, et définissez une valeur FMX pour la propriété &#039;&#039;&#039;ClassGroup&#039;&#039;&#039;, le message suivant est affiché quand vous essayez de déposer un composant FMX sur le module de données&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
: Class &amp;amp;lt;classname&amp;amp;gt; is not applicable to this module.&lt;br /&gt;
&lt;br /&gt;
Ce message survient quand la valeur &#039;&#039;&#039;ClassGroup&#039;&#039;&#039; du module de données ne correspond pas au framework de l&#039;application.&lt;br /&gt;
&lt;br /&gt;
Un message similaire apparaît si vous créez une application {{FM}}, ajoutez un module de données, sélectionnez la valeur &#039;&#039;Vcl.Controls.TControl&#039;&#039; de &#039;&#039;&#039;ClassGroup&#039;&#039;&#039; et essayez de déposer un TTimer sur le module de données, puisque le composant non visuel [[lib_fr:Vcl.ExtCtrls.TTimer|Vcl.ExtCtrls.TTimer]] n&#039;est pas compatible avec le framework {{FM}}.&lt;br /&gt;
&lt;br /&gt;
Le message suivant peut aussi être affiché par l&#039;EDI&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
: The following component(s) are not available in the specified class group. &lt;br /&gt;
: This is likely to cause compile or runtime errors.&lt;br /&gt;
:&lt;br /&gt;
: FMX.Types.TTimer&lt;br /&gt;
&lt;br /&gt;
Si vous essayez de compiler un projet ayant une valeur de &#039;&#039;&#039;ClassGroup&#039;&#039;&#039; non compatible avec le framework de l&#039;application, vous pourrez voir des erreurs de compilation pour les éléments qui ne sont pas supportés dans le framework en cours. Voici des exemples d&#039;éventuelles erreurs&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
* [[X1026 Fichier introuvable : &#039;%s&#039; (Delphi)|X1026 Fichier introuvable : &#039;%s&#039; (Delphi)]]&lt;br /&gt;
* [[E2109 Type non autorisé (C++)|E2109 Type non autorisé (C++)]]&lt;br /&gt;
* [[E2209 Impossible d&#039;ouvrir le fichier include &#039;nomfichier&#039; (C++)|E2209 Impossible d&#039;ouvrir le fichier include &#039;nomfichier&#039; (C++)]]&lt;br /&gt;
* [[&#039;symbole&#039; externe non résolu, référencé depuis &#039;module&#039;|&#039;symbole&#039; externe non résolu, référencé depuis &#039;module&#039; (Lieur C++)]]&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[lib_fr:System.Classes.TDataModule Properties|Propriétés de System.Classes.TDataModule]]&lt;br /&gt;
* [[Utilisation des modules de données|Utilisation des modules de données]]&lt;br /&gt;
* [[Définition de l&#039;affinité de framework pour un module de données|Définition de l&#039;affinité de framework pour un module de données]]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Pseudo-propriete ClassGroup de TDataModule}}&lt;br /&gt;
[[Category:Guide du développeur Windows]]&lt;br /&gt;
[[Category:Delphi]]&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
&lt;br /&gt;
[[en:ClassGroup pseudo-property of TDataModule]]&lt;br /&gt;
[[de:Pseudo-Eigenschaft ClassGroup von TDataModule]]&lt;br /&gt;
[[ja:TDataModule の ClassGroup 疑似プロパティ]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Test_et_d%C3%A9bogage_de_l%27application&amp;diff=213803</id>
		<title>Test et débogage de l&#039;application</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Test_et_d%C3%A9bogage_de_l%27application&amp;diff=213803"/>
		<updated>2021-02-04T04:00:43Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Création de serveurs COM simples - Index}}&lt;br /&gt;
&lt;br /&gt;
Lorsque vous avez créé une application serveur COM, vous souhaitez la tester avant de la déployer.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pour tester et déboguer une application serveur COM,&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Si nécessaire, activez les informations de débogage en utilisant la page &#039;&#039;&#039;Compilateur&#039;&#039;&#039; de la boîte de dialogue &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;. Activez aussi &#039;&#039;&#039;Débogage intégré&#039;&#039;&#039; dans la boîte de dialogue &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Outils &amp;amp;gt; Options &amp;amp;gt; Options du débogueur&#039;&#039;&#039;&amp;lt;/font&amp;gt;.&lt;br /&gt;
# Pour un serveur en processus, choisissez &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Exécuter &amp;amp;gt; Paramètres&#039;&#039;&#039;&amp;lt;/font&amp;gt;, entrez le nom du contrôleur Automation dans la zone &#039;&#039;&#039;Application hôte&#039;&#039;&#039;, puis choisissez OK.&lt;br /&gt;
# Choisissez &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;
# Définissez des points d&#039;arrêts dans le serveur Automation.&lt;br /&gt;
# Utilisez le contrôleur Automation pour interagir avec le serveur Automation.&lt;br /&gt;
&lt;br /&gt;
Le serveur Automation fait une pause quand les points d&#039;arrêts sont rencontrés.&lt;br /&gt;
&lt;br /&gt;
{{Note| Comme autre approche, si vous écrivez aussi le contrôleur Automation, vous pouvez déboguer dans un serveur en processus en activant la prise en charge inter-processus COM. Utilisez la page &#039;&#039;&#039;Débogueurs {{Company}}&#039;&#039;&#039; de la boîte de dialogue obtenue par &amp;lt;font color&amp;lt;nowiki&amp;gt; = &amp;lt;/nowiki&amp;gt;&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Outils &amp;amp;gt; Options &amp;amp;gt; Options du débogueur&#039;&#039;&#039;&amp;lt;/font&amp;gt; pour activer le support inter-processus.}}&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Test et debogage de l&#039;application}}&lt;br /&gt;
[[Category:Guide du développeur Windows]]&lt;br /&gt;
[[Category:Delphi]]&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
&lt;br /&gt;
[[en:Testing and Debugging the Application]]&lt;br /&gt;
[[de:Die Anwendung testen und Fehler entfernen]]&lt;br /&gt;
[[ja:アプリケーションのテストとデバッグ]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Fourniture_des_param%C3%A8tres_pendant_la_conception&amp;diff=213802</id>
		<title>Fourniture des paramètres pendant la conception</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Fourniture_des_param%C3%A8tres_pendant_la_conception&amp;diff=213802"/>
		<updated>2021-02-04T03:31:29Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Utilisation de paramètres dans les requêtes}}&lt;br /&gt;
&lt;br /&gt;
Au cours de la conception, vous pouvez spécifier les valeurs des paramètres en utilisant l&#039;éditeur de collection de paramètres. Pour afficher l&#039;éditeur de collection de paramètres, cliquez sur le bouton points de suspension de la propriété &#039;&#039;Params&#039;&#039; ou &#039;&#039;Parameters&#039;&#039; dans &#039;&#039;&#039;l&#039;inspecteur d&#039;objets&#039;&#039;&#039;. Si l&#039;instruction SQL ne contient aucun paramètre, aucun objet n&#039;apparaît dans l&#039;éditeur de collection.&lt;br /&gt;
&lt;br /&gt;
{{Note| L&#039;éditeur de collection de paramètres est le même éditeur de collection que celui qui apparaît pour d&#039;autres propriétés de collection. Comme cet éditeur est partagé par d&#039;autre propriétés, son menu contextuel (clic droit) contient les commandes Ajouter et Supprimer. Cependant, elles ne sont jamais activées pour les paramètres des requêtes. Le seul endroit où l&#039;on peut ajouter ou supprimer des paramètres est dans l&#039;instruction SQL elle-même.}}&lt;br /&gt;
&lt;br /&gt;
Sélectionnez chaque paramètre dans l&#039;éditeur de collection de paramètres. Utilisez ensuite &#039;&#039;&#039;l&#039;inspecteur d&#039;objets&#039;&#039;&#039; pour modifier ses propriétés.&lt;br /&gt;
&lt;br /&gt;
Quand vous utilisez la propriété &#039;&#039;Params&#039;&#039; (objets &#039;&#039;TParam&#039;&#039;), vous pouvez inspecter ou modifier ce qui suit,&lt;br /&gt;
&lt;br /&gt;
 La propriété [[lib_fr:Data.DB.TParam.DataType|DataType]] liste le type de données de la valeur du paramètre. Pour certains ensembles de données, cette valeur peut être correctement initialisée. Si l&#039;ensemble de données ne peut pas déduire le type, &#039;&#039;DataType&#039;&#039; vaut &#039;&#039;ftUnknown&#039;&#039;, et vous devez la modifier et indiquer le type de la valeur du paramètre.&lt;br /&gt;
&lt;br /&gt;
La propriété &#039;&#039;DataType&#039;&#039; indique le type de données logique du paramètre. En général, ces types de données sont conformes aux types de données du serveur. Pour avoir la correspondance entre les types logiques et les types de données du serveur, consultez la documentation du mécanisme d&#039;accès aux données ((BDE, dbExpress, InterBase).&lt;br /&gt;
&lt;br /&gt;
 La propriété [[lib_fr:Data.DB.TParam.ParamType|ParamType]] liste le type du paramètre sélectionné. Pour les requêtes, elle est toujours initialisée à &#039;&#039;ptInput&#039;&#039;, car les requêtes ne peuvent contenir que des paramètres d&#039;entrée. Si la valeur de &#039;&#039;ParamType&#039;&#039; est &#039;&#039;ptUnknown&#039;&#039;, changez-la en &#039;&#039;ptInput&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
La propriété [[lib_fr:Data.DB.TParam.Value|Value]] spécifie la valeur du paramètre sélectionné. Vous pouvez laisser vide cette &#039;&#039;Value&#039;&#039; si votre application fournit les valeurs des paramètres au cours de l&#039;exécution.&lt;br /&gt;
&lt;br /&gt;
Quand vous utilisez la propriété &#039;&#039;Parameters&#039;&#039; (objets &#039;&#039;TParameter&#039;&#039;), vous pouvez inspecter ou modifier ce qui suit :&lt;br /&gt;
&lt;br /&gt;
 La propriété [[lib_fr:Data.Win.ADODB.TParameter.DataType|DataType]] liste le type de données de la valeur du paramètre. Pour certains types de données, vous devez ajouter d&#039;autres informations :&lt;br /&gt;
&lt;br /&gt;
* La propriété [[lib_fr:Data.Win.ADODB.TParameter.NumericScale|NumericScale]] indique le nombre de décimales des paramètres numériques.&lt;br /&gt;
* La propriété [[lib_fr:Data.Win.ADODB.TParameter.Precision|Precision]] indique le nombre total de chiffres des paramètres numériques.&lt;br /&gt;
* La propriété [[lib_fr:Data.Win.ADODB.TParameter.Size|Size]] indique le nombre de caractères des paramètres chaîne.&lt;br /&gt;
&lt;br /&gt;
La propriété [[lib_fr:Data.Win.ADODB.TParameter.Direction|Direction]] liste le type du paramètre sélectionné. Pour les requêtes, elle est toujours initialisée à &#039;&#039;pdInput&#039;&#039;, car les requêtes ne peuvent contenir que des paramètres d&#039;entrée.&lt;br /&gt;
&lt;br /&gt;
La propriété [[lib_fr:Data.Win.ADODB.TParameter.Attributes|Attributes]] indique le type des valeurs que le paramètre acceptera. &#039;&#039;Attributes&#039;&#039; peut être défini par une combinaison de &#039;&#039;psSigned&#039;&#039;, &#039;&#039;psNullable&#039;&#039; et &#039;&#039;psLong&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
La propriété [[lib_fr:Data.Win.ADODB.TParameter.Value|Value]] spécifie la valeur du paramètre sélectionné. Vous pouvez laisser vide cette &#039;&#039;Value&#039;&#039; si votre application fournit les valeurs des paramètres au cours de l&#039;exécution.&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[Fourniture des paramètres pendant l&#039;exécution]]&lt;br /&gt;
* [[Etablissement de relations maître-détail en utilisant des paramètres]]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Fourniture des parametres pendant la conception}}&lt;br /&gt;
[[Category:Guide du développeur Windows]]&lt;br /&gt;
[[Category:{{Delphi}}]]&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
&lt;br /&gt;
[[en:Supplying Parameters at Design Time]]&lt;br /&gt;
[[de:Parameter zur Entwurfszeit setzen]]&lt;br /&gt;
[[ja:設計時でのパラメータ値の指定]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Evaluer/Modifier&amp;diff=213801</id>
		<title>Evaluer/Modifier</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Evaluer/Modifier&amp;diff=213801"/>
		<updated>2021-02-04T03:10:15Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Menu Exécuter}}&lt;br /&gt;
{{DISPLAYTITLE:Evaluer/Modifier}}&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;hcDEvalModify&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;hcMRunEvalModify&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Exécuter &amp;amp;gt; Evaluer/Modifier&#039;&#039;&#039;&amp;lt;/font&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;code&amp;gt;Ctrl+F7&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Evalue ou modifie la valeur d&#039;une propriété ou d&#039;une expression existante. Cela permet de tester une correction de code sans quitter le débogueur, modifier le code source et recompiler le programme. La boîte de dialogue &#039;&#039;&#039;Evaluer/Modifier&#039;&#039;&#039; affiche les boutons représentés dans la première colonne ci-dessous.&lt;br /&gt;
&lt;br /&gt;
{|  border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot; &lt;br /&gt;
! &#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;
[[Image:Evaluate.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Evaluer&lt;br /&gt;
| &lt;br /&gt;
Evalue l&#039;expression de la zone d&#039;édition &#039;&#039;&#039;Expression&#039;&#039;&#039; et affiche sa valeur dans la zone d&#039;édition &#039;&#039;&#039;Résultat&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* Si vous effectuez le débogage d&#039;une application C++ Windows 64 bits, vous devez faire précéder le nom de registre du signe dollar ($) afin d&#039;évaluer le contenu d&#039;un registre. Par exemple :  &amp;lt;code&amp;gt;$rax&amp;lt;/code&amp;gt;&lt;br /&gt;
* Sur les autres plates-formes, le signe $ n&#039;est pas accepté dans les noms de registre.&lt;br /&gt;
* Pour plus d&#039;informations sur les registres CPU, voir [[Expressions assembleur]].&lt;br /&gt;
|-  valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| &lt;br /&gt;
[[Image:Modify.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Modifier&lt;br /&gt;
| &lt;br /&gt;
Modifie la valeur de l&#039;expression de la zone d&#039;édition &#039;&#039;&#039;Expression&#039;&#039;&#039; en utilisant la valeur de la zone d&#039;édition &#039;&#039;&#039;Nouvelle valeur&#039;&#039;&#039;.&lt;br /&gt;
|-  valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| &lt;br /&gt;
[[Image:Watch.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Suivi&lt;br /&gt;
| &lt;br /&gt;
Crée un point de suivi pour l&#039;expression que vous avez sélectionnée.&lt;br /&gt;
|-  valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| &lt;br /&gt;
[[Image:Inspect.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Inspecter&lt;br /&gt;
| &lt;br /&gt;
Ouvre un nouvel &#039;&#039;&#039;inspecteur de débogage&#039;&#039;&#039; pour l&#039;élément de données que vous avez sélectionné. Cela est utile pour voir les détails des structures de données, des classes et des tableaux.&lt;br /&gt;
|-  valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| &lt;br /&gt;
[[Image:VisualizersButtonLocVar.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Visualiseurs&lt;br /&gt;
| &lt;br /&gt;
Seulement affiché quand un visualiseur de type visionneuse externe est disponible pour le type de l&#039;expression. Cliquez sur la flèche orientée vers le bas du bouton pour sélectionner un visualiseur parmi les visualiseurs disponibles. Une fenêtre distincte s&#039;ouvre pour afficher les données du visualiseur.&lt;br /&gt;
|-  valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| &lt;br /&gt;
[[Image:Help.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Aide&lt;br /&gt;
| &lt;br /&gt;
Affiche cette rubrique d&#039;aide.&lt;br /&gt;
|-  valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| &lt;br /&gt;
Expression&lt;br /&gt;
| &lt;br /&gt;
Entrez la variable, le champ, le tableau ou l&#039;objet à évaluer ou à modifier. Par défaut, le mot au niveau du curseur dans &#039;&#039;&#039;l&#039;éditeur de code&#039;&#039;&#039; est placé dans la zone d&#039;édition &#039;&#039;&#039;Expression&#039;&#039;&#039;. Vous pouvez accepter cette expression, en saisir une autre ou la choisir dans la liste de l&#039;historique des expressions précédemment évaluées. Pour évaluer un appel de fonction, entrez le nom de la fonction, les parenthèses et les arguments comme vous le feriez dans votre programme, mais en omettant le point-virgule de fin d&#039;instruction (;).&lt;br /&gt;
|-  valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| &lt;br /&gt;
Résultat&lt;br /&gt;
| &lt;br /&gt;
Affiche la valeur de l&#039;élément spécifié dans la zone d&#039;édition &#039;&#039;&#039;Expression&#039;&#039;&#039; après que vous ayez choisi &#039;&#039;&#039;Evaluer&#039;&#039;&#039; ou &#039;&#039;&#039;Modifier&#039;&#039;&#039;.&lt;br /&gt;
|-  valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| &lt;br /&gt;
Nouvelle valeur&lt;br /&gt;
| &lt;br /&gt;
Affecte une nouvelle valeur à l&#039;élément spécifié dans la zone d&#039;édition &#039;&#039;&#039;Expression&#039;&#039;&#039;. Entrez une nouvelle valeur pour cet élément si vous le souhaitez.&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{note| Vous pouvez évaluer n&#039;importe quelle expression autorisée par le langage ou les variables statiques qui sont accessibles depuis la position du point d&#039;exécution.}}&lt;br /&gt;
&lt;br /&gt;
==Spécificateurs de format d&#039;affichage==&lt;br /&gt;
&lt;br /&gt;
Par défaut, le débogueur affiche le résultat dans le format correspondant au type de données de l&#039;expression. Par exemple, les valeurs entières sont affichées au format décimal. Pour modifier ce format d&#039;affichage, il faut saisir après l&#039;expression une virgule (,) suivie d&#039;un spécificateur de format.&lt;br /&gt;
&lt;br /&gt;
Le tableau suivant décrit les spécificateurs de formats de la boîte de dialogue Evaluer/Modifier :&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;
! &#039;&#039;&#039;Spécificateur&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Types affectés&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
|  align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
,C&lt;br /&gt;
|  align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Caractère, chaînes&lt;br /&gt;
|  align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Caractère.&lt;br /&gt;
&lt;br /&gt;
Pour {{Delphi}}, affiche les caractères de code ASCII 0 à 31 en notation {{Delphi}} #nn.&lt;br /&gt;
|- &lt;br /&gt;
|  align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
,S&lt;br /&gt;
|  align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Caractère, chaînes&lt;br /&gt;
|  align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Chaîne.&lt;br /&gt;
&lt;br /&gt;
Pour {{Delphi}}, affiche les caractères de code ASCII 0 à 31 en notation {{Delphi}} #nn.&lt;br /&gt;
|- &lt;br /&gt;
|  align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
,D&lt;br /&gt;
|  align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Entiers&lt;br /&gt;
|  align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Décimal. Affiche les valeurs entières au format décimal, y compris celles incluses dans des structures de données.&lt;br /&gt;
|- &lt;br /&gt;
|  align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
,H ou ,X&lt;br /&gt;
|  align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Entiers&lt;br /&gt;
|  align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Hexadécimal. Affiche les valeurs entières, y compris celles incluses dans des structures de données, au format hexadécimal et préfixées par $.&lt;br /&gt;
|- &lt;br /&gt;
|  align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
,Fn&lt;br /&gt;
|  align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Virgule flottante&lt;br /&gt;
|  align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Virgule flottante.&lt;br /&gt;
&lt;br /&gt;
Supportés par {{Delphi}} uniquement. Affiche &#039;&#039;n&#039;&#039; chiffres significatifs, &#039;&#039;n&#039;&#039; étant compris entre 2 et 18. Par exemple, pour afficher les quatre premiers chiffres d&#039;une valeur en virgule flottante, entrez &amp;quot;,F4&amp;quot;. Si &#039;&#039;n&#039;&#039; n&#039;est pas spécifié, la valeur par défaut est 11.&lt;br /&gt;
|- &lt;br /&gt;
|  align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
,R&lt;br /&gt;
|  align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Enregistrement&lt;br /&gt;
|  align=&amp;quot;left&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Enreg./Struct.&lt;br /&gt;
&lt;br /&gt;
Pour {{Delphi}}, affiche le nom des champs et la valeur correspondante de la manière suivante (X:1;Y:10;Z:5) au lieu de (1,10,5).&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
* [[Inspection et modification de la valeur d&#039;éléments de données]]&lt;br /&gt;
* [[Modification d&#039;expressions variables]]&lt;br /&gt;
[[Category: Référence {{Product}}]]&lt;br /&gt;
* [[Visualiseurs de débogage]]&lt;br /&gt;
* [[Expressions assembleur]]&lt;br /&gt;
&lt;br /&gt;
[[Category:{{Delphi}}]]&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
&lt;br /&gt;
[[en:Evaluate/Modify]]&lt;br /&gt;
[[de:Auswerten/Ändern]]&lt;br /&gt;
[[ja:［評価/変更］]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Notification_des_exceptions_du_d%C3%A9bogueur&amp;diff=213800</id>
		<title>Notification des exceptions du débogueur</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Notification_des_exceptions_du_d%C3%A9bogueur&amp;diff=213800"/>
		<updated>2021-02-04T02:50:44Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Tip|}} and the {{Note|}} templates&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Menu Exécuter}}&lt;br /&gt;
Cette boîte de dialogue apparaît lorsque le programme que vous déboguez déclenche une exception de langage ou une exception de système d&#039;exploitation et que vous avez défini des options demandant au débogueur de gérer les exceptions sur les pages &#039;&#039;&#039;Exceptions du langage&#039;&#039;&#039; et &#039;&#039;&#039;Exceptions natives du SE&#039;&#039;&#039; dans &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Outils &amp;amp;gt; Options &amp;amp;gt; Options du débogueur&#039;&#039;&#039;&amp;lt;/font&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Le format du message est le suivant&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
 Le projet &amp;amp;lt;nom_projet&amp;amp;gt; a déclenché une exception de classe &amp;amp;lt;yyyy&amp;amp;gt; avec le message &amp;amp;lt;texte_message&amp;amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Si &amp;lt;font face=&amp;quot;courier new,courier,monospace&amp;quot;&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#004A80&amp;quot;&amp;gt;yyyy&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/font&amp;gt; est un nom de classe, l&#039;exception est une exception du langage. Si  &amp;lt;font face=&amp;quot;courier new,courier,monospace&amp;quot;&amp;gt;&amp;lt;span&amp;gt;&amp;lt;font color=&amp;quot;#004A80&amp;quot;&amp;gt;yyyy&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/font&amp;gt; est une valeur hexadécimale, l&#039;exception est une exception du système d&#039;exploitation.&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;
Ignorer ce type d&#039;exception&lt;br /&gt;
|&lt;br /&gt;
Force le débogueur à ignorer ce type d&#039;exception du langage ou du SE et définit la case à cocher correspondante dans la liste &#039;&#039;&#039;Types d&#039;exceptions à ignorer&#039;&#039;&#039; de la page &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Outils &amp;amp;gt; Options &amp;amp;gt; Options du débogueur &amp;amp;gt; Exceptions du langage&#039;&#039;&#039;&amp;lt;/font&amp;gt;.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Afficher la vue CPU&lt;br /&gt;
|&lt;br /&gt;
Cette option ne s&#039;affiche que si l&#039;emplacement de l&#039;exception ne correspond pas à un emplacement source. Affiche la &#039;&#039;&#039;vue CPU&#039;&#039;&#039; si vous cliquez sur &#039;&#039;&#039;Arrêter&#039;&#039;&#039; pour interrompre l&#039;exécution.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Arrêter&lt;br /&gt;
|&lt;br /&gt;
Interrompt l&#039;exécution du programme là où l&#039;exception s&#039;est produite et place &#039;&#039;&#039;l&#039;éditeur de code&#039;&#039;&#039; sur cette ligne de code.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Continuer&lt;br /&gt;
|&lt;br /&gt;
Poursuit l&#039;exécution du programme.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Tip| Tapez &amp;lt;font face&amp;lt;nowiki&amp;gt; = &amp;lt;/nowiki&amp;gt;&amp;quot;courier new,courier,monospace&amp;quot;&amp;gt;&amp;lt;font color&amp;lt;nowiki&amp;gt; = &amp;lt;/nowiki&amp;gt;&amp;quot;#999999&amp;quot;&amp;gt;CTRL+C&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt; pour copier les messages dans le presse-papiers.}}&lt;br /&gt;
&lt;br /&gt;
{{Note| Dans certains cas, l&#039;état du programme vous empêchera de poursuivre l&#039;exécution et vous verrez la boîte de dialogue &#039;&#039;&#039;Notification d&#039;exceptions du débogueur&#039;&#039;&#039; se répéter indéfiniment. Dans ce cas, cliquez sur &#039;&#039;&#039;Arrêter&#039;&#039;&#039;, puis choisissez &amp;lt;font color&amp;lt;nowiki&amp;gt; = &amp;lt;/nowiki&amp;gt;&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Exécuter &amp;amp;gt; Réinitialiser le programme&#039;&#039;&#039;&amp;lt;/font&amp;gt; pour arrêter l&#039;exécution du programme en cours et l&#039;effacer de la mémoire.}}&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Notification des exceptions du debogueur}}&lt;br /&gt;
[[Category:Référence RAD Studio]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Debugger Exception Notification]]&lt;br /&gt;
[[de:Benachrichtigung über Debugger-Exception]]&lt;br /&gt;
[[ja:デバッガ例外通知]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Charger_un_processus_Local&amp;diff=213799</id>
		<title>Charger un processus Local</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Charger_un_processus_Local&amp;diff=213799"/>
		<updated>2021-02-03T02:48:08Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Menu exécuter|Menu exécuter}}&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;hcDDebuggerLoadLocalPage&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt; &#039;&#039;&#039;Exécuter &amp;amp;gt; Charger un processus &amp;amp;gt; Local&#039;&#039;&#039; &amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Passe les paramètres de la ligne de commande à votre application, spécifie un exécutable hôte pour tester une DLL ou charge un exécutable dans un débogueur sélectionné.&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;
Débogueur&lt;br /&gt;
|&lt;br /&gt;
Sélectionnez le débogueur que vous voulez utiliser :&lt;br /&gt;
* &#039;&#039;&#039;Débogueur Embarcadero Win32&#039;&#039;&#039; est le débogueur incorporé par défaut pour les applications Windows 32 bits. &lt;br /&gt;
* &#039;&#039;&#039;Débogueur Embarcadero Win64&#039;&#039;&#039; a été conçu spécifiquement pour le débogage des applications qui ciblent Windows 64 bits&lt;br /&gt;
*&#039;&#039;&#039;{{Company}} OS X Debugger&#039;&#039;&#039; a été conçu spécifiquement pour le débogage des applications qui ciblent un Mac exécutant OS X ou un simulateur iOS.&lt;br /&gt;
{{Note| [[Charger un processus Local|Charger un processus Local]] n&#039;est pas supporté pour le &#039;&#039;&#039;débogueur {{Company}} OS X&#039;&#039;&#039;.}}&lt;br /&gt;
*&#039;&#039;&#039;Débogueur Embarcadero Périphérique iOS32&#039;&#039;&#039; a été conçu spécifiquement pour le débogage des applications qui ciblent les périphériques iOS 32 bits et 64 bits.&lt;br /&gt;
{{Note|[[Charger un processus Local|Charger un processus Local]] n&#039;est pas supporté pour le &#039;&#039;&#039;débogueur Embarcadero Périphérique iOS32&#039;&#039;&#039;.}}&lt;br /&gt;
*&#039;&#039;&#039;Débogueur Embarcadero Périphérique iOS64&#039;&#039;&#039; a été conçu spécifiquement pour le débogage des applications qui ciblent les périphériques iOS 64 bits.&lt;br /&gt;
{{Note| [[Charger un processus Local|Charger un processus Local]] n&#039;est pas supporté pour le &#039;&#039;&#039;débogueur Embarcadero Périphérique iOS64&#039;&#039;&#039;.}}&lt;br /&gt;
* &#039;&#039;&#039;Débogueur Embarcadero Android&#039;&#039;&#039; a été conçu spécifiquement pour le débogage des applications qui ciblent un périphérique Android  &lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Processus&lt;br /&gt;
|&lt;br /&gt;
Entrez le nom du chemin complet incluant le nom du fichier exécutable (&amp;lt;code&amp;gt;.EXE&amp;lt;/code&amp;gt;) que vous voulez exécuter dans le débogueur. Cliquez ensuite sur &#039;&#039;&#039;Charger&#039;&#039;&#039; pour charger l&#039;exécutable. L&#039;exécutable est interrompu à son point d&#039;entrée. S&#039;il n&#039;y a pas d&#039;informations de débogage au point d&#039;entrée, la fenêtre &#039;&#039;&#039;CPU&#039;&#039;&#039; est ouverte. Sélectionnez &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 lancer l&#039;exécutable. Cliquez sur &#039;&#039;&#039;Parcourir&#039;&#039;&#039; pour rechercher un répertoire et un exécutable.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Paramètres&lt;br /&gt;
|&lt;br /&gt;
Entrez les arguments de la ligne de commande que vous voulez passer à votre application quand elle démarre.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Répertoire de travail&lt;br /&gt;
|&lt;br /&gt;
Entrez le nom du répertoire à utiliser pour le processus de débogage. Par défaut, c&#039;est le même répertoire que celui contenant l&#039;exécutable de votre application.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Chemin source&lt;br /&gt;
|&lt;br /&gt;
Spécifie le chemin des fichiers source utilisés pour construire l&#039;exécutable.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Après le chargement&lt;br /&gt;
|&lt;br /&gt;
Spécifie le code (le cas échéant) qui doit être exécuté après le chargement du processus. Choisissez l&#039;une des options suivantes :&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;
|&lt;br /&gt;
&#039;&#039;&#039;Ne pas exécuter&#039;&#039;&#039; &lt;br /&gt;
|&lt;br /&gt;
Equivalent au démarrage d&#039;une session de débogage avec &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt; &#039;&#039;&#039;Exécuter &amp;amp;gt; [[Pas à pas approfondi|Pas à pas approfondi]]&#039;&#039;&#039; &amp;lt;/font&amp;gt; (F7) &lt;br /&gt;
|&lt;br /&gt;
Charge l&#039;exécutable mais ne l&#039;exécute pas.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Exécuter jusqu&#039;au point d&#039;entrée du programme&#039;&#039;&#039; &lt;br /&gt;
|&lt;br /&gt;
Equivalent au démarrage d&#039;une session de débogage avec &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt; &#039;&#039;&#039;Exécuter &amp;amp;gt; [[Pas à pas|Pas à pas]]&#039;&#039;&#039; &amp;lt;/font&amp;gt; (F8)&lt;br /&gt;
|&lt;br /&gt;
Pour C++ seulement ; exécute jusqu&#039;au premier point d&#039;entrée, tel que main().&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Exécuter jusqu&#039;au premier source&#039;&#039;&#039; &lt;br /&gt;
|&lt;br /&gt;
Equivalent au démarrage d&#039;une session de débogage avec &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt; &#039;&#039;&#039;Exécuter &amp;amp;gt; [[Pas à pas jusqu&#039;à la prochaine ligne|Pas à pas jusqu&#039;à la prochaine ligne]]&#039;&#039;&#039; &amp;lt;/font&amp;gt; (MAj+F7)&lt;br /&gt;
|&lt;br /&gt;
Exécute jusqu&#039;à la première ligne de source.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Exécuter&#039;&#039;&#039; &lt;br /&gt;
|&lt;br /&gt;
Equivalent au démarrage d&#039;une session de débogage avec &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt; &#039;&#039;&#039;Exécuter &amp;amp;gt; [[Exécuter|Exécuter]]&#039;&#039;&#039; &amp;lt;/font&amp;gt; (F9)&lt;br /&gt;
|&lt;br /&gt;
Exécute complètement le processus, sous le contrôle du débogueur.&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[Charger un processus|Charger un processus]]&lt;br /&gt;
* [[Charger un processus distant|Charger un processus distant]]&lt;br /&gt;
* [[Charger un processus Tables des symboles|Charger un processus Tables des symboles]]&lt;br /&gt;
* [[Charger un processus Bloc d&#039;environnement|Charger un processus Bloc d&#039;environnement]]&lt;br /&gt;
* [[Attacher au processus|Attacher au processus]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Référence RAD Studio]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Load Process Local]]&lt;br /&gt;
[[de:Prozess laden: Lokal]]&lt;br /&gt;
[[ja:［プロセスの読み込み｜ローカル］]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Charger_un_processus&amp;diff=213798</id>
		<title>Charger un processus</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Charger_un_processus&amp;diff=213798"/>
		<updated>2021-02-03T01:50:42Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Tip|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Menu Exécuter}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Exécuter &amp;amp;gt; Charger un processus&#039;&#039;&#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ouvre la f de dialogue &#039;&#039;&#039;Charger un processus&#039;&#039;&#039;, qui vous permet de charger un processus arbitraire dans un débogueur sélectionné, tel que le débogueur Win32, le débogueur Win64, le débogueur OS X, le débogueur périphérique iOS ou le débogueur Android.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez choisir parmi les opérations suivantes de chargement d&#039;un processus&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
*[[Charger un processus Local|Charger un processus Local]]&lt;br /&gt;
*[[Charger un processus distant|Charger un processus distant]]&lt;br /&gt;
*[[Charger un processus Tables des symboles|Charger un processus Tables des symboles]]&lt;br /&gt;
*[[Charger un processus Bloc d&#039;environnement|Charger un processus Bloc d&#039;environnement]]&lt;br /&gt;
&lt;br /&gt;
{{Tip| Dans la boîte de dialogue &#039;&#039;&#039;Charger un processus&#039;&#039;&#039;, vous pouvez appuyer sur &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; dans n&#039;importe quel élément de la liste pour afficher la page d&#039;aide sur la rubrique sélectionnée.}}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[Attacher au processus|Attacher au processus]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Référence RAD Studio]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Load Process]]&lt;br /&gt;
[[de:Prozess laden]]&lt;br /&gt;
[[ja:［プロセスの読み込み］]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Charger_un_processus_Bloc_d%27environnement&amp;diff=213797</id>
		<title>Charger un processus Bloc d&#039;environnement</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Charger_un_processus_Bloc_d%27environnement&amp;diff=213797"/>
		<updated>2021-02-03T01:41:29Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Menu exécuter|Menu exécuter}}&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;hcDDebuggerLoadEnvVarPage&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt; &#039;&#039;&#039;Exécuter &amp;amp;gt; Charger un processus &amp;amp;gt; Bloc d&#039;environnement&#039;&#039;&#039; &amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indique les variables d&#039;environnement qui sont passées à votre application lors du débogage.&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;
Débogueur&lt;br /&gt;
|&lt;br /&gt;
Sélectionnez le débogueur que vous voulez utiliser : &lt;br /&gt;
* &#039;&#039;&#039;Débogueur Embarcadero Win32&#039;&#039;&#039; est le débogueur incorporé par défaut pour les applications Windows 32 bits. &lt;br /&gt;
* &#039;&#039;&#039;Débogueur Embarcadero Win64&#039;&#039;&#039; a été conçu spécifiquement pour le débogage des applications qui ciblent Windows 64 bits.&lt;br /&gt;
* &#039;&#039;&#039;Débogueur {{Company}} OS X&#039;&#039;&#039; a été conçu spécifiquement pour le débogage des applications qui ciblent un Mac exécutant OS X ou le simulateur iOS.&lt;br /&gt;
* &#039;&#039;&#039;Débogueur Embarcadero Périphérique iOS32&#039;&#039;&#039; a été conçu spécifiquement pour le débogage des applications qui ciblent les périphériques iOS 32 bits et 64 bits. &lt;br /&gt;
*&#039;&#039;&#039;Débogueur Embarcadero Périphérique iOS64&#039;&#039;&#039; a été conçu spécifiquement pour le débogage des applications qui ciblent les périphériques iOS 64 bits.&lt;br /&gt;
{{Note| &#039;&#039;&#039;Charger un processus &amp;amp;gt; Bloc d&#039;environnement&#039;&#039;&#039; n&#039;est pas supporté pour le &#039;&#039;&#039;débogueur Embarcadero Périphérique iOS&#039;&#039;&#039;.}}&lt;br /&gt;
*&#039;&#039;&#039;Débogueur Embarcadero Android&#039;&#039;&#039; a été conçu spécifiquement pour le débogage des applications multiplates-formes qui ciblent un périphérique Android ou un émulateur Android.  &lt;br /&gt;
{{Note| &#039;&#039;&#039;Charger un processus &amp;amp;gt; Bloc d&#039;environnement&#039;&#039;&#039; n&#039;est pas supporté pour le &#039;&#039;&#039;débogueur Embarcadero Périphérique iOS&#039;&#039;&#039;.}}&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Variables système&lt;br /&gt;
|&lt;br /&gt;
Liste toutes les variables d&#039;environnement définies au niveau du système ainsi que leurs valeurs. Vous ne pouvez pas supprimer une variable système existante mais vous pouvez la redéfinir.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Redéfinir&lt;br /&gt;
|&lt;br /&gt;
Affiche la boîte de dialogue &#039;&#039;&#039;Redéfinir la variable système&#039;&#039;&#039;, dans laquelle vous pouvez modifier une variable système existante afin de créer une nouvelle redéfinition utilisateur. Ce bouton est estompé tant que vous n&#039;avez pas sélectionné une variable dans la liste &#039;&#039;&#039;Variables système&#039;&#039;&#039;.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Redéfinitions utilisateur&lt;br /&gt;
|&lt;br /&gt;
Liste toutes les redéfinitions utilisateur définies et leurs valeurs. Une redéfinition utilisateur a priorité sur une variable système existante jusqu&#039;à ce que vous supprimiez la redéfinition utilisateur.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Nouvelle&lt;br /&gt;
|&lt;br /&gt;
Affiche la boîte de dialogue &#039;&#039;&#039;Nouvelle variable utilisateur&#039;&#039;&#039;, dans laquelle vous pouvez créer une nouvelle redéfinition utilisateur d&#039;une variable système.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Modifier&lt;br /&gt;
|&lt;br /&gt;
Affiche la boîte de dialogue &#039;&#039;&#039;Modifier la variable utilisateur&#039;&#039;&#039;, dans laquelle vous pouvez modifier la redéfinition utilisateur actuellement sélectionnée dans la liste &#039;&#039;&#039;Redéfinitions utilisateur&#039;&#039;&#039;.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Supprimer&lt;br /&gt;
|&lt;br /&gt;
Supprime la redéfinition utilisateur actuellement sélectionnée dans la liste &#039;&#039;&#039;Redéfinitions utilisateur&#039;&#039;&#039;.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Inclure les variables système&lt;br /&gt;
|&lt;br /&gt;
Passe les variables d&#039;environnement du système à l&#039;application que vous êtes en train de déboguer. Si cette option n&#039;est pas cochée, seules les redéfinitions utilisateur sont passées à votre application.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[Charger un processus Local|Charger un processus Local]]&lt;br /&gt;
* [[Charger un processus distant|Charger un processus distant]]&lt;br /&gt;
* [[Charger un processus Tables des symboles|Charger un processus Tables des symboles]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Référence RAD Studio]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Load Process Environment Block]]&lt;br /&gt;
[[de:Prozess laden: Umgebungsblock]]&lt;br /&gt;
[[ja:［プロセスの読み込み｜環境ブロック］]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Recenser/D%C3%A9recenser_le_serveur_ActiveX&amp;diff=213796</id>
		<title>Recenser/Dérecenser le serveur ActiveX</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Recenser/D%C3%A9recenser_le_serveur_ActiveX&amp;diff=213796"/>
		<updated>2021-02-03T01:32:04Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Warning|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Menu Exécuter}}&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;hcmRunRegisterActiveXServer&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Exécuter &amp;amp;gt; Serveur ActiveX &amp;amp;gt; Recenser &#039;&#039;&#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Exécuter &amp;amp;gt; Serveur ActiveX &amp;amp;gt; Recenser pour l&#039;utilisateur en cours&#039;&#039;&#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Exécuter &amp;amp;gt; Serveur ActiveX &amp;amp;gt; Dérecenser&#039;&#039;&#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ces commandes effectuent les tâches suivantes :&lt;br /&gt;
* &#039;&#039;&#039;Recensement&#039;&#039;&#039; du serveur ActiveX dans le registre Windows :&lt;br /&gt;
** &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Recenser&amp;lt;/font&amp;gt;&#039;&#039;&#039; recense un serveur ActiveX (en recensant dans HKEY_CLASSES_ROOT, pour tous les utilisateurs)&lt;br /&gt;
** &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Recenser pour l&#039;utilisateur en cours&amp;lt;/font&amp;gt;&#039;&#039;&#039; recense un serveur ActiveX (en recensant dans HKEY_CURRENT_USER, pour une base par-utilisateur).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Dérecensement&#039;&#039;&#039; d&#039;un serveur ActiveX depuis le registre :&lt;br /&gt;
*: La commande &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Dérecenser&amp;lt;/font&amp;gt;&#039;&#039;&#039; effectue les deux actions suivantes :&lt;br /&gt;
** Dérecense de HKEY_CLASSES_ROOT (pour les objets recensés pour tous les utilisateurs)&lt;br /&gt;
** Dérecense de HKEY_CURRENT_USER (pour les objets recensés sur une base par-utilisateur)&lt;br /&gt;
&lt;br /&gt;
{{Warning| Une entrée de registre est créée pour le serveur ActiveX chaque fois que vous entrez une commande &#039;&#039;&#039;Recenser&#039;&#039;&#039; ou &#039;&#039;&#039;Recenser pour l&#039;utilisateur en cours&#039;&#039;&#039;. L&#039;entrée de registre restera &amp;quot;orpheline&amp;quot; si vous abandonnez par la suite l&#039;application et si vous échouez dans l&#039;une des actions suivantes :&lt;br /&gt;
&lt;br /&gt;
* Sauvegarder le serveur que vous avez recensé (sans le serveur, il est difficile de supprimer ultérieurement l&#039;entrée de registre)&lt;br /&gt;
* Emettre une commande &#039;&#039;&#039;Dérecenser&#039;&#039;&#039; pour le serveur }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
* [[Serveurs en processus, hors processus et distants]]&lt;br /&gt;
* [[Création d&#039;une page Active Server - Index]]&lt;br /&gt;
* [[Recensement d&#039;un objet Active Server]]&lt;br /&gt;
* [[Recensement d&#039;un objet COM]]&lt;br /&gt;
* [[Recensement des serveurs ActiveX pour l&#039;utilisateur en cours]]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Recenser/Derecenser le serveur ActiveX}}&lt;br /&gt;
[[Category:Référence {{Product}}]]&lt;br /&gt;
&lt;br /&gt;
[[en:Register/Unregister ActiveX Server]]&lt;br /&gt;
[[de:ActiveX-Server registrieren/entfernen]]&lt;br /&gt;
[[ja:ActiveX サーバーの登録/登録解除]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Recherche_incr%C3%A9mentielle&amp;diff=213795</id>
		<title>Recherche incrémentielle</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Recherche_incr%C3%A9mentielle&amp;diff=213795"/>
		<updated>2021-02-03T01:12:53Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Menu Chercher}}&lt;br /&gt;
&amp;lt;ideTag id=&amp;quot;hcMSearchIncrementalSearch&amp;quot;&amp;gt;&amp;lt;/ideTag&amp;gt;&lt;br /&gt;
{{menu | Chercher &amp;amp;gt; Recherche incrémentielle}} &amp;lt;code&amp;gt;Ctrl+E&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous permet de rechercher du texte de façon interactive. Tapez votre chaîne de recherche immédiatement après l&#039;invocation de la commande &#039;&#039;&#039;Recherche incrémentielle&#039;&#039;&#039;. Au fur et à mesure de la frappe, le premier résultat correspondant est mis en surbrillance dans l&#039;éditeur, et toutes les autres instances correspondantes sont mises en surbrillance dans une seconde couleur.&lt;br /&gt;
&lt;br /&gt;
{{Note| Le premier résultat correspondant est le premier résultat trouvé après la position du curseur.}}&lt;br /&gt;
&lt;br /&gt;
La barre d&#039;état située en bas de la fenêtre de l&#039;éditeur affiche une zone de recherche avec le texte recherché :&lt;br /&gt;
&lt;br /&gt;
[[image:IncrementalSearch2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Pour commencer une nouvelle recherche, appuyez sur &amp;lt;code&amp;gt;Retour arrière&amp;lt;/code&amp;gt; pour effacer la barre d&#039;état, ou sélectionnez de nouveau {{menu |Chercher &amp;amp;gt; Recherche incrémentielle}}.&lt;br /&gt;
&lt;br /&gt;
Pour activer la [[Chercher | barre d&#039;outils de recherche]], cliquez sur la zone de texte de la barre d&#039;outils &#039;&#039;&#039;Recherche incrémentielle&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Quand la barre d&#039;outils de recherche est activée, vous pouvez lancer une recherche vers le haut ou depuis le début du fichier sans utiliser la souris pour cliquer sur les boutons Chercher vers le haut et Redémarrer depuis le début.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;Entrée&amp;lt;/code&amp;gt; lance une recherche vers le bas.&lt;br /&gt;
* &amp;lt;code&amp;gt;Maj+Entrée&amp;lt;/code&amp;gt; lance une recherche vers le haut.&lt;br /&gt;
* &amp;lt;code&amp;gt;Ctrl+Entrée&amp;lt;/code&amp;gt; lance une recherche depuis le début du fichier.&lt;br /&gt;
&lt;br /&gt;
Pour chercher directement dans [[Editeur de code|l&#039;éditeur de code]] :&lt;br /&gt;
&lt;br /&gt;
# Une fois que vous avez saisi vos critères de recherche dans la barre d&#039;outils et appuyé sur Entrée, la focalisation bascule vers l&#039;éditeur de code.&lt;br /&gt;
# Toutes les correspondances apparaissent en surbrillance.&lt;br /&gt;
# Pour parcourir les correspondances de chaîne dans l&#039;éditeur de code sans passer par la barre d&#039;outils, utilisez les raccourcis suivants :&lt;br /&gt;
#* &amp;lt;code&amp;gt;F3 / Ctrl+L &amp;lt;/code&amp;gt; pour rechercher vers le bas.&lt;br /&gt;
#* &amp;lt;code&amp;gt;Maj+F3&amp;lt;/code&amp;gt; pour rechercher vers le haut.&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;
! &#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;
&amp;amp;lt;zone de texte&amp;amp;gt;&lt;br /&gt;
| &lt;br /&gt;
Affiche votre chaîne de recherche au fur et à mesure de la frappe.  Vous pouvez aussi cliquer sur la flèche Bas associée [[File:DownArrowFind.png]] pour sélectionner une chaîne de recherche préalablement entrée.&lt;br /&gt;
|-  valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| &lt;br /&gt;
[[File:SearchUp.png]] Flèche Haut&lt;br /&gt;
| &lt;br /&gt;
Recherche à partir de la position en cours jusqu&#039;au début du fichier.&lt;br /&gt;
|-  valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| &lt;br /&gt;
[[File:SearchDown.png]] Flèche Bas&lt;br /&gt;
&lt;br /&gt;
| &lt;br /&gt;
Recherche à partir de la position en cours jusqu&#039;à la fin du fichier. C&#039;est la valeur par défaut.&lt;br /&gt;
|-  valign=&amp;quot;top&amp;quot; &lt;br /&gt;
| &lt;br /&gt;
[[File:RestartFromBeginning.png]] Redémarrer depuis le début&lt;br /&gt;
| &lt;br /&gt;
Démarre la recherche vers le bas à partir du début du fichier.&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
* [[Chercher]]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Recherche incrementielle}}&lt;br /&gt;
[[Category: Référence {{Product}}]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Incremental Search]]&lt;br /&gt;
[[de:Inkrementelle Suche]]&lt;br /&gt;
[[ja:［インクリメンタル サーチ］]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Propri%C3%A9t%C3%A9s_du_point_de_suivi&amp;diff=213794</id>
		<title>Propriétés du point de suivi</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Propri%C3%A9t%C3%A9s_du_point_de_suivi&amp;diff=213794"/>
		<updated>2021-02-03T00:09:15Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Tip|}} and the {{Note|}} templates&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Menu Exécuter}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Exécuter &amp;amp;gt; Ajouter un point de suivi&#039;&#039;&#039;&amp;lt;/font&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;lt;code&amp;gt;Ctrl+F5&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ajoute un point de suivi ou modifie les propriétés d&#039;un point de suivi existant. Le point de suivi apparaît dans la liste des points de suivi.&lt;br /&gt;
&lt;br /&gt;
{{Note| Les spécificateurs de format listés dans la boîte de dialogue &#039;&#039;&#039;Propriétés du point de suivi&#039;&#039;&#039; dépendent des spécificateurs de format supportés par l&#039;évaluateur en cours. Tous les spécificateurs de format cités ci-dessous ne seront pas disponibles pour chaque évaluateur. La plupart du temps, l&#039;évaluateur est spécifié par la personnalité.}}&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;
Expression&lt;br /&gt;
|&lt;br /&gt;
Spécifie l&#039;expression à suivre. Entrez ou modifiez l&#039;expression à suivre. La liste déroulante permet de choisir dans l&#039;historique une expression préalablement entrée.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Nom du groupe&lt;br /&gt;
|&lt;br /&gt;
Spécifie le groupe auquel appartient le suivi sélectionné. Si vous spécifiez un nouveau groupe, ce nouveau groupe est ajouté et le suivi placé dans ce nouveau groupe. Utilisez la liste déroulante pour choisir un nom dans la liste des groupes de points de suivi existants.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Répétitions&lt;br /&gt;
|&lt;br /&gt;
Spécifie le nombre de répétitions, lorsque l&#039;expression du point de suivi représente un élément de données, ou spécifie le nombre d&#039;éléments du tableau, lorsque l&#039;expression du point de suivi représente un tableau. Si vous surveillez un tableau sans spécifier un nombre d&#039;éléments avec Répétitions, la fenêtre Liste des points de suivi affiche la valeur de tous les éléments du tableau.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Chiffres&lt;br /&gt;
|&lt;br /&gt;
Spécifie le nombre de chiffres significatifs pour une valeur d&#039;une expression de suivi à virgule flottante. Entrez le nombre de chiffres. Cette option prend effet seulement quand vous sélectionnez &#039;&#039;&#039;Virgule flottante&#039;&#039;&#039; comme format d&#039;affichage.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Activé&lt;br /&gt;
|&lt;br /&gt;
Active ou désactive le point de suivi. Désactiver un point de suivi cache celui-ci à l&#039;exécution en cours. Un point de suivi désactivé reste défini, mais le débogueur ne l&#039;évalue plus. Désactiver les points de suivi augmente les performances du débogueur puisqu&#039;il n&#039;a pas à les évaluer lorsque vous exécutez votre programme. Lorsque vous définissez un point de suivi, il est actif par défaut.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Autoriser les effets de bord et les appels de fonctions&lt;br /&gt;
|&lt;br /&gt;
Evalue le point de suivi même si cela entraîne des appels de fonctions. Cette option est désactivée par défaut pour tous les points de suivi. Lorsqu&#039;elle est désactivée, les points de suivi qui provoqueraient des appels de fonctions ne sont pas évalués mais génèrent, à la place, le message &amp;quot;Valeur inaccessible&amp;quot;. Voir aussi [[E2382 Les effets de bord ne sont pas autorisés (C++)|E2382 Les effets de bord ne sont pas autorisés (C++)]]. &lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Caractère&lt;br /&gt;
|&lt;br /&gt;
Affiche des caractères spéciaux pour les codes ASCII de 0 à 31 (affichés #$0, #$1F, etc.). Ce type de format affecte les caractères et les chaînes.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Chaîne&lt;br /&gt;
|&lt;br /&gt;
Affiche des caractères pour les codes ASCII de 0 à 31 en utilisant la notation Pascal #nn (#$0, etc.). Ce type de format affecte les caractères et les chaînes.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Décimal&lt;br /&gt;
|&lt;br /&gt;
Affiche les valeurs entières en décimal, y compris celles des structures de données. Ce type de format affecte les entiers.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Hexadécimal&lt;br /&gt;
|&lt;br /&gt;
Affiche les valeurs entières en hexadécimal avec le préfixe 0x (pour C++, C#) ou $ (pour {{Delphi}}), y compris celles des structures de données. Ce type de format affecte les entiers.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Virgule flottante&lt;br /&gt;
|&lt;br /&gt;
Affiche les valeurs entières en notation virgule flottante (nombres réels ou nombres pouvant contenir une partie fractionnaire).&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Pointeur&lt;br /&gt;
|&lt;br /&gt;
Utilisé pour les applications Win32 uniquement.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Enreg./Struct.&lt;br /&gt;
|&lt;br /&gt;
Affiche le nom  des champs et la valeur correspondante de la manière suivante (X:1;Y:10;Z:5) au lieu de (1,10,5).&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Par défaut&lt;br /&gt;
|&lt;br /&gt;
Montre le résultat dans le format d&#039;affichage correspondant aux types de données de l&#039;expression. Ce format s&#039;applique aux expressions de tout type.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Vidage mémoire&lt;br /&gt;
|&lt;br /&gt;
Utilisé pour les applications Win32 uniquement.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Tip| Par défaut, le débogueur affiche le résultat d&#039;un point de suivi dans le format correspondant au type de données de l&#039;expression. Par exemple, les valeurs entières sont affichées au format décimal. Vous pouvez cependant spécifier pour une expression de type entier un affichage hexadécimal en cliquant sur le bouton &#039;&#039;&#039;Hexadécimal&#039;&#039;&#039;. Si vous placez un point de suivi sur l&#039;élément d&#039;une structure de données (un tableau, par exemple), vous pouvez afficher les valeurs de plusieurs éléments consécutifs. Par exemple, supposons que vous ayez un tableau de cinq entiers appelé tableauX. Tapez le nombre 5 pour l&#039;option &#039;&#039;&#039;Répétitions&#039;&#039;&#039; pour voir les cinq valeurs du tableau. Toutefois, pour utiliser Répétitions l&#039;expression de suivi doit représenter un seul élément de données. Vous pouvez modifier la valeur de l&#039;expression d&#039;un point de suivi dans la boîte de dialogue &#039;&#039;&#039;Evaluer/Modifier&#039;&#039;&#039;.}}&lt;br /&gt;
&lt;br /&gt;
{{Tip| Pour formater une expression à virgule flottante, sélectionnez &#039;&#039;&#039;Virgule flottante&#039;&#039;&#039; et entrez un nombre pour l&#039;option &#039;&#039;&#039;Chiffres&#039;&#039;&#039; pour indiquer le nombre de chiffres significatifs devant apparaître dans la liste des points de suivi. }}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[Fenêtre Liste des points de suivi|Fenêtre Liste des points de suivi]]&lt;br /&gt;
* [[Ajout d&#039;un point de suivi|Ajout d&#039;un point de suivi]]&lt;br /&gt;
* [[Présentation du débogage|Présentation du débogage]]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Proprietes du point de suivi}}&lt;br /&gt;
[[Category:Référence RAD Studio]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Watch Properties]]&lt;br /&gt;
[[de:Eigenschaften Darstellung überwachter Ausdrücke]]&lt;br /&gt;
[[ja:［監視式のプロパティ］]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Recensement_d%27un_objet_Active_Server&amp;diff=213793</id>
		<title>Recensement d&#039;un objet Active Server</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Recensement_d%27un_objet_Active_Server&amp;diff=213793"/>
		<updated>2021-01-29T03:07:47Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Création d&#039;une page Active Server - Index}}&lt;br /&gt;
&lt;br /&gt;
Vous pouvez recenser la page Active Server en tant que [[Serveurs en processus, hors processus et distants|serveur en processus ou hors processus]]. Toutefois, les serveurs en processus sont plus couramment utilisés. Un &#039;&#039;&#039;serveur automation en-processus&#039;&#039;&#039; est un ensemble d&#039;objets Automation COM pour la connexion aux bases de données, l&#039;exécution des instructions SQL et des blocs PL/SQL et l&#039;accès aux résultats. Les objets automation en-processus sont à l&#039;intérieur des .DLLs&amp;amp;nbsp;; les &#039;&#039;&#039;serveurs automation hors processus&#039;&#039;&#039; sont des applications (.EXEs).&lt;br /&gt;
&lt;br /&gt;
{{Note| Le recensement d&#039;un objet Page Active Server ajoute une entrée au registre système Windows. Les entrées de registre associées aux objets peuvent seulement être dérecensées en utilisant le code de l&#039;objet associé approprié. C&#039;est-à-dire que si l&#039;objet n&#039;existe plus, il ne peut pas être utilisé pour le dérecensement.  Ainsi, le registre peut devenir encombré avec des recensements &amp;quot;orphelins&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Le &#039;&#039;&#039;dérecensement&#039;&#039;&#039; est important dans plusieurs cas&lt;br /&gt;
** Avant de retirer un objet Page Active Server de votre système, vous devez dérecenser l&#039;objet.&lt;br /&gt;
** Si vous recensez un objet Page Active Server pendant le développement d&#039;une application, mais que vous décidez par la suite de ne pas enregistrer l&#039;application, vous devrez toujours dérecenser l&#039;objet avant d&#039;abandonner l&#039;application.  &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Recensement d&#039;un serveur en processus==&lt;br /&gt;
&lt;br /&gt;
Pour recenser un serveur en processus (DLL ou OCX), choisissez l&#039;une des actions suivantes&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Exécuter &amp;amp;gt; Serveur ActiveX &amp;amp;gt; Recenser &#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; Serveur ActiveX &amp;amp;gt; Recenser pour l&#039;utilisateur en cours&#039;&#039;&#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour dérecenser un serveur en processus, choisissez &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Exécuter &amp;amp;gt; Serveur ActiveX &amp;amp;gt; Dérecenser&#039;&#039;&#039;&amp;lt;/font&amp;gt;. Cette action dérecense tous les serveurs, y compris ceux qui ont été recensés par utilisateur.&lt;br /&gt;
&lt;br /&gt;
{{Note| L&#039;EDI, étant un processus 32 bits, ne peut pas recenser les &#039;&#039;&#039;serveurs DLL/en processus 64 bits&#039;&#039;&#039; (les processus 32 bits ne peuvent pas charger les DLLs 64 bits). Pour recenser les serveurs en processus 64 bits, vous devez utiliser la version 64 bits de [[TRegSvr.exe, l&#039;outil de recensement des bibliothèques de types|TRegSvr.exe]], située dans $(BDS)\bin64\TRegSvr.exe.}}&lt;br /&gt;
&lt;br /&gt;
==Recensement d’un serveur hors processus==&lt;br /&gt;
&lt;br /&gt;
Pour recenser un serveur hors processus, exécutez le serveur avec l&#039;option de ligne de commande &amp;lt;code&amp;gt;/regserver&amp;lt;/code&amp;gt;. Vous pouvez définir les paramètres de la ligne de commande sur la boîte de dialogue &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Exécuter &amp;amp;gt; Paramètres&#039;&#039;&#039;&amp;lt;/font&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour dérecenser un serveur hors processus, exécutez le serveur avec l&#039;option de ligne de commande &amp;lt;code&amp;gt;/unregserver&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[Recensement d&#039;un objet COM|Recensement d&#039;un objet COM]]&lt;br /&gt;
* [[Recensement des serveurs ActiveX pour l&#039;utilisateur en cours|Recensement des serveurs ActiveX pour l&#039;utilisateur en cours]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Guide du développeur Windows]]&lt;br /&gt;
[[Category:Delphi]]&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
&lt;br /&gt;
[[en:Registering an Active Server Object]]&lt;br /&gt;
[[de:Ein Active-Server-Objekt registrieren]]&lt;br /&gt;
[[ja:Active Server オブジェクトの登録]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=D%C3%A9finition_d%27une_connexion_(FireDAC)&amp;diff=213792</id>
		<title>Définition d&#039;une connexion (FireDAC)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=D%C3%A9finition_d%27une_connexion_(FireDAC)&amp;diff=213792"/>
		<updated>2021-01-19T03:28:22Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Utilisation des connexions (FireDAC)}}&lt;br /&gt;
&lt;br /&gt;
Explique comment stocker et utiliser les paramètres de connexion FireDAC, ainsi que la signification d&#039;une définition de connexion. Pour spécifier les paramètres de connexion, une application doit utiliser une définition de connexion. La définition de connexion est un ensemble de paramètres. Une connexion peut également être regroupée (&#039;&#039;&#039;mise en pool&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
==Informations générales==&lt;br /&gt;
&lt;br /&gt;
Une &#039;&#039;&#039;définition de connexion&#039;&#039;&#039; est un ensemble de paramètres qui définissent comment connecter une application à un SGBD en utilisant un pilote FireDAC spécifique. {{f|bde|C&#039;est l&#039;équivalent d&#039;un alias BDE, d&#039;un UDL ADO (chaîne de connexion OLEDB stockée) ou d&#039;un nom de source de données (DSN) ODBC.|C&#039;est l&#039;équivalent d&#039;un UDL ADO (chaîne de connexion OLEDB stockée) ou d&#039;un nom de source de données (DSN) ODBC.}} Pour connaître la liste des systèmes de gestion de base de données supportés et des paramètres correspondants, voir [[Connectivité des bases de données (FireDAC)|Connectivité des bases de données FireDAC]]. &lt;br /&gt;
&lt;br /&gt;
FireDAC supporte trois types de définition de connexion : &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Type&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Avantages&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Inconvénients&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | &#039;&#039;&#039;Persistante &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Possède un nom unique, est gérée par FDManager et stockée dans un fichier de définition de connexion.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Peut être définie une fois et réutilisée dans de nombreuses applications. Peut être mise en pool.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Les paramètres (adresse du serveur, nom de la base de données, etc.) sont publiquement visibles et peuvent être modifiés par inadvertance.&lt;br /&gt;
&lt;br /&gt;
FDManager doit être réactivé ou l&#039;EDI {{Delphi}} doit être redémarré pour qu&#039;une définition nouvellement ajoutée soit visible à la conception. &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | &#039;&#039;&#039;Privée &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Possède un nom unique, est gérée par FDManager, mais n&#039;est PAS stockée dans un fichier de définition de connexion.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Les paramètres de la définition de connexion ne sont pas visibles &amp;quot;en dehors&amp;quot; de l&#039;application. Peut être mise en pool.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | L&#039;application doit créer une définition de connexion privée après chaque redémarrage du programme et ne peut pas la partager avec les autres programmes.&lt;br /&gt;
&lt;br /&gt;
Ne peut pas être créée à la conception. &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | &#039;&#039;&#039;Temporaire &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | N&#039;a pas de nom, n&#039;est pas stockée dans un fichier de définition de connexion et n&#039;est pas gérée par FDManager.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Le moyen le plus simple de créer une définition de connexion consiste à remplir la propriété [[lib_fr:FireDAC.Comp.Client.TFDConnection.Params|TFDConnection.Params]].&lt;br /&gt;
&lt;br /&gt;
Peut être créée à la conception à l&#039;aide de l&#039;éditeur de composant TFDConnection. &lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Similaire à la définition de connexion privée. Ne peut pas être référencée par un nom et ne peut pas être mise en pool.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Fichier de définition de connexion==&lt;br /&gt;
&lt;br /&gt;
Les définitions de connexions persistantes sont stockées dans un fichier externe : le &#039;&#039;&#039;fichier de définition de connexion&#039;&#039;&#039;. Ce fichier est au format de fichier texte INI standard. Il peut être modifié par les utilitaires [[FDExplorer|FDExplorer]] ou [[FDAdministrator|FDAdministrator]] (pour commencer), manuellement ou par le code. Par défaut, le fichier est {{Path|{{PublicFireDACPath}}\FDConnectionDefs.ini}}. &lt;br /&gt;
&lt;br /&gt;
{{Note| Si vous ajoutez une nouvelle définition de connexion persistante en utilisant FDExplorer ou FDAdministrator alors que l&#039;EDI de {{Product}} est en cours d&#039;exécution, la connexion est invisible pour le code FireDAC en mode conception. Pour actualiser la liste des définitions de connexions persistantes, vous devez réactiver FDManager ou redémarrer l&#039;EDI de {{Product}}.}}&lt;br /&gt;
&lt;br /&gt;
Contenu exemple de ce fichier : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Oracle_Demo]&lt;br /&gt;
DriverID=Ora&lt;br /&gt;
Database=ORA_920_APP&lt;br /&gt;
User_Name=ADDemo&lt;br /&gt;
Password=a&lt;br /&gt;
MetaDefSchema=ADDemo&lt;br /&gt;
;MonitorBy=Remote&lt;br /&gt;
&lt;br /&gt;
[MSSQL_Demo]&lt;br /&gt;
DriverID=MSSQL&lt;br /&gt;
Server=127.0.0.1&lt;br /&gt;
Database=Northwind&lt;br /&gt;
User_Name=sa&lt;br /&gt;
Password=&lt;br /&gt;
MetaDefSchema=dbo&lt;br /&gt;
MetaDefCatalog=Northwind&lt;br /&gt;
MonitorBy=Remote&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une application peut spécifier un nom de fichier de définition de connexion dans la propriété [[lib_fr:FireDAC.Comp.Client.TFDCustomManager.ConnectionDefFileName|FDManager.ConnectionDefFileName]]. FireDAC recherche un fichier de définition de connexion aux endroits suivants :&lt;br /&gt;
&lt;br /&gt;
* Si ConnectionDefFileName est spécifié :&lt;br /&gt;
** Recherche un nom de fichier sans chemin, puis le cherche dans le dossier EXE d&#039;une application.&lt;br /&gt;
** Sinon, utilise un nom de fichier spécifié.&lt;br /&gt;
* Si ConnectionDefFileName n&#039;est pas spécifié :&lt;br /&gt;
** Recherche &#039;&#039;&#039;FDConnectionDefs.ini&#039;&#039;&#039; dans le dossier EXE d&#039;une application.&lt;br /&gt;
** Si le fichier ci-dessus n&#039;est pas trouvé, recherche un fichier spécifié dans la clé de registre &#039;&#039;&#039;HKCU\Software\{{Company}}\FireDAC\ConnectionDefFile&#039;&#039;&#039;. Par défaut, il s&#039;agit de {{Path|{{PublicFireDACPath}}\FDConnectionDefs.ini}}.&lt;br /&gt;
&lt;br /&gt;
{{Note| A la conception, FireDAC ignore la valeur de [[lib_fr:FireDAC.Comp.Client.TFDManager.ConnectionDefFileName|FDManager.ConnectionDefFileName]], puis cherche un fichier dans un dossier Bin {{Product}} ou tel que spécifié dans le registre. Si le fichier n&#039;est pas trouvé, une exception est déclenchée.}}&lt;br /&gt;
&lt;br /&gt;
Si [[lib_fr:FireDAC.Comp.Client.TFDCustomManager.ConnectionDefFileAutoLoad|FDManager.ConnectionDefFileAutoLoad]] a la valeur &#039;&#039;&#039;True&#039;&#039;&#039;, un fichier de définition de connexion se charge automatiquement. Sinon, il doit être chargé explicitement en appelant la méthode [[lib_fr:FireDAC.Comp.Client.TFDCustomManager.LoadConnectionDefFile|FDManager.LoadConnectionDefFile]] avant la première utilisation des définitions de connexion. Par exemple, avant de définir TFDConnection.Connected sur &#039;&#039;&#039;True&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Création d&#039;une définition de connexion persistante==&lt;br /&gt;
&lt;br /&gt;
Une définition de connexion persistante peut être créée à l&#039;aide de [[FDExplorer|FDExplorer]] ou [[FDAdministrator|FDAdministrator]]. Voici comment vous pouvez faire cela dans le code. Voir également la démo [[samp_en:FireDAC.ConnectionDefs Sample|Connection Definitions (EN)]]. &lt;br /&gt;
&lt;br /&gt;
L&#039;extrait de code suivant crée une définition de connexion nommée &amp;quot;MSSQL_Connection&amp;quot;, qui possède tous les paramètres requis pour se connecter à Microsoft SQL Server exécuté localement, en utilisant l&#039;authentification du système d&#039;exploitation (SSPI) : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
uses&lt;br /&gt;
 FireDAC.Comp.Client, FireDAC.Stan.Def, FireDAC.Stan.Intf,&lt;br /&gt;
 // Required uses for creating a persistent connection with MSSQL (to fdconnectiondefs.ini)&lt;br /&gt;
 FireDAC.Phys.MSSQL,&lt;br /&gt;
 FireDAC.Phys.MSSQLDef;&lt;br /&gt;
&lt;br /&gt;
const&lt;br /&gt;
 cNameConnDef = &#039;MSSQL_Connection&#039;;&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.PersistentConnectionClick(Sender: TObject);&lt;br /&gt;
 var&lt;br /&gt;
  oDef: IFDStanConnectionDef;&lt;br /&gt;
  oParams: TFDPhysMSSQLConnectionDefParams; // MSSQL connection params&lt;br /&gt;
 begin&lt;br /&gt;
  // Adding new persistent connection to fdconnectiondefs.ini&lt;br /&gt;
  FDManager.ConnectionDefs.AddConnectionDef;&lt;br /&gt;
  oDef := FDManager.ConnectionDefs.AddConnectionDef;&lt;br /&gt;
  oDef.Name := cNameConnDef;&lt;br /&gt;
  oParams := TFDPhysMSSQLConnectionDefParams(oDef.Params);&lt;br /&gt;
  oParams.DriverID := &#039;MSSQL&#039;&lt;br /&gt;
  oParams.Database := &#039;Northwind&#039;;&lt;br /&gt;
  oParams.UserName := &#039;.............&#039;;&lt;br /&gt;
  oParams.Password := &#039;.............&#039;;&lt;br /&gt;
  oParams.Server := &#039;127.0.0.1&#039;;&lt;br /&gt;
  oParams.OSAuthent := false;&lt;br /&gt;
  oParams.MARS := false;&lt;br /&gt;
  oDef.MarkPersistent;&lt;br /&gt;
  oDef.Apply;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
.....................&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.ConnectionClick(Sender: TObject);&lt;br /&gt;
  FDConnection1.ConnectionDefName := cNameConnDef;&lt;br /&gt;
  FDConnection1.Connected := True;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FDManager est une instance globale du gestionnaire de connexion FireDAC. Sa propriété [[lib_fr:FireDAC.Comp.Client.TFDCustomManager.ConnectionDefs|FDManager.ConnectionDefs]] : IFDStanConnectionDefs est une collection de définitions de connexions persistantes et privées. La méthode &#039;&#039;&#039;AddConnectionDef&#039;&#039;&#039; ajoute une nouvelle définition de connexion. La méthode &#039;&#039;&#039;MarkPersistent&#039;&#039;&#039; marque une définition de connexion comme persistante. La méthode &#039;&#039;&#039;Apply&#039;&#039;&#039; enregistre une définition de connexion dans un fichier de définition de connexion. Sans l&#039;appel MarkPersistent, la définition de connexion est privée.&lt;br /&gt;
&lt;br /&gt;
==Création d&#039;une définition de connexion privée==&lt;br /&gt;
&lt;br /&gt;
Une définition de connexion privée peut uniquement être créée dans le code. Le code est similaire à celui ci-dessus, mais sans l&#039;appel MarkPersistent. &lt;br /&gt;
&lt;br /&gt;
{{f|bde|Vous pouvez également utiliser une technique similaire à BDE :|Vous pouvez également utiliser la technique alternative suivante :}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
var&lt;br /&gt;
  oParams: TStrings;&lt;br /&gt;
begin&lt;br /&gt;
  oParams := TStringList.Create;&lt;br /&gt;
  oParams.Add(&#039;Server=127.0.0.1&#039;);&lt;br /&gt;
  oParams.Add(&#039;Database=Northwind&#039;);&lt;br /&gt;
  oParams.Add(&#039;OSAuthent=Yes&#039;);&lt;br /&gt;
  FDManager.AddConnectionDef(&#039;MSSQL_Connection&#039;, &#039;MSSQL&#039;, oParams);&lt;br /&gt;
  .....................&lt;br /&gt;
  FDConnection1.ConnectionDefName := &#039;MSSQL_Connection&#039;;&lt;br /&gt;
  FDConnection1.Connected := True;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Création d&#039;une définition de connexion temporaire==&lt;br /&gt;
&lt;br /&gt;
===A la conception===&lt;br /&gt;
&lt;br /&gt;
Une définition de connexion temporaire peut être créée à la conception à l&#039;aide de l&#039;éditeur de connexion FireDAC. Pour ce faire, double-cliquez sur un composant TFDConnection pour appeler l&#039;éditeur : &lt;br /&gt;
&lt;br /&gt;
[[Image:Defining.png|450px]]&lt;br /&gt;
&lt;br /&gt;
Ou en cliquant sur l&#039;icône [[lib_fr:FireDAC.Comp.Client.TFDConnection|TFDConnection]] en mode &#039;&#039;Conception&#039;&#039; et en sélectionnant le pilote dans la propriété [[lib_fr:FireDAC.Comp.Client.TFDConnection.DriverName|DriverName]] de &#039;&#039;&#039;l&#039;inspecteur d&#039;objets&#039;&#039;&#039;. Développez ensuite la propriété [[lib_fr:FireDAC.Comp.Client.TFDConnection.Params|Params]] et configurez les propriétés requises. La dernière étape consiste à définir la propriété [[lib_fr:FireDAC.Comp.Client.TFDConnection.Connected|Connected]] sur &#039;&#039;&#039;True&#039;&#039;&#039;.  &lt;br /&gt;
&lt;br /&gt;
===A l&#039;exécution===&lt;br /&gt;
&lt;br /&gt;
Pour créer une connexion temporaire, à l&#039;exécution dans le code, remplissez la propriété [[lib_fr:FireDAC.Comp.Client.TFDConnection.Params|TFDConnection.Params]]. C&#039;est le moyen le plus simple et le plus pratique de créer une définition de connexion. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
FDConnection1.DriverName := &#039;MSSQL&#039;;&lt;br /&gt;
FDConnection1.Params.Add(&#039;Server=127.0.0.1&#039;);&lt;br /&gt;
FDConnection1.Params.Add(&#039;Database=Northwind&#039;);&lt;br /&gt;
FDConnection1.Params.Add(&#039;User_name=sa&#039;);&lt;br /&gt;
FDConnection1.Connected := True;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une autre façon de créer une définition de connexion temporaire à l&#039;exécution consiste à transtyper la propriété [[lib_fr:FireDAC.Comp.Client.TFDConnection.Params|TFDConnection.Params]] en une classe spécifique SGBD. C&#039;est le moyen le plus fiable pour créer une définition de connexion, car l&#039;audit de code de l&#039;EDI et la vérification syntaxique du compilateur peuvent être utilisés pour contrôler la justesse.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
uses&lt;br /&gt;
  FireDAC.Phys.IBDef, FireDAC.Phys.IBWrapper;&lt;br /&gt;
......&lt;br /&gt;
FDConnection1.DriverName := &#039;IB&#039;;&lt;br /&gt;
with FDConnection1.Params as TFDPhysIBConnectionDefParams do begin&lt;br /&gt;
  Protocol := ipTCPIP;&lt;br /&gt;
  Server := &#039;127.0.0.1&#039;;&lt;br /&gt;
  Database := &#039;c:\IB\employee.gdb&#039;;&lt;br /&gt;
  UserName := &#039;sysdba&#039;;&lt;br /&gt;
  Password := &#039;masterkey&#039;;&lt;br /&gt;
end;&lt;br /&gt;
FDConnection1.Connected := True;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une autre option consiste à spécifier une chaîne de connexion à l&#039;exécution en remplissant la propriété [[lib_fr:FireDAC.Comp.Client.TFDCustomConnection.ConnectionString|TFDConnection.ConnectionString]]. Une chaîne de connexion peut être un moyen pratique de spécifier les paramètres d&#039;une définition de connexion pour certains types d&#039;applications. Par exemple : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
FDConnection1.ConnectionString := &#039;DriverID=MSSQL;Server=127.0.0.1;Database=Northwind;User_name=sa&#039;;&lt;br /&gt;
FDConnection1.Connected := True;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modification d&#039;une définition de connexion==&lt;br /&gt;
&lt;br /&gt;
Une application peut avoir besoin de créer et de modifier une définition de connexion à l&#039;exécution à l&#039;aide de la boîte de dialogue Editeur de connexion FireDAC standard. Pour modifier une définition de connexion temporaire stockée dans TFDConnection, utilisez le code : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
uses&lt;br /&gt;
  FireDAC.VCLUI.ConnEdit;&lt;br /&gt;
...&lt;br /&gt;
if TfrmFDGUIxFormsConnEdit.Execute(FDConnection1, &#039;&#039;) then&lt;br /&gt;
  FDConnection1.Connected := True;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour modifier une définition de connexion représentée sous forme de chaîne de connexion FireDAC, utilisez le code : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
uses&lt;br /&gt;
  FireDAC.VCLUI.ConnEdit;&lt;br /&gt;
...&lt;br /&gt;
var&lt;br /&gt;
  sConnStr: String;&lt;br /&gt;
...&lt;br /&gt;
sConnStr := FDConnection1.ResultConnectionDef.BuildString();&lt;br /&gt;
if TfrmFDGUIxFormsConnEdit.Execute(sConnStr, &#039;&#039;) then begin&lt;br /&gt;
  FDConnection1.ResultConnectionDef.ParseString(sConnStr);&lt;br /&gt;
  FDConnection1.Connected := True;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[FDAdministrator|Utilitaire FDAdministrator]]&lt;br /&gt;
* [[FDExplorer|Utilitaire FDExplorer]]&lt;br /&gt;
* [[Connectivité des bases de données (FireDAC)|Connectivité des bases de données FireDAC]]&lt;br /&gt;
* [[Multi-threading (FireDAC)|Multi-threading]]&lt;br /&gt;
* [[Variables relatives au chemin (FireDAC)|Variables relatives au chemin]]&lt;br /&gt;
&lt;br /&gt;
===Exemple===&lt;br /&gt;
&lt;br /&gt;
* Exemple [[samp_en:FireDAC.ConnectionDefs Sample|FireDAC Connection Definitions]]&lt;br /&gt;
* Exemple [[samp_en:FireDAC.IFDPhysConnection.CreateConnection Sample|FireDAC Create Connection]]&lt;br /&gt;
* Exemple [[samp_en:FireDAC.InterBase Sample|FireDAC InterBase]]&lt;br /&gt;
* Exemple [[samp_en:FireDAC.MSAccess Sample|FireDAC MS Access]]&lt;br /&gt;
* Exemple [[samp_en:FireDAC.MSSQL Sample|FireDAC MS SQL]] &lt;br /&gt;
* Exemple [[samp_en:FireDAC.MySQL Sample|FireDAC MySQL]]&lt;br /&gt;
* Exemple [[samp_en:FireDAC.SQLite Sample|FireDAC SQLite]]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Definition d&#039;une connexion (FireDAC)}}&lt;br /&gt;
[[Category:FireDAC]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Defining Connection (FireDAC)]]&lt;br /&gt;
[[de:Definieren von Verbindungen (FireDAC)]]&lt;br /&gt;
[[ja:接続の定義（FireDAC）]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Utilisation_des_conseils_durant_le_d%C3%A9bogage&amp;diff=213791</id>
		<title>Utilisation des conseils durant le débogage</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Utilisation_des_conseils_durant_le_d%C3%A9bogage&amp;diff=213791"/>
		<updated>2021-01-14T04:02:15Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Tip|}} and the {{Note|}} templates&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Comment utiliser le débogueur}}&lt;br /&gt;
&lt;br /&gt;
Lorsque vous déboguez une application, vous pouvez afficher les valeurs des membres dans un objet suivi dont le type est un objet de données complexe (comme une classe, un enregistrement ou un tableau). Ces valeurs s&#039;affichent dans la fenêtre de l&#039;éditeur de code quand vous développez un objet suivi. En outre, vous pouvez développer les éléments d&#039;un objet, en affichant ses sous-éléments et leurs valeurs. Vous pouvez développer tous les niveaux de l&#039;objet. Les membres sont groupés par ancêtre.&lt;br /&gt;
&lt;br /&gt;
{{Note| Les conseils sont supportés par tous les débogueurs Embarcadero.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pour développer les conseils lors du débogage&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Créez une nouvelle application VCL pour Win32 ou ouvrez une application existante.&lt;br /&gt;
# Choisissez {{menu|Projet &amp;amp;gt; Options &amp;amp;gt; Compilateur {{Delphi}} &amp;amp;gt; [[Compilation|Compilation]]}} et vérifiez que l&#039;option &#039;&#039;&#039;Utiliser DCU de débogage&#039;&#039;&#039; est sélectionnée.&lt;br /&gt;
# Choisissez {{menu|Outils &amp;amp;gt; Options &amp;amp;gt; Options de l&#039;éditeur &amp;amp;gt; [[Audit de code|Audit de code]]}} et vérifiez que l&#039;option &#039;&#039;&#039;Evaluation d&#039;expression dans conseil&#039;&#039;&#039; est sélectionnée.&lt;br /&gt;
# Choisissez {{menu|Exécuter &amp;amp;gt; Pas à pas}}.{{Tip| Vous pouvez aussi appuyer sur &amp;lt;code&amp;gt;&#039;&#039;&#039;F8&#039;&#039;&#039;&amp;lt;/code&amp;gt;.}} Cela ouvre la page &#039;&#039;&#039;Code&#039;&#039;&#039; du fichier source principal du projet.&lt;br /&gt;
# Choisissez de nouveau {{menu|Exécuter &amp;amp;gt; [[Pas à pas|Pas à pas]]}}. Cette opération initialise le projet.&lt;br /&gt;
# Déplacez le curseur sur le mot clé &#039;&#039;&#039;Application&#039;&#039;&#039;. Cette opération affiche le conseil dans un bloc unique.&lt;br /&gt;
# Cliquez sur le &#039;&#039;&#039;+&#039;&#039;&#039; situé près du mot clé &#039;&#039;&#039;Application&#039;&#039;&#039; dans le conseil.  &lt;br /&gt;
#* Le conseil se développe en une boîte défilable qui contient chaque propriété enfant et sa valeur. &lt;br /&gt;
#* Un &#039;&#039;&#039;+&#039;&#039;&#039; apparaît en regard de chaque propriété ayant une ou plusieurs propriétés enfant. &lt;br /&gt;
#* Vous pouvez développer n&#039;importe quel membre pour afficher les propriétés et les valeurs hiérarchiquement dans le conseil.&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Débogage des applications|Débogage des applications]]&lt;br /&gt;
*[[Audit de code|Audit de code]]&lt;br /&gt;
* [[Fenêtre Liste des points de suivi|Fenêtre Liste des points de suivi]]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Utilisation des conseils durant le debogage}}&lt;br /&gt;
[[Category:Utilisation de RAD Studio]]&lt;br /&gt;
[[Category:Delphi]]&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Using Tooltips During Debugging]]&lt;br /&gt;
[[de:Kurzhinweise während des Debuggens verwenden]]&lt;br /&gt;
[[ja:デバッグ中にツールチップを使用する]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Recensement_des_types_non_scalaires&amp;diff=213790</id>
		<title>Recensement des types non scalaires</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Recensement_des_types_non_scalaires&amp;diff=213790"/>
		<updated>2021-01-09T04:42:30Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Utilisation de types non scalaires dans des interfaces invocables}}&lt;br /&gt;
&lt;br /&gt;
Pour qu&#039;une interface invocable puisse utiliser des types autres que les types scalaires prédéfinis énumérés dans [[Utilisation de types non scalaires dans des interfaces invocables|Utilisation de types non scalaires dans des interfaces invocables]], l&#039;application doit avoir recensé le type à l&#039;aide du registre des types distants. Pour accéder à ce registre, vous devez ajouter l&#039;unité InvokeRegistry à votre clause uses. Cette unité déclare une fonction globale, &#039;&#039;RemTypeRegistry&#039;&#039;, qui renvoie une référence au registre des types distants.&lt;br /&gt;
&lt;br /&gt;
{{Note| Côté client, le code permettant de recenser les types avec le registre des types distants est généré automatiquement lorsque vous importez un document WSDL. Côté serveur, les types distants sont automatiquement recensés lorsque vous recensez une interface qui les utilise. Il vous suffit d&#039;ajouter du code pour recenser les types de manière explicite si vous souhaitez spécifier l&#039;espace de nommage ou le nom du type plutôt qu&#039;utiliser les valeurs générées automatiquement.}}&lt;br /&gt;
&lt;br /&gt;
Le registre des types distants dispose de deux méthodes pour recenser les types :[[lib_fr:Soap.InvokeRegistry.TRemotableTypeRegistry.RegisterXSInfo|RegisterXSInfo]] et [[lib_fr:Soap.InvokeRegistry.TRemotableTypeRegistry.RegisterXSClass|RegisterXSClass]]. La première &#039;&#039;RegisterXSInfo&#039;&#039;) vous permet de recenser un tableau dynamique ou une autre définition de type. La deuxième (&#039;&#039;RegisterXSClass&#039;&#039;) concerne le recensement des classes distantes que vous définissez pour représenter d&#039;autres types.&lt;br /&gt;
&lt;br /&gt;
Si vous utilisez des tableaux dynamiques ou des types énumérés, le registre d&#039;invocation peut obtenir les informations dont il a besoin à partir des informations de type générées par le compilateur. Par exemple, votre interface peut utiliser un type comme celui-ci :&lt;br /&gt;
&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
 type&lt;br /&gt;
   TDateTimeArray = array of TXSDateTime;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 typdef DynamicArray&amp;amp;lt;TXSDateTime&amp;amp;gt; TDateTimeArray;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
Ce type est automatiquement recensé lorsque vous recensez l&#039;interface invocable. Toutefois, si vous voulez spécifier l&#039;espace de nommage dans lequel le type est défini ou bien le nom du type, vous devez ajouter du code pour recenser explicitement le type à l&#039;aide de la méthode &#039;&#039;RegisterXSInfo&#039;&#039; du registre des types distants.&lt;br /&gt;
&lt;br /&gt;
Le recensement figure dans la section initialisation de l&#039;unité dans laquelle vous déclarez ou utilisez le tableau dynamique :&lt;br /&gt;
&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 RemTypeRegistry.RegisterXSInfo(TypeInfo(TDateTimeArray), MyNameSpace, &#039;DTarray&#039;, &#039;DTarray&#039;);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 void RegTypes()&lt;br /&gt;
 {&lt;br /&gt;
   RemTypeRegistry()-&amp;amp;gt;RegisterXSInfo(__arraytypeinfo(TDateTimeArray),&lt;br /&gt;
         MyNameSpace, &amp;quot;DTarray&amp;quot;, &amp;quot;DTarray&amp;quot;);&lt;br /&gt;
   InvRegistry()-&amp;amp;gt;RegisterInterface(__delphirtti(ITimeServices));&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
Le premier paramètre de &#039;&#039;RegisterXSInfo&#039;&#039; comprend les informations de type concernant le type que vous êtes en train de recenser. Le deuxième paramètre est l&#039;URI de l&#039;espace de nommage dans lequel le type est défini. Si vous omettez ce paramètre ou spécifiez une chaîne vide, le registre génère un espace de nommage à votre place. Le troisième paramètre est le nom du type tel qu&#039;il apparaît dans le code natif. Si vous omettez ce paramètre ou spécifiez une chaîne vide, le registre extrait le nom du type des informations de type fournies comme premier paramètre. Le dernier paramètre est le nom du type tel qu&#039;il apparaît dans les documents WSDL. Si vous omettez ce paramètre ou spécifiez une chaîne vide, le registre utilise le nom de type natif (le troisième paramètre).&lt;br /&gt;
&lt;br /&gt;
L&#039;enregistrement d&#039;une [[Utilisation d&#039;objets distants|classe distante]] est similaire, mis à part que vous fournissez une référence de classe au lieu d&#039;un pointeur d&#039;informations de type. Par exemple, la ligne suivante provient de l&#039;unité XSBuiltIns. Elle recense &#039;&#039;TXSDateTime&#039;&#039;, un descendant de &#039;&#039;TRemotable&#039;&#039; qui représente des valeurs &#039;&#039;TDateTime&#039;&#039; :&lt;br /&gt;
&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 RemClassRegistry.RegisterXSClass(TXSDateTime, XMLSchemaNameSpace, &#039;dateTime&#039;, &#039;&#039;,True);&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
 void RegTypes()&lt;br /&gt;
 {&lt;br /&gt;
   RemTypeRegistry()-&amp;amp;gt;RegisterXSclass(__classid(TXSDateTime), XMLSchemaNameSpace, &amp;quot;dateTime&amp;quot;, &amp;quot;&amp;quot;, true);&lt;br /&gt;
   InvRegistry()-&amp;amp;gt;RegisterInterface(__delphirtti(ITimeServices));&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
Le premier paramètre est la référence de classe de la classe distante qui représente le type. Le deuxième est un identificateur de ressource uniforme (URI) qui identifie de manière unique l&#039;espace de nommage de la nouvelle classe. Si vous spécifiez une chaîne vide, le registre génère un URI à votre place. Les troisième et quatrième paramètres spécifient les noms natif et externe du type de données représenté par votre classe. Si vous omettez le quatrième paramètres, le registre des types utilise le troisième paramètre pour les deux valeurs. Si vous spécifiez une chaîne vide pour les deux paramètres, le registre utilise le nom de la classe. Le cinquième paramètre indique si la valeur des instances de classe peut être transmise sous forme d&#039;une chaîne. Vous pouvez ajouter un sixième paramètre facultatif (non présenté ici) pour contrôler la manière dont plusieurs références à la même instance d&#039;objet doivent être représentées dans les paquets SOAP.&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Utilisation d&#039;objets distants|Utilisation d&#039;objets distants]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Guide du développeur Windows]]&lt;br /&gt;
[[Category:Delphi]]&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
&lt;br /&gt;
[[en:Registering Nonscalar Types]]&lt;br /&gt;
[[de:Nicht-skalare Typen registrieren]]&lt;br /&gt;
[[ja:非スカラー型の登録]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Utilisation_de_types_non_scalaires_dans_des_interfaces_invocables&amp;diff=213787</id>
		<title>Utilisation de types non scalaires dans des interfaces invocables</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Utilisation_de_types_non_scalaires_dans_des_interfaces_invocables&amp;diff=213787"/>
		<updated>2021-01-05T04:58:50Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Présentation des interfaces invocables}}&lt;br /&gt;
&lt;br /&gt;
L&#039;architecture des services Web prend en charge les types scalaires suivants pour Delphi et C++ :&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;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Boolean&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
ByteBool&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
WordBool&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
LongBool&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Char&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Byte&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
ShortInt&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
SmallInt&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Word&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Integer&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Cardinal&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
LongInt&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Int64&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Single&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Double&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Extended&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
string&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
WideString&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Currency&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
TDateTime&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Variant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les types scalaires supplémentaires suivants sont pris en charge pour C++ :&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;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
bool&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
unsigned short&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
_int64&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
char&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
int&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
AnsiString&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
signed char&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
unsigned&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
float&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
unsigned char&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
long&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
double&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
short&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
unsigned long&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
long double&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous n&#039;avez rien à faire de particulier lorsque vous utilisez ces types scalaires sur une interface invocable. Toutefois, si votre interface inclut des propriétés ou des méthodes qui utilisent d&#039;autres types, votre application doit recenser ces types avec le [[Recensement des types non scalaires|registre des types distants]].&lt;br /&gt;
&lt;br /&gt;
Les tableaux dynamiques peuvent être utilisés dans les interfaces invocables. Ils doivent être recensés dans le registre des types distants, mais ce recensement intervient automatiquement lorsque vous recensez l&#039;interface. Le registre des types distants extrait toutes les informations requises des informations de type générées par le compilateur.&lt;br /&gt;
&lt;br /&gt;
{{Note|Vous devez éviter de définir plusieurs types de tableaux dynamiques avec le même type d&#039;élément. Comme le compilateur les traite comme des types transparents pouvant être implicitement transtypés l&#039;un vers l&#039;autre, il ne distingue pas leurs informations accessibles à l&#039;exécution. Par conséquent, le registre des types distants ne peut pas différencier les types. Cela ne pose pas un problème pour les serveurs mais peut amener les clients à utiliser une mauvaise définition de type. Une autre approche consiste à utiliser des classes distantes pour représenter des types de tableaux.}}&lt;br /&gt;
&lt;br /&gt;
{{Note|Les types de tableaux dynamiques définis dans l&#039;unité Types sont recensés automatiquement, de sorte que votre application n&#039;a pas besoin d&#039;ajouter de code de recensement particulier pour ces types. Un de ces types en particulier, &#039;&#039;TByteDynArray&#039;&#039;, mérite une mention spéciale car il établit une correspondance avec un bloc ‘base64’ de données binaires plutôt qu&#039;avec chaque élément du tableau séparément, comme les autres types de tableaux dynamiques.}}&lt;br /&gt;
&lt;br /&gt;
En outre, les types énumérés et ceux correspondant à l&#039;un des types scalaires automatiquement soumis au marshaling peuvent être utilisés dans une interface invocable. Comme les types de tableaux dynamiques, ils sont automatiquement recensés dans le registre des types distants.&lt;br /&gt;
&lt;br /&gt;
Pour tous les autres types, comme les tableaux statiques, les structures ou enregistrements, les ensembles, les interfaces ou les classes, vous devez établir une correspondance entre le type et une [[Utilisation d&#039;objets distants|classe distante]]. Une classe distante est une classe qui inclut des informations de type accessibles à l&#039;exécution (RTTI). Votre interface doit alors utiliser la classe distante à la place du tableau statique, de la structure ou enregistrement, de l&#039;ensemble, de l&#039;interface ou de la classe correspondants. Toutes les classes distantes que vous créez doivent être recensées dans le registre des types distants. Comme pour les autres types, ce recensement intervient automatiquement.&lt;br /&gt;
&lt;br /&gt;
==Rubriques==&lt;br /&gt;
&lt;br /&gt;
* [[Recensement des types non scalaires|Recensement des types non scalaires]]&lt;br /&gt;
* [[Utilisation d&#039;objets distants|Utilisation d&#039;objets distants]]&lt;br /&gt;
* [[Exemple d&#039;objet distant|Exemple d&#039;objet distant]]&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Présentation des interfaces invocables|Présentation des interfaces invocables]]&lt;br /&gt;
*[[Conception de serveurs gérant les services Web|Conception de serveurs gérant les services Web]]&lt;br /&gt;
* [[Mappage des types Delphi en types C++|Mappage des types Delphi en types C++]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Guide du développeur Windows]]&lt;br /&gt;
[[Category:Delphi]]&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
&lt;br /&gt;
[[en:Using Nonscalar Types in Invokable Interfaces]]&lt;br /&gt;
[[de:Nicht-skalare Typen in aufrufbaren Interfaces verwenden]]&lt;br /&gt;
[[ja:起動可能インターフェイスでの非スカラー型の使用]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=G%C3%A9n%C3%A9ration_de_documents_WSDL_pour_une_application_de_service_Web&amp;diff=213786</id>
		<title>Génération de documents WSDL pour une application de service Web</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=G%C3%A9n%C3%A9ration_de_documents_WSDL_pour_une_application_de_service_Web&amp;diff=213786"/>
		<updated>2020-12-24T06:38:19Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Tip|}} and the {{Note|}} templates&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Conception de serveurs gérant les services Web}}&lt;br /&gt;
&lt;br /&gt;
Pour permettre aux applications client de savoir quels services Web votre application met à disposition, vous pouvez publier un document WSDL qui décrit vos interfaces invocables et indique comment les appeler.&lt;br /&gt;
&lt;br /&gt;
Pour publier un document WSDL décrivant votre service Web, incluez un composant [[lib_fr:Soap.WSDLPub.TWSDLHTMLPublish|Soap.WSDLPub.TWSDLHTMLPublish]] dans votre module Web. L&#039;expert d&#039;application serveur SOAP ajoute ce composant par défaut. &#039;&#039;TWSDLHTMLPublish&#039;&#039; est un composant à auto-répartition, ce qui signifie qu&#039;il répond automatiquement aux messages entrants qui demandent une liste de documents WSDL pour votre service Web. Utilisez la propriété [[lib_fr:Soap.WSDLPub.TWSDLHTMLPublish.WebDispatch|WebDispatch]] pour spécifier les informations de l&#039;URL que les clients doivent utiliser pour accéder à la liste des documents WSDL. Le navigateur Web peut alors demander une liste de documents WSDL en spécifiant une URL constituée de l&#039;emplacement de l&#039;application serveur suivi du chemin spécifié par la propriété &#039;&#039;WebDispatch&#039;&#039;. Cette URL a la forme suivante :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; http://www.myco.com/MyService.dll/WSDL &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Tip|Si vous souhaitez utiliser un fichier WSDL physique à la place, vous pouvez afficher le document WSDL dans votre navigateur Web puis l&#039;enregistrer pour générer le fichier document WSDL.}}&lt;br /&gt;
&lt;br /&gt;
{{Note|Outre le document WSDL, &#039;&#039;THWSDLHTMLPublish&#039;&#039; génère également un document WS-Inspection pour décrire le service des outils automatisés. L&#039;URL de ce document a la forme suivante :}}&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; http://www.myco.com/MyService.dll/inspection.wsil &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il n&#039;est pas nécessaire de publier le document WSDL à partir de l&#039;application qui implémente votre service Web. Pour créer une application qui publie simplement le document WSDL, omettez le code qui implémente et recense les objets d&#039;implémentation et incluez uniquement le code définissant et recensant les interfaces invocables, les classes distantes qui représentent des types complexes et toutes les exceptions distantes.&lt;br /&gt;
&lt;br /&gt;
Par défaut, quand vous publiez un document WSDL, il indique que les services sont disponibles à l&#039;URL à laquelle vous avez publié le document WSDL (mais avec un chemin différent). Si vous déployez plusieurs versions de votre application de service Web ou si vous publiez le document WSDL à partir d&#039;une application différente de celle qui implémente le service Web, vous devrez modifier le document WSDL pour qu&#039;il contienne des informations à jour sur l&#039;emplacement du service Web.&lt;br /&gt;
&lt;br /&gt;
Pour changer l&#039;URL, utilisez l&#039;administrateur WSDL. Vous devez tout d&#039;abord activer l&#039;administrateur. Pour ce faire, initialisez la propriété [[lib_fr:Soap.WSDLPub.TWSDLHTMLPublish.AdminEnabled|AdminEnabled]] du composant &#039;&#039;TWSDLHTMLPublish&#039;&#039; à true. Ensuite, lorsque vous utiliserez votre navigateur pour afficher la liste des documents WSDL, il contiendra également un bouton permettant de les administrer. Utilisez l&#039;administrateur WSDL pour spécifier les emplacements (URL) où vous avez déployé votre application de service Web.&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Utilisation de types non scalaires dans des interfaces invocables|Utilisation de types non scalaires dans des interfaces invocables]]&lt;br /&gt;
*[[Création de classes d&#039;exception personnalisées pour les services Web|Création de classes d&#039;exception personnalisées pour les services Web]]&lt;br /&gt;
*[[Définition et utilisation des en-têtes SOAP|Définition et utilisation des en-têtes SOAP]]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Generation de documents WSDL pour une application de service Web}}&lt;br /&gt;
[[Category:Guide du développeur Windows]]&lt;br /&gt;
[[Category:Delphi]]&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
&lt;br /&gt;
[[en:Generating WSDL Documents for a Web Service Application]]&lt;br /&gt;
[[de:WSDL-Dokumente für Web-Service-Anwendungen generieren]]&lt;br /&gt;
[[ja:Web サービス アプリケーション用の WSDL ドキュメントの生成]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Pr%C3%A9paration_d%27une_application_Android_pour_son_d%C3%A9ploiement&amp;diff=213785</id>
		<title>Préparation d&#039;une application Android pour son déploiement</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Pr%C3%A9paration_d%27une_application_Android_pour_son_d%C3%A9ploiement&amp;diff=213785"/>
		<updated>2020-12-19T03:54:34Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Développement d&#039;applications mobiles Android}}&lt;br /&gt;
&lt;br /&gt;
Votre app Android est déployée quand vous l&#039;exécutez sur un périphérique cible &#039;&#039;&#039;Android&#039;&#039;&#039;. Vous pouvez aussi utiliser le [[Gestionnaire de déploiement|Gestionnaire de déploiement]] pour gérer les fichiers déployés. Lorsque votre application Android est prête pour le déploiement final, vous pouvez construire et signer votre application. Voir &#039;&#039;&#039;[[Déploiement de votre application Android signée|Déploiement de votre application Android signée]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Configuration des options pour le déploiement de votre app Android==&lt;br /&gt;
&lt;br /&gt;
Vous devez configurer plusieurs options pour votre app Android avant de construire l&#039;application pour la distribution. Les propriétés que vous configurez sont fournies avec votre application, dans le fichier {{Path|AndroidManifest.xml}}. Vous ne pouvez pas modifier ces propriétés après avoir construit et signé votre application. Parce que ces propriétés fournissent des informations essentielles concernant votre application, vous devez vous assurer qu&#039;elles contiennent des valeurs correctes avant de déployer votre application. Dans le cas contraire, il se peut que vous deviez reconstruire votre application pour changer les valeurs configurées.&lt;br /&gt;
&lt;br /&gt;
Avant chaque release de votre application Android, vous devez vérifier que chaque paramètre est correctement configuré.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pour configurer votre app Android :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Sur la page &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Projet &amp;amp;gt; Options &amp;amp;gt; [[Options de l&#039;application|Application]]&#039;&#039;&#039;&amp;lt;/font&amp;gt;, fournissez les icônes et images représentant votre application.&lt;br /&gt;
* Sur la page &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Projet &amp;amp;gt; Options &amp;amp;gt; [[Informations de version|Informations de version]]&#039;&#039;&#039;&amp;lt;/font&amp;gt;, augmentez le code de version de votre application. Les magasins d&#039;applications comme Google Play peuvent nécessiter que les nouvelles versions de votre application aient toujours un code de version supérieur aux versions précédentes.&lt;br /&gt;
* Sur la page &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Projet &amp;amp;gt; Options &amp;amp;gt; [[Permissions d&#039;utilisation|Permissions d&#039;utilisation]]&#039;&#039;&#039;&amp;lt;/font&amp;gt;, définissez les permissions requises par votre application pour fonctionner.&lt;br /&gt;
* Si vous le souhaitez, vous pouvez [[Préparation d&#039;une application Android pour son déploiement#Déclaration de fonctionnalités comme facultatives|déclarer des fonctionnalités comme facultatives]].&lt;br /&gt;
* Sur la page &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Projet &amp;amp;gt; Options &amp;amp;gt; [[Page Approvisionnement|Approvisionnement]]&#039;&#039;&#039;&amp;lt;/font&amp;gt;, sélectionnez dans le champ &#039;&#039;&#039;Cible&#039;&#039;&#039; la configuration de construction que vous voulez utiliser pour le déploiement de votre application (par exemple, &#039;&#039;&#039;Release&#039;&#039;&#039;) et [[Compléter la page Approvisionnement#Plate-forme Android (Magasin d&#039;applications)|fournissez un fichier de certificat]] si vous n&#039;en avez pas déjà créé un.  Cette étape est nécessaire afin d&#039;installer votre application dans un périphérique ayant le [[Activation du débogage USB sur un périphérique Android|débogage USB désactivé]] et de distribuer votre application. Pour de plus amples informations sur les fichiers magasin de clés, voir :  [http://docs.oracle.com/javase/1.5.0/docs/api/java/security/KeyStore.html http://docs.oracle.com/javase/1.5.0/docs/api/java/security/KeyStore.html (EN)].&lt;br /&gt;
&lt;br /&gt;
==Personnalisation de votre fichier AndroidManifest.xml==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;{{Product}}&#039;&#039;&#039; écrit les [[#Configuration des options pour le déploiement de votre app Android|options de votre application Android]] dans un fichier Android spécial, [[Fichier manifest d&#039;application Android (AndroidManifest.xml)|AndroidManifest.xml]], qui est inclus dans votre package Android final quand vous déployez votre application pour Android. Ce fichier définit des informations comme le code de version ou le nom d&#039;affichage de votre application, la liste des permissions requises par votre application, etc.&lt;br /&gt;
&lt;br /&gt;
Généralement, vous n&#039;avez pas besoin de modifier ce fichier, et vous pouvez laisser &#039;&#039;&#039;{{Product}}&#039;&#039;&#039; s&#039;occuper de tout. Néanmoins, {{Product}} vous permet de personnaliser le contenu du fichier {{Path|AndroidManifest.xml}} si vous devez inclure dans ce fichier des données personnalisées que vous ne pouvez pas définir visuellement dans vos [[Boîte de dialogue Options de projet|options de projet]].&lt;br /&gt;
&lt;br /&gt;
Quand vous construisez une application pour la plate-forme cible Android pour la première fois, {{Product}} ajoute un fichier au dossier de votre projet : {{Path|AndroidManifest.template.xml}}. Chaque fois que vous construisez votre application pour Android, {{Product}} lit ce fichier, remplace des espaces réservés du fichier par les valeurs réelles de vos [[Boîte de dialogue Options de projet|options de projet]], et écrit le contenu résultant dans un fichier de sortie : {{Path|Android\&amp;amp;lt;build configuration&amp;amp;gt;\AndroidManifest.xml}}. Ce fichier de sortie est le fichier AndroidManifest.xml qui est inclus dans le package Android que {{Product}} génère quand vous déployez votre application pour la plate-forme cible Android.&lt;br /&gt;
&lt;br /&gt;
Pour personnaliser le fichier de sortie {{Path|AndroidManifest.xml}} d&#039;un &#039;&#039;&#039;projet unique&#039;&#039;&#039;, modifiez le contenu de {{Path|AndroidManifest.template.xml}}.&lt;br /&gt;
&lt;br /&gt;
Le fichier {{Path|AndroidManifest.template.xml}} que {{Product}} ajoute à un projet quand vous construisez ce projet pour la plate-forme cible Android pour la première fois provient de {{Path|{{AppDataPath}}\AndroidManifest.xml}}. Si vous voulez que vos &#039;&#039;&#039;nouveaux projets&#039;&#039;&#039; utilisent un autre fichier {{Path|AndroidManifest.template.xml}} de démarrage, modifiez ce fichier.&lt;br /&gt;
&lt;br /&gt;
==Re-création du fichier AndroidManifest.template.xml==&lt;br /&gt;
&lt;br /&gt;
Le fichier &#039;&#039;&#039;AndroidManifest.template.xml&#039;&#039;&#039; généré par {{product}} change entre deux versions. Pour déployer un projet construit avec une autre version de {{product}}, soyez très prudent avec le fichier &#039;&#039;&#039;AndroidManifest.template.xml&#039;&#039;&#039; existant dans votre dossier projet. &lt;br /&gt;
&lt;br /&gt;
Il existe deux scénarios possibles :&lt;br /&gt;
&lt;br /&gt;
* Vous souhaitez conserver l&#039;ancien fichier AndroidManifest.template.xml car il est personnalisé.&lt;br /&gt;
* Vous n&#039;avez pas besoin de conserver l&#039;ancien fichier AndroidManifest.template.xml.&lt;br /&gt;
&lt;br /&gt;
===Conserver le fichier AndroidManifest.template.xml===&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez conserver le fichier &#039;&#039;&#039;AndroidManifest.template.xml&#039;&#039;&#039; car vous avez manuellement apporté des modifications au fichier,  vous devez procéder comme suit :&lt;br /&gt;
&lt;br /&gt;
* Ouvrez le dossier de votre projet.&lt;br /&gt;
* Assurez-vous de bien sauvegarder votre fichier &#039;&#039;&#039;AndroidManifest.template.xml&#039;&#039;&#039;. &lt;br /&gt;
* Supprimez le fichier &#039;&#039;&#039;AndroidManifest.template.xml&#039;&#039;&#039; de votre dossier projet.&lt;br /&gt;
* Ouvrez votre projet avec la nouvelle version de {{product}}.&lt;br /&gt;
* Sélectionnez la cible &#039;&#039;&#039;Android&#039;&#039;&#039;. &lt;br /&gt;
* Construisez le projet. &lt;br /&gt;
{{Note|La construction du projet crée un nouveau fichier &#039;&#039;&#039;AndroidManifest.template.xml&#039;&#039;&#039;.}}&lt;br /&gt;
* Accédez à votre dossier projet et vérifiez qu&#039;un nouveau fichier &#039;&#039;&#039;AndroidManifest.template.xml&#039;&#039;&#039; est présent.&lt;br /&gt;
* Apportez manuellement vos modifications au nouveau fichier &#039;&#039;&#039;AndroidManifest.template.xml&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Création d&#039;un nouveau fichier AndroidManifest.template.xml===&lt;br /&gt;
&lt;br /&gt;
Si vous n&#039;avez pas modifié le fichier &#039;&#039;&#039;AndroidManifest.template.xml&#039;&#039;&#039;, suivez ces étapes pour faire en sorte que {{product}} crée un nouveau fichier :&lt;br /&gt;
&lt;br /&gt;
* Ouvrez le dossier de votre projet.&lt;br /&gt;
* Supprimez le fichier &#039;&#039;&#039;AndroidManifest.template.xml&#039;&#039;&#039;, s&#039;il existe.&lt;br /&gt;
* Ouvrez votre projet avec la nouvelle version de {{product}}.&lt;br /&gt;
* Sélectionnez la cible &#039;&#039;&#039;Android&#039;&#039;&#039;. &lt;br /&gt;
* Construisez le projet. &lt;br /&gt;
{{Note|La construction du projet crée un nouveau fichier &#039;&#039;&#039;AndroidManifest.template.xml&#039;&#039;&#039;.}}&lt;br /&gt;
* Accédez à votre dossier projet et vérifiez qu&#039;un nouveau fichier &#039;&#039;&#039;AndroidManifest.template.xml&#039;&#039;&#039; est présent.&lt;br /&gt;
&lt;br /&gt;
==Déclaration de fonctionnalités comme facultatives==&lt;br /&gt;
&lt;br /&gt;
Lorsque vous construisez votre application Android, une liste des fonctionnalités requises est automatiquement créée selon les permissions déclarées. Cette liste est uniquement fournie à titre informatif et elle n&#039;empêche pas l&#039;installation d&#039;une application sur un périphérique. Certains services, comme Google Play, utilisent cette liste pour filtrer les applications qui sont visibles aux utilisateurs. Les utilisateurs peuvent de cette façon ne voir et ne télécharger que les applications qui sont compatibles avec leur périphérique. Toutes les fonctionnalités nécessaires à votre application sont déclarées comme requises par défaut, ce qui rend votre application incompatible avec les périphériques qui ne prennent pas en charge ces fonctionnalités. &lt;br /&gt;
&lt;br /&gt;
Si votre application ne requiert pas une certaine fonctionnalité pour fonctionner (mais a besoin de cette fonctionnalité pour des fonctions non essentielles), vous pouvez déclarer cette fonctionnalité comme facultative. Pour déclarer une fonctionnalité comme facultative, vous devez spécifier explicitement cette fonctionnalité comme non requise dans le manifeste de l&#039;application.&lt;br /&gt;
&lt;br /&gt;
Par exemple, pour déclarer que votre application requiert facultativement un accès au microphone, procédez comme suit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Assurez-vous que la permission {{Code|Enregistrer du son}} est définie dans [[Permissions d&#039;utilisation|Permissions d&#039;utilisation]].&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Ajoutez manuellement la ligne suivante à {{Path|AndroidManifest.template.xml}} après &#039;&#039;&#039;&amp;amp;lt;%uses-permission%&amp;amp;gt;&#039;&#039;&#039; : (voir la section [[Préparation d&#039;une application Android pour son déploiement#Personnalisation de votre fichier AndroidManifest.xml|Personnalisation de votre fichier AndroidManifest.xml]] pour de plus amples informations sur la façon de modifier {{Path|AndroidManifest.template.xml}}) :&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;uses-feature android:name=&amp;quot;android.hardware.microphone&amp;quot; android:required=&amp;quot;False&amp;quot;/&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|Certaines permissions, comme {{Code|android.permission.CAMERA}}, impliquent plusieurs exigences de fonctionnalité. Pour de plus amples informations, lisez [http://developer.android.com/guide/topics/manifest/uses-feature-element.html#permissions Permissions that Imply Feature Requirements (EN)].}}&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voir [http://developer.android.com/guide/topics/manifest/uses-feature-element.html#features-reference Features Reference (EN)] pour obtenir une liste complète des fonctionnalités matérielles et logicielles prises en charge par la release de plate-forme la plus récente.&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[Déploiement des applications multi-périphériques|Déploiement des applications multi-périphériques]]&lt;br /&gt;
* [[Déploiement de votre application Android signée|Déploiement de votre application Android signée]]&lt;br /&gt;
* [[Applications de base de données multi-périphériques|Applications de base de données multi-périphériques]]&lt;br /&gt;
* [[Création d&#039;un fichier magasin de clés|Création d&#039;un fichier magasin de clés]]&lt;br /&gt;
* [[Permissions d&#039;utilisation|Permissions d&#039;utilisation]]&lt;br /&gt;
* [[Informations de version|Informations de version]]&lt;br /&gt;
&lt;br /&gt;
* [http://developer.android.com/guide/topics/manifest/uses-feature-element.html Android Developers APi Guides: App Manifest - &amp;lt;uses-feature&amp;gt; (EN)]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Preparation d&#039;une application Android pour son deploiement}}&lt;br /&gt;
[[Category:Android]]&lt;br /&gt;
[[Category:XE5]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Preparing an Android Application for Deployment]]&lt;br /&gt;
[[de:Vorbereiten von Android-Anwendungen für die Bereitstellung]]&lt;br /&gt;
[[ja:Android アプリケーションの配置準備]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Types_d%27ensembles_de_donn%C3%A9es_dbExpress&amp;diff=213783</id>
		<title>Types d&#039;ensembles de données dbExpress</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Types_d%27ensembles_de_donn%C3%A9es_dbExpress&amp;diff=213783"/>
		<updated>2020-11-27T14:30:00Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Utilisation des composants dbExpress - Index}}&lt;br /&gt;
&lt;br /&gt;
La catégorie &#039;&#039;dbExpress&#039;&#039; de la &#039;&#039;&#039;palette d&#039;outils&#039;&#039;&#039; contient quatre types d&#039;ensembles de données unidirectionnels&amp;amp;nbsp;: [[lib_fr:Data.SqlExpr.TSQLDataSet|SQLExpr.TSQLDataSet]], [[lib_fr:Data.SqlExpr.TSQLQuery|SQLExpr.TSQLQuery]], [[lib_fr:Data.SqlExpr.TSQLTable|SQLExpr.TSQLTable]] et [[lib_fr:Data.SqlExpr.TSQLStoredProc|SQLExpr.TSQLStoredProc]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;TSQLDataSet&#039;&#039; est le plus général des quatre. Vous pouvez utiliser un ensemble de données SQL pour représenter n&#039;importe quelles données disponibles via &#039;&#039;dbExpress&#039;&#039;, ou pour envoyer des commandes à une base de données accédée via &#039;&#039;dbExpress&#039;&#039;. C&#039;est le composant recommandé pour travailler avec des tables dans de nouvelles applications de base de données.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;TSQLQuery&#039;&#039; est un [[Utilisation d&#039;ensembles de données de type requête|ensemble de données de type requête]] qui encapsule une instruction SQL et permet aux applications d&#039;accéder aux enregistrements éventuellement obtenus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;TSQLTable&#039;&#039; est un [[Utilisation d&#039;ensembles de données de type table|ensemble de données de type table]] qui représente toutes les lignes et colonnes d&#039;une seule table de base de données.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;TSQLStoredProc&#039;&#039; est un [[Utilisation d&#039;ensembles de données de type procédure stockée|ensemble de données de type procédure stockée]] qui exécute une procédure stockée définie sur un serveur de bases de données.&lt;br /&gt;
&lt;br /&gt;
{{Note|La page &#039;&#039;dbExpress&#039;&#039; comprend également [[lib_fr:SimpleDS.TSimpleDataSet|SimpleDS.TSimpleDataSet]], qui n&#039;est pas un ensemble de données unidirectionnel. Il s&#039;agit d&#039;un ensemble de données client qui utilise un ensemble de données unidirectionnel de manière interne pour accéder à ses données.}}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[Spécification des données à afficher|Spécification des données à afficher]]&lt;br /&gt;
* [[Connexion à un serveur de bases de données en utilisant dbExpress|Connexion à un serveur de bases de données en utilisant dbExpress]]&lt;br /&gt;
* [[Récupération des données|Récupération des données]]&lt;br /&gt;
* [[Exécution des commandes ne renvoyant pas d&#039;enregistrement|Exécution des commandes ne renvoyant pas d&#039;enregistrement]]&lt;br /&gt;
* [[Accès aux informations de schéma dbExpress|Accès aux informations de schéma dbExpress]]&lt;br /&gt;
* [[Débogage d&#039;applications dbExpress|Débogage d&#039;applications dbExpress]]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Types d&#039;ensembles de donnees dbExpress}}&lt;br /&gt;
[[Category:Guide du développeur Windows]]&lt;br /&gt;
[[Category:Delphi]]&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
&lt;br /&gt;
[[en:Types of dbExpress Datasets]]&lt;br /&gt;
[[de:Arten von dbExpress-Datenmengen]]&lt;br /&gt;
[[ja:DbExpress データセットの種類]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Pr%C3%A9sentation_des_styles_VCL&amp;diff=213782</id>
		<title>Présentation des styles VCL</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Pr%C3%A9sentation_des_styles_VCL&amp;diff=213782"/>
		<updated>2020-11-20T04:20:02Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Travailler avec les styles VCL}}&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est-ce qu&#039;un style==&lt;br /&gt;
&lt;br /&gt;
Vous pouvez changer l&#039;apparence d&#039;une application VCL en utilisant un &#039;&#039;style&#039;&#039;. Un style est&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
* Un ensemble de détails graphiques qui définissent l&#039;aspect d&#039;une application VCL.&lt;br /&gt;
* Similaire à un thème dans Windows.&lt;br /&gt;
&lt;br /&gt;
Un style vous permet de changer l&#039;apparence de chaque partie et état d&#039;un contrôle. Les contrôles VCL sont constitués de parties et d&#039;états. Un style VCL est constitué d&#039;un ensemble de valeurs pour chaque partie et état. Par exemple, une barre de défilement comprend les parties suivantes&amp;amp;nbsp;: le cadre, la glissière et les deux boutons pour chaque direction. Les boutons ont, par exemple, les états suivants&amp;amp;nbsp;: enfoncé, désactivé, sensible, normal.&lt;br /&gt;
&lt;br /&gt;
Pour définir un style pour votre application VCL, définissez le style dans &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Projet &amp;amp;gt; Options &amp;amp;gt; Application &amp;amp;gt; Apparence&#039;&#039;&#039;&amp;lt;/font&amp;gt;. Pour plus de détails, voir [[Apparence de l&#039;application|Apparence de l&#039;application]].&lt;br /&gt;
&lt;br /&gt;
{{Note|Le style VCL change l&#039;apparence de l&#039;application en cours d&#039;exécution. Cependant, le &#039;&#039;&#039;[[Concepteur de fiches|Concepteur de fiches]]&#039;&#039;&#039; n&#039;affiche pas ces changements.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Emplacement des fichiers de styles (fichiers &amp;lt;code&amp;gt;.vsf&amp;lt;/code&amp;gt;)&amp;amp;nbsp;:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Les styles VCL livrés avec le produit sont disponibles dans&lt;br /&gt;
*:{{Path|{{StylesPath}}}}.&lt;br /&gt;
* Vous pouvez obtenir de nouveaux styles VCL, disponibles dans le [{{VCLPremiumStylesPack}} &#039;&#039;&#039;VCL premium style pack (EN)&#039;&#039;&#039;].&lt;br /&gt;
* En outre, vous pouvez redistribuer les styles (VCL ou {{FM}}) avec vos applications. Les fichiers de styles transmissibles se trouvent dans le répertoire d&#039;installation du produit&lt;br /&gt;
*: &#039;&#039;&#039;\Redist\styles&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Concepteur de styles de bitmaps==&lt;br /&gt;
&lt;br /&gt;
Vous pouvez créer vos propres styles, ou modifier des styles existants, en utilisant le &#039;&#039;&#039;[[Concepteur de styles de bitmaps|Concepteur de styles de bitmaps]]&#039;&#039;&#039;, disponible dans le menu &#039;&#039;&#039;Outils&#039;&#039;&#039;. Pour plus de détails, voir [[Création d&#039;un style à l&#039;aide du Concepteur de styles de bitmaps|Création d&#039;un style à l&#039;aide du Concepteur de styles de bitmaps]].&lt;br /&gt;
&lt;br /&gt;
Le &#039;&#039;&#039;Concepteur de styles de bitmaps&#039;&#039;&#039; supporte aussi la conversion d&#039;un style VCL en style {{FM}} et fournit des applications de test pour tester les styles VCL, {{FM}} et {{FM}} Metro.&lt;br /&gt;
&lt;br /&gt;
==Gestion d&#039;un style==&lt;br /&gt;
&lt;br /&gt;
Vous pouvez utiliser la fonction [[lib_fr:Vcl.Themes.StyleServices|Vcl.Themes.StyleServices]] pour accéder par programme aux informations concernant le style en cours. Avec StyleServices, vous pouvez obtenir des informations sur les éléments et les contrôles stylés, et effectuer le dessin des contrôles. Voir [[lib_fr:Vcl.Themes.TCustomStyleServices|Vcl.Themes.TCustomStyleServices]] pour une meilleure compréhension de l&#039;interface [[lib_fr:Vcl.Themes.StyleServices|Vcl.Themes.StyleServices]].&lt;br /&gt;
&lt;br /&gt;
Utilisez la classe [[lib_fr:Vcl.Styles.TStyleEngine|Vcl.Themes.TStyleEngine]] pour recenser les classes hook de styles pour vos composants VCL personnalisés. Un hook de style est une classe que vous devez implémenter pour fournir la gestion des messages personnalisés pour votre contrôle personnalisé. Si un contrôle personnalisé nécessite un traitement visuel spécial, créez une classe hook de style qui traite les messages en héritant de [[lib_fr:Vcl.Themes.TStyleHook|Vcl.Themes.TStyleHook]].&lt;br /&gt;
&lt;br /&gt;
Utilisez la classe [[lib_fr:Vcl.Themes.TStyleManager|Vcl.Themes.TStyleManager]] pour charger, recenser et sélectionner des styles, ou pour obtenir, recenser et dérecenser un moteur de style.&lt;br /&gt;
&lt;br /&gt;
==Vous devez définir la possession du contrôle==&lt;br /&gt;
&lt;br /&gt;
Dans les applications VCL stylées, il est particulièrement important que tous les contrôles soient [[lib_fr:Vcl.Controls.TControl.Create|créés avec un propriétaire valide]], tel que la [[lib_fr:Vcl.Forms.TForm|fiche]] à laquelle ils appartiennent, afin que la VCL puisse les identifier comme partie de l&#039;application stylée et leur appliquer le style configuré en conséquence.&lt;br /&gt;
&lt;br /&gt;
==Limitations==&lt;br /&gt;
&lt;br /&gt;
L&#039;utilisation des styles VCL comporte certaines limitations. La section suivante liste ces limitations :&lt;br /&gt;
&lt;br /&gt;
* Les styles VCL ne sont pas dessinés lors de l&#039;utilisation de [[lib_fr:Vcl.ComCtrls.TAutoCompleteOption|option suggestion automatique]] d&#039;un contrôle [[lib_fr:Vcl.ComCtrls.TComboBoxEx|TComboBoxEx]]. Dans ce cas, la liste déroulante de suggestion automatique est toujours dessinée avec le thème Windows, même si un style VCL est actif. Cependant, le style VCL est dessiné correctement lors de l&#039;utilisation de la liste déroulante normale.&lt;br /&gt;
* Windows fournit un défilement lors de l&#039;utilisation de [[lib_fr:Vcl.Menus.TPopupMenu|menus contextuels]] qui sont plus larges que la hauteur de l&#039;écran. Cependant, quand vous utiliser des styles VCL, le défilement n&#039;est pas fourni. Pour résoudre ce problème, vous pouvez utiliser la propriété [[lib_fr:Vcl.Menus.TMenuItem.Break|TMenuItem.Break]] pour créer un menu sans colonnes.&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[Apparence de l&#039;application|Apparence de l&#039;application]]&lt;br /&gt;
* [[Concepteur de styles de bitmaps|Concepteur de styles de bitmaps]]&lt;br /&gt;
* [[Création d&#039;un style à l&#039;aide du Concepteur de styles de bitmaps|Création d&#039;un style à l&#039;aide du Concepteur de styles de bitmaps]]&lt;br /&gt;
* [[Manipulation des images dans le Concepteur de styles de bitmaps|Manipulation des images dans le Concepteur de styles de bitmaps]]&lt;br /&gt;
* [[Conversion d&#039;un style VCL en style FireMonkey|Conversion d&#039;un style VCL en style FireMonkey]]&lt;br /&gt;
* [[lib_fr:Vcl.Styles.TStyleEngine|Vcl.Styles.TStyleEngine]]&lt;br /&gt;
* [[lib_fr:Vcl.Themes.StyleServices|Vcl.Themes.StyleServices]]&lt;br /&gt;
* [[lib_fr:Vcl.Themes.TStyleManager|Vcl.Themes.TStyleManager]]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Presentation des styles VCL}}&lt;br /&gt;
[[Category:Utilisation de Delphi pour Windows]]&lt;br /&gt;
[[Category:Delphi]]&lt;br /&gt;
&lt;br /&gt;
[[en:VCL Styles Overview]]&lt;br /&gt;
[[de:Überblick über VCL-Stile]]&lt;br /&gt;
[[ja:VCL スタイルの概要]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Cr%C3%A9ation_d%27une_application_C%2B%2B_simple_pour_utiliser_les_fonctionnalit%C3%A9s_C%2B%2B11&amp;diff=213781</id>
		<title>Création d&#039;une application C++ simple pour utiliser les fonctionnalités C++11</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Cr%C3%A9ation_d%27une_application_C%2B%2B_simple_pour_utiliser_les_fonctionnalit%C3%A9s_C%2B%2B11&amp;diff=213781"/>
		<updated>2020-11-18T02:40:05Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : RS-103954&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|C++ moderne}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;{{CBuilder}} XE3&#039;&#039;&#039; fournit la prise en charge de C++11, la version la plus récente du standard C++.&lt;br /&gt;
&lt;br /&gt;
La façon la plus simple de tester et d&#039;utiliser les nouvelles &#039;&#039;&#039;[[Fonctionnalités du C++ moderne prises en charge par les compilateurs C++ améliorés par Clang de RAD Studio|fonctionnalités C++11]]&#039;&#039;&#039; dans les applications {{CBuilder}} est de créer une application console C++, tel que cela est décrit dans les étapes suivantes. {{f|vcl|Vous pouvez également utiliser les fonctionnalités C++11 dans n&#039;importe quelle application C++ Windows 64 bits créée avec {{Product}}, comme une application de fiches VCL C++ ou une application multi-périphérique C++.}} L&#039;utilisation d&#039;une application console C++ vous fournit une application simple dans laquelle vous pouvez tester la syntaxe C++11 sans qu&#039;un framework y soit attaché.&lt;br /&gt;
&lt;br /&gt;
{{Note| Les mêmes étapes élémentaires décrites ici (la création d&#039;une application console C++) sont utiles pour s&#039;exercer et découvrir les fonctionnalités du compilateur C++ ou pour développer et tester du code C++ dans un cadre réduit au strict minimum en attachant seulement la [[Utilisation de la RTL (bibliothèque d&#039;exécution)|RTL]].}}&lt;br /&gt;
&lt;br /&gt;
==Etapes==&lt;br /&gt;
&lt;br /&gt;
# 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;
#:                      [[File:File - New - Other.png|link=]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
# La boîte de dialogue &#039;&#039;&#039;[[Nouveaux éléments|Nouveaux éléments]]&#039;&#039;&#039; apparaît. Cliquez sur &#039;&#039;&#039;Projets {{CBuilder}}&#039;&#039;&#039;, sélectionnez &#039;&#039;&#039;Application console&#039;&#039;&#039;, puis cliquez sur &#039;&#039;&#039;OK&#039;&#039;&#039;.&lt;br /&gt;
#:                      [[File:Console Application.png|link=]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
# La boîte de dialogue &#039;&#039;&#039;[[Nouvelle application console (C++)|Nouvelle application console (C++)]]&#039;&#039;&#039; apparaît. Assurez-vous que C++ est sélectionné coumme type source. {{f|vcl|Si vous souhaitez sélectionner un framework pour votre application, choisissez VCL ou {{FM}} dans la zone de liste déroulante &#039;&#039;&#039;Framework cible&#039;&#039;&#039;. Dans le cas contraire, choisissez &#039;&#039;&#039;Aucun&#039;&#039;&#039;.|Si vous souhaitez sélectionner un framework pour votre application, choisissez {{FM}} dans la zone de liste déroulante &#039;&#039;&#039;Framework cible&#039;&#039;&#039; combo box. Dans le cas contraire, choisissez &#039;&#039;&#039;Aucun&#039;&#039;&#039;.}} Conservez les valeurs par défaut des autres options et cliquez sur &#039;&#039;&#039;OK&#039;&#039;&#039;.&lt;br /&gt;
#:                     [[File:New Console Application.png|link=]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
# Dans le [[Fenêtre Projets|Gestionnaire de projets]], cliquez avec le bouton droit sur &#039;&#039;&#039;Plates-formes cible&#039;&#039;&#039; puis sélectionnez &#039;&#039;&#039;Ajouter une plate-forme&#039;&#039;&#039;.&lt;br /&gt;
#:[[File:Project Window.png|link=]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
# Dans la boîte de dialogue &#039;&#039;&#039;Sélectionner une plate-forme&#039;&#039;&#039;, sélectionnez &#039;&#039;&#039;Windows 64 bits&#039;&#039;&#039; et cliquez sur &#039;&#039;&#039;OK&#039;&#039;&#039;.&lt;br /&gt;
#:[[File:Select Platform.png|link=]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#[[Editeur de code|L&#039;éditeur de code]] apparaît et affiche le squelette du code pour une application C++ simple. Vous pouvez écrire votre code C++11 dans ce fichier.&lt;br /&gt;
#: Par exemple, la portion de code suivante utilise le mot clé &#039;&#039;&#039;[[Auto|auto]]&#039;&#039;&#039; comme défini dans C++11&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
int main() {&lt;br /&gt;
        char array[] = {&#039;C&#039;, &#039;+&#039;, &#039;+&#039;, &#039;1&#039;, &#039;1&#039;};&lt;br /&gt;
        for (auto&amp;amp;i : array) {&lt;br /&gt;
                printf(&amp;quot;%c&amp;quot;, i);&lt;br /&gt;
        }&lt;br /&gt;
        std::cin.get();&lt;br /&gt;
        return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: 7.  Appuyez sur la touche F9 ou sélectionnez &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Exécuter &amp;amp;gt; [[Exécuter|Exécuter]]&#039;&#039;&#039;&amp;lt;/font&amp;gt; pour exécuter l&#039;application&amp;amp;nbsp;:&lt;br /&gt;
:[[File:RunApplication.png]]&lt;br /&gt;
&lt;br /&gt;
Pour des exemples de code C++11, voir &#039;&#039;&#039;[[C++ moderne|C++11]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[C++ moderne|C++11]]&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 C++11 prises en charge par les compilateurs C++ améliorés par Clang de RAD Studio]]&lt;br /&gt;
* [[Nouvelle application console (C++)|Nouvelle application console (C++)]]&lt;br /&gt;
* [[Applications console|Applications console]]&lt;br /&gt;
* [[Création de bibliothèques de templates|Création de bibliothèques de templates]]&lt;br /&gt;
* [[Développement d&#039;applications C++ Builder Windows 64 bits|Développement d&#039;applications {{CBuilder}} Windows 64 bits]]&lt;br /&gt;
* [[Compilateurs C++ améliorés par Clang|Compilateurs C++ améliorés par Clang]]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Creation d&#039;une application C++ simple pour utiliser les fonctionnalites C++11}}&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:XE3]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Creating a Simple C++ Application to Use Modern C++ Features]]&lt;br /&gt;
[[de:Erstellen einer einfachen C++-Anwendung für die Verwendung von C++11-Features]]&lt;br /&gt;
[[ja:C++11 機能を使用する簡単な C++ アプリケーションを作成する]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Fichier:Select_Platform.png&amp;diff=213780</id>
		<title>Fichier:Select Platform.png</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Fichier:Select_Platform.png&amp;diff=213780"/>
		<updated>2020-11-18T02:38:49Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Fabiola.Arias a téléversé une nouvelle version de Fichier:Select Platform.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Fichier:Project_Window.png&amp;diff=213779</id>
		<title>Fichier:Project Window.png</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Fichier:Project_Window.png&amp;diff=213779"/>
		<updated>2020-11-18T02:38:49Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Fichier:New_Console_Application.png&amp;diff=213778</id>
		<title>Fichier:New Console Application.png</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Fichier:New_Console_Application.png&amp;diff=213778"/>
		<updated>2020-11-18T02:38:48Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Fichier:File_-_New_-_Other.png&amp;diff=213777</id>
		<title>Fichier:File - New - Other.png</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Fichier:File_-_New_-_Other.png&amp;diff=213777"/>
		<updated>2020-11-18T02:38:37Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Fichier:Console_Application.png&amp;diff=213776</id>
		<title>Fichier:Console Application.png</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Fichier:Console_Application.png&amp;diff=213776"/>
		<updated>2020-11-18T02:38:25Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Cr%C3%A9ation_d%27une_application_C%2B%2B_simple_pour_utiliser_les_fonctionnalit%C3%A9s_C%2B%2B11&amp;diff=213775</id>
		<title>Création d&#039;une application C++ simple pour utiliser les fonctionnalités C++11</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Rio/f/index.php?title=Cr%C3%A9ation_d%27une_application_C%2B%2B_simple_pour_utiliser_les_fonctionnalit%C3%A9s_C%2B%2B11&amp;diff=213775"/>
		<updated>2020-11-17T15:34:57Z</updated>

		<summary type="html">&lt;p&gt;Fabiola.Arias : Added the {{Note|}} template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|C++ moderne}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;{{CBuilder}} XE3&#039;&#039;&#039; fournit la prise en charge de C++11, la version la plus récente du standard C++.&lt;br /&gt;
&lt;br /&gt;
La façon la plus simple de tester et d&#039;utiliser les nouvelles &#039;&#039;&#039;[[Fonctionnalités du C++ moderne prises en charge par les compilateurs C++ améliorés par Clang de RAD Studio|fonctionnalités C++11]]&#039;&#039;&#039; dans les applications {{CBuilder}} est de créer une application console C++, tel que cela est décrit dans les étapes suivantes. {{f|vcl|Vous pouvez également utiliser les fonctionnalités C++11 dans n&#039;importe quelle application C++ Windows 64 bits créée avec {{Product}}, comme une application de fiches VCL C++ ou une application multi-périphérique C++.}} L&#039;utilisation d&#039;une application console C++ vous fournit une application simple dans laquelle vous pouvez tester la syntaxe C++11 sans qu&#039;un framework y soit attaché.&lt;br /&gt;
&lt;br /&gt;
{{Note| Les mêmes étapes élémentaires décrites ici (la création d&#039;une application console C++) sont utiles pour s&#039;exercer et découvrir les fonctionnalités du compilateur C++ ou pour développer et tester du code C++ dans un cadre réduit au strict minimum en attachant seulement la [[Utilisation de la RTL (bibliothèque d&#039;exécution)|RTL]].}}&lt;br /&gt;
&lt;br /&gt;
==Etapes==&lt;br /&gt;
&lt;br /&gt;
# 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;
#:                      [[File:FileNewOther.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
# La boîte de dialogue &#039;&#039;&#039;[[Nouveaux éléments|Nouveaux éléments]]&#039;&#039;&#039; apparaît. Cliquez sur &#039;&#039;&#039;Projets {{CBuilder}}&#039;&#039;&#039;, sélectionnez &#039;&#039;&#039;Application console&#039;&#039;&#039;, puis cliquez sur &#039;&#039;&#039;OK&#039;&#039;&#039;.&lt;br /&gt;
#:                      [[File:C++NewCOnsoleApplication.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
# La boîte de dialogue &#039;&#039;&#039;[[Nouvelle application console (C++)|Nouvelle application console (C++)]]&#039;&#039;&#039; apparaît. Assurez-vous que C++ est sélectionné coumme type source. {{f|vcl|Si vous souhaitez sélectionner un framework pour votre application, choisissez VCL ou {{FM}} dans la zone de liste déroulante &#039;&#039;&#039;Framework cible&#039;&#039;&#039;. Dans le cas contraire, choisissez &#039;&#039;&#039;Aucun&#039;&#039;&#039;.|Si vous souhaitez sélectionner un framework pour votre application, choisissez {{FM}} dans la zone de liste déroulante &#039;&#039;&#039;Framework cible&#039;&#039;&#039; combo box. Dans le cas contraire, choisissez &#039;&#039;&#039;Aucun&#039;&#039;&#039;.}} Conservez les valeurs par défaut des autres options et cliquez sur &#039;&#039;&#039;OK&#039;&#039;&#039;.&lt;br /&gt;
#:                     [[File:NCA01.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
# Dans le [[Fenêtre Projets|Gestionnaire de projets]], cliquez avec le bouton droit sur &#039;&#039;&#039;Plates-formes cible&#039;&#039;&#039; puis sélectionnez &#039;&#039;&#039;Ajouter une plate-forme&#039;&#039;&#039;.&lt;br /&gt;
#:[[File:AddPlatfromRC.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
# Dans la boîte de dialogue &#039;&#039;&#039;Sélectionner une plate-forme&#039;&#039;&#039;, sélectionnez &#039;&#039;&#039;Windows 64 bits&#039;&#039;&#039; et cliquez sur &#039;&#039;&#039;OK&#039;&#039;&#039;.&lt;br /&gt;
#:[[File:SelectPlatform64.png]]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
#[[Editeur de code|L&#039;éditeur de code]] apparaît et affiche le squelette du code pour une application C++ simple. Vous pouvez écrire votre code C++11 dans ce fichier.&lt;br /&gt;
#: Par exemple, la portion de code suivante utilise le mot clé &#039;&#039;&#039;[[Auto|auto]]&#039;&#039;&#039; comme défini dans C++11&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
int main() {&lt;br /&gt;
        char array[] = {&#039;C&#039;, &#039;+&#039;, &#039;+&#039;, &#039;1&#039;, &#039;1&#039;};&lt;br /&gt;
        for (auto&amp;amp;i : array) {&lt;br /&gt;
                printf(&amp;quot;%c&amp;quot;, i);&lt;br /&gt;
        }&lt;br /&gt;
        std::cin.get();&lt;br /&gt;
        return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: 7.  Appuyez sur la touche F9 ou sélectionnez &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&#039;&#039;&#039;Exécuter &amp;amp;gt; [[Exécuter|Exécuter]]&#039;&#039;&#039;&amp;lt;/font&amp;gt; pour exécuter l&#039;application&amp;amp;nbsp;:&lt;br /&gt;
:[[File:RunApplication.png]]&lt;br /&gt;
&lt;br /&gt;
Pour des exemples de code C++11, voir &#039;&#039;&#039;[[C++ moderne|C++11]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[C++ moderne|C++11]]&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 C++11 prises en charge par les compilateurs C++ améliorés par Clang de RAD Studio]]&lt;br /&gt;
* [[Nouvelle application console (C++)|Nouvelle application console (C++)]]&lt;br /&gt;
* [[Applications console|Applications console]]&lt;br /&gt;
* [[Création de bibliothèques de templates|Création de bibliothèques de templates]]&lt;br /&gt;
* [[Développement d&#039;applications C++ Builder Windows 64 bits|Développement d&#039;applications {{CBuilder}} Windows 64 bits]]&lt;br /&gt;
* [[Compilateurs C++ améliorés par Clang|Compilateurs C++ améliorés par Clang]]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Creation d&#039;une application C++ simple pour utiliser les fonctionnalites C++11}}&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:XE3]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Creating a Simple C++ Application to Use Modern C++ Features]]&lt;br /&gt;
[[de:Erstellen einer einfachen C++-Anwendung für die Verwendung von C++11-Features]]&lt;br /&gt;
[[ja:C++11 機能を使用する簡単な C++ アプリケーションを作成する]]&lt;/div&gt;</summary>
		<author><name>Fabiola.Arias</name></author>
	</entry>
</feed>