<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tiphaineb</id>
	<title>RAD Studio - Contributions de l’utilisateur [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tiphaineb"/>
	<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/fr/Sp%C3%A9cial:Contributions/Tiphaineb"/>
	<updated>2026-05-23T02:16:45Z</updated>
	<subtitle>Contributions de l’utilisateur</subtitle>
	<generator>MediaWiki 1.31.16</generator>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Nouveaut%C3%A9s_de_Berlin&amp;diff=198087</id>
		<title>Nouveautés de Berlin</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Nouveaut%C3%A9s_de_Berlin&amp;diff=198087"/>
		<updated>2016-03-03T12:21:20Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : 1 version : Internal review. LOC-21794&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Accueil|Aide en ligne de {{Product}} {{Version}}}} &lt;br /&gt;
__TOC__&lt;br /&gt;
La release {{Version|London}} contient de nouvelles fonctionnalités ainsi que des améliorations.&lt;br /&gt;
&lt;br /&gt;
==[[FireMonkey|{{FM|London}}]]==&lt;br /&gt;
&lt;br /&gt;
===Prise en charge de Android 6.0===&lt;br /&gt;
&lt;br /&gt;
Android {{AndroidSDKVersion}} (API Level {{AndroidAPILevel}}) est désormais [[Périphériques Android pris en charge pour le développement d&amp;#039;applications|pris en charge]].&lt;br /&gt;
&lt;br /&gt;
===Carnet d&amp;#039;adresses pour iOS et Android===&lt;br /&gt;
&lt;br /&gt;
Sur les plates-formes mobiles (Android et iOS), {{FM|London}} prend en charge le composant [[lib_fr:FMX.AddressBook.TAddressBook|TAddressBook]] qui permet à vos applications d&amp;#039;accéder au carnet d&amp;#039;adresses du périphérique. Les fonctionnalités élémentaires de ce composant sont les suivantes :&lt;br /&gt;
&lt;br /&gt;
* Extraction de l&amp;#039;ensemble des contacts d&amp;#039;un téléphone ou d&amp;#039;une tablette.&lt;br /&gt;
* Accès à toutes les sources dans le carnet d&amp;#039;adresses du périphérique.&lt;br /&gt;
* Extraction de tous les contacts appartenant à une source spécifiée.&lt;br /&gt;
* Extraction des contacts appartenant à des groupes spécifiés.&lt;br /&gt;
* Modification ou suppression des contacts et des groupes existants.&lt;br /&gt;
* Création de nouveaux contacts.&lt;br /&gt;
* Renommage des groupes existants.&lt;br /&gt;
&lt;br /&gt;
Pour davantage d&amp;#039;informations et d&amp;#039;autres exemples, voir [[lib_fr:FMX.AddressBook.TAddressBook|TAddressBook]] et [[Tutoriel mobile : Utilisation d&amp;#039;un composant carnet d&amp;#039;adresses (iOS et Android)|Tutoriel mobile : Utilisation du composant carnet d&amp;#039;adresses (iOS et Android)]].&lt;br /&gt;
&lt;br /&gt;
===Concepteur de styles amélioré===&lt;br /&gt;
&lt;br /&gt;
Le &amp;#039;&amp;#039;&amp;#039;[[Concepteur de styles FireMonkey|Concepteur de fiches]]&amp;#039;&amp;#039;&amp;#039; a subi plusieurs changements et améliorations, tels que :&lt;br /&gt;
&lt;br /&gt;
* Prise en charge du clavier&lt;br /&gt;
* Prise en charge du presse-papiers&lt;br /&gt;
* Prise en charge de la sélection multiple&lt;br /&gt;
* Panneau Aperçu&lt;br /&gt;
* Prise en charge du zoom&lt;br /&gt;
&lt;br /&gt;
: [[File:LondonFireMonkeyStyleDesigner.png|500px]]&lt;br /&gt;
&lt;br /&gt;
===Nouveau concepteur d&amp;#039;élément de vue liste===&lt;br /&gt;
&lt;br /&gt;
Le [[lib_fr:FMX.ListView.TListView|contrôle de vue liste]] prend désormais en charge un nouveau type [[lib_fr:FMX.ListView.Appearances.TPublishedAppearance.ItemAppearance|d&amp;#039;apparence d&amp;#039;élément]] (également disponible pour le [[lib_fr:FMX.ListView.Appearances.TPublishedAppearance.ItemEditAppearance|mode édition]]), {{Code|[[Personnalisation de l&amp;#039;apparence de la vue liste FireMonkey#Utilisation de la valeur DynamicAppearance|DynamicAppearance]]}}, que vous pouvez utiliser pour personnaliser le contenu de chaque élément dans votre vue liste : étiquettes, images, boutons, etc.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez également cliquer avec le bouton droit de la souris sur la vue liste de votre &amp;#039;&amp;#039;&amp;#039;Concepteur de fiches&amp;#039;&amp;#039;&amp;#039; et sélectionner la nouvelle entrée &amp;#039;&amp;#039;&amp;#039;[[Personnalisation de l&amp;#039;apparence de la vue liste FireMonkey#Le mode de conception Basculer|Basculer DesignMode]]&amp;#039;&amp;#039;&amp;#039; afin d&amp;#039;activer un éditeur visuel d&amp;#039;éléments de vue liste qui vous permet de personnaliser visuellement les contrôles des éléments de votre vue liste :&lt;br /&gt;
&lt;br /&gt;
: [[File:LondonListViewDesignMode.png]]&lt;br /&gt;
&lt;br /&gt;
Dans ce mode de conception, vous pouvez utiliser &amp;#039;&amp;#039;&amp;#039;[[Inspecteur d&amp;#039;objets|l&amp;#039;inspecteur d&amp;#039;objets]]&amp;#039;&amp;#039;&amp;#039; afin d&amp;#039;ajouter de nouveaux éléments à votre conception d&amp;#039;élément vue liste, et utiliser à la fois &amp;#039;&amp;#039;&amp;#039;l&amp;#039;inspecteur d&amp;#039;objets&amp;#039;&amp;#039;&amp;#039; et le &amp;#039;&amp;#039;&amp;#039;concepteur de fiches&amp;#039;&amp;#039;&amp;#039; pour les personnaliser.&lt;br /&gt;
&lt;br /&gt;
===Service de prise en charge du presse-papiers étendu===&lt;br /&gt;
&lt;br /&gt;
{{FM|London}} dispose désormais de l&amp;#039;interface [[lib_fr:FMX.Clipboard.IFMXExtendedClipboardService|IFMXExtendedClipboardService]] qui permet d&amp;#039;ajouter de nouvelles fonctionnalités. Par exemple, l&amp;#039;interface [[lib_fr:FMX.Clipboard.IFMXExtendedClipboardService|IFMXExtendedClipboardService]] vous permet d&amp;#039;effectuer les actions suivantes :&lt;br /&gt;
&lt;br /&gt;
* Enregistrer les formats personnalisés des utilisateurs.&lt;br /&gt;
* Copier/coller les formats personnalisés des utilisateurs.&lt;br /&gt;
* Obtenir directement le contenu du presse-papiers.&lt;br /&gt;
&lt;br /&gt;
===Amélioration de l&amp;#039;éditeur de liste d&amp;#039;images===&lt;br /&gt;
&lt;br /&gt;
Maintenant, la boîte de dialogue &amp;#039;&amp;#039;&amp;#039;Ajouter des images&amp;#039;&amp;#039;&amp;#039; de [[Editeur de liste d&amp;#039;images (FireMonkey)#Volet Liste d&amp;#039;images|l&amp;#039;éditeur de liste d&amp;#039;images]] vous permet d&amp;#039;ajouter plusieurs images à la fois.&lt;br /&gt;
&lt;br /&gt;
===Améliorations relatives à TGrid===&lt;br /&gt;
&lt;br /&gt;
* [[lib_fr:FMX.Grid.TGridOption|TGridOption.AutoDisplacement]] et [[lib_fr:FMX.Grid.TGridOption|TGridOption.CancelEditingByDefault]] ont été ajoutées pour faciliter l&amp;#039;édition des cellules des grilles sur un périphérique mobile avec le clavier virtuel.&lt;br /&gt;
* [[lib_fr:FMX.Grid.TCurrencyColumn|TCurrencyColumn]] - Nouvelle classe permettant d&amp;#039;implémenter des colonnes de grille contenant des valeurs [[lib_fr:System.Currency|monétaires]].&lt;br /&gt;
* [[lib_fr:FMX.Grid.TGlyphColumn|TGlyphColumn]] - Nouvelle classe permettant d&amp;#039;implémenter des colonnes de grille contenant des images de la liste d&amp;#039;images [[lib_fr:FMX.ImgList.TImageList|TImageList]]. La propriété [[lib_fr:FMX.Grid.TGrid.Images|TGrid.Images]] est ajoutée afin de spécifier la liste d&amp;#039;images.&lt;br /&gt;
&lt;br /&gt;
:&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;Attention :&amp;#039;&amp;#039;&amp;#039; La nouvelle unité [[lib_fr:FMX.Grid.Style|FMX.Grid.Style]] est créée. Cette unité doit être incluse dans l&amp;#039;une des clauses &amp;#039;&amp;#039;&amp;#039;uses&amp;#039;&amp;#039;&amp;#039; de chaque projet par le biais de l&amp;#039;unité [[lib_fr:FMX.Grid|FMX.Grid]]. Puisque les anciens projets n&amp;#039;incluent pas l&amp;#039;unité [[lib_fr:FMX.Grid.Style|FMX.Grid.Style]], pour compiler un projet ancien, il est nécessaire d&amp;#039;inclure l&amp;#039;unité [[lib_fr:FMX.Grid.Style|FMX.Grid.Style]] explicitement. Notez que l&amp;#039;unité [[lib_fr:FMX.Grid.Style|FMX.Grid.Style]] est ajoutée automatiquement si vous modifiez tout fichier de votre projet.&lt;br /&gt;
&lt;br /&gt;
===Prise en charge des résolutions élevées sur Windows===&lt;br /&gt;
&lt;br /&gt;
{{FM|London}} bénéficie des styles multi-résolution pour Windows, qui fournissent une prise en charge pour les moniteurs 120 et 144 DPI.&lt;br /&gt;
&lt;br /&gt;
===Prise en charge améliorée des touches accélératrices===&lt;br /&gt;
&lt;br /&gt;
Désormais, la prise en charge des [[Représentation des touches et des raccourcis#Spécification de touches accélératrices|touches accélératrices]] est disponible pour les contrôles suivants :&lt;br /&gt;
&lt;br /&gt;
* [[lib_fr:FMX.StdCtrls.TLabel|TLabel]]&lt;br /&gt;
* [[lib_fr:FMX.StdCtrls.TButton|TButton]]&lt;br /&gt;
* [[lib_fr:FMX.StdCtrls.TRadioButton|TRadioButton]]&lt;br /&gt;
* [[lib_fr:FMX.TabControl.TTabItem|TTabItem]] de [[lib_fr:FMX.TabControl|TabControl]]&lt;br /&gt;
* [[lib_fr:FMX.StdCtrls.TCheckBox|TCheckBox]]&lt;br /&gt;
* [[lib_fr:FMX.ExtCtrls.TPopupBox.Items|TPopupBox.Items]] de [[lib_fr:FMX.ExtCtrls.TPopupBox|TPopupBox]]&lt;br /&gt;
* [[lib_fr:FMX.Controls.TTextControl|TTextControl]]&lt;br /&gt;
* [[lib_fr:FMX.StdCtrls.TPresentedTextControl|TPresentedTextControl]]&lt;br /&gt;
* [[lib_fr:FMX.ActnList.TCustomAction|TCustomAction]]&lt;br /&gt;
&lt;br /&gt;
===Prise en charge des styles de fontes étendus===&lt;br /&gt;
&lt;br /&gt;
[[lib_fr:FMX.Graphics.TFont|TFont]] gagne une nouvelle propriété, [[lib_fr:FMX.Graphics.TFont.StyleExt|StyleExt]],  permettant de gérer les fontes qui ont des types étendus de [[lib_fr:FMX.Graphics.TFontWeight|poids]], [[lib_fr:FMX.Graphics.TFontSlant|d&amp;#039;obliques]] ou de [[lib_fr:FMX.Graphics.TFontStretch|stretch]].&lt;br /&gt;
&lt;br /&gt;
===Modifications de la propriété Hint===&lt;br /&gt;
&lt;br /&gt;
Dans les versions précédentes de {{Product|Berlin}}, [[lib_fr:FMX.Controls.TControl.Hint|Hint]] était publié dans tous les contrôles {{FM|Berlin}} qui héritent de  [[lib_fr:FMX.Controls.TControl|TControl]]. Désormais, la propriété [[lib_fr:FMX.Controls.TControl.Hint|Hint]] est publiée dans les contrôles {{FM|Berlin}} listés dans [[Changes of the Hint Property in Berlin|Modifications de la propriété Hint dans Berlin]].&lt;br /&gt;
&lt;br /&gt;
: &amp;#039;&amp;#039;&amp;#039;Avertissement&amp;#039;&amp;#039;&amp;#039; : Assurez-vous que vos applications n&amp;#039;utilisent pas [[lib_fr:FMX.Controls.TControl.Hint|Hint]] avec un contrôle qui n&amp;#039;est pas listé dans ce [[Chages of the Hint Property in Berlin|tableau]]. Sinon, vos applications ne seront pas compilées.&lt;br /&gt;
&lt;br /&gt;
===API dialogue simplifié===&lt;br /&gt;
&lt;br /&gt;
Plusieurs procédures et fonctions permettant de montrer des boîtes de dialogue sont désormais obsolètes et ont été remplacées par les procédures et fonctions des nouveaux services de plate-forme [[lib_fr:FMX.Platform.IFMXDialogServiceAsync|IFMXDialogServiceAsync]] et [[lib_fr:FMX.Platform.IFMXDialogServiceSync|IFMXDialogServiceSync]] qui fournissent la prise en charge des boîtes de dialogue, respectivement synchrones et asynchrones.&lt;br /&gt;
&lt;br /&gt;
Le tableau suivant résume les changements des API :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Membres obsolètes&lt;br /&gt;
! Nouveaux membres&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
* [[lib_fr:FMX.Dialogs.ShowMessage|FMX.Dialogs.ShowMessage]]*&lt;br /&gt;
* [[lib_fr:FMX.Dialogs.ShowMessageFmt|FMX.Dialogs.ShowMessageFmt]]*&lt;br /&gt;
* {{Code|FMX.Dialogs.ShowMessagePos}}&lt;br /&gt;
|&lt;br /&gt;
* [[lib_fr:FMX.Platform.IFMXDialogServiceAsync.ShowMessageAsync|ShowMessageAsync]]&lt;br /&gt;
* [[lib_fr:FMX.Platform.IFMXDialogServiceSync.ShowMessageSync|ShowMessageSync]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
* {{Code|FMX.Dialogs.MessageDlg}}&lt;br /&gt;
* {{Code|FMX.Dialogs.MessageDlgPos}}&lt;br /&gt;
* {{Code|FMX.Dialogs.MessageDlgPosHelp}}&lt;br /&gt;
* {{Code|FMX.Platform.IFMXDialogService.MessageDialog}}&lt;br /&gt;
|&lt;br /&gt;
* [[lib_fr:FMX.Platform.IFMXDialogServiceAsync.MessageDialogAsync|MessageDialogAsync]]&lt;br /&gt;
* [[lib_fr:FMX.Platform.IFMXDialogServiceSync.MessageDialogSync|MessageDialogSync]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
* {{Code|FMX.Dialogs.InputBox}}&lt;br /&gt;
* {{Code|FMX.Dialogs.InputQuery}}&lt;br /&gt;
* {{Code|FMX.Platform.IFMXDialogService.InputQuery}}&lt;br /&gt;
|&lt;br /&gt;
* [[lib_fr:FMX.Platform.IFMXDialogServiceAsync.InputQueryAsync|InputQueryAsync]]&lt;br /&gt;
* [[lib_fr:FMX.Platform.IFMXDialogServiceSync.InputQuerySync|InputQuerySync]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: * {{Code|ShowMessage}} et {{code|ShowMessageFmt}} ne sont pas vraiment obsolètes. Néanmoins, vous pouvez préférer d&amp;#039;utiliser [[lib_fr:FMX.Platform.IFMXDialogServiceAsync.ShowMessageAsync|ShowMessageAsync]] ou [[lib_fr:FMX.Platform.IFMXDialogServiceSync.ShowMessageSync|ShowMessageSync]].&lt;br /&gt;
&lt;br /&gt;
===Autres modifications relatives à {{FM|London}}===&lt;br /&gt;
&lt;br /&gt;
* La nouvelle propriété [[lib_fr:FMX.Pickers.TCustomPicker.AbsoluteTargetRect|AbsoluteTargetRect]] des sélecteurs vous permet de définir la position où doit apparaître un sélecteur.&lt;br /&gt;
* Les vues liste affichent des animations tactiles sur Android.&lt;br /&gt;
* [[Utilisation de AppAnalytics dans FireMonkey|AppAnalytics]] utilise le protocole HTTPS au lieu du protocole HTTP.&lt;br /&gt;
* [[lib_fr:FMX.Media.TMediaPlayer|TMediaPlayer]] essaie maintenant de [[lib_fr:FMX.Media.TMediaPlayer.Play|lire]] le [[lib_fr:FMX.Media.TMediaPlayer.FileName|fichier média]] spécifié avec le codec par défaut de la plate-forme cible si l&amp;#039;extension du fichier média n&amp;#039;a pas été [[lib_fr:FMX.Media.TMediaCodecManager.RegisterMediaCodecClass|enregistrée]].&lt;br /&gt;
* Le type [[lib_fr:System.Double|Double]] remplace le type [[lib_fr:System.Extended|Extended]].&lt;br /&gt;
&lt;br /&gt;
==[[Présentation de la VCL|VCL]]==&lt;br /&gt;
&lt;br /&gt;
* [[Utilisation de AppAnalytics dans la VCL|AppAnalytics]] utilise le protocole HTTPS au lieu du protocole HTTP.&lt;br /&gt;
&lt;br /&gt;
==[[Services de mobilité d&amp;#039;entreprise (EMS)|EMS]]==&lt;br /&gt;
&lt;br /&gt;
===[[Installation du serveur EMS ou du serveur de la console EMS sur un environnement de production#Prise en charge du serveur Apache|Prise en charge du serveur Apache]]===&lt;br /&gt;
&lt;br /&gt;
Vous pouvez dorénavant exécuter le serveur EMS et la console EMS dans le serveur Apache sur un environnement de production.&lt;br /&gt;
&lt;br /&gt;
Pour plus d&amp;#039;informations, voir [[Installation du serveur EMS ou du serveur de la console EMS sur un environnement de production#Prise en charge du serveur Apache|installation et exécution du serveur EMS et de la console EMS dans le serveur Apache]].&lt;br /&gt;
&lt;br /&gt;
===[[Modification manuelle de la configuration du serveur EMS#Domaines croisés de l&amp;#039;API du serveur EMS|Domaines croisés de l&amp;#039;API du serveur EMS]]===&lt;br /&gt;
&lt;br /&gt;
Le serveur EMS autorise désormais les appels de domaines croisés à ses API depuis différents domaines. Pour plus d&amp;#039;informations, voir [[Modification manuelle de la configuration du serveur EMS#Domaines croisés de l&amp;#039;API du serveur EMS|Domaines croisés de l&amp;#039;API du serveur EMS]].&lt;br /&gt;
&lt;br /&gt;
===[[EdgeModules EMS|EdgeModules EMS]]===&lt;br /&gt;
&lt;br /&gt;
EMS prend maintenant en charge la nouvelle fonctionnalité [[EdgeModules EMS|EdgeModules EMS]], une extension de la fonctionnalité [[Serveur EMS|Serveur EMS]].&lt;br /&gt;
&lt;br /&gt;
Dans {{Version}}, vous pouvez exécuter les [[EdgeModules EMS|EdgeModules EMS]] en tant qu&amp;#039;applications autonomes et les [[Ressource EdgeModules EMS#Point de terminaison RegisterModule|recenser]] dans le serveur EMS. La communication du EdgeModule EMS avec le [[Serveur EMS|serveur EMS]] est bidirectionnelle.&lt;br /&gt;
&lt;br /&gt;
Pour plus d’informations, voir [[EdgeModules EMS|EdgeModules EMS]].&lt;br /&gt;
&lt;br /&gt;
===[[Ressource EdgeModules EMS|Ressource EdgeModules EMS]]===&lt;br /&gt;
&lt;br /&gt;
La [[Serveur de la console EMS|Console EMS]] affiche maintenant deux nouvelles tables avec toutes les informations sur  [[Ressource EdgeModules EMS|EdgeModules EMS]] et ses ressources chargées dans le [[Serveur EMS|Serveur EMS]].&lt;br /&gt;
&lt;br /&gt;
[[Application EMS Management Console|L&amp;#039;application EMS Management Console]] comporte maintenant [[Interface utilisateur de gestion des ressources EMS|deux nouveaux onglets]] pour récupérer, mettre à jour et supprimer facilement les données des [[Ressource EdgeModules EMS|EdgeModules EMS]] recensés et leurs ressources. Voir [[Utilisation de l&amp;#039;application EMS Management Console|Utilisation de l&amp;#039;application EMS Management Console]] pour plus d&amp;#039;informations sur la gestion des données des [[Ressource EdgeModules EMS|EdgeModules EMS]] dans le [[Serveur EMS|serveur EMS]].&lt;br /&gt;
&lt;br /&gt;
===[[Présentation de ThingPoints|Présentation de ThingPoints]]===&lt;br /&gt;
&lt;br /&gt;
Utilisez les nouvelles applications [[Présentation de ThingPoints|ThingPoint]] afin d&amp;#039;étendre les fonctionnalités du [[Serveur EMS|Serveur EMS]] pour [[Iot:ThingConnect|l&amp;#039;Internet of Things (IoT)]]. Une application ThingPoint vous permet de collecter des données depuis les [[Iot:ThingConnect Devices|périphériques ThingConnect]] à proximité, de prétraiter et post-traiter des données IoT et de les sauvegarder dans le [[Serveur EMS|Serveur EMS]].&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;exemple &amp;#039;&amp;#039;&amp;#039;[[samp_en:EMS.ThingPoint IoT Sample|EMS.ThingPoint IoT]]&amp;#039;&amp;#039;&amp;#039; montre comment utiliser une application [[Présentation de ThingPoints|ThingPoint]] pour étendre le [[Serveur EMS|serveur EMS]] et comment ces données sont utilisées par une [[Application client EMS|application client EMS]].  &lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations sur les applications ThingPoint, voir [[Présentation de ThingPoints|Présentation de ThingPoints]].&lt;br /&gt;
&lt;br /&gt;
===[[Ressource API EMS|Ressource API EMS]]===&lt;br /&gt;
&lt;br /&gt;
Une nouvelle ressource dans le serveur EMS fournit une documentation API pour toutes les ressources et méthodes des points de terminaisons fournis par le Serveur EMS. La documentation API peut être consultée aux formats YAML et JSON.&lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations, voir la [[Ressource API EMS|Ressource API EMS]]&lt;br /&gt;
&lt;br /&gt;
===[[Documentation des API personnalisées|Documentation API personnalisées]]===&lt;br /&gt;
&lt;br /&gt;
Le serveur EMS fournit désormais les outils permettant d&amp;#039;écrire de la documentation API pour les nouvelles ressources dans les packages serveur EMS étendus. La nouvelle documentation est créée en ajoutant des attributs aux nouvelles ressources et aux nouveaux points de terminaison. La documentation API peut être exposée aux formats YAML et JSON, et est accessible via HTTP.&lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations, voir la [[Documentation des API personnalisées|Documentation API personnalisées]].&lt;br /&gt;
&lt;br /&gt;
==[[Développement d&amp;#039;applications DataSnap|DataSnap]]==&lt;br /&gt;
&lt;br /&gt;
* DataSnap ne dépend plus de [[OpenSSL|OpenSSL]] ou de [[Indy|Indy]] pour exécuter des requêtes HTTPS.&lt;br /&gt;
&lt;br /&gt;
===Prise en charge des flux JSON===&lt;br /&gt;
&lt;br /&gt;
Nouvelle classe  [[lib_fr:Data.DBXCommon.TDBXJSONStream|TDBXJSONStream]] permettant de prendre en charge les flux JSON entre des serveurs DataSnap et des clients.&lt;br /&gt;
&lt;br /&gt;
Utilisez [[lib_fr:Data.DBXCommon.TDBXJSONStream|TDBXJSONStream]] pour lire ou écrire un flux d&amp;#039;objets JSON, mais pas les deux simultanément.&lt;br /&gt;
&lt;br /&gt;
==[[Utilisation de WebBroker - Index|Web Broker]]==&lt;br /&gt;
&lt;br /&gt;
* La gestion des chaînes a été améliorée :&lt;br /&gt;
** L&amp;#039;API WebBroker utilise par défaut le codage UTF-8, au lieu de ANSI.&lt;br /&gt;
** Le type des paramètres et du résultat ont été changés de [[lib_fr:System.AnsiString|AnsiString]] à [[lib_fr:System.String|String]], [[lib_fr:System.UTF8String|UTF8String]] ou [[lib_fr:System.SysUtils.TBytes|TBytes]].&lt;br /&gt;
&lt;br /&gt;
==[[FireDAC|FireDAC]]==&lt;br /&gt;
&lt;br /&gt;
===Améliorations pour [[Connexion à IBM DB2 Server (FireDAC)|DB2]]===&lt;br /&gt;
&lt;br /&gt;
* Le [[Connexion à IBM DB2 Server (FireDAC)|pilote natif DB2]] et le [[Connexion à une source de données ODBC (FireDAC)|pilote de pont ODBC]] sont désormais pris en charge pour DB2 AS/400.&lt;br /&gt;
* Nouveau [[Connexion à IBM DB2 Server (FireDAC)|paramètre de définition de la connexion]] : {{code|TxSupported}} permettant de désactiver la gestion des transactions FireDAC.&lt;br /&gt;
&lt;br /&gt;
===Améliorations pour [[Connexion à une base de données MongoDB (FireDAC)|MongoDB]]===&lt;br /&gt;
&lt;br /&gt;
* Prise en charge des [[Alertes des bases de données (FireDAC)|alertes des bases de données]]. Elle utilise des notifications d&amp;#039;opérations d&amp;#039;insertion sur une [https://docs.mongodb.org/manual/core/capped-collections/ collection plafonnée de MongoDB (EN)]. Pour plus d&amp;#039;informations, voir &amp;#039;&amp;#039;&amp;#039;[[Alertes des bases de données (FireDAC)#mongodb|Alertes des bases de données (FireDAC)]]&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* Nouvelle méthode [[lib_fr:FireDAC.Phys.MongoDBWrapper.TMongoDocument.Iterate|TMongoDocument.Iterate]] pour parcourir des éléments de document. Pour plus de détails, voir la nouvelle démo {{Path|Object Pascal\Database\FireDAC\Samples\DBMS Specific\MongoDB\ListView}}.&lt;br /&gt;
&lt;br /&gt;
===Améliorations pour [[Connexion à Advantage Database Server (FireDAC)|Advantage]]===&lt;br /&gt;
&lt;br /&gt;
* Pour Advantage v12 et ultérieurs :&lt;br /&gt;
** Amélioration de [[lib_fr:FireDAC.Phys.ADS.TFDADSBackup|TFDADSBackup]] et [[lib_fr:FireDAC.Phys.ADS.TFDADSRestore|TFDADSRestore]] pour ajouter la prise en charge de l&amp;#039;archivage de sauvegardes.&lt;br /&gt;
** Prise en charge du type de données {{code|GUID}}.&lt;br /&gt;
* Amélioration de la prise en charge des tables cryptées :&lt;br /&gt;
** Capacité à fournir un [[Connexion à Advantage Database Server (FireDAC)#TablePwd|mot de passe unique]] pour toutes les tables.&lt;br /&gt;
** Prise en charge du service de [[lib_fr:FireDAC.Phys.ADS.TFDADSUtility.Encrypt|cryptage]]/[[lib_fr:FireDAC.Phys.ADS.TFDADSUtility.Decrypt|décryptage]] &lt;br /&gt;
&lt;br /&gt;
===Améliorations pour [[Connexion à InterBase (FireDAC)|InterBase]] et [[Connexion à Firebird (FireDAC)|Firebird]]===&lt;br /&gt;
&lt;br /&gt;
* Nouveau [[Composants (FireDAC)#Composants_de_service_FireDAC|composant de service]], [[lib_fr:FireDAC.Phys.IBBase.TFDIBInfo|TFDIBInfo]], pour interroger la version, la licence, la configuration ainsi que les informations d&amp;#039;usage du serveur.&lt;br /&gt;
* Prise en charge des [[Prise en charge du flux de valeurs Blob dans FireDAC#Flux internes|flux internes]] du [[Prise en charge du flux de valeurs Blob dans FireDAC|flux de valeur BLOB]].&lt;br /&gt;
* Prise en charge du type de données de tableau InterBase. Pour plus de détails, voir la nouvelle démo {{Path|Object Pascal\Database\FireDAC\Samples\DBMS Specific\InterBase\Arrays}}.&lt;br /&gt;
* [[lib_fr:FireDAC.Phys.IBWrapper.TIBRestoreOptions|TIBRestoreOptions.roReplace]] remplace {{Code|TIBRestoreOptions.roCreate}}.&lt;br /&gt;
&lt;br /&gt;
===Améliorations pour [[Connexion à Informix (FireDAC)|Informix]]===&lt;br /&gt;
&lt;br /&gt;
* La classe [[lib_fr:FireDAC.Phys.Infx.TFDInfxError|TFDInfxError]] implémente la prise en charge du renvoi du code d&amp;#039;erreur ISAM.&lt;br /&gt;
* Nouveaux [[Connexion à Informix (FireDAC)#Paramètres_de_définition_de_la_connexion|paramètres de définition de la connexion]] : {{code|[https://www-01.ibm.com/support/knowledgecenter/SSGU8G_12.1.0/com.ibm.sqls.doc/ids_sqs_2038.htm%23ids_sqs_2038 TxRetainLocks]}} et {{code|[https://www-304.ibm.com/support/knowledgecenter/SSGU8G_11.70.0/com.ibm.sqls.doc/ids_sqs_1165.htm TxLastCommitted]}}.&lt;br /&gt;
* Prise en charge de verrouillage pessimiste.&lt;br /&gt;
&lt;br /&gt;
===Amélioration pour [[Connexion à une source de données ODBC (FireDAC)|ODBC]]===&lt;br /&gt;
&lt;br /&gt;
* Nouveau [[Connexion à une source de données ODBC (FireDAC)#Paramètres_de_définition_de_la_connexion|paramètre de définition de la connexion]] : {{code|ODBCVersion}} = {{code|3.8}} | {{code|3.0}} qui est utilisé pour spécifier la [https://msdn.microsoft.com/en-us/library/ee388580%28v=vs.85%29.aspx version de comportement (EN)] du gestionnaire de pilotes ODBC. Définissez-le sur {{code|3.8}} quand votre application utilise des paramètres de sortie BLOB et que le pilote ODBC prend en charge la version de comportement {{code|3.8}}.&lt;br /&gt;
* Prise en charge du [[Mappage des types de données (FireDAC)|mappage des types de données]] en utilisant les [[lib_fr:FireDAC.Stan.Option.TFDMapRule.TypeMask|noms de types de données]].&lt;br /&gt;
&lt;br /&gt;
===Améliorations pour [[Connexion à Oracle Server (FireDAC)|Oracle]]===&lt;br /&gt;
&lt;br /&gt;
* Pour Oracle 10g et ultérieurs :&lt;br /&gt;
** Prise en charge des [http://docs.oracle.com/cd/B28359_01/appdev.111/b28395/oci10new.htm#CJGHFEDD notifications des modifications de requêtes (EN)] dans [[lib_fr:FireDAC.Comp.Client.TFDEventAlerter|TFDEventAlerter]]. Pour plus de détails, voir {{Path|Object Pascal\Database\FireDAC\Samples\DBMS Specific\Oracle\CQN}}.&lt;br /&gt;
* Pour Oracle 11g et ultérieurs :&lt;br /&gt;
** Un nouveau composant, [[lib_fr:FireDAC.Phys.Oracle.TFDOracleAdmin|TFDOracleAdmin]], permettant d&amp;#039;administrer une [https://docs.oracle.com/cd/E11882_01/server.112/e40540/startup.htm#CNCPT005 instance de base de données Oracle (EN)].&lt;br /&gt;
** Prise en charge d&amp;#039;entiers non signés sur 32 bits et d&amp;#039;entiers 64 bits.&lt;br /&gt;
** Prise en charge de la [http://docs.oracle.com/cd/B28359_01/appdev.111/b28395/oci10new.htm#CHDDIGCG récupération implicite de ROWID (EN)]. Elle est implicitement incluse dans la liste SELECT {{Code|SELECT … FOR UPDATE}} pour une [[Champs d&amp;#039;identification unique (FireDAC)#Colonnes_d&amp;#039;identification_de_ligne|modification effective des ensembles de données]].&lt;br /&gt;
** Prise en charge des dépassements de délai réseau. Nouveaux [[Connexion à Oracle Server (FireDAC)#Paramètres_de_définition_de_la_connexion|paramètres de définition de la connexion]] {{Code|ReadTimeout}} et {{Code|WriteTimeout}}.&lt;br /&gt;
* Pour Oracle 12c et ultérieurs :&lt;br /&gt;
** Prise en charge des types de données 32K VARCHAR2, NVARCHAR2 et RAW.&lt;br /&gt;
** Prise en charge du BOOLEAN natif en PL/SQL.&lt;br /&gt;
** Prise en charge des [https://docs.oracle.com/database/121/SQLRF/statements_7002.htm#SQLRF55655 colonnes identité (EN)], qui sont reconnues comme étant des [[Champs auto-incrémentés (FireDAC)|champs auto-incrémentés]].&lt;br /&gt;
** Prise en charge des [https://docs.oracle.com/database/121/LNOCI/oci10new.htm#LNOCI73008 résultats implicites (EN)]. Vous pouvez utiliser [[lib_fr:FireDAC.Comp.Client.TFDAdaptedDataSet.NextRecordSet|NextRecordSet]] pour les traiter.&lt;br /&gt;
** Amélioration de la détection et de la synchronisation de [[lib_fr:FireDAC.Comp.Client.TFDCustomConnection.InTransaction|l&amp;#039;état de transaction]].&lt;br /&gt;
** Prise en charge de nouveaux modes d&amp;#039;authentification dans le [[Connexion à Oracle Server (FireDAC)#Paramètres_de_définition_de_la_connexion|paramètre de définition de la connexion]] {{Code|AuthMode}}  : {{Code|SYSASM}}, {{Code|SYSBACKUP}}, {{Code|SYSDG}}, et {{Code|SYSKM}}.&lt;br /&gt;
&lt;br /&gt;
===Améliorations pour [[Connexion à PostgreSQL (FireDAC)|PostgreSQL]]===&lt;br /&gt;
&lt;br /&gt;
* Pour PostgreSQL 9.2 et ultérieurs :&lt;br /&gt;
** Prise en charge du type de données [[JSON|JSON]].&lt;br /&gt;
** Prise en charge des [http://www.postgresql.org/docs/current/static/rangetypes.html types de plage (EN)].&lt;br /&gt;
* Pour PostgreSQL 9.4 et ultérieurs :&lt;br /&gt;
** Prise en charge du type de données [http://www.postgresql.org/docs/current/static/datatype-json.html JSONB (EN)].&lt;br /&gt;
* Prise en charge de la version 9.5 des client et serveur PostgreSQL.&lt;br /&gt;
* Prise en charge améliorée pour les tableaux contraints :&lt;br /&gt;
** Nouveau [[Connexion à PostgreSQL (FireDAC)#Paramètres_de_définition_de_la_connexion|paramètre de définition de la connexion]] : {{code|ArrayScanSample}} utilisé pour déterminer si les tableaux sont mappés sur {{code|[[lib_fr:Data.DB.TFieldType|ftArray]]}} ou {{code|[[lib_fr:Data.DB.TFieldType|ftDataSet]]}}.&lt;br /&gt;
** Le &amp;lt;code&amp;gt;[[lib_fr:FireDAC.Stan.Param.TFDParam.ArrayType|TFDParam.ArrayType]]=atTable&amp;lt;/code&amp;gt; peut être utilisé pour envoyer des tableaux au serveur.&lt;br /&gt;
&lt;br /&gt;
===Améliorations pour [[Connexion à une base de données SQLite (FireDAC)|SQLite]]===&lt;br /&gt;
&lt;br /&gt;
* Binaires SQLite mis à jour vers la version 3.9.2&lt;br /&gt;
* Pour SQLite v3.8.9 et ultérieurs :&lt;br /&gt;
** Prise en charge des informations étendues sur les colonnes d&amp;#039;index, y compris si elles sont descendantes ou ascendantes, ou si ce sont des colonnes de base ou d&amp;#039;expression.&lt;br /&gt;
** Prise en charge des index sur les expressions.&lt;br /&gt;
* Pour OS X :&lt;br /&gt;
** Bibliothèque client optimisée, préconstruite. Vous devriez déployer {{Path|libcgsqlite3.dylib}} lorsque vous construisez des applications pour OS X qui utilisent FireDAC et SQLite.&lt;br /&gt;
** Prise en charge des liaisons statiques, en utilisant {{Path|libcgsqlite3.dylib}}.&lt;br /&gt;
** Prise en charge du cryptage.&lt;br /&gt;
&lt;br /&gt;
===Autres modifications relatives à FireDAC===&lt;br /&gt;
&lt;br /&gt;
* Le type de [[lib_fr:FireDAC.Stan.Intf.TFDVersion|TFDVersion]] est passé de [[lib_fr:System.Int64|Int64]] à [[lib_fr:System.UInt64|UInt64]].&lt;br /&gt;
* Les unités [[lib_fr:FireDAC.Phys.ODBCBase|FireDAC.Phys.ODBCBase]] et [[lib_fr:FireDAC.Phys.ODBCWrapper|FireDAC.Phys.ODBCWrapper]] ont été déplacées du package {{path|FireDACODBCDriver{{PackageVersion|London}}.bpl}} vers le package {{path|FireDACCommonODBC{{PackageVersion|London}}.bpl}}.&lt;br /&gt;
&lt;br /&gt;
==[[Framework dbExpress|dbExpress]]==&lt;br /&gt;
&lt;br /&gt;
* dbExpress ne dépend plus de [[OpenSSL|OpenSSL]] ou de [[Indy|Indy]] pour exécuter des requêtes HTTPS.&lt;br /&gt;
&lt;br /&gt;
==[[Développement d&amp;#039;applications Cloud|Service Cloud]]==&lt;br /&gt;
&lt;br /&gt;
===Amazon===&lt;br /&gt;
&lt;br /&gt;
[[lib_fr:Data.Cloud.AmazonAPI|AmazonAPI]] bénéficie de la prise en charge de :&lt;br /&gt;
&lt;br /&gt;
* [[lib_fr:Data.Cloud.AmazonAPI.TAmazonQueueService.PurgeQueue|Suppression de tous les messages]] dans une file d&amp;#039;attente.&lt;br /&gt;
* Gestion du [http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html cycle de vie (EN)] des objets dans un compartiment avec [[lib_fr:Data.Cloud.AmazonAPI.TAmazonStorageService.GetBucketLifecycleXML|GetBucketLifecycleXML]], [[lib_fr:Data.Cloud.AmazonAPI.TAmazonStorageService.SetBucketLifecycle|SetBucketLifecycle]] et [[lib_fr:Data.Cloud.AmazonAPI.TAmazonStorageService.DeleteBucketLifecycle|DeleteBucketLifecycle]].&lt;br /&gt;
&lt;br /&gt;
===Azure===&lt;br /&gt;
&lt;br /&gt;
*[[lib_fr:Data.Cloud.AzureAPI|AzureAPI]] prend maintenant en charge les dernières versions suivantes de l&amp;#039;API :&lt;br /&gt;
** Service BLOB Microsoft Azure : {{Code|API Version 2015-02-21}}&lt;br /&gt;
** Service de Table Microsoft Azure : {{Code|API Version 2015-02-21}}&lt;br /&gt;
** Service de File d&amp;#039;attente Microsoft Azure : {{Code|API Version 2015-02-21}}&lt;br /&gt;
* Prise en charge des blobs d&amp;#039;ajout :&lt;br /&gt;
** Vous pouvez désormais [[lib_fr:Data.Cloud.AzureAPI.TAzureBlobService.PutAppendBlob|créer des blobs d&amp;#039;ajout]].&lt;br /&gt;
** Vous pouvez [[lib_fr:Data.Cloud.AzureAPI.TAzureBlobService.AppendBlock|ajouter des données]] à des blobs d&amp;#039;ajout existants.&lt;br /&gt;
* Améliorations de la prise en charge de la stratégie d&amp;#039;accès :&lt;br /&gt;
** Ajout d&amp;#039;une prise en charge des stratégies d&amp;#039;accès sur les [[lib_fr:Data.Cloud.AzureAPI.TAzureQueueService.GetQueueACL|files d&amp;#039;attente]] et des [[lib_fr:Data.Cloud.AzureAPI.TAzureTableService.GetTableACL|tables]].&lt;br /&gt;
** [[lib_fr:Data.Cloud.AzureAPI.TPolicy|TPolicy]] et ses sous-classes ([[lib_fr:Data.Cloud.AzureAPI.TBlobPolicy|TBlobPolicy]], [[lib_fr:Data.Cloud.AzureAPI.TQueuePolicy|TQueuePolicy]], [[lib_fr:Data.Cloud.AzureAPI.TTablePolicy|TTablePolicy]]) remplacent [[lib_fr:Data.Cloud.AzureAPI.TAccessPolicy|TAccessPolicy]], qui est désormais obsolète.&lt;br /&gt;
* Prise en charge améliorée du bail pour les blobs et les conteneurs de blobs :&lt;br /&gt;
** Ajout de la prise en charge des [[lib_fr:Data.Cloud.AzureAPI.TAzureBlobService.AcquireContainerLease|conteneurs de baux]] et d&amp;#039;autres opérations concernant les baux de conteneurs.&lt;br /&gt;
** Vous pouvez désormais [[lib_fr:Data.Cloud.AzureAPI.TAzureBlobService.ChangeBlobLease|modifier l&amp;#039;identificateur du bail d&amp;#039;un blob]].&lt;br /&gt;
** Quand vous [[lib_fr:Data.Cloud.AzureAPI.TAzureBlobService.AcquireBlobLease|acquerrez un bail de blob]], vous pouvez maintenant proposer un identifiant pour le nouveau bail.&lt;br /&gt;
* Statistiques et propriétés des services :&lt;br /&gt;
** Ajout de la prise en charge des propriétés du [[lib_fr:Data.Cloud.AzureAPI.TAzureBlobService.GetBlobServiceProperties|service blob]], du [[lib_fr:Data.Cloud.AzureAPI.TAzureQueueService.GetQueueServiceProperties|service de file d&amp;#039;attente]] et du [[lib_fr:Data.Cloud.AzureAPI.TAzureTableService.GetTableServiceProperties|service de table]].&lt;br /&gt;
** Ajout de la prise en charge des statistiques du [[lib_fr:Data.Cloud.AzureAPI.TAzureBlobService.GetBlobServiceStats|service blob]], du [[lib_fr:Data.Cloud.AzureAPI.TAzureQueueService.GetQueueServiceStats|service de file d&amp;#039;attente]] et du [[lib_fr:Data.Cloud.AzureAPI.TAzureTableService.GetTableServiceStats|service de table]].&lt;br /&gt;
* Les services Azure fournissent une nouvelle propriété, [[lib_fr:Data.Cloud.AzureAPI.TAzureService.Timeout|Timeout]], que vous pouvez utiliser pour définir un délai de connexion pour vos requêtes.&lt;br /&gt;
&lt;br /&gt;
==[[RTL|RTL]]==&lt;br /&gt;
&lt;br /&gt;
===Prise en charge de Bluetooth LE et Beacon===&lt;br /&gt;
&lt;br /&gt;
{{Product|London}} {{Version}} fournit la nouvelle API WinRT Bluetooth qui prend en charge le [[Utilisation du Bluetooth Low Energy|Bluetooth Low Energy]] et les [[Utilisation des beacons|Beacons]] sous la plate-forme Window 10. Vous pouvez désormais exécuter des applications sous Windows 10 qui vous permettent d&amp;#039;effectuer les actions suivantes :&lt;br /&gt;
&lt;br /&gt;
* Analyser les périphériques BLE qui publient les données.&lt;br /&gt;
* Envoyer et recevoir des données publicitaires.&lt;br /&gt;
* Envoyer des données publicitaires BLE personnalisées via les [[lib_fr:System.Bluetooth.TBluetoothLEAdvertiseData.ManufacturerSpecificData|données spécifiques au fabricant]].&lt;br /&gt;
* Utiliser les beacons avec les formats [https://developer.apple.com/ibeacon/ iBeacon (EN)] et [http://altbeacon.org/ AltBeacon (EN)].&lt;br /&gt;
&lt;br /&gt;
===Amélioration des performances de la découverte Bluetooth LE===&lt;br /&gt;
&lt;br /&gt;
La RTL fournit une nouvelle implémentation de filtre d&amp;#039;analyse [[Utilisation du Bluetooth Low Energy|BLE]] qui bénéficie des nouvelles puces BLE basse consommation.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez maintenant rechercher des périphériques BLE spécifiques par le biais de filtres d&amp;#039;analyse indépendants personnalisés. A cette fin, vous pouvez :&lt;br /&gt;
&lt;br /&gt;
*Créer votre filtre sous forme de [[lib_fr:System.Bluetooth.TBluetoothLEScanFilter|TBluetoothLEScanFilter]].&lt;br /&gt;
*Spécifier les [[lib_fr:System.Bluetooth.TBluetoothLEScanFilter Properties|champs]] par lesquels vous voulez trier vos périphériques.&lt;br /&gt;
**Facultativement, pour les périphériques utilisant [[lib_fr:System.Bluetooth.TBluetoothLEAdvertiseData.ManufacturerSpecificData|ManufacturerSpecificData]], telles que [[Utilisation des beacons#Types de Beacons|AltBeacons et iBeacons]], vous pouvez utiliser la classe d&amp;#039;aide [[lib_fr:System.Beacon.TBeaconManufacturerDataHelper|TBeaconManufacturerDataHelper]] afin de filtrer selon ces données. Transmettez ensuite le contenu de [[lib_fr:System.Beacon.TBeaconManufacturerDataHelper|TBeaconManufacturerDataHelper]] à ce filtre.&lt;br /&gt;
&lt;br /&gt;
*Enfin, ajoutez le filtre à la [[lib_fr:System.Bluetooth.TBluetoothLEScanFilterList|liste de filtres]] et commencez à découvrir des périphériques avec la nouvelle implémentation de [[lib_fr:System.Bluetooth.TBluetoothLEManager.StartDiscovery|StartDiscovery]].&lt;br /&gt;
&lt;br /&gt;
===Bluetooth LE inclut de nouveaux événements pour gérer les abonnements aux caractéristiques===&lt;br /&gt;
&lt;br /&gt;
Le composant  [[lib_fr:System.Bluetooth.Components.TBluetoothLE|TBluetoothLE]] fournit deux nouveaux événements permettant de gérer les abonnements aux caractéristiques du serveur GATT : &lt;br /&gt;
&lt;br /&gt;
* [[lib_fr:System.Bluetooth.Components.TBluetoothLE.OnCharacteristicSubscribed|OnCharacteristicSubscribed]] est déclenché quand un périphérique distant  [[lib_fr:System.Bluetooth.Components.TBluetoothLE.SubscribeToCharacteristic|s&amp;#039;abonne]] à l&amp;#039;une des caractéristiques du serveur GATT.&lt;br /&gt;
* [[lib_fr:System.Bluetooth.Components.TBluetoothLE.OnCharacteristicUnSubscribed|OnCharacteristicUnSubscribed]] est déclenché quand un périphérique distant [[lib_fr:System.Bluetooth.Components.TBluetoothLE.UnSubscribeToCharacteristic|se désabonne]] de l&amp;#039;une des caractéristiques du serveur GATT.&lt;br /&gt;
&lt;br /&gt;
Les événements [[lib_fr:System.Bluetooth.Components.TBluetoothLE.OnConnect|OnConnect]] et [[lib_fr:System.Bluetooth.Components.TBluetoothLE.OnDisconnect|OnDisconnect]] existaient déjà et sont à présent inclus dans le composant [[lib_fr:System.Bluetooth.Components.TBluetoothLE|TBluetoothLE]] :&lt;br /&gt;
&lt;br /&gt;
* L&amp;#039;événement [[lib_fr:System.Bluetooth.Components.TBluetoothLE.OnConnect|OnConnect]] est déclenché lorsque vous vous connectez à un périphérique distant du serveur GATT. &lt;br /&gt;
* L&amp;#039;événement [[lib_fr:System.Bluetooth.Components.TBluetoothLE.OnDisconnect|OnDisconnect]] se déclenche lorsque vous vous déconnectez d&amp;#039;un périphérique distant du serveur GATT.&lt;br /&gt;
&lt;br /&gt;
===Prise en charge des beacons au format Eddystone===&lt;br /&gt;
&lt;br /&gt;
La RTL ajoute une prise en charge pour utiliser les [[Utilisation des beacons|beacons]] au format [https://github.com/google/eddystone/blob/master/protocol-specification.md Eddystone (EN)]. Il y a trois [[Utilisation des beacons#Types_de_beacons|types]] possibles :&lt;br /&gt;
&lt;br /&gt;
* [[lib_fr:System.Beacon.TEddystoneUID|EddystoneUID]] : le beacon diffuse un identifiant qui se compose du [[lib_fr:System.Beacon.TEddystoneUID.Namespace|Namespace]] (espace de nommage) et [[lib_fr:System.Beacon.TEddystoneUID.Instance|d&amp;#039;une instance]]. &lt;br /&gt;
* [[lib_fr:System.Beacon.TEddystoneURL|EddystoneURL]] : le beacon diffuse une [[lib_fr:System.Beacon.TEddystoneURL.URL|URL]] au format compressé.&lt;br /&gt;
* [[lib_fr:System.Beacon.TEddystoneTLM|EddystoneTLM]] : Le beacon diffuse des [[lib_fr:System.Beacon.TEddystoneTLM Fields|informations de télémétrie]] relatives à l&amp;#039;état du beacon.&lt;br /&gt;
&lt;br /&gt;
===Amélioration des performances d&amp;#039;analyse des beacons===&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;ajout de [[#Amélioration des performances de la découverte Bluetooth LE|nouveaux filtres d&amp;#039;analyse BLE]] vous permet d&amp;#039;améliorer le framework des beacons afin de :&lt;br /&gt;
&lt;br /&gt;
* [[lib_fr:System.Beacon.TBeaconManager.StartScan|Analyser]] n&amp;#039;importe quel [[lib_fr:System.Beacon.TKindofBeacon|type de beacon]] en même temps.&lt;br /&gt;
* Analyser les beacons non recensés &lt;br /&gt;
&lt;br /&gt;
Désormais, vous n&amp;#039;avez pas besoin d&amp;#039;enregistrer un beacon que vous voulez surveiller. A la place, vous pouvez :&lt;br /&gt;
&lt;br /&gt;
* Définir le mode [[lib_fr:System.Beacon.TBeaconScanMode|Extended]] sur votre périphérique [[lib_fr:System.Beacon.Components.TBeacon|TBeacon]].&lt;br /&gt;
* Spécifier les beacons non-enregistrés à surveiller dans la propriété [[lib_fr:System.Beacon.Components.TCustomBeacon.ModeExtended|ModeExtended]].&lt;br /&gt;
* Utiliser la nouvelle méthode [[lib_fr:System.Beacon.TBeaconManager.StartScan|StartScan]] afin de rechercher les beacons spécifiés.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Remarque &amp;#039;&amp;#039;&amp;#039;: La dernière étape vous permet de rechercher plusieurs [[lib_fr:System.Beacon.TKindofBeacon|types]] de beacons simultanément.&lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations, voir [[Utilisation des beacons#Recensement_des_r.C3.A9gions_.C3.A0_surveiller|comment recenser les beacons]] et [[Utilisation des beacons#Analyse des beacons|comment analyser les beacons]].&lt;br /&gt;
&lt;br /&gt;
===Prise en charge du format de beacon Eddystone par le composant TBeaconDevice===&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;ajout des [[#Prise en charge du format de beacon Eddystone|beacons Eddystone]] vous permet de fournir la prise en charge de ce format dans le composant [[lib_fr:System.Beacon.Components.TBeaconDevice|TBeaconDevice]].&lt;br /&gt;
&lt;br /&gt;
Le [[lib_fr:System.Beacon.Components.TBeaconDevice|TBeaconDevice]] vous permet maintenant d&amp;#039;exécuter des applications sur votre périphérique BLE qui diffusent des données de proximité avec les [https://github.com/google/eddystone/blob/master/protocol-specification.md spécifications (EN)] d&amp;#039;un beacon Eddystone. &lt;br /&gt;
&lt;br /&gt;
Vous pouvez sélectionner le format de [[lib_fr:System.Beacon.TEddystoneUID|EddystoneUID]] et [[lib_fr:System.Beacon.TEddystoneURL|EddystoneURL]] par le biais de la propriété [[lib_fr:System.Beacon.Components.TCustomBeaconDevice.BeaconType|BeaconType]].&lt;br /&gt;
&lt;br /&gt;
Prise en charge des plates-formes :&lt;br /&gt;
&lt;br /&gt;
* Les périphériques &amp;#039;&amp;#039;&amp;#039;Android&amp;#039;&amp;#039;&amp;#039; permettent la diffusion du format Eddystone, version 5.0 ou supérieure.&lt;br /&gt;
* Les périphériques &amp;#039;&amp;#039;&amp;#039;iOS&amp;#039;&amp;#039;&amp;#039; permettent uniquement la diffusion des cadres iBeacon.&lt;br /&gt;
* Les périphériques &amp;#039;&amp;#039;&amp;#039;Windows&amp;#039;&amp;#039;&amp;#039; n&amp;#039;admettent pas le format Eddystone, puisque l&amp;#039;API WinRT pour BLE ne permet pas la personnalisation du  [[lib_fr:System.Bluetooth.TBluetoothLEAdvertiseData.ServiceData|ServiceData]] diffusé.&lt;br /&gt;
&lt;br /&gt;
===Prise en charge des requêtes HTTP asynchrones===&lt;br /&gt;
&lt;br /&gt;
Vous pouvez désormais envoyer des requêtes HTTP de façon asynchrone afin que l&amp;#039;exécution de votre application ne s&amp;#039;arrête pas au cours d&amp;#039;un téléchargement.&lt;br /&gt;
&lt;br /&gt;
Si vous utilisez les composants client HTTP, voir [[Utilisation d&amp;#039;un client HTTP#Rendre les requêtes asynchrones|Rendre les requêtes asynhrones]]. Si vous utilisez l&amp;#039;API du client HTTP, voir [[lib_fr:System.Net.HttpClient.THTTPClient|THTTPClient]].&lt;br /&gt;
&lt;br /&gt;
===Prise en charge des fichiers ZIP cryptés===&lt;br /&gt;
&lt;br /&gt;
[[lib_fr:System.Zip.TZipFile|TZipFile]] fournit un [[lib_fr:System.Zip.TZipFile.OnCreateDecompressStream|événement]] (ou un [[lib_fr:System.Zip.TZipFile.CreateDecompressStreamCallBack|callback]]) que vous pouvez gérer afin de décompresser des fichiers ZIP cryptés, comme les fichiers ZIP protégés par mot de passe, quand vous les [[lib_fr:System.Zip.TZipFile.Extract|extrayez]].&lt;br /&gt;
&lt;br /&gt;
===Améliorations des listes de chaînes===&lt;br /&gt;
&lt;br /&gt;
[[lib_fr:System.Classes.TStrings|TStrings]] et ses sous-classes, telles que [[lib_fr:System.Classes.TStringList|TStringList]], acquièrent les fonctionnalités suivantes :&lt;br /&gt;
&lt;br /&gt;
* [[lib_fr:System.Classes.TStrings.AddPair|AddPair]], pour ajouter des paires clé-valeur à des listes de chaînes utilisant le [[Wikipedia:Fluent interface|codage en style fluent]].&lt;br /&gt;
* [[lib_fr:System.Classes.TStrings.Keys|Keys]], pour obtenir une liste de clés depuis une liste de chaînes contenant des paires clé-valeur.&lt;br /&gt;
* [[lib_fr:System.Classes.TStrings.Options|Options]], pour contrôler facilement de nombreuses propriétés booléennes de la liste de chaînes.&lt;br /&gt;
* [[lib_fr:System.Classes.TStrings.SetStrings|SetStrings]], pour copier les chaînes d&amp;#039;un autre objet [[lib_fr:System.Classes.TStrings|TStrings]]. Elle est similaire à [[lib_fr:System.Classes.TStrings.Assign|Assign]], mais sans copier les propriétés multiples copiées par  [[lib_fr:System.Classes.TStrings.Assign|Assign]].&lt;br /&gt;
* [[lib_fr:System.Classes.TStrings.TrailingLineBreak|TrailingLineBreak]], qui détermine si la propriété [[lib_fr:System.Classes.TStrings.Text|Text]] doit contenir un saut de ligne après la dernière ligne.&lt;br /&gt;
* [[lib_fr:System.Classes.TStrings.Updating|Updating]], qui indique si la liste de chaînes est au milieu d&amp;#039;une [[lib_fr:System.Classes.TStrings.BeginUpdate|mise à jour]].&lt;br /&gt;
* [[lib_fr:System.Classes.TStrings.UseLocale|UseLocale]], qui détermine l&amp;#039;implémentation que la liste de chaînes doit utiliser pour la comparaison de chaînes.&lt;br /&gt;
* [[lib_fr:System.Classes.TStrings.ExtractName|ExtractName]] a obtenu un nouveau champ  ({{code|AllNames}}) qui détermine le retour de [[lib_fr:System.Classes.TStrings.ExtractName|ExtractName]] quand la chaîne à analyser n&amp;#039;est pas une paire clé-valeur.&lt;br /&gt;
&lt;br /&gt;
{{Code|TStringList}} gagne aussi de nouveaux [[lib_fr:System.Classes.TStringList.Create|constructeurs surchargés]], pour rendre plus facile la création d&amp;#039;instances initialisées de {{Code|TStringList}}.&lt;br /&gt;
&lt;br /&gt;
===Améliorations de TMemIniFile===&lt;br /&gt;
&lt;br /&gt;
[[lib_fr:System.IniFiles.TMemIniFile|TMemIniFile]] acquiert les fonctionnalités suivantes :&lt;br /&gt;
&lt;br /&gt;
* Vous pouvez spécifier la valeur de la propriété [[lib_fr:System.IniFiles.TMemIniFile.CaseSensitive|CaseSensitive]] dans l&amp;#039;appel au [[lib_fr:System.IniFiles.TMemIniFile.Create|constructeur]].&lt;br /&gt;
* La nouvelle propriété [[lib_fr:System.IniFiles.TMemIniFile.Modified|Modified]] indique si le fichier INI a été modifié depuis qu&amp;#039;il a été [[lib_fr:System.IniFiles.TMemIniFile.Create|chargé depuis le disque]].&lt;br /&gt;
* La nouvelle propriété [[lib_fr:System.IniFiles.TMemIniFile.AutoSave|AutoSave]] détermine si l&amp;#039;instance de {{Code|TMemIniFile}} doit [[lib_fr:System.IniFiles.TMemIniFile.UpdateFile|sauvegarder]] sur le disque toutes les modifications au moment où elle est [[lib_fr:System.IniFiles.TMemIniFile.Destroy|détruite]].&lt;br /&gt;
&lt;br /&gt;
===Prise en charge de la mise en tampon de TFileStream===&lt;br /&gt;
&lt;br /&gt;
{{Code|TFDFileStream}} a été déplacé de [[lib_fr:FireDAC.Stan.Util|FireDAC.Stan.Util]] vers [[lib_fr:System.Classes|System.Classes]] et a été renommé en [[lib_fr:System.Classes.TBufferedFileStream|TBufferedFileStream]].&lt;br /&gt;
&lt;br /&gt;
[[lib_fr:System.Classes.TBufferedFileStream|TBufferedFileStream]] est un descendant de  [[lib_fr:System.Classes.TFileStream|TFileStream]] qui optimise plusieurs écritures et lectures consécutives de petite taille. Autrement dit, [[lib_fr:System.Classes.TBufferedFileStream|TBufferedFileStream]] ajoute la prise en charge de la mise en tampon de [[lib_fr:System.Classes.TFileStream|TFileStream]].&lt;br /&gt;
&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Remarque&amp;#039;&amp;#039;&amp;#039;: [[lib_fr:System.Classes.TBufferedFileStream|TBufferedFileStream]] n&amp;#039;offre pas de gain de performance pour la lecture ou l&amp;#039;écriture à des positions aléatoires, ou pour des lectures ou écritures de grande taille.&lt;br /&gt;
&lt;br /&gt;
===Modification de la syntaxe de chemins d&amp;#039;accès JSON aux propriétés des objets===&lt;br /&gt;
&lt;br /&gt;
La prise en charge de la [[lib_fr:System.JSON.TJSONPathParser|syntaxe de chemins JSON]] pour accéder aux propriétés des objets contenant des points dans leur nom a changé dans {{Version|London}} :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Exemple de syntaxe&lt;br /&gt;
! {{Version|Seattle}}&lt;br /&gt;
! {{Version|London}}&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
{{Code|root.&amp;quot;child.name&amp;quot;}}&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
{{Code|root[&amp;quot;child.name&amp;quot;]}}&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
{{Code|root[&amp;#039;child.name&amp;#039;]}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Optimisation des expressions régulières et remplacement de chaîne===&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;utilisation des [[rad_fr:Expressions régulières|expressions régulières]] est désormais optimisée de deux façons : les temps d&amp;#039;exécution et la consommation de mémoire.&lt;br /&gt;
&lt;br /&gt;
Au sujet du temps d&amp;#039;exécution, le tableau suivant montre un exemple du gain de vitesse en utilisant les expressions régulières sur les plates-formes Windows et Android. Ces exemples ont été calculés pour une analyse d&amp;#039;expression régulière simple (fichier de 170 Ko).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Plate-forme&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Temps d&amp;#039;exécution (ms)&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Gain de temps&lt;br /&gt;
|-&lt;br /&gt;
! Avant&lt;br /&gt;
! Optimisé&lt;br /&gt;
|-&lt;br /&gt;
| Windows (Intel i7, Windows 7)&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | 5900&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | 29&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; |  ~310x&lt;br /&gt;
|-&lt;br /&gt;
| Android (Motorola E(2ème génération), Android 5.0.2)&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | 47075&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | 420&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | ~111x&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: &amp;#039;&amp;#039;&amp;#039;Remarque&amp;#039;&amp;#039;&amp;#039; : Les valeurs de gain de temps montrées dans ce tableau sont spécifiques à cet exemple. Le gain de temps que vous pouvez obtenir peut varier en fonction de l&amp;#039;expression régulière spécifique et de la machine de traitement.&lt;br /&gt;
&lt;br /&gt;
Au sujet de l&amp;#039;optimisation de la consommation mémoire, désormais, un nombre très important de correspondances n&amp;#039;affecte plus significativement la consommation de mémoire.&lt;br /&gt;
&lt;br /&gt;
Les performances de la fonction [[lib_fr:System.SysUtils.StringReplace|StringReplace]] ont été améliorées elles aussi.&lt;br /&gt;
&lt;br /&gt;
===Améliorations de la connexion HTTP===&lt;br /&gt;
&lt;br /&gt;
* Deux nouveaux délais d&amp;#039;attente : {{code|ConnectionTimeout}} et {{code|ResponseTimeout}} pour le [[lib_fr:System.Net.URLClient|framework]] et le [[lib_fr:System.Net.HttpClientComponent|composant]] HTTP.&lt;br /&gt;
&lt;br /&gt;
===Fonctions URLEncode / URLDecode===&lt;br /&gt;
&lt;br /&gt;
La fonctionnalité d&amp;#039;encodage et de décodage d&amp;#039;URL a été déplacée vers [[lib_fr:System.NetEncoding|System.NetEncoding]].&lt;br /&gt;
&lt;br /&gt;
Les fonctions [[lib_fr:System.Net.URLClient.TURI.URLEncode|System.Net.URLClient.TURI.URLEncode]] et [[lib_fr:System.Net.URLClient.TURI.URLDecode|System.Net.URLClient.TURI.URLDecode]] sont désormais obsolètes. Utilisez [[lib_fr:System.NetEncoding.TURLEncoding.URLDecode|System.NetEncoding.TURLEncoding.URLDecode]] et [[lib_fr:System.NetEncoding.TURLEncoding.Encode|System.NetEncoding.TURLEncoding.Encode]] à la place.&lt;br /&gt;
&lt;br /&gt;
Nouvelles fonctions ajoutées à [[lib_fr:System.NetEncoding|System.NetEncoding]] : &lt;br /&gt;
&lt;br /&gt;
* [[lib_fr:System.NetEncoding.TURLEncoding.EncodePath|EncodePath]]&lt;br /&gt;
* [[lib_fr:System.NetEncoding.TURLEncoding.EncodeAuth|EncodeAuth]]&lt;br /&gt;
* [[lib_fr:System.NetEncoding.TURLEncoding.EncodeQuery|EncodeQuery]]&lt;br /&gt;
* [[lib_fr:System.NetEncoding.TURLEncoding.EncodeForm|EncodeForm]]&lt;br /&gt;
&lt;br /&gt;
===Autres modifications relatives à la RTL===&lt;br /&gt;
&lt;br /&gt;
* L&amp;#039;événement {{Code|TTetheringProfile.OnConnectProfile}} a été divisé en deux : [[lib_fr:System.Tether.Manager.TTetheringProfile.OnBeforeConnectProfile|OnBeforeConnectProfile]] et [[lib_fr:System.Tether.Manager.TTetheringProfile.OnAfterConnectProfile|OnAfterConnectProfile]].&lt;br /&gt;
* Les types de chaînes [[lib_fr:System.UTF8String|UTF8String]] et [[lib_fr:System.RawByteString|RawByteString]] sont maintenant pris en charge sur iOS et Android.&lt;br /&gt;
* La [[Utilisation de la bibliothèque de programmation parallèle|Bibliothèque de programmation parallèle]] inclut maintenant un nouvel enregistrement, [[lib_fr:System.Threading.TThreadPoolStats|TThreadPoolStats]], que vous pouvez utiliser afin de prendre une capture de l&amp;#039;état interne du [[lib_fr:System.Threading.TThreadPool|pool de threads]] à des fins de diagnostic.&lt;br /&gt;
* Les [[lib_fr:System.Net.HttpClient.THTTPResponse Methods|accesseurs en lecture de THTTPResponse]] sont maintenant publics, il n&amp;#039;est plus nécessaire d&amp;#039;utiliser les interfaces [[lib_fr:System.Net.URLClient.IURLResponse|IURLResponse]] ou [[lib_fr:System.Net.HttpClient.IHTTPResponse|IHTTPResponse]] afin de les utiliser.&lt;br /&gt;
* La classe {{Code|EOperationCanceled}} de l&amp;#039;unité [[lib_fr:System.Threading|System.Threading]] a été renommée en [[lib_fr:System.SysUtils.EOperationCancelled|EOperationCancelled]] et déplacée vers l&amp;#039;unité [[lib_fr:System.SysUtils|System.SysUtils]].&lt;br /&gt;
* La RTL a retiré la dépendance d&amp;#039;unités {{Path|Winapi.ActiveX}} de l&amp;#039;unité {{Path|Winapi.Winrt}}.&lt;br /&gt;
* La procédure [[lib_fr:FMX.Dialogs.ShowMessage|ShowMessage]] est désormais asynchrone sur iOS.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==[[Frameworks et bibliothèques#API natives des plates-formes|API natives]]==&lt;br /&gt;
&lt;br /&gt;
* [http://developer.android.com/intl/es/reference/android/bluetooth/le/package-summary.html L&amp;#039;API Bluetooth LE Android (EN)], incluse dans l&amp;#039;unité {{Path|Androidapi.JNI.Bluetooth}}, a été mise à jour avec de nouvelles classes et méthodes selon les modifications  [http://developer.android.com/intl/es/sdk/api_diff/21/changes.html introduites dans l&amp;#039;API niveau 21 (EN)] pour Android version 5.0 ou supérieure.&lt;br /&gt;
* {{Product|London}} fournit de nouvelles unités pour [[Wikipedia:DirectX#DirectX 12|DirectX 12]].&lt;br /&gt;
* Les unités pour [[Wikipedia:Windows Runtime|WinRT]] sont maintenant plus faciles à utiliser.&lt;br /&gt;
&lt;br /&gt;
==[[Chaînes d&amp;#039;outils Delphi|Compilateurs {{Delphi|London}}]]==&lt;br /&gt;
&lt;br /&gt;
===Amélioration des performances de compilation des génériques===&lt;br /&gt;
&lt;br /&gt;
Les compilateurs {{Delphi|London}} ont subi plusieurs changements concernant les génériques, qui ont eu pour effet les améliorations suivantes :&lt;br /&gt;
&lt;br /&gt;
* L&amp;#039;analyse des génériques est jusqu&amp;#039;à trois fois plus rapide.&lt;br /&gt;
* La performance de [[DCC32|DCC32]], [[DCC64|DCC64]] et [[DCCOSX|DCCOSX]] pour la liaison de projets qui utilisent beaucoup les génériques a été améliorée.&lt;br /&gt;
&lt;br /&gt;
===Attributs pris en charge par tous les compilateurs===&lt;br /&gt;
&lt;br /&gt;
Désormais, tous les compilateurs {{Delphi|London}} prennent en charge les attributs suivants :&lt;br /&gt;
&lt;br /&gt;
* {{code|[[Attributs du compilateur#Unsafe|unsafe]]}}&lt;br /&gt;
* {{code|[[Attributs du compilateur#Volatile|volatile]]}}&lt;br /&gt;
* {{code|[[Attributs du compilateur#Weak|weak]]}}&lt;br /&gt;
&lt;br /&gt;
===Autres améliorations du compilateur {{Delphi|London}}===&lt;br /&gt;
&lt;br /&gt;
* La mémoire allouée aux [[E2163 Trop de symboles conditionnels (Delphi)|symboles conditionnels]] a été étendue de 256 octets à 4096 octets.&lt;br /&gt;
* La taille de [[lib_fr:System.Extended|Extended]] est désormais de 16 octets pour être compatible avec [[BCCOSX|BCCOSX]].&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;
==[[Compilateurs C++|Compilateurs C++]]==&lt;br /&gt;
&lt;br /&gt;
* Améliorations aux [[Compilateurs C++ améliorés par Clang|compilateurs C++ améliorés par Clang]]:&lt;br /&gt;
** Désormais, le compilateur [[BCC32C|BCC32C]] fournit la vérification des dépendances. La commande [[Compiler et Make de tous les projets|Make]] compile seulement les fichiers qui ont été modifiés depuis la dernière construction, de même que les fichiers dont les dépendances ont changé.&lt;br /&gt;
** [[BCCAARM|BCCAARM]] (Android) et [[BCCIOSARM|BCCIOSARM]] (iOS 32 bits) ont été mis à jour pour utiliser [http://llvm.org/releases/3.3/tools/clang/docs/ReleaseNotes.html Clang 3.3 (EN)] et [http://llvm.org/releases/3.3/docs/ReleaseNotes.html LLVM 3.3 (EN)].&lt;br /&gt;
** Vous pouvez utiliser des [http://en.cppreference.com/w/cpp/language/range-for boucles for basées sur l&amp;#039;étendue (EN) ] et des [http://en.cppreference.com/w/cpp/iterator itérateurs STL (EN)] pour les conteneurs RTL et conteneurs dérivés suivants : [[lib_fr:System.DynamicArray|DynamicArray]], [[lib_fr:System.Classes.TCollection|TCollection]] et [[lib_fr:System.Generics.Collections.TEnumerable|TEnumerable]].&lt;br /&gt;
** Vous pouvez [[Comment gérer les méthodes anonymes Delphi dans C++#Utilisation des expressions lambda|utiliser des expressions lambda]] dans vos appels à [[lib_fr:System.Threading.TParallel.For|TParallel::For]], [[lib_fr:System.Threading.TTask.Create|TTask::Create]] ou [[lib_fr:System.Threading.TTask.Future|TTask::Future]].&lt;br /&gt;
** L&amp;#039;option de ligne de commande {{code|-PC}} utilisée pour activer la compilation parallèle sur la ligne de commande est maintenant obsolète. Utilisez &amp;lt;code&amp;gt;--jobs=&amp;amp;lt;N&amp;amp;gt;&amp;lt;/code&amp;gt; à la place. Pour de plus amples informations, voir [[Interfaces de ligne de commande des compilateurs C++ améliorés par Clang#Utilisation de la compilation parallèle|Utilisation de la compilation parallèle]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==[[Référence EDI et utilitaires|EDI]]==&lt;br /&gt;
&lt;br /&gt;
===Concepteur de fiches flottant===&lt;br /&gt;
&lt;br /&gt;
Vous pouvez maintenant détacher le Concepteur de fiches dans VCL et FireMonkey. Vous pouvez activer ou désactiver le Concepteur incorporé dans les [[Options du Concepteur de fiches|options du Concepteur de fiches]]. Pour détacher le Concepteur de fiches, accédez à {{Menu|Outils &amp;amp;gt; Options &amp;amp;gt; Concepteur de fiches}}, effacez la case à cocher &amp;#039;&amp;#039;&amp;#039;Concepteur de fiches&amp;#039;&amp;#039;&amp;#039; et cliquez sur &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039;. Les changements prendront effet la prochaine fois que vous redémarrerez l&amp;#039;EDI.&lt;br /&gt;
&lt;br /&gt;
===[[FireUI Live Preview|Aperçu instantané FireUI]]===&lt;br /&gt;
&lt;br /&gt;
[[FireUI Live Preview|Aperçu instantané FireUI]] est un nouvel outil inclus dans {{product}} afin de diffuser la fiche active de l&amp;#039;application en cours de conception vers plusieurs périphériques simultanément, afin de voir en temps réel quel aspect a votre application.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;L&amp;#039;aperçu instantané FireUI&amp;#039;&amp;#039;&amp;#039; est constitué de deux parties :&lt;br /&gt;
&lt;br /&gt;
* [[FireUI Live Preview (IDE)|Aperçu instantané FireUI (EDI)]] : l&amp;#039;IDE sert de serveur gérant les connexions des périphériques.&lt;br /&gt;
* [[FireUI App Preview|Aperçu d&amp;#039;app FireUI]]: l&amp;#039;application client que les périphériques cible doivent connecter à une instance de l&amp;#039;EDI.&lt;br /&gt;
&lt;br /&gt;
[[FireUI Live Preview (IDE)|Aperçu instantané FireUI (IDE)]] ne nécessite aucune installation supplémentaire et est livré avec une configuration par défaut. Pour configurer des options supplémentaires de l&amp;#039;EDI, voir [[FireUI Live Preview (IDE Options)|Aperçu instantané FireUI (Options de l&amp;#039;EDI)]].&lt;br /&gt;
&lt;br /&gt;
===[[Dépendances GetIt|Dépendances GetIt]]===&lt;br /&gt;
&lt;br /&gt;
Nouvelle [[Boîte de dialogue Options de projet|page d&amp;#039;options de projet]] pour gérer les dépendances GetIt.&lt;br /&gt;
&lt;br /&gt;
Dans cette boîte de dialogue vous pouvez définir les dépendances du projet relatives aux packages [[Gestionnaire de packages GetIt|Gestionnaire de packages GetIt]] .&lt;br /&gt;
&lt;br /&gt;
Vous pouvez trouver la page d&amp;#039;options des &amp;#039;&amp;#039;&amp;#039;Dépendances GetIt&amp;#039;&amp;#039;&amp;#039; sous {{Menu|Projet &amp;amp;gt; Options &amp;amp;gt; [[Dépendances GetIt|Dépendances GetIt]]}}.&lt;br /&gt;
&lt;br /&gt;
===[[Using the Bookmark Stack|Pile de signets]]===&lt;br /&gt;
&lt;br /&gt;
La &amp;#039;&amp;#039;&amp;#039;pile de signets&amp;#039;&amp;#039;&amp;#039; est une méthode pour naviguer à travers votre code source en ajoutant des signets à votre code dans l&amp;#039;ordre de la pile. Vous pouvez ensuite naviguer en arrière via vos signets en accédant au dernier signet de la pile, qui correspond donc au dernier signet ajouté.&lt;br /&gt;
&lt;br /&gt;
Pour plus de détails, voir [[Editeur de code#pile_de_signets|Pile de signets]] et [[Using the Bookmark Stack|Utilisation de la pile de signets]].&lt;br /&gt;
&lt;br /&gt;
===[[Editeur de code#Extension_de_sélection|Extension de sélection]]===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;L&amp;#039;extension de sélection&amp;#039;&amp;#039;&amp;#039; vous permet de sélectionner l&amp;#039;identificateur sous le curseur et d&amp;#039;étendre la sélection à des groupes syntaxiques plus larges tels que les instructions, les lignes, les blocs, les méthodes, etc. Utilisez le raccourci {{Key|Ctrl+W}} pour commencer à étendre la sélection.&lt;br /&gt;
&lt;br /&gt;
Pour plus de détails, voir [[Editeur de code#Extension de sélection|Extension de sélection]].&lt;br /&gt;
&lt;br /&gt;
===Métriques de toxicité des méthodes===&lt;br /&gt;
&lt;br /&gt;
La nouvelle page de projet &amp;#039;&amp;#039;&amp;#039;[[Métriques de toxicité des méthodes|Métriques de toxicité des méthodes]]&amp;#039;&amp;#039;&amp;#039; ({{Menu|Projet &amp;amp;gt; Métriques de toxicité des méthodes}}) affiche des métriques relatives aux fonctions de votre projet actif que vous pouvez utiliser pour trouver des méthodes bien adaptées au refactoring. Vous pouvez personnaliser les seuils pour les métriques clés dans la nouvelle page d&amp;#039;options &amp;#039;&amp;#039;&amp;#039;[[Métriques de toxicité|Métriques de toxicité]]&amp;#039;&amp;#039;&amp;#039;.&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Améliorations de la Vue Structure pour C++===&lt;br /&gt;
&lt;br /&gt;
La &amp;#039;&amp;#039;&amp;#039;[[Vue Structure|Vue Structure]]&amp;#039;&amp;#039;&amp;#039; a subi plusieurs améliorations pour C++, telles que :&lt;br /&gt;
&lt;br /&gt;
* Prise en charge des fonctionnalités [[C++11|C++11]], telles que les [[Fonctionnalités C++11 prises en charge par les compilateurs C++ améliorés par Clang de RAD Studio#Templates d&amp;#039;alias|templates d&amp;#039;alias]] ou les [[Fonctionnalités C++11 prises en charge par les compilateurs C++ améliorés par Clang de RAD Studio#Liste d&amp;#039;initialiseurs|listes d&amp;#039;initialiseurs]].&lt;br /&gt;
* Prise en charge des fonctions qui renvoient un [http://en.cppreference.com/w/cpp/language/pointer#Pointers_to_functions pointeur de fonction (EN)].&lt;br /&gt;
* Prise en charge des [http://en.cppreference.com/w/cpp/language/bit_field champs de bits non nommés (EN)].&lt;br /&gt;
* Prise en charge améliorée du [[Throw|throw]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Améliorations du service Android===&lt;br /&gt;
&lt;br /&gt;
* Nouvel expert permettant de retirer automatiquement les projets du [[Service Android|service Android]] des [[Application multi-périphérique|applications multi-périphériques]].&lt;br /&gt;
*[[Dépendances du projet|Dépendances du projet]] automatiquement activées :&lt;br /&gt;
** Cette option permet la construction automatique de tous les projets du [[Service Android|service Android]] ajoutés à une [[Application multi-périphérique|application multi-périphérique]], avant la construction de l&amp;#039;application principale.&lt;br /&gt;
&lt;br /&gt;
Pour plus de détails, voir [[Création de services Android|Création de services Android]].&lt;br /&gt;
&lt;br /&gt;
===Prise en charge de l&amp;#039;exécution d&amp;#039;applications iOS Ad-hoc===&lt;br /&gt;
&lt;br /&gt;
Vous pouvez désormais [[Exécution de votre application iOS sur un périphérique iOS|exécuter des applications iOS]] qui sont construites avec l&amp;#039;EDI en utilisant la [[Présentation des plates-formes cible#Utilisation_du_noeud_Configuration|configuration de plate-forme]] &amp;#039;&amp;#039;&amp;#039;Ad-hoc&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
===Fichier info.plist personnalisable===&lt;br /&gt;
&lt;br /&gt;
Vous pouvez [[Personnalisation de votre fichier info.plist|personnaliser votre fichier info.plist]] pour les applications OS X et iOS.&lt;br /&gt;
&lt;br /&gt;
===Améliorations de la conception pour des montres intelligentes Android===&lt;br /&gt;
&lt;br /&gt;
Maintenant, le &amp;#039;&amp;#039;&amp;#039;[[Concepteur de fiches|Concepteur de fiches]]&amp;#039;&amp;#039;&amp;#039; fournit :&lt;br /&gt;
&lt;br /&gt;
* Deux [[Concepteur de fiches#Sélecteur de vues|vues]] spécifiques pour les montres intelligentes Android.&lt;br /&gt;
* Un [[Aperçu multi-périphérique|aperçu]] de la zone de conception pour quatre montres intelligentes Android différentes.&lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations, voir [[Création d&amp;#039;une app Android#Création d&amp;#039;applications pour les montres intelligentes Android|Création d&amp;#039;applications pour les montres intelligentes Android]].&lt;br /&gt;
&lt;br /&gt;
===Nouvelle page d&amp;#039;options Association de fichiers===&lt;br /&gt;
&lt;br /&gt;
Dans les versions précédentes, vous deviez sélectionner les extensions de fichier que vous vouliez associer à {{Product}} lors du processus d&amp;#039;installation.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez maintenant configurer les associations de fichiers de {{Product}} sur la nouvelle page d&amp;#039;options &amp;#039;&amp;#039;&amp;#039;[[Association de fichiers|Association de fichiers]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
===Nouvelle option pour montrer les messages d&amp;#039;information depuis le compilateur Delphi===&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;EDI vous permet désormais d&amp;#039;afficher des messages d&amp;#039;information depuis le compilateur {{delphi}} dans l&amp;#039;onglet Sortie de la [[Vue Messages|Vue Messages]].&lt;br /&gt;
&lt;br /&gt;
Dans {{Menu|Projet &amp;amp;gt; Options &amp;amp;gt; [[Compilateur Delphi|Compilateur Delphi]]}}, vous pouvez cocher l&amp;#039;option &amp;#039;&amp;#039;&amp;#039;Afficher les messages généraux&amp;#039;&amp;#039;&amp;#039; pour votre projet.&lt;br /&gt;
&lt;br /&gt;
===Nouvelle option pour masquer/afficher la [[Editeur de code#Barre d&amp;#039;outils de navigation|barre d&amp;#039;outils de navigation]]===&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;EDI vous permet désormais de masquer la [[Editeur de code#Barre_d_outils_de_navigation|barre d&amp;#039;outils de navigation]] dans [[Editeur de code|l&amp;#039;éditeur de code]].&lt;br /&gt;
&lt;br /&gt;
La nouvelle option &amp;#039;&amp;#039;&amp;#039;Afficher la barre d&amp;#039;outils de navigation&amp;#039;&amp;#039;&amp;#039; est située dans {{menu| Outils &amp;amp;gt; Options &amp;amp;gt; Options de l&amp;#039;éditeur &amp;amp;gt; Affichage}}.&lt;br /&gt;
&lt;br /&gt;
Pour plus d&amp;#039;information, voir [[Utilisation de la barre d&amp;#039;outils de navigation#Masquer la barre d&amp;#039;outils de navigation|Masquer la barre d&amp;#039;outils de navigation]].&lt;br /&gt;
&lt;br /&gt;
===Prise en charge des résolutions élevées===&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;EDI a reçu la [https://msdn.microsoft.com/en-us/library/windows/desktop/dd371771%28v=vs.85%29.aspx prise en charge DPI (EN)]. Il offre une meilleure expérience utilisateur sur les systèmes qui utilisent une valeur DPI supérieure à 96 PPI.&lt;br /&gt;
&lt;br /&gt;
===Autres modifications relatives à l&amp;#039;EDI===&lt;br /&gt;
&lt;br /&gt;
* La [[Utilisation de la vue CPU|vue CPU]] prend en charge le débogage des applications iOS et Android.&lt;br /&gt;
&lt;br /&gt;
==[[Débogage des applications - Index|Debogueurs]]==&lt;br /&gt;
&lt;br /&gt;
===Débogueurs iOS et Android===&lt;br /&gt;
&lt;br /&gt;
* Prise en charge améliorée pour les [[Types structurés#Tableaux dynamiques|tableaux dynamiques]] {{Delphi}}.&lt;br /&gt;
&lt;br /&gt;
===Débogueur iOS 64 bits===&lt;br /&gt;
&lt;br /&gt;
Le débogueur iOS 64 bits acquiert les fonctionnalités suivantes :&lt;br /&gt;
&lt;br /&gt;
* Prise en charge de Unicode&lt;br /&gt;
* Prise en charge améliorée des tableaux, chaînes et caractères {{Delphi}}.&lt;br /&gt;
* Prise en charge des tableaux à index de base non-zéro&lt;br /&gt;
* Prise en charge de l&amp;#039;évaluation des propriétés et des variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Capacité à définir des points d&amp;#039;arrêt dans les fichiers d&amp;#039;en-tête C++.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==[[Utilitaires|Utilitaires]]==&lt;br /&gt;
&lt;br /&gt;
===[[Installateur|Nouvel installateur {{Product}}]]===&lt;br /&gt;
&lt;br /&gt;
{{Product}} fournit un nouvel [[Installateur|installateur]] qui vous permet d&amp;#039;installer uniquement les [[Plates-formes cible prises en charge|plates-formes cible]] que vous souhaitez utiliser. Après avoir installé {{Product}}, vous pouvez de nouveau utiliser l&amp;#039;installateur chaque fois que vous souhaitez ajouter ou supprimer des plates-formes cible de {{Product}}.&lt;br /&gt;
&lt;br /&gt;
===Autres modifications des utilitaires===&lt;br /&gt;
&lt;br /&gt;
* L&amp;#039;outil [[Java2OP.exe, le générateur de fichier pont natif pour Android|Java2OP.exe]] fonctionne maintenant avec JDK 8.&lt;br /&gt;
* Nouvel outil &amp;#039;&amp;#039;&amp;#039;SdkTransform.exe&amp;#039;&amp;#039;&amp;#039;. Il permet de convertir des en-têtes Objective-C ou C++ headers en en-têtes {{Delphi|London}}.&lt;br /&gt;
&lt;br /&gt;
==[[samp_en:Main Page|Applications exemple]]==&lt;br /&gt;
&lt;br /&gt;
De nouvelles applications exemple ont été ajoutées à {{Version|Berlin}} :&lt;br /&gt;
&lt;br /&gt;
* L&amp;#039;exemple RTL.RegExpression :&lt;br /&gt;
** La version C++ de [[samp_en:RTL.RegExpressionFMX Sample|l&amp;#039;exemple RTL.RegExpression FMX]].&lt;br /&gt;
** La version C++ de [[samp_en:RTL.RegExpressionVCL Sample|l&amp;#039;exemple RTL.RegExpression VCL]].&lt;br /&gt;
* La version C++ de [[samp_en:VCL.Windows 10 SharingContract Sample|l&amp;#039;exemple VCL.Windows 10 SharingContract]]&lt;br /&gt;
* [[samp_en:EMS.ThingPoint IoT Sample|L&amp;#039;exemple EMS.ThingPoint IoT]].&lt;br /&gt;
* La version C++ et {{Delphi}} de [[samp_en:EMS.APIDocAttributes Sample|l&amp;#039;exemple EMS.APIDocAttributes]].&lt;br /&gt;
* [[samp_en:FMX.Remote Service Demo Sample|L&amp;#039;exemple de démo FMX.Remote Service]].&lt;br /&gt;
* [[samp_en:FMX.Birthday Reminder Sample|L&amp;#039;exemple de démo FMX.Birthday Reminder]].&lt;br /&gt;
* Exemples FireDAC :&lt;br /&gt;
** Exemple [[samp_en:FireDAC.InterBase Arrays Sample|FireDAC InterBase Arrays]]&lt;br /&gt;
** L&amp;#039;exemple MongoDB.ListView.&lt;br /&gt;
*** Vous pouvez trouver cet exemple dans : {{path|Object Pascal\Database\FireDAC\Samples\DBMS Specific\MongoDB\ListView}}&lt;br /&gt;
** L&amp;#039;exemple Oracle.CQN.&lt;br /&gt;
*** Vous pouvez trouver cet exemple dans : {{path|Object Pascal\Database\FireDAC\Samples\DBMS Specific\Oracle\CQN}}&lt;br /&gt;
** L&amp;#039;exemple PostgreSQL.Arrays.&lt;br /&gt;
*** Vous pouvez trouver cet exemple dans : {{path|Object Pascal\Database\FireDAC\Samples\DBMS Specific\PostgreSQL\Arrays}}&lt;br /&gt;
** L&amp;#039;exemple PostgreSQL.Ranges.&lt;br /&gt;
*** Vous pouvez trouver cet exemple dans : {{path|Object Pascal\Database\FireDAC\Samples\DBMS Specific\PostgreSQL\Ranges}}&lt;br /&gt;
** L&amp;#039;exemple SQLite.Encryption.&lt;br /&gt;
*** Vous pouvez trouver cet exemple dans : {{path|Object Pascal\Database\FireDAC\Samples\DBMS Specific\SQLite\Encryption}}&lt;br /&gt;
&lt;br /&gt;
==Aide==&lt;br /&gt;
&lt;br /&gt;
* Les [[Utilisation de l&amp;#039;aide - CHM|fichiers CHM]] fournissent un onglet &amp;#039;&amp;#039;&amp;#039;Favoris&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
==Rubriques==&lt;br /&gt;
&lt;br /&gt;
* [[Notes de release|Notes de release]]&lt;br /&gt;
* [[Nouveautés des releases précédentes|Nouveautés des releases précédentes]] &lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[Notes d&amp;#039;installation|Notes d&amp;#039;installation]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Berlin]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Nouveaut%C3%A9s_de_Berlin&amp;diff=198086</id>
		<title>Nouveautés de Berlin</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Nouveaut%C3%A9s_de_Berlin&amp;diff=198086"/>
		<updated>2016-03-03T12:21:15Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : Internal review. LOC-21794&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Accueil|Aide en ligne de {{Product}} {{Version}}}} &lt;br /&gt;
__TOC__&lt;br /&gt;
La release {{Version|London}} contient de nouvelles fonctionnalités ainsi que des améliorations.&lt;br /&gt;
&lt;br /&gt;
==[[FireMonkey|{{FM|London}}]]==&lt;br /&gt;
&lt;br /&gt;
===Prise en charge de Android 6.0===&lt;br /&gt;
&lt;br /&gt;
Android {{AndroidSDKVersion}} (API Level {{AndroidAPILevel}}) est désormais [[Périphériques Android pris en charge pour le développement d&amp;#039;applications|pris en charge]].&lt;br /&gt;
&lt;br /&gt;
===Carnet d&amp;#039;adresses pour iOS et Android===&lt;br /&gt;
&lt;br /&gt;
Sur les plates-formes mobiles (Android et iOS), {{FM|London}} prend en charge le composant [[lib_fr:FMX.AddressBook.TAddressBook|TAddressBook]] qui permet à vos applications d&amp;#039;accéder au carnet d&amp;#039;adresses du périphérique. Les fonctionnalités élémentaires de ce composant sont les suivantes :&lt;br /&gt;
&lt;br /&gt;
* Extraction de l&amp;#039;ensemble des contacts d&amp;#039;un téléphone ou d&amp;#039;une tablette.&lt;br /&gt;
* Accès à toutes les sources dans le carnet d&amp;#039;adresses du périphérique.&lt;br /&gt;
* Extraction de tous les contacts appartenant à une source spécifiée.&lt;br /&gt;
* Extraction des contacts appartenant à des groupes spécifiés.&lt;br /&gt;
* Modification ou suppression des contacts et des groupes existants.&lt;br /&gt;
* Création de nouveaux contacts.&lt;br /&gt;
* Renommage des groupes existants.&lt;br /&gt;
&lt;br /&gt;
Pour davantage d&amp;#039;informations et d&amp;#039;autres exemples, voir [[lib_fr:FMX.AddressBook.TAddressBook|TAddressBook]] et [[Tutoriel mobile : Utilisation d&amp;#039;un composant carnet d&amp;#039;adresses (iOS et Android)|Tutoriel mobile : Utilisation du composant carnet d&amp;#039;adresses (iOS et Android)]].&lt;br /&gt;
&lt;br /&gt;
===Concepteur de styles amélioré===&lt;br /&gt;
&lt;br /&gt;
Le &amp;#039;&amp;#039;&amp;#039;[[Concepteur de styles FireMonkey|Concepteur de fiches]]&amp;#039;&amp;#039;&amp;#039; a subi plusieurs changements et améliorations, tels que :&lt;br /&gt;
&lt;br /&gt;
* Prise en charge du clavier&lt;br /&gt;
* Prise en charge du presse-papiers&lt;br /&gt;
* Prise en charge de la sélection multiple&lt;br /&gt;
* Panneau Aperçu&lt;br /&gt;
* Prise en charge du zoom&lt;br /&gt;
&lt;br /&gt;
: [[File:LondonFireMonkeyStyleDesigner.png|500px]]&lt;br /&gt;
&lt;br /&gt;
===Nouveau concepteur d&amp;#039;élément de vue liste===&lt;br /&gt;
&lt;br /&gt;
Le [[lib_fr:FMX.ListView.TListView|contrôle de vue liste]] prend désormais en charge un nouveau type [[lib_fr:FMX.ListView.Appearances.TPublishedAppearance.ItemAppearance|d&amp;#039;apparence d&amp;#039;élément]] (également disponible pour le [[lib_fr:FMX.ListView.Appearances.TPublishedAppearance.ItemEditAppearance|mode édition]]), {{Code|[[Personnalisation de l&amp;#039;apparence de la vue liste FireMonkey#Utilisation de la valeur DynamicAppearance|DynamicAppearance]]}}, que vous pouvez utiliser pour personnaliser le contenu de chaque élément dans votre vue liste : étiquettes, images, boutons, etc.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez également cliquer avec le bouton droit de la souris sur la vue liste de votre &amp;#039;&amp;#039;&amp;#039;Concepteur de fiches&amp;#039;&amp;#039;&amp;#039; et sélectionner la nouvelle entrée &amp;#039;&amp;#039;&amp;#039;[[Personnalisation de l&amp;#039;apparence de la vue liste FireMonkey#Le mode de conception Basculer|Basculer DesignMode]]&amp;#039;&amp;#039;&amp;#039; afin d&amp;#039;activer un éditeur visuel d&amp;#039;éléments de vue liste qui vous permet de personnaliser visuellement les contrôles des éléments de votre vue liste :&lt;br /&gt;
&lt;br /&gt;
: [[File:LondonListViewDesignMode.png]]&lt;br /&gt;
&lt;br /&gt;
Dans ce mode de conception, vous pouvez utiliser &amp;#039;&amp;#039;&amp;#039;[[Inspecteur d&amp;#039;objets|l&amp;#039;inspecteur d&amp;#039;objets]]&amp;#039;&amp;#039;&amp;#039; afin d&amp;#039;ajouter de nouveaux éléments à votre conception d&amp;#039;élément vue liste, et utiliser à la fois &amp;#039;&amp;#039;&amp;#039;l&amp;#039;inspecteur d&amp;#039;objets&amp;#039;&amp;#039;&amp;#039; et le &amp;#039;&amp;#039;&amp;#039;concepteur de fiches&amp;#039;&amp;#039;&amp;#039; pour les personnaliser.&lt;br /&gt;
&lt;br /&gt;
===Service de prise en charge du presse-papiers étendu===&lt;br /&gt;
&lt;br /&gt;
{{FM|London}} dispose désormais de l&amp;#039;interface [[lib_fr:FMX.Clipboard.IFMXExtendedClipboardService|IFMXExtendedClipboardService]] qui permet d&amp;#039;ajouter de nouvelles fonctionnalités. Par exemple, l&amp;#039;interface [[lib_fr:FMX.Clipboard.IFMXExtendedClipboardService|IFMXExtendedClipboardService]] vous permet d&amp;#039;effectuer les actions suivantes :&lt;br /&gt;
&lt;br /&gt;
* Enregistrer les formats personnalisés des utilisateurs.&lt;br /&gt;
* Copier/coller les formats personnalisés des utilisateurs.&lt;br /&gt;
* Obtenir directement le contenu du presse-papiers.&lt;br /&gt;
&lt;br /&gt;
===Amélioration de l&amp;#039;éditeur de liste d&amp;#039;images===&lt;br /&gt;
&lt;br /&gt;
Maintenant, la boîte de dialogue &amp;#039;&amp;#039;&amp;#039;Ajouter des images&amp;#039;&amp;#039;&amp;#039; de [[Editeur de liste d&amp;#039;images (FireMonkey)#Volet Liste d&amp;#039;images|l&amp;#039;éditeur de liste d&amp;#039;images]] vous permet d&amp;#039;ajouter plusieurs images à la fois.&lt;br /&gt;
&lt;br /&gt;
===Améliorations relatives à TGrid===&lt;br /&gt;
&lt;br /&gt;
* [[lib_fr:FMX.Grid.TGridOption|TGridOption.AutoDisplacement]] et [[lib_fr:FMX.Grid.TGridOption|TGridOption.CancelEditingByDefault]] ont été ajoutées pour faciliter l&amp;#039;édition des cellules des grilles sur un périphérique mobile avec le clavier virtuel.&lt;br /&gt;
* [[lib_fr:FMX.Grid.TCurrencyColumn|TCurrencyColumn]] - Nouvelle classe permettant d&amp;#039;implémenter des colonnes de grille contenant des valeurs [[lib_fr:System.Currency|monétaires]].&lt;br /&gt;
* [[lib_fr:FMX.Grid.TGlyphColumn|TGlyphColumn]] - Nouvelle classe permettant d&amp;#039;implémenter des colonnes de grille contenant des images de la liste d&amp;#039;images [[lib_fr:FMX.ImgList.TImageList|TImageList]]. La propriété [[lib_fr:FMX.Grid.TGrid.Images|TGrid.Images]] est ajoutée afin de spécifier la liste d&amp;#039;images.&lt;br /&gt;
&lt;br /&gt;
:&lt;br /&gt;
:* &amp;#039;&amp;#039;&amp;#039;Attention :&amp;#039;&amp;#039;&amp;#039; La nouvelle unité [[lib_fr:FMX.Grid.Style|FMX.Grid.Style]] est créée. Cette unité doit être incluse dans l&amp;#039;une des clauses &amp;#039;&amp;#039;&amp;#039;uses&amp;#039;&amp;#039;&amp;#039; de chaque projet par le biais de l&amp;#039;unité [[lib_fr:FMX.Grid|FMX.Grid]]. Puisque les anciens projets n&amp;#039;incluent pas l&amp;#039;unité [[lib_fr:FMX.Grid.Style|FMX.Grid.Style]], pour compiler un projet ancien, il est nécessaire d&amp;#039;inclure l&amp;#039;unité [[lib_fr:FMX.Grid.Style|FMX.Grid.Style]] explicitement. Notez que l&amp;#039;unité [[lib_fr:FMX.Grid.Style|FMX.Grid.Style]] est ajoutée automatiquement si vous modifiez tout fichier de votre projet.&lt;br /&gt;
&lt;br /&gt;
===Prise en charge des résolutions élevées sur Windows===&lt;br /&gt;
&lt;br /&gt;
{{FM|London}} bénéficie des styles multi-résolution pour Windows, qui fournissent une prise en charge pour les moniteurs 120 et 144 DPI.&lt;br /&gt;
&lt;br /&gt;
===Prise en charge améliorée des touches accélératrices===&lt;br /&gt;
&lt;br /&gt;
Désormais, la prise en charge des [[Représentation des touches et des raccourcis#Spécification de touches accélératrices|touches accélératrices]] est disponible pour les contrôles suivants :&lt;br /&gt;
&lt;br /&gt;
* [[lib_fr:FMX.StdCtrls.TLabel|TLabel]]&lt;br /&gt;
* [[lib_fr:FMX.StdCtrls.TButton|TButton]]&lt;br /&gt;
* [[lib_fr:FMX.StdCtrls.TRadioButton|TRadioButton]]&lt;br /&gt;
* [[lib_fr:FMX.TabControl.TTabItem|TTabItem]] de [[lib_fr:FMX.TabControl|TabControl]]&lt;br /&gt;
* [[lib_fr:FMX.StdCtrls.TCheckBox|TCheckBox]]&lt;br /&gt;
* [[lib_fr:FMX.ExtCtrls.TPopupBox.Items|TPopupBox.Items]] de [[lib_fr:FMX.ExtCtrls.TPopupBox|TPopupBox]]&lt;br /&gt;
* [[lib_fr:FMX.Controls.TTextControl|TTextControl]]&lt;br /&gt;
* [[lib_fr:FMX.StdCtrls.TPresentedTextControl|TPresentedTextControl]]&lt;br /&gt;
* [[lib_fr:FMX.ActnList.TCustomAction|TCustomAction]]&lt;br /&gt;
&lt;br /&gt;
===Prise en charge des styles de fontes étendus===&lt;br /&gt;
&lt;br /&gt;
[[lib_fr:FMX.Graphics.TFont|TFont]] gagne une nouvelle propriété, [[lib_fr:FMX.Graphics.TFont.StyleExt|StyleExt]],  permettant de gérer les fontes qui ont des types étendus de [[lib_fr:FMX.Graphics.TFontWeight|poids]], [[lib_fr:FMX.Graphics.TFontSlant|d&amp;#039;obliques]] ou de [[lib_fr:FMX.Graphics.TFontStretch|stretch]].&lt;br /&gt;
&lt;br /&gt;
===Modifications de la propriété Hint===&lt;br /&gt;
&lt;br /&gt;
Dans les versions précédentes de {{Product|Berlin}}, [[lib_fr:FMX.Controls.TControl.Hint|Hint]] était publié dans tous les contrôles {{FM|Berlin}} qui héritent de  [[lib_fr:FMX.Controls.TControl|TControl]]. Désormais, la propriété [[lib_fr:FMX.Controls.TControl.Hint|Hint]] est publiée dans les contrôles {{FM|Berlin}} listés dans [[Changes of the Hint Property in Berlin|Modifications de la propriété Hint dans Berlin]].&lt;br /&gt;
&lt;br /&gt;
: &amp;#039;&amp;#039;&amp;#039;Avertissement&amp;#039;&amp;#039;&amp;#039; : Assurez-vous que vos applications n&amp;#039;utilisent pas [[lib_fr:FMX.Controls.TControl.Hint|Hint]] avec un contrôle qui n&amp;#039;est pas listé dans ce [[Chages of the Hint Property in Berlin|tableau]]. Sinon, vos applications ne seront pas compilées.&lt;br /&gt;
&lt;br /&gt;
===API dialogue simplifié===&lt;br /&gt;
&lt;br /&gt;
Plusieurs procédures et fonctions permettant de montrer des boîtes de dialogue sont désormais obsolètes et ont été remplacées par les procédures et fonctions des nouveaux services de plate-forme [[lib_fr:FMX.Platform.IFMXDialogServiceAsync|IFMXDialogServiceAsync]] et [[lib_fr:FMX.Platform.IFMXDialogServiceSync|IFMXDialogServiceSync]] qui fournissent la prise en charge des boîtes de dialogue, respectivement synchrones et asynchrones.&lt;br /&gt;
&lt;br /&gt;
Le tableau suivant résume les changements des API :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Membres obsolètes&lt;br /&gt;
! Nouveaux membres&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
* [[lib_fr:FMX.Dialogs.ShowMessage|FMX.Dialogs.ShowMessage]]*&lt;br /&gt;
* [[lib_fr:FMX.Dialogs.ShowMessageFmt|FMX.Dialogs.ShowMessageFmt]]*&lt;br /&gt;
* {{Code|FMX.Dialogs.ShowMessagePos}}&lt;br /&gt;
|&lt;br /&gt;
* [[lib_fr:FMX.Platform.IFMXDialogServiceAsync.ShowMessageAsync|ShowMessageAsync]]&lt;br /&gt;
* [[lib_fr:FMX.Platform.IFMXDialogServiceSync.ShowMessageSync|ShowMessageSync]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
* {{Code|FMX.Dialogs.MessageDlg}}&lt;br /&gt;
* {{Code|FMX.Dialogs.MessageDlgPos}}&lt;br /&gt;
* {{Code|FMX.Dialogs.MessageDlgPosHelp}}&lt;br /&gt;
* {{Code|FMX.Platform.IFMXDialogService.MessageDialog}}&lt;br /&gt;
|&lt;br /&gt;
* [[lib_fr:FMX.Platform.IFMXDialogServiceAsync.MessageDialogAsync|MessageDialogAsync]]&lt;br /&gt;
* [[lib_fr:FMX.Platform.IFMXDialogServiceSync.MessageDialogSync|MessageDialogSync]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
* {{Code|FMX.Dialogs.InputBox}}&lt;br /&gt;
* {{Code|FMX.Dialogs.InputQuery}}&lt;br /&gt;
* {{Code|FMX.Platform.IFMXDialogService.InputQuery}}&lt;br /&gt;
|&lt;br /&gt;
* [[lib_fr:FMX.Platform.IFMXDialogServiceAsync.InputQueryAsync|InputQueryAsync]]&lt;br /&gt;
* [[lib_fr:FMX.Platform.IFMXDialogServiceSync.InputQuerySync|InputQuerySync]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: * {{Code|ShowMessage}} et {{code|ShowMessageFmt}} ne sont pas vraiment obsolètes. Néanmoins, vous pouvez préférer d&amp;#039;utiliser [[lib_fr:FMX.Platform.IFMXDialogServiceAsync.ShowMessageAsync|ShowMessageAsync]] ou [[lib_fr:FMX.Platform.IFMXDialogServiceSync.ShowMessageSync|ShowMessageSync]].&lt;br /&gt;
&lt;br /&gt;
===Autres modifications relatives à {{FM|London}}===&lt;br /&gt;
&lt;br /&gt;
* La nouvelle propriété [[lib_fr:FMX.Pickers.TCustomPicker.AbsoluteTargetRect|AbsoluteTargetRect]] des sélecteurs vous permet de définir la position où doit apparaître un sélecteur.&lt;br /&gt;
* Les vues liste affichent des animations tactiles sur Android.&lt;br /&gt;
* [[Utilisation de AppAnalytics dans FireMonkey|AppAnalytics]] utilise le protocole HTTPS au lieu du protocole HTTP.&lt;br /&gt;
* [[lib_fr:FMX.Media.TMediaPlayer|TMediaPlayer]] essaie maintenant de [[lib_fr:FMX.Media.TMediaPlayer.Play|lire]] le [[lib_fr:FMX.Media.TMediaPlayer.FileName|fichier média]] spécifié avec le codec par défaut de la plate-forme cible si l&amp;#039;extension du fichier média n&amp;#039;a pas été [[lib_fr:FMX.Media.TMediaCodecManager.RegisterMediaCodecClass|enregistrée]].&lt;br /&gt;
* Le type [[lib_fr:System.Double|Double]] remplace le type [[lib_fr:System.Extended|Extended]].&lt;br /&gt;
&lt;br /&gt;
==[[Présentation de la VCL|VCL]]==&lt;br /&gt;
&lt;br /&gt;
* [[Utilisation de AppAnalytics dans la VCL|AppAnalytics]] utilise le protocole HTTPS au lieu du protocole HTTP.&lt;br /&gt;
&lt;br /&gt;
==[[Services de mobilité d&amp;#039;entreprise (EMS)|EMS]]==&lt;br /&gt;
&lt;br /&gt;
===[[Installation du serveur EMS ou du serveur de la console EMS sur un environnement de production#Prise en charge du serveur Apache|Prise en charge du serveur Apache]]===&lt;br /&gt;
&lt;br /&gt;
Vous pouvez dorénavant exécuter le serveur EMS et la console EMS dans le serveur Apache sur un environnement de production.&lt;br /&gt;
&lt;br /&gt;
Pour plus d&amp;#039;informations, voir [[Installation du serveur EMS ou du serveur de la console EMS sur un environnement de production#Prise en charge du serveur Apache|installation et exécution du serveur EMS et de la console EMS dans le serveur Apache]].&lt;br /&gt;
&lt;br /&gt;
===[[Modification manuelle de la configuration du serveur EMS#Domaines croisés de l&amp;#039;API du serveur EMS|Domaines croisés de l&amp;#039;API du serveur EMS]]===&lt;br /&gt;
&lt;br /&gt;
Le serveur EMS autorise désormais les appels de domaines croisés à ses API depuis différents domaines. Pour plus d&amp;#039;informations, voir [[Modification manuelle de la configuration du serveur EMS#Domaines croisés de l&amp;#039;API du serveur EMS|Domaines croisés de l&amp;#039;API du serveur EMS]].&lt;br /&gt;
&lt;br /&gt;
===[[EdgeModules EMS|EdgeModules EMS]]===&lt;br /&gt;
&lt;br /&gt;
EMS prend maintenant en charge la nouvelle fonctionnalité [[EdgeModules EMS|EdgeModules EMS]], une extension de la fonctionnalité [[Serveur EMS|Serveur EMS]].&lt;br /&gt;
&lt;br /&gt;
Dans {{Version}}, vous pouvez exécuter les [[EdgeModules EMS|EdgeModules EMS]] en tant qu&amp;#039;applications autonomes et les [[Ressource EdgeModules EMS#Point de terminaison RegisterModule|recenser]] dans le serveur EMS. La communication du EdgeModule EMS avec le [[Serveur EMS|serveur EMS]] est bidirectionnelle.&lt;br /&gt;
&lt;br /&gt;
Pour plus d’informations, voir [[EdgeModules EMS|EdgeModules EMS]].&lt;br /&gt;
&lt;br /&gt;
===[[Ressource EdgeModules EMS|Ressource EdgeModules EMS]]===&lt;br /&gt;
&lt;br /&gt;
La [[Serveur de la console EMS|Console EMS]] affiche maintenant deux nouvelles tables avec toutes les informations sur  [[Ressource EdgeModules EMS|EdgeModules EMS]] et ses ressources chargées dans le [[Serveur EMS|Serveur EMS]].&lt;br /&gt;
&lt;br /&gt;
[[Application EMS Management Console|L&amp;#039;application EMS Management Console]] comporte maintenant [[Interface utilisateur de gestion des ressources EMS|deux nouveaux onglets]] pour récupérer, mettre à jour et supprimer facilement les données des [[Ressource EdgeModules EMS|EdgeModules EMS]] recensés et leurs ressources. Voir [[Utilisation de l&amp;#039;application EMS Management Console|Utilisation de l&amp;#039;application EMS Management Console]] pour plus d&amp;#039;informations sur la gestion des données des [[Ressource EdgeModules EMS|EdgeModules EMS]] dans le [[Serveur EMS|serveur EMS]].&lt;br /&gt;
&lt;br /&gt;
===[[Présentation de ThingPoints|Présentation de ThingPoints]]===&lt;br /&gt;
&lt;br /&gt;
Utilisez les nouvelles applications [[Présentation de ThingPoints|ThingPoint]] afin d&amp;#039;étendre les fonctionnalités du [[Serveur EMS|Serveur EMS]] pour [[Iot:ThingConnect|l&amp;#039;Internet of Things (IoT)]]. Une application ThingPoint vous permet de collecter des données depuis les [[Iot:ThingConnect Devices|périphériques ThingConnect]] à proximité, de prétraiter et post-traiter des données IoT et de les sauvegarder dans le [[Serveur EMS|Serveur EMS]].&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;exemple &amp;#039;&amp;#039;&amp;#039;[[samp_en:EMS.ThingPoint IoT Sample|EMS.ThingPoint IoT]]&amp;#039;&amp;#039;&amp;#039; montre comment utiliser une application [[Présentation de ThingPoints|ThingPoint]] pour étendre le [[Serveur EMS|serveur EMS]] et comment ces données sont utilisées par une [[Application client EMS|application client EMS]].  &lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations sur les applications ThingPoint, voir [[Présentation de ThingPoints|Présentation de ThingPoints]].&lt;br /&gt;
&lt;br /&gt;
===[[Ressource API EMS|Ressource API EMS]]===&lt;br /&gt;
&lt;br /&gt;
Une nouvelle ressource dans le serveur EMS fournit une documentation API pour toutes les ressources et méthodes des points de terminaisons fournis par le Serveur EMS. La documentation API peut être consultée aux formats YAML et JSON.&lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations, voir la [[Ressource API EMS|Ressource API EMS]]&lt;br /&gt;
&lt;br /&gt;
===[[Documentation des API personnalisées|Documentation API personnalisées]]===&lt;br /&gt;
&lt;br /&gt;
Le serveur EMS fournit désormais les outils permettant d&amp;#039;écrire de la documentation API pour les nouvelles ressources dans les packages serveur EMS étendus. La nouvelle documentation est créée en ajoutant des attributs aux nouvelles ressources et aux nouveaux points de terminaison. La documentation API peut être exposée aux formats YAML et JSON, et est accessible via HTTP.&lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations, voir la [[Documentation des API personnalisées|Documentation API personnalisées]].&lt;br /&gt;
&lt;br /&gt;
==[[Développement d&amp;#039;applications DataSnap|DataSnap]]==&lt;br /&gt;
&lt;br /&gt;
* DataSnap ne dépend plus de [[OpenSSL|OpenSSL]] ou de [[Indy|Indy]] pour exécuter des requêtes HTTPS.&lt;br /&gt;
&lt;br /&gt;
===Prise en charge des flux JSON===&lt;br /&gt;
&lt;br /&gt;
Nouvelle classe  [[lib_fr:Data.DBXCommon.TDBXJSONStream|TDBXJSONStream]] permettant de prendre en charge les flux JSON entre des serveurs DataSnap et des clients.&lt;br /&gt;
&lt;br /&gt;
Utilisez [[lib_fr:Data.DBXCommon.TDBXJSONStream|TDBXJSONStream]] pour lire ou écrire un flux d&amp;#039;objets JSON, mais pas les deux simultanément.&lt;br /&gt;
&lt;br /&gt;
==[[Utilisation de WebBroker - Index|Web Broker]]==&lt;br /&gt;
&lt;br /&gt;
* La gestion des chaînes a été améliorée :&lt;br /&gt;
** L&amp;#039;API WebBroker utilise par défaut le codage UTF-8, au lieu de ANSI.&lt;br /&gt;
** Le type des paramètres et du résultat ont été changés de [[lib_fr:System.AnsiString|AnsiString]] à [[lib_fr:System.String|String]], [[lib_fr:System.UTF8String|UTF8String]] ou [[lib_fr:System.SysUtils.TBytes|TBytes]].&lt;br /&gt;
&lt;br /&gt;
==[[FireDAC|FireDAC]]==&lt;br /&gt;
&lt;br /&gt;
===Améliorations pour [[Connexion à IBM DB2 Server (FireDAC)|DB2]]===&lt;br /&gt;
&lt;br /&gt;
* Le [[Connexion à IBM DB2 Server (FireDAC)|pilote natif DB2]] et le [[Connexion à une source de données ODBC (FireDAC)|pilote de pont ODBC]] sont désormais pris en charge pour DB2 AS/400.&lt;br /&gt;
* Nouveau [[Connexion à IBM DB2 Server (FireDAC)|paramètre de définition de la connexion]] : {{code|TxSupported}} permettant de désactiver la gestion des transactions FireDAC.&lt;br /&gt;
&lt;br /&gt;
===Améliorations pour [[Connexion à une base de données MongoDB (FireDAC)|MongoDB]]===&lt;br /&gt;
&lt;br /&gt;
* Prise en charge des [[Alertes des bases de données (FireDAC)|alertes des bases de données]]. Elle utilise des notifications d&amp;#039;opérations d&amp;#039;insertion sur une [https://docs.mongodb.org/manual/core/capped-collections/ collection plafonnée de MongoDB (EN)]. Pour plus d&amp;#039;informations, voir &amp;#039;&amp;#039;&amp;#039;[[Alertes des bases de données (FireDAC)#mongodb|Alertes des bases de données (FireDAC)]]&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* Nouvelle méthode [[lib_fr:FireDAC.Phys.MongoDBWrapper.TMongoDocument.Iterate|TMongoDocument.Iterate]] pour parcourir des éléments de document. Pour plus de détails, voir la nouvelle démo {{Path|Object Pascal\Database\FireDAC\Samples\DBMS Specific\MongoDB\ListView}}.&lt;br /&gt;
&lt;br /&gt;
===Améliorations pour [[Connexion à Advantage Database Server (FireDAC)|Advantage]]===&lt;br /&gt;
&lt;br /&gt;
* Pour Advantage v12 et ultérieurs :&lt;br /&gt;
** Amélioration de [[lib_fr:FireDAC.Phys.ADS.TFDADSBackup|TFDADSBackup]] et [[lib_fr:FireDAC.Phys.ADS.TFDADSRestore|TFDADSRestore]] pour ajouter la prise en charge de l&amp;#039;archivage de sauvegardes.&lt;br /&gt;
** Prise en charge du type de données {{code|GUID}}.&lt;br /&gt;
* Amélioration de la prise en charge des tables cryptées :&lt;br /&gt;
** Capacité à fournir un [[Connexion à Advantage Database Server (FireDAC)#TablePwd|mot de passe unique]] pour toutes les tables.&lt;br /&gt;
** Prise en charge du service de [[lib_fr:FireDAC.Phys.ADS.TFDADSUtility.Encrypt|cryptage]]/[[lib_fr:FireDAC.Phys.ADS.TFDADSUtility.Decrypt|décryptage]] &lt;br /&gt;
&lt;br /&gt;
===Améliorations pour [[Connexion à InterBase (FireDAC)|InterBase]] et [[Connexion à Firebird (FireDAC)|Firebird]]===&lt;br /&gt;
&lt;br /&gt;
* Nouveau [[Composants (FireDAC)#Composants_de_service_FireDAC|composant de service]], [[lib_fr:FireDAC.Phys.IBBase.TFDIBInfo|TFDIBInfo]], pour interroger la version, la licence, la configuration ainsi que les informations d&amp;#039;usage du serveur.&lt;br /&gt;
* Prise en charge des [[Prise en charge du flux de valeurs Blob dans FireDAC#Flux internes|flux internes]] du [[Prise en charge du flux de valeurs Blob dans FireDAC|flux de valeur BLOB]].&lt;br /&gt;
* Prise en charge du type de données de tableau InterBase. Pour plus de détails, voir la nouvelle démo {{Path|Object Pascal\Database\FireDAC\Samples\DBMS Specific\InterBase\Arrays}}.&lt;br /&gt;
* [[lib_fr:FireDAC.Phys.IBWrapper.TIBRestoreOptions|TIBRestoreOptions.roReplace]] remplace {{Code|TIBRestoreOptions.roCreate}}.&lt;br /&gt;
&lt;br /&gt;
===Améliorations pour [[Connexion à Informix (FireDAC)|Informix]]===&lt;br /&gt;
&lt;br /&gt;
* La classe [[lib_fr:FireDAC.Phys.Infx.TFDInfxError|TFDInfxError]] implémente la prise en charge du renvoi du code d&amp;#039;erreur ISAM.&lt;br /&gt;
* Nouveaux [[Connexion à Informix (FireDAC)#Paramètres_de_définition_de_la_connexion|paramètres de définition de la connexion]] : {{code|[https://www-01.ibm.com/support/knowledgecenter/SSGU8G_12.1.0/com.ibm.sqls.doc/ids_sqs_2038.htm%23ids_sqs_2038 TxRetainLocks]}} et {{code|[https://www-304.ibm.com/support/knowledgecenter/SSGU8G_11.70.0/com.ibm.sqls.doc/ids_sqs_1165.htm TxLastCommitted]}}.&lt;br /&gt;
* Prise en charge de verrouillage pessimiste.&lt;br /&gt;
&lt;br /&gt;
===Amélioration pour [[Connexion à une source de données ODBC (FireDAC)|ODBC]]===&lt;br /&gt;
&lt;br /&gt;
* Nouveau [[Connexion à une source de données ODBC (FireDAC)#Paramètres_de_définition_de_la_connexion|paramètre de définition de la connexion]] : {{code|ODBCVersion}} = {{code|3.8}} | {{code|3.0}} qui est utilisé pour spécifier la [https://msdn.microsoft.com/en-us/library/ee388580%28v=vs.85%29.aspx version de comportement (EN)] du gestionnaire de pilotes ODBC. Définissez-le sur {{code|3.8}} quand votre application utilise des paramètres de sortie BLOB et que le pilote ODBC prend en charge la version de comportement {{code|3.8}}.&lt;br /&gt;
* Prise en charge du [[Mappage des types de données (FireDAC)|mappage des types de données]] en utilisant les [[lib_fr:FireDAC.Stan.Option.TFDMapRule.TypeMask|noms de types de données]].&lt;br /&gt;
&lt;br /&gt;
===Améliorations pour [[Connexion à Oracle Server (FireDAC)|Oracle]]===&lt;br /&gt;
&lt;br /&gt;
* Pour Oracle 10g et ultérieurs :&lt;br /&gt;
** Prise en charge des [http://docs.oracle.com/cd/B28359_01/appdev.111/b28395/oci10new.htm#CJGHFEDD notifications des modifications de requêtes (EN)] dans [[lib_fr:FireDAC.Comp.Client.TFDEventAlerter|TFDEventAlerter]]. Pour plus de détails, voir {{Path|Object Pascal\Database\FireDAC\Samples\DBMS Specific\Oracle\CQN}}.&lt;br /&gt;
* Pour Oracle 11g et ultérieurs :&lt;br /&gt;
** Un nouveau composant, [[lib_fr:FireDAC.Phys.Oracle.TFDOracleAdmin|TFDOracleAdmin]], permettant d&amp;#039;administrer une [https://docs.oracle.com/cd/E11882_01/server.112/e40540/startup.htm#CNCPT005 instance de base de données Oracle (EN)].&lt;br /&gt;
** Prise en charge d&amp;#039;entiers non signés sur 32 bits et d&amp;#039;entiers 64 bits.&lt;br /&gt;
** Prise en charge de la [http://docs.oracle.com/cd/B28359_01/appdev.111/b28395/oci10new.htm#CHDDIGCG récupération implicite de ROWID (EN)]. Elle est implicitement incluse dans la liste SELECT {{Code|SELECT … FOR UPDATE}} pour une [[Champs d&amp;#039;identification unique (FireDAC)#Colonnes_d&amp;#039;identification_de_ligne|modification effective des ensembles de données]].&lt;br /&gt;
** Prise en charge des dépassements de délai réseau. Nouveaux [[Connexion à Oracle Server (FireDAC)#Paramètres_de_définition_de_la_connexion|paramètres de définition de la connexion]] {{Code|ReadTimeout}} et {{Code|WriteTimeout}}.&lt;br /&gt;
* Pour Oracle 12c et ultérieurs :&lt;br /&gt;
** Prise en charge des types de données 32K VARCHAR2, NVARCHAR2 et RAW.&lt;br /&gt;
** Prise en charge du BOOLEAN natif en PL/SQL.&lt;br /&gt;
** Prise en charge des [https://docs.oracle.com/database/121/SQLRF/statements_7002.htm#SQLRF55655 colonnes identité (EN)], qui sont reconnues comme étant des [[Champs auto-incrémentés (FireDAC)|champs auto-incrémentés]].&lt;br /&gt;
** Prise en charge des [https://docs.oracle.com/database/121/LNOCI/oci10new.htm#LNOCI73008 résultats implicites (EN)]. Vous pouvez utiliser [[lib_fr:FireDAC.Comp.Client.TFDAdaptedDataSet.NextRecordSet|NextRecordSet]] pour les traiter.&lt;br /&gt;
** Amélioration de la détection et de la synchronisation de [[lib_fr:FireDAC.Comp.Client.TFDCustomConnection.InTransaction|l&amp;#039;état de transaction]].&lt;br /&gt;
** Prise en charge de nouveaux modes d&amp;#039;authentification dans le [[Connexion à Oracle Server (FireDAC)#Paramètres_de_définition_de_la_connexion|paramètre de définition de la connexion]] {{Code|AuthMode}}  : {{Code|SYSASM}}, {{Code|SYSBACKUP}}, {{Code|SYSDG}}, et {{Code|SYSKM}}.&lt;br /&gt;
&lt;br /&gt;
===Améliorations pour [[Connexion à PostgreSQL (FireDAC)|PostgreSQL]]===&lt;br /&gt;
&lt;br /&gt;
* Pour PostgreSQL 9.2 et ultérieurs :&lt;br /&gt;
** Prise en charge du type de données [[JSON|JSON]].&lt;br /&gt;
** Prise en charge des [http://www.postgresql.org/docs/current/static/rangetypes.html types de plage (EN)].&lt;br /&gt;
* Pour PostgreSQL 9.4 et ultérieurs :&lt;br /&gt;
** Prise en charge du type de données [http://www.postgresql.org/docs/current/static/datatype-json.html JSONB (EN)].&lt;br /&gt;
* Prise en charge de la version 9.5 des client et serveur PostgreSQL.&lt;br /&gt;
* Prise en charge améliorée pour les tableaux contraints :&lt;br /&gt;
** Nouveau [[Connexion à PostgreSQL (FireDAC)#Paramètres_de_définition_de_la_connexion|paramètre de définition de la connexion]] : {{code|ArrayScanSample}} utilisé pour déterminer si les tableaux sont mappés sur {{code|[[lib_fr:Data.DB.TFieldType|ftArray]]}} ou {{code|[[lib_fr:Data.DB.TFieldType|ftDataSet]]}}.&lt;br /&gt;
** Le &amp;lt;code&amp;gt;[[lib_fr:FireDAC.Stan.Param.TFDParam.ArrayType|TFDParam.ArrayType]]=atTable&amp;lt;/code&amp;gt; peut être utilisé pour envoyer des tableaux au serveur.&lt;br /&gt;
&lt;br /&gt;
===Améliorations pour [[Connexion à une base de données SQLite (FireDAC)|SQLite]]===&lt;br /&gt;
&lt;br /&gt;
* Binaires SQLite mis à jour vers la version 3.9.2&lt;br /&gt;
* Pour SQLite v3.8.9 et ultérieurs :&lt;br /&gt;
** Prise en charge des informations étendues sur les colonnes d&amp;#039;index, y compris si elles sont descendantes ou ascendantes, ou si ce sont des colonnes de base ou d&amp;#039;expression.&lt;br /&gt;
** Prise en charge des index sur les expressions.&lt;br /&gt;
* Pour OS X :&lt;br /&gt;
** Bibliothèque client optimisée, préconstruite. Vous devriez déployer {{Path|libcgsqlite3.dylib}} lorsque vous construisez des applications pour OS X qui utilisent FireDAC et SQLite.&lt;br /&gt;
** Prise en charge des liaisons statiques, en utilisant {{Path|libcgsqlite3.dylib}}.&lt;br /&gt;
** Prise en charge du cryptage.&lt;br /&gt;
&lt;br /&gt;
===Autres modifications relatives à FireDAC===&lt;br /&gt;
&lt;br /&gt;
* Le type de [[lib_fr:FireDAC.Stan.Intf.TFDVersion|TFDVersion]] est passé de [[lib_fr:System.Int64|Int64]] à [[lib_fr:System.UInt64|UInt64]].&lt;br /&gt;
* Les unités [[lib_fr:FireDAC.Phys.ODBCBase|FireDAC.Phys.ODBCBase]] et [[lib_fr:FireDAC.Phys.ODBCWrapper|FireDAC.Phys.ODBCWrapper]] ont été déplacées du package {{path|FireDACODBCDriver{{PackageVersion|London}}.bpl}} vers le package {{path|FireDACCommonODBC{{PackageVersion|London}}.bpl}}.&lt;br /&gt;
&lt;br /&gt;
==[[Framework dbExpress|dbExpress]]==&lt;br /&gt;
&lt;br /&gt;
* dbExpress ne dépend plus de [[OpenSSL|OpenSSL]] ou de [[Indy|Indy]] pour exécuter des requêtes HTTPS.&lt;br /&gt;
&lt;br /&gt;
==[[Développement d&amp;#039;applications Cloud|Service Cloud]]==&lt;br /&gt;
&lt;br /&gt;
===Amazon===&lt;br /&gt;
&lt;br /&gt;
[[lib_fr:Data.Cloud.AmazonAPI|AmazonAPI]] bénéficie de la prise en charge de :&lt;br /&gt;
&lt;br /&gt;
* [[lib_fr:Data.Cloud.AmazonAPI.TAmazonQueueService.PurgeQueue|Suppression de tous les messages]] dans une file d&amp;#039;attente.&lt;br /&gt;
* Gestion du [http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html cycle de vie (EN)] des objets dans un compartiment avec [[lib_fr:Data.Cloud.AmazonAPI.TAmazonStorageService.GetBucketLifecycleXML|GetBucketLifecycleXML]], [[lib_fr:Data.Cloud.AmazonAPI.TAmazonStorageService.SetBucketLifecycle|SetBucketLifecycle]] et [[lib_fr:Data.Cloud.AmazonAPI.TAmazonStorageService.DeleteBucketLifecycle|DeleteBucketLifecycle]].&lt;br /&gt;
&lt;br /&gt;
===Azure===&lt;br /&gt;
&lt;br /&gt;
*[[lib_fr:Data.Cloud.AzureAPI|AzureAPI]] prend maintenant en charge les dernières versions suivantes de l&amp;#039;API :&lt;br /&gt;
** Service BLOB Microsoft Azure : {{Code|API Version 2015-02-21}}&lt;br /&gt;
** Service de Table Microsoft Azure : {{Code|API Version 2015-02-21}}&lt;br /&gt;
** Service de File d&amp;#039;attente Microsoft Azure : {{Code|API Version 2015-02-21}}&lt;br /&gt;
* Prise en charge des blobs d&amp;#039;ajout :&lt;br /&gt;
** Vous pouvez désormais [[lib_fr:Data.Cloud.AzureAPI.TAzureBlobService.PutAppendBlob|créer des blobs d&amp;#039;ajout]].&lt;br /&gt;
** Vous pouvez [[lib_fr:Data.Cloud.AzureAPI.TAzureBlobService.AppendBlock|ajouter des données]] à des blobs d&amp;#039;ajout existants.&lt;br /&gt;
* Améliorations de la prise en charge de la stratégie d&amp;#039;accès :&lt;br /&gt;
** Ajout d&amp;#039;une prise en charge des stratégies d&amp;#039;accès sur les [[lib_fr:Data.Cloud.AzureAPI.TAzureQueueService.GetQueueACL|files d&amp;#039;attente]] et des [[lib_fr:Data.Cloud.AzureAPI.TAzureTableService.GetTableACL|tables]].&lt;br /&gt;
** [[lib_fr:Data.Cloud.AzureAPI.TPolicy|TPolicy]] et ses sous-classes ([[lib_fr:Data.Cloud.AzureAPI.TBlobPolicy|TBlobPolicy]], [[lib_fr:Data.Cloud.AzureAPI.TQueuePolicy|TQueuePolicy]], [[lib_fr:Data.Cloud.AzureAPI.TTablePolicy|TTablePolicy]]) remplacent [[lib_fr:Data.Cloud.AzureAPI.TAccessPolicy|TAccessPolicy]], qui est désormais obsolète.&lt;br /&gt;
* Prise en charge améliorée du bail pour les blobs et les conteneurs de blobs :&lt;br /&gt;
** Ajout de la prise en charge des [[lib_fr:Data.Cloud.AzureAPI.TAzureBlobService.AcquireContainerLease|conteneurs de baux]] et d&amp;#039;autres opérations concernant les baux de conteneurs.&lt;br /&gt;
** Vous pouvez désormais [[lib_fr:Data.Cloud.AzureAPI.TAzureBlobService.ChangeBlobLease|modifier l&amp;#039;identificateur du bail d&amp;#039;un blob]].&lt;br /&gt;
** Quand vous [[lib_fr:Data.Cloud.AzureAPI.TAzureBlobService.AcquireBlobLease|acquerrez un bail de blob]], vous pouvez maintenant proposer un identifiant pour le nouveau bail.&lt;br /&gt;
* Statistiques et propriétés des services :&lt;br /&gt;
** Ajout de la prise en charge des propriétés du [[lib_fr:Data.Cloud.AzureAPI.TAzureBlobService.GetBlobServiceProperties|service blob]], du [[lib_fr:Data.Cloud.AzureAPI.TAzureQueueService.GetQueueServiceProperties|service de file d&amp;#039;attente]] et du [[lib_fr:Data.Cloud.AzureAPI.TAzureTableService.GetTableServiceProperties|service de table]].&lt;br /&gt;
** Ajout de la prise en charge des statistiques du [[lib_fr:Data.Cloud.AzureAPI.TAzureBlobService.GetBlobServiceStats|service blob]], du [[lib_fr:Data.Cloud.AzureAPI.TAzureQueueService.GetQueueServiceStats|service de file d&amp;#039;attente]] et du [[lib_fr:Data.Cloud.AzureAPI.TAzureTableService.GetTableServiceStats|service de table]].&lt;br /&gt;
* Les services Azure fournissent une nouvelle propriété, [[lib_fr:Data.Cloud.AzureAPI.TAzureService.Timeout|Timeout]], que vous pouvez utiliser pour définir un délai de connexion pour vos requêtes.&lt;br /&gt;
&lt;br /&gt;
==[[RTL|RTL]]==&lt;br /&gt;
&lt;br /&gt;
===Prise en charge de Bluetooth LE et Beacon===&lt;br /&gt;
&lt;br /&gt;
{{Product|London}} {{Version}} fournit la nouvelle API WinRT Bluetooth qui prend en charge le [[Utilisation du Bluetooth Low Energy|Bluetooth Low Energy]] et les [[Utilisation des beacons|Beacons]] sous la plate-forme Window 10. Vous pouvez désormais exécuter des applications sous Windows 10 qui vous permettent d&amp;#039;effectuer les actions suivantes :&lt;br /&gt;
&lt;br /&gt;
* Analyser les périphériques BLE qui publient les données.&lt;br /&gt;
* Envoyer et recevoir des données publicitaires.&lt;br /&gt;
* Envoyer des données publicitaires BLE personnalisées via les [[lib_fr:System.Bluetooth.TBluetoothLEAdvertiseData.ManufacturerSpecificData|données spécifiques au fabricant]].&lt;br /&gt;
* Utiliser les beacons avec les formats [https://developer.apple.com/ibeacon/ iBeacon (EN)] et [http://altbeacon.org/ AltBeacon (EN)].&lt;br /&gt;
&lt;br /&gt;
===Amélioration des performances de la découverte Bluetooth LE===&lt;br /&gt;
&lt;br /&gt;
La RTL fournit une nouvelle implémentation de filtre d&amp;#039;analyse [[Utilisation du Bluetooth Low Energy|BLE]] qui bénéficie des nouvelles puces BLE basse consommation.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez maintenant rechercher des périphériques BLE spécifiques par le biais de filtres d&amp;#039;analyse indépendants personnalisés. A cette fin, vous pouvez :&lt;br /&gt;
&lt;br /&gt;
*Créer votre filtre sous forme de [[lib_fr:System.Bluetooth.TBluetoothLEScanFilter|TBluetoothLEScanFilter]].&lt;br /&gt;
*Spécifier les [[lib_fr:System.Bluetooth.TBluetoothLEScanFilter Properties|champs]] par lesquels vous voulez trier vos périphériques.&lt;br /&gt;
**Facultativement, pour les périphériques utilisant [[lib_fr:System.Bluetooth.TBluetoothLEAdvertiseData.ManufacturerSpecificData|ManufacturerSpecificData]], telles que [[Utilisation des beacons#Types de Beacons|AltBeacons et iBeacons]], vous pouvez utiliser la classe d&amp;#039;aide [[lib_fr:System.Beacon.TBeaconManufacturerDataHelper|TBeaconManufacturerDataHelper]] afin de filtrer selon ces données. Transmettez ensuite le contenu de [[lib_fr:System.Beacon.TBeaconManufacturerDataHelper|TBeaconManufacturerDataHelper]] à ce filtre.&lt;br /&gt;
&lt;br /&gt;
*Enfin, ajoutez le filtre à la [[lib_fr:System.Bluetooth.TBluetoothLEScanFilterList|liste de filtres]] et commencez à découvrir des périphériques avec la nouvelle implémentation de [[lib_fr:System.Bluetooth.TBluetoothLEManager.StartDiscovery|StartDiscovery]].&lt;br /&gt;
&lt;br /&gt;
===Bluetooth LE inclut de nouveaux événements pour gérer les abonnements aux caractéristiques===&lt;br /&gt;
&lt;br /&gt;
Le composant  [[lib_fr:System.Bluetooth.Components.TBluetoothLE|TBluetoothLE]] fournit deux nouveaux événements permettant de gérer les abonnements aux caractéristiques du serveur GATT : &lt;br /&gt;
&lt;br /&gt;
* [[lib_fr:System.Bluetooth.Components.TBluetoothLE.OnCharacteristicSubscribed|OnCharacteristicSubscribed]] est déclenché quand un périphérique distant  [[lib_fr:System.Bluetooth.Components.TBluetoothLE.SubscribeToCharacteristic|s&amp;#039;abonne]] à l&amp;#039;une des caractéristiques du serveur GATT.&lt;br /&gt;
* [[lib_fr:System.Bluetooth.Components.TBluetoothLE.OnCharacteristicUnSubscribed|OnCharacteristicUnSubscribed]] est déclenché quand un périphérique distant [[lib_fr:System.Bluetooth.Components.TBluetoothLE.UnSubscribeToCharacteristic|se désabonne]] de l&amp;#039;une des caractéristiques du serveur GATT.&lt;br /&gt;
&lt;br /&gt;
Les événements [[lib_fr:System.Bluetooth.Components.TBluetoothLE.OnConnect|OnConnect]] et [[lib_fr:System.Bluetooth.Components.TBluetoothLE.OnDisconnect|OnDisconnect]] existaient déjà et sont à présent inclus dans le composant [[lib_fr:System.Bluetooth.Components.TBluetoothLE|TBluetoothLE]] :&lt;br /&gt;
&lt;br /&gt;
* L&amp;#039;événement [[lib_fr:System.Bluetooth.Components.TBluetoothLE.OnConnect|OnConnect]] est déclenché lorsque vous vous connectez à un périphérique distant du serveur GATT. &lt;br /&gt;
* L&amp;#039;événement [[lib_fr:System.Bluetooth.Components.TBluetoothLE.OnDisconnect|OnDisconnect]] se déclenche lorsque vous vous déconnectez d&amp;#039;un périphérique distant du serveur GATT.&lt;br /&gt;
&lt;br /&gt;
===Prise en charge des beacons au format Eddystone===&lt;br /&gt;
&lt;br /&gt;
La RTL ajoute une prise en charge pour utiliser les [[Utilisation des beacons|beacons]] au format [https://github.com/google/eddystone/blob/master/protocol-specification.md Eddystone (EN)]. Il y a trois [[Utilisation des beacons#Types_de_beacons|types]] possibles :&lt;br /&gt;
&lt;br /&gt;
* [[lib_fr:System.Beacon.TEddystoneUID|EddystoneUID]] : le beacon diffuse un identifiant qui se compose du [[lib_fr:System.Beacon.TEddystoneUID.Namespace|Namespace]] (espace de nommage) et [[lib_fr:System.Beacon.TEddystoneUID.Instance|d&amp;#039;une instance]]. &lt;br /&gt;
* [[lib_fr:System.Beacon.TEddystoneURL|EddystoneURL]] : le beacon diffuse une [[lib_fr:System.Beacon.TEddystoneURL.URL|URL]] au format compressé.&lt;br /&gt;
* [[lib_fr:System.Beacon.TEddystoneTLM|EddystoneTLM]] : Le beacon diffuse des [[lib_fr:System.Beacon.TEddystoneTLM Fields|informations de télémétrie]] relatives à l&amp;#039;état du beacon.&lt;br /&gt;
&lt;br /&gt;
===Amélioration des performances d&amp;#039;analyse des beacons===&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;ajout de [[#Amélioration des performances de la découverte Bluetooth LE|nouveaux filtres d&amp;#039;analyse BLE]] vous permet d&amp;#039;améliorer le framework des beacons afin de :&lt;br /&gt;
&lt;br /&gt;
* [[lib_fr:System.Beacon.TBeaconManager.StartScan|Analyser]] n&amp;#039;importe quel [[lib_fr:System.Beacon.TKindofBeacon|type de beacon]] en même temps.&lt;br /&gt;
* Analyser les beacons non recensés &lt;br /&gt;
&lt;br /&gt;
Désormais, vous n&amp;#039;avez pas besoin d&amp;#039;enregistrer un beacon que vous voulez surveiller. A la place, vous pouvez :&lt;br /&gt;
&lt;br /&gt;
* Définir le mode [[lib_fr:System.Beacon.TBeaconScanMode|Extended]] sur votre périphérique [[lib_fr:System.Beacon.Components.TBeacon|TBeacon]].&lt;br /&gt;
* Spécifier les beacons non-enregistrés à surveiller dans la propriété [[lib_fr:System.Beacon.Components.TCustomBeacon.ModeExtended|ModeExtended]].&lt;br /&gt;
* Utiliser la nouvelle méthode [[lib_fr:System.Beacon.TBeaconManager.StartScan|StartScan]] afin de rechercher les beacons spécifiés.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Remarque &amp;#039;&amp;#039;&amp;#039;: La dernière étape vous permet de rechercher plusieurs [[lib_fr:System.Beacon.TKindofBeacon|types]] de beacons simultanément.&lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations, voir [[Utilisation des beacons#Recensement_des_r.C3.A9gions_.C3.A0_surveiller|comment recenser les beacons]] et [[Utilisation des beacons#Analyse des beacons|comment analyser les beacons]].&lt;br /&gt;
&lt;br /&gt;
===Prise en charge du format de beacon Eddystone par le composant TBeaconDevice===&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;ajout des [[#Prise en charge du format de beacon Eddystone|beacons Eddystone]] vous permet de fournir la prise en charge de ce format dans le composant [[lib_fr:System.Beacon.Components.TBeaconDevice|TBeaconDevice]].&lt;br /&gt;
&lt;br /&gt;
Le [[lib_fr:System.Beacon.Components.TBeaconDevice|TBeaconDevice]] vous permet maintenant d&amp;#039;exécuter des applications sur votre périphérique BLE qui diffusent des données de proximité avec les [https://github.com/google/eddystone/blob/master/protocol-specification.md spécifications (EN)] d&amp;#039;un beacon Eddystone. &lt;br /&gt;
&lt;br /&gt;
Vous pouvez sélectionner le format de [[lib_fr:System.Beacon.TEddystoneUID|EddystoneUID]] et [[lib_fr:System.Beacon.TEddystoneURL|EddystoneURL]] par le biais de la propriété [[lib_fr:System.Beacon.Components.TCustomBeaconDevice.BeaconType|BeaconType]].&lt;br /&gt;
&lt;br /&gt;
Prise en charge des plates-formes :&lt;br /&gt;
&lt;br /&gt;
* Les périphériques &amp;#039;&amp;#039;&amp;#039;Android&amp;#039;&amp;#039;&amp;#039; permettent la diffusion du format Eddystone, version 5.0 ou supérieure.&lt;br /&gt;
* Les périphériques &amp;#039;&amp;#039;&amp;#039;iOS&amp;#039;&amp;#039;&amp;#039; permettent uniquement la diffusion des cadres iBeacon.&lt;br /&gt;
* Les périphériques &amp;#039;&amp;#039;&amp;#039;Windows&amp;#039;&amp;#039;&amp;#039; n&amp;#039;admettent pas le format Eddystone, puisque l&amp;#039;API WinRT pour BLE ne permet pas la personnalisation du  [[lib_fr:System.Bluetooth.TBluetoothLEAdvertiseData.ServiceData|ServiceData]] diffusé.&lt;br /&gt;
&lt;br /&gt;
===Prise en charge des requêtes HTTP asynchrones===&lt;br /&gt;
&lt;br /&gt;
Vous pouvez désormais envoyer des requêtes HTTP de façon asynchrone afin que l&amp;#039;exécution de votre application ne s&amp;#039;arrête pas au cours d&amp;#039;un téléchargement.&lt;br /&gt;
&lt;br /&gt;
Si vous utilisez les composants client HTTP, voir [[Utilisation d&amp;#039;un client HTTP#Rendre les requêtes asynchrones|Rendre les requêtes asynhrones]]. Si vous utilisez l&amp;#039;API du client HTTP, voir [[lib_fr:System.Net.HttpClient.THTTPClient|THTTPClient]].&lt;br /&gt;
&lt;br /&gt;
===Prise en charge des fichiers ZIP cryptés===&lt;br /&gt;
&lt;br /&gt;
[[lib_fr:System.Zip.TZipFile|TZipFile]] fournit un [[lib_fr:System.Zip.TZipFile.OnCreateDecompressStream|événement]] (ou un [[lib_fr:System.Zip.TZipFile.CreateDecompressStreamCallBack|callback]]) que vous pouvez gérer afin de décompresser des fichiers ZIP cryptés, comme les fichiers ZIP protégés par mot de passe, quand vous les [[lib_fr:System.Zip.TZipFile.Extract|extrayez]].&lt;br /&gt;
&lt;br /&gt;
===Améliorations des listes de chaînes===&lt;br /&gt;
&lt;br /&gt;
[[lib_fr:System.Classes.TStrings|TStrings]] et ses sous-classes, telles que [[lib_fr:System.Classes.TStringList|TStringList]], acquièrent les fonctionnalités suivantes :&lt;br /&gt;
&lt;br /&gt;
* [[lib_fr:System.Classes.TStrings.AddPair|AddPair]], pour ajouter des paires clé-valeur à des listes de chaînes utilisant le [[Wikipedia:Fluent interface|codage en style fluent]].&lt;br /&gt;
* [[lib_fr:System.Classes.TStrings.Keys|Keys]], pour obtenir une liste de clés depuis une liste de chaînes contenant des paires clé-valeur.&lt;br /&gt;
* [[lib_fr:System.Classes.TStrings.Options|Options]], pour contrôler facilement de nombreuses propriétés booléennes de la liste de chaînes.&lt;br /&gt;
* [[lib_fr:System.Classes.TStrings.SetStrings|SetStrings]], pour copier les chaînes d&amp;#039;un autre objet [[lib_fr:System.Classes.TStrings|TStrings]]. Elle est similaire à [[lib_fr:System.Classes.TStrings.Assign|Assign]], mais sans copier les propriétés multiples copiées par  [[lib_fr:System.Classes.TStrings.Assign|Assign]].&lt;br /&gt;
* [[lib_fr:System.Classes.TStrings.TrailingLineBreak|TrailingLineBreak]], qui détermine si la propriété [[lib_fr:System.Classes.TStrings.Text|Text]] doit contenir un saut de ligne après la dernière ligne.&lt;br /&gt;
* [[lib_fr:System.Classes.TStrings.Updating|Updating]], qui indique si la liste de chaînes est au milieu d&amp;#039;une [[lib_fr:System.Classes.TStrings.BeginUpdate|mise à jour]].&lt;br /&gt;
* [[lib_fr:System.Classes.TStrings.UseLocale|UseLocale]], qui détermine l&amp;#039;implémentation que la liste de chaînes doit utiliser pour la comparaison de chaînes.&lt;br /&gt;
* [[lib_fr:System.Classes.TStrings.ExtractName|ExtractName]] a obtenu un nouveau champ  ({{code|AllNames}}) qui détermine le retour de [[lib_fr:System.Classes.TStrings.ExtractName|ExtractName]] quand la chaîne à analyser n&amp;#039;est pas une paire clé-valeur.&lt;br /&gt;
&lt;br /&gt;
{{Code|TStringList}} gagne aussi de nouveaux [[lib_fr:System.Classes.TStringList.Create|constructeurs surchargés]], pour rendre plus facile la création d&amp;#039;instances initialisées de {{Code|TStringList}}.&lt;br /&gt;
&lt;br /&gt;
===Améliorations de TMemIniFile===&lt;br /&gt;
&lt;br /&gt;
[[lib_fr:System.IniFiles.TMemIniFile|TMemIniFile]] acquiert les fonctionnalités suivantes :&lt;br /&gt;
&lt;br /&gt;
* Vous pouvez spécifier la valeur de la propriété [[lib_fr:System.IniFiles.TMemIniFile.CaseSensitive|CaseSensitive]] dans l&amp;#039;appel au [[lib_fr:System.IniFiles.TMemIniFile.Create|constructeur]].&lt;br /&gt;
* La nouvelle propriété [[lib_fr:System.IniFiles.TMemIniFile.Modified|Modified]] indique si le fichier INI a été modifié depuis qu&amp;#039;il a été [[lib_fr:System.IniFiles.TMemIniFile.Create|chargé depuis le disque]].&lt;br /&gt;
* La nouvelle propriété [[lib_fr:System.IniFiles.TMemIniFile.AutoSave|AutoSave]] détermine si l&amp;#039;instance de {{Code|TMemIniFile}} doit [[lib_fr:System.IniFiles.TMemIniFile.UpdateFile|sauvegarder]] sur le disque toutes les modifications au moment où elle est [[lib_fr:System.IniFiles.TMemIniFile.Destroy|détruite]].&lt;br /&gt;
&lt;br /&gt;
===Prise en charge de la mise en tampon de TFileStream===&lt;br /&gt;
&lt;br /&gt;
{{Code|TFDFileStream}} a été déplacé de [[lib_fr:FireDAC.Stan.Util|FireDAC.Stan.Util]] vers [[lib_fr:System.Classes|System.Classes]] et a été renommé en [[lib_fr:System.Classes.TBufferedFileStream|TBufferedFileStream]].&lt;br /&gt;
&lt;br /&gt;
[[lib_fr:System.Classes.TBufferedFileStream|TBufferedFileStream]] est un descendant de  [[lib_fr:System.Classes.TFileStream|TFileStream]] qui optimise plusieurs écritures et lectures consécutives de petite taille. Autrement dit, [[lib_fr:System.Classes.TBufferedFileStream|TBufferedFileStream]] ajoute la prise en charge de la mise en tampon de [[lib_fr:System.Classes.TFileStream|TFileStream]].&lt;br /&gt;
&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Remarque&amp;#039;&amp;#039;&amp;#039;: [[lib_fr:System.Classes.TBufferedFileStream|TBufferedFileStream]] n&amp;#039;offre pas de gain de performance pour la lecture ou l&amp;#039;écriture à des positions aléatoires, ou pour des lectures ou écritures de grande taille.&lt;br /&gt;
&lt;br /&gt;
===Modification de la syntaxe de chemins d&amp;#039;accès JSON aux propriétés des objets===&lt;br /&gt;
&lt;br /&gt;
La prise en charge de la [[lib_fr:System.JSON.TJSONPathParser|syntaxe de chemins JSON]] pour accéder aux propriétés des objets contenant des points dans leur nom a changé dans {{Version|London}} :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Exemple de syntaxe&lt;br /&gt;
! {{Version|Seattle}}&lt;br /&gt;
! {{Version|London}}&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
{{Code|root.&amp;quot;child.name&amp;quot;}}&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
{{Code|root[&amp;quot;child.name&amp;quot;]}}&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
{{Code|root[&amp;#039;child.name&amp;#039;]}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Optimisation des expressions régulières et remplacement de chaîne===&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;utilisation des [[rad_fr:Expressions régulières|expressions régulières]] est désormais optimisée de deux façons : les temps d&amp;#039;exécution et la consommation de mémoire.&lt;br /&gt;
&lt;br /&gt;
Au sujet du temps d&amp;#039;exécution, le tableau suivant montre un exemple du gain de vitesse en utilisant les expressions régulières sur les plates-formes Windows et Android. Ces exemples ont été calculés pour une analyse d&amp;#039;expression régulière simple (fichier de 170 Ko).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Plate-forme&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Temps d&amp;#039;exécution (ms)&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Gain de temps&lt;br /&gt;
|-&lt;br /&gt;
! Avant&lt;br /&gt;
! Optimisé&lt;br /&gt;
|-&lt;br /&gt;
| Windows (Intel i7, Windows 7)&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | 5900&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | 29&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; |  ~310x&lt;br /&gt;
|-&lt;br /&gt;
| Android (Motorola E(2ème génération), Android 5.0.2)&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | 47075&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | 420&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | ~111x&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: &amp;#039;&amp;#039;&amp;#039;Remarque&amp;#039;&amp;#039;&amp;#039; : Les valeurs de gain de temps montrées dans ce tableau sont spécifiques à cet exemple. Le gain de temps que vous pouvez obtenir peut varier en fonction de l&amp;#039;expression régulière spécifique et de la machine de traitement.&lt;br /&gt;
&lt;br /&gt;
Au sujet de l&amp;#039;optimisation de la consommation mémoire, désormais, un nombre très important de correspondances n&amp;#039;affecte plus significativement la consommation de mémoire.&lt;br /&gt;
&lt;br /&gt;
Les performances de la fonction [[lib_fr:System.SysUtils.StringReplace|StringReplace]] ont été améliorées elles aussi.&lt;br /&gt;
&lt;br /&gt;
===Améliorations de la connexion HTTP===&lt;br /&gt;
&lt;br /&gt;
* Deux nouveaux délais d&amp;#039;attente : {{code|ConnectionTimeout}} et {{code|ResponseTimeout}} pour le [[lib_fr:System.Net.URLClient|framework]] et le [[lib_fr:System.Net.HttpClientComponent|composant]] HTTP.&lt;br /&gt;
&lt;br /&gt;
===Fonctions URLEncode / URLDecode===&lt;br /&gt;
&lt;br /&gt;
La fonctionnalité d&amp;#039;encodage et de décodage d&amp;#039;URL a été déplacée vers [[lib_fr:System.NetEncoding|System.NetEncoding]].&lt;br /&gt;
&lt;br /&gt;
Les fonctions [[lib_fr:System.Net.URLClient.TURI.URLEncode|System.Net.URLClient.TURI.URLEncode]] et [[lib_fr:System.Net.URLClient.TURI.URLDecode|System.Net.URLClient.TURI.URLDecode]] sont désormais obsolètes. Utilisez [[lib_fr:System.NetEncoding.TURLEncoding.URLDecode|System.NetEncoding.TURLEncoding.URLDecode]] et [[lib_fr:System.NetEncoding.TURLEncoding.Encode|System.NetEncoding.TURLEncoding.Encode]] à la place.&lt;br /&gt;
&lt;br /&gt;
Nouvelles fonctions ajoutées à [[lib_fr:System.NetEncoding|System.NetEncoding]] : &lt;br /&gt;
&lt;br /&gt;
* [[lib_fr:System.NetEncoding.TURLEncoding.EncodePath|EncodePath]]&lt;br /&gt;
* [[lib_fr:System.NetEncoding.TURLEncoding.EncodeAuth|EncodeAuth]]&lt;br /&gt;
* [[lib_fr:System.NetEncoding.TURLEncoding.EncodeQuery|EncodeQuery]]&lt;br /&gt;
* [[lib_fr:System.NetEncoding.TURLEncoding.EncodeForm|EncodeForm]]&lt;br /&gt;
&lt;br /&gt;
===Autres modifications relatives à la RTL===&lt;br /&gt;
&lt;br /&gt;
* L&amp;#039;événement {{Code|TTetheringProfile.OnConnectProfile}} a été divisé en deux : [[lib_fr:System.Tether.Manager.TTetheringProfile.OnBeforeConnectProfile|OnBeforeConnectProfile]] et [[lib_fr:System.Tether.Manager.TTetheringProfile.OnAfterConnectProfile|OnAfterConnectProfile]].&lt;br /&gt;
* Les types de chaînes [[lib_fr:System.UTF8String|UTF8String]] et [[lib_fr:System.RawByteString|RawByteString]] sont maintenant pris en charge sur iOS et Android.&lt;br /&gt;
* La [[Utilisation de la bibliothèque de programmation parallèle|Bibliothèque de programmation parallèle]] inclut maintenant un nouvel enregistrement, [[lib_fr:System.Threading.TThreadPoolStats|TThreadPoolStats]], que vous pouvez utiliser afin de prendre une capture de l&amp;#039;état interne du [[lib_fr:System.Threading.TThreadPool|pool de threads]] à des fins de diagnostic.&lt;br /&gt;
* Les [[lib_fr:System.Net.HttpClient.THTTPResponse Methods|accesseurs en lecture de THTTPResponse]] sont maintenant publics, il n&amp;#039;est plus nécessaire d&amp;#039;utiliser les interfaces [[lib_fr:System.Net.URLClient.IURLResponse|IURLResponse]] ou [[lib_fr:System.Net.HttpClient.IHTTPResponse|IHTTPResponse]] afin de les utiliser.&lt;br /&gt;
* La classe {{Code|EOperationCanceled}} de l&amp;#039;unité [[lib_fr:System.Threading|System.Threading]] a été renommée en [[lib_fr:System.SysUtils.EOperationCancelled|EOperationCancelled]] et déplacée vers l&amp;#039;unité [[lib_fr:System.SysUtils|System.SysUtils]].&lt;br /&gt;
* La RTL a retiré la dépendance d&amp;#039;unités {{Path|Winapi.ActiveX}} de l&amp;#039;unité {{Path|Winapi.Winrt}}.&lt;br /&gt;
* La procédure [[lib_fr:FMX.Dialogs.ShowMessage|ShowMessage]] est désormais asynchrone sur iOS.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==[[Frameworks et bibliothèques#API natives des plates-formes|API natives]]==&lt;br /&gt;
&lt;br /&gt;
* [http://developer.android.com/intl/es/reference/android/bluetooth/le/package-summary.html L&amp;#039;API Bluetooth LE Android (EN)], incluse dans l&amp;#039;unité {{Path|Androidapi.JNI.Bluetooth}}, a été mise à jour avec de nouvelles classes et méthodes selon les modifications  [http://developer.android.com/intl/es/sdk/api_diff/21/changes.html introduites dans l&amp;#039;API niveau 21 (EN)] pour Android version 5.0 ou supérieure.&lt;br /&gt;
* {{Product|London}} fournit de nouvelles unités pour [[Wikipedia:DirectX#DirectX 12|DirectX 12]].&lt;br /&gt;
* Les unités pour [[Wikipedia:Windows Runtime|WinRT]] sont maintenant plus faciles à utiliser.&lt;br /&gt;
&lt;br /&gt;
==[[Chaînes d&amp;#039;outils Delphi|Compilateurs {{Delphi|London}}]]==&lt;br /&gt;
&lt;br /&gt;
===Amélioration des performances de compilation des génériques===&lt;br /&gt;
&lt;br /&gt;
Les compilateurs {{Delphi|London}} ont subi plusieurs changements concernant les génériques, qui ont eu pour effet les améliorations suivantes :&lt;br /&gt;
&lt;br /&gt;
* L&amp;#039;analyse des génériques est jusqu&amp;#039;à trois fois plus rapide.&lt;br /&gt;
* La performance de [[DCC32|DCC32]], [[DCC64|DCC64]] et [[DCCOSX|DCCOSX]] pour la liaison de projets qui utilisent beaucoup les génériques a été améliorée.&lt;br /&gt;
&lt;br /&gt;
===Attributs pris en charge par tous les compilateurs===&lt;br /&gt;
&lt;br /&gt;
Désormais, tous les compilateurs {{Delphi|London}} prennent en charge les attributs suivants :&lt;br /&gt;
&lt;br /&gt;
* {{code|[[Attributs du compilateur#Unsafe|unsafe]]}}&lt;br /&gt;
* {{code|[[Attributs du compilateur#Volatile|volatile]]}}&lt;br /&gt;
* {{code|[[Attributs du compilateur#Weak|weak]]}}&lt;br /&gt;
&lt;br /&gt;
===Autres améliorations du compilateur {{Delphi|London}}===&lt;br /&gt;
&lt;br /&gt;
* La mémoire allouée aux [[E2163 Trop de symboles conditionnels (Delphi)|symboles conditionnels]] a été étendue de 256 octets à 4096 octets.&lt;br /&gt;
* La taille de [[lib_fr:System.Extended|Extended]] est désormais de 16 octets pour être compatible avec [[BCCOSX|BCCOSX]].&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;
==[[Compilateurs C++|Compilateurs C++]]==&lt;br /&gt;
&lt;br /&gt;
* Améliorations aux [[Compilateurs C++ améliorés par Clang|compilateurs C++ améliorés par Clang]]:&lt;br /&gt;
** Désormais, le compilateur [[BCC32C|BCC32C]] fournit la vérification des dépendances. La commande [[Compiler et Make de tous les projets|Make]] compile seulement les fichiers qui ont été modifiés depuis la dernière construction, de même que les fichiers dont les dépendances ont changé.&lt;br /&gt;
** [[BCCAARM|BCCAARM]] (Android) et [[BCCIOSARM|BCCIOSARM]] (iOS 32 bits) ont été mis à jour pour utiliser [http://llvm.org/releases/3.3/tools/clang/docs/ReleaseNotes.html Clang 3.3 (EN)] et [http://llvm.org/releases/3.3/docs/ReleaseNotes.html LLVM 3.3 (EN)].&lt;br /&gt;
** Vous pouvez utiliser des [http://en.cppreference.com/w/cpp/language/range-for boucles for basées sur l&amp;#039;étendue (EN) ] et des [http://en.cppreference.com/w/cpp/iterator itérateurs STL (EN)] pour les conteneurs RTL et conteneurs dérivés suivants : [[lib_fr:System.DynamicArray|DynamicArray]], [[lib_fr:System.Classes.TCollection|TCollection]] et [[lib_fr:System.Generics.Collections.TEnumerable|TEnumerable]].&lt;br /&gt;
** Vous pouvez [[Comment gérer les méthodes anonymes Delphi dans C++#Utilisation des expressions lambda|utiliser des expressions lambda]] dans vos appels à [[lib_fr:System.Threading.TParallel.For|TParallel::For]], [[lib_fr:System.Threading.TTask.Create|TTask::Create]] ou [[lib_fr:System.Threading.TTask.Future|TTask::Future]].&lt;br /&gt;
** L&amp;#039;option de ligne de commande {{code|-PC}} utilisée pour activer la compilation parallèle sur la ligne de commande est maintenant obsolète. Utilisez &amp;lt;code&amp;gt;--jobs=&amp;amp;lt;N&amp;amp;gt;&amp;lt;/code&amp;gt; à la place. Pour de plus amples informations, voir [[Interfaces de ligne de commande des compilateurs C++ améliorés par Clang#Utilisation de la compilation parallèle|Utilisation de la compilation parallèle]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==[[Référence EDI et utilitaires|EDI]]==&lt;br /&gt;
&lt;br /&gt;
===Concepteur de fiches flottant===&lt;br /&gt;
&lt;br /&gt;
Vous pouvez maintenant détacher le Concepteur de fiches dans VCL et FireMonkey. Vous pouvez activer ou désactiver le Concepteur incorporé dans les [[Options du Concepteur de fiches|options du Concepteur de fiches]]. Pour détacher le Concepteur de fiches, accédez à {{Menu|Outils &amp;amp;gt; Options &amp;amp;gt; Concepteur de fiches}}, effacez la case à cocher &amp;#039;&amp;#039;&amp;#039;Concepteur de fiches&amp;#039;&amp;#039;&amp;#039; et cliquez sur &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039;. Les changements prendront effet la prochaine fois que vous redémarrerez l&amp;#039;EDI.&lt;br /&gt;
&lt;br /&gt;
===[[FireUI Live Preview|Aperçu instantané FireUI]]===&lt;br /&gt;
&lt;br /&gt;
[[FireUI Live Preview|Aperçu instantané FireUI]] est un nouvel outil inclus dans {{product}} afin de diffuser la fiche active de l&amp;#039;application en cours de conception vers plusieurs périphériques simultanément, afin de voir en temps réel quel aspect a votre application.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;L&amp;#039;aperçu instantané FireUI&amp;#039;&amp;#039;&amp;#039; est constitué de deux parties :&lt;br /&gt;
&lt;br /&gt;
* [[FireUI Live Preview (IDE)|Aperçu instantané FireUI (EDI)]] : l&amp;#039;IDE sert de serveur gérant les connexions des périphériques.&lt;br /&gt;
* [[FireUI App Preview|Aperçu d&amp;#039;app FireUI]]: l&amp;#039;application client que les périphériques cible doivent connecter à une instance de l&amp;#039;EDI.&lt;br /&gt;
&lt;br /&gt;
[[FireUI Live Preview (IDE)|Aperçu instantané FireUI (IDE)]] ne nécessite aucune installation supplémentaire et est livré avec une configuration par défaut. Pour configurer des options supplémentaires de l&amp;#039;EDI, voir [[FireUI Live Preview (IDE Options)|Aperçu instantané FireUI (Options de l&amp;#039;EDI)]].&lt;br /&gt;
&lt;br /&gt;
===[[Dépendances GetIt|Dépendances GetIt]]===&lt;br /&gt;
&lt;br /&gt;
Nouvelle [[Boîte de dialogue Options de projet|page d&amp;#039;options de projet]] pour gérer les dépendances GetIt.&lt;br /&gt;
&lt;br /&gt;
Dans cette boîte de dialogue vous pouvez définir les dépendances du projet relatives aux packages [[Gestionnaire de packages GetIt|Gestionnaire de packages GetIt]] .&lt;br /&gt;
&lt;br /&gt;
Vous pouvez trouver la page d&amp;#039;options des &amp;#039;&amp;#039;&amp;#039;Dépendances GetIt&amp;#039;&amp;#039;&amp;#039; sous {{Menu|Projet &amp;amp;gt; Options &amp;amp;gt; [[Dépendances GetIt|Dépendances GetIt]]}}.&lt;br /&gt;
&lt;br /&gt;
===[[Using the Bookmark Stack|Pile de signets]]===&lt;br /&gt;
&lt;br /&gt;
La &amp;#039;&amp;#039;&amp;#039;pile de signets&amp;#039;&amp;#039;&amp;#039; est une méthode pour naviguer à travers votre code source en ajoutant des signets à votre code dans l&amp;#039;ordre de la pile. Vous pouvez ensuite naviguer en arrière via vos signets en accédant au dernier signet de la pile, qui correspond donc au dernier signet ajouté.&lt;br /&gt;
&lt;br /&gt;
Pour plus de détails, voir [[Editeur de code#pile_de_signets|Pile de signets]] et [[Using the Bookmark Stack|Utilisation de la pile de signets]].&lt;br /&gt;
&lt;br /&gt;
===[[Editeur de code#Extension_de_sélection|Extension de sélection]]===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;L&amp;#039;extension de sélection&amp;#039;&amp;#039;&amp;#039; vous permet de sélectionner l&amp;#039;identificateur sous le curseur et d&amp;#039;étendre la sélection à des groupes syntaxiques plus larges tels que les instructions, les lignes, les blocs, les méthodes, etc. Utilisez le raccourci {{Key|Ctrl+W}} pour commencer à étendre la sélection.&lt;br /&gt;
&lt;br /&gt;
Pour plus de détails, voir [[Editeur de code#Extension de sélection|Extension de sélection]].&lt;br /&gt;
&lt;br /&gt;
===Métriques de toxicité des méthodes===&lt;br /&gt;
&lt;br /&gt;
La nouvelle page de projet &amp;#039;&amp;#039;&amp;#039;[[Métriques de toxicité des méthodes|Métriques de toxicité des méthodes]]&amp;#039;&amp;#039;&amp;#039; ({{Menu|Projet &amp;amp;gt; Métriques de toxicité des méthodes}}) affiche des métriques relatives aux fonctions de votre projet actif que vous pouvez utiliser pour trouver des méthodes bien adaptées au refactoring. Vous pouvez personnaliser les seuils pour les métriques clés dans la nouvelle page d&amp;#039;options &amp;#039;&amp;#039;&amp;#039;[[Métriques de toxicité|Métriques de toxicité]]&amp;#039;&amp;#039;&amp;#039;.&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Améliorations de la Vue Structure pour C++===&lt;br /&gt;
&lt;br /&gt;
La &amp;#039;&amp;#039;&amp;#039;[[Vue Structure|Vue Structure]]&amp;#039;&amp;#039;&amp;#039; a subi plusieurs améliorations pour C++, telles que :&lt;br /&gt;
&lt;br /&gt;
* Prise en charge des fonctionnalités [[C++11|C++11]], telles que les [[Fonctionnalités C++11 prises en charge par les compilateurs C++ améliorés par Clang de RAD Studio#Templates d&amp;#039;alias|templates d&amp;#039;alias]] ou les [[Fonctionnalités C++11 prises en charge par les compilateurs C++ améliorés par Clang de RAD Studio#Liste d&amp;#039;initialiseurs|listes d&amp;#039;initialiseurs]].&lt;br /&gt;
* Prise en charge des fonctions qui renvoient un [http://en.cppreference.com/w/cpp/language/pointer#Pointers_to_functions pointeur de fonction (EN)].&lt;br /&gt;
* Prise en charge des [http://en.cppreference.com/w/cpp/language/bit_field champs de bits non nommés (EN)].&lt;br /&gt;
* Prise en charge améliorée du [[Throw|throw]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Améliorations du service Android===&lt;br /&gt;
&lt;br /&gt;
* Nouvel expert permettant de retirer automatiquement les projets du [[Service Android|service Android]] des [[Application multi-périphérique|applications multi-périphériques]].&lt;br /&gt;
*[[Dépendances du projet|Dépendances du projet]] automatiquement activées :&lt;br /&gt;
** Cette option permet la construction automatique de tous les projets du [[Service Android|service Android]] ajoutés à une [[Application multi-périphérique|application multi-périphérique]], avant la construction de l&amp;#039;application principale.&lt;br /&gt;
&lt;br /&gt;
Pour plus de détails, voir [[Création de services Android|Création de services Android]].&lt;br /&gt;
&lt;br /&gt;
===Prise en charge de l&amp;#039;exécution d&amp;#039;applications iOS Ad-hoc===&lt;br /&gt;
&lt;br /&gt;
Vous pouvez désormais [[Exécution de votre application iOS sur un périphérique iOS|exécuter des applications iOS]] qui sont construites avec l&amp;#039;EDI en utilisant la [[Présentation des plates-formes cible#Utilisation_du_noeud_Configuration|configuration de plate-forme]] &amp;#039;&amp;#039;&amp;#039;Ad-hoc&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
===Fichier info.plist personnalisable===&lt;br /&gt;
&lt;br /&gt;
Vous pouvez [[Personnalisation de votre fichier info.plist|personnaliser votre fichier info.plist]] pour les applications OS X et iOS.&lt;br /&gt;
&lt;br /&gt;
===Améliorations de la conception pour des montres intelligentes Android===&lt;br /&gt;
&lt;br /&gt;
Maintenant, le &amp;#039;&amp;#039;&amp;#039;[[Concepteur de fiches|Concepteur de fiches]]&amp;#039;&amp;#039;&amp;#039; fournit :&lt;br /&gt;
&lt;br /&gt;
* Deux [[Concepteur de fiches#Sélecteur de vues|vues]] spécifiques pour les montres intelligentes Android.&lt;br /&gt;
* Un [[Aperçu multi-périphérique|aperçu]] de la zone de conception pour quatre montres intelligentes Android différentes.&lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations, voir [[Création d&amp;#039;une app Android#Création d&amp;#039;applications pour les montres intelligentes Android|Création d&amp;#039;applications pour les montres intelligentes Android]].&lt;br /&gt;
&lt;br /&gt;
===Nouvelle page d&amp;#039;options Association de fichiers===&lt;br /&gt;
&lt;br /&gt;
Dans les versions précédentes, vous deviez sélectionner les extensions de fichier que vous vouliez associer à {{Product}} lors du processus d&amp;#039;installation.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez maintenant configurer les associations de fichiers de {{Product}} sur la nouvelle page d&amp;#039;options &amp;#039;&amp;#039;&amp;#039;[[Association de fichiers|Association de fichiers]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
===Nouvelle option pour montrer les messages d&amp;#039;information depuis le compilateur Delphi===&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;EDI vous permet désormais d&amp;#039;afficher des messages d&amp;#039;information depuis le compilateur {{delphi}} dans l&amp;#039;onglet Sortie de la [[Vue Messages|Vue Messages]].&lt;br /&gt;
&lt;br /&gt;
Dans {{Menu|Projet &amp;amp;gt; Options &amp;amp;gt; [[Compilateur Delphi|Compilateur Delphi]]}}, vous pouvez cocher l&amp;#039;option &amp;#039;&amp;#039;&amp;#039;Afficher les messages généraux&amp;#039;&amp;#039;&amp;#039; pour votre projet.&lt;br /&gt;
&lt;br /&gt;
===Nouvelle option pour masquer/afficher la [[Editeur de code#Barre d&amp;#039;outils de navigation|barre d&amp;#039;outils de navigation]]===&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;EDI vous permet désormais de masquer la [[Editeur de code#Barre_d_outils_de_navigation|barre d&amp;#039;outils de navigation]] dans [[Editeur de code|l&amp;#039;éditeur de code]].&lt;br /&gt;
&lt;br /&gt;
La nouvelle option &amp;#039;&amp;#039;&amp;#039;Afficher la barre d&amp;#039;outils de navigation&amp;#039;&amp;#039;&amp;#039; est située dans {{menu| Outils &amp;amp;gt; Options &amp;amp;gt; Options de l&amp;#039;éditeur &amp;amp;gt; Affichage}}.&lt;br /&gt;
&lt;br /&gt;
Pour plus d&amp;#039;information, voir [[Utilisation de la barre d&amp;#039;outils de navigation#Masquer la barre d&amp;#039;outils de navigation|Masquer la barre d&amp;#039;outils de navigation]].&lt;br /&gt;
&lt;br /&gt;
===Prise en charge des résolutions élevées===&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;EDI a reçu la [https://msdn.microsoft.com/en-us/library/windows/desktop/dd371771%28v=vs.85%29.aspx prise en charge DPI (EN)]. Il offre une meilleure expérience utilisateur sur les systèmes qui utilisent une valeur DPI supérieure à 96 PPI.&lt;br /&gt;
&lt;br /&gt;
===Autres modifications relatives à l&amp;#039;EDI===&lt;br /&gt;
&lt;br /&gt;
* La [[Utilisation de la vue CPU|vue CPU]] prend en charge le débogage des applications iOS et Android.&lt;br /&gt;
&lt;br /&gt;
==[[Débogage des applications - Index|Debogueurs]]==&lt;br /&gt;
&lt;br /&gt;
===Débogueurs iOS et Android===&lt;br /&gt;
&lt;br /&gt;
* Prise en charge améliorée pour les [[Types structurés#Tableaux dynamiques|tableaux dynamiques]] {{Delphi}}.&lt;br /&gt;
&lt;br /&gt;
===Débogueur iOS 64 bits===&lt;br /&gt;
&lt;br /&gt;
Le débogueur iOS 64 bits acquiert les fonctionnalités suivantes :&lt;br /&gt;
&lt;br /&gt;
* Prise en charge de Unicode&lt;br /&gt;
* Prise en charge améliorée des tableaux, chaînes et caractères {{Delphi}}.&lt;br /&gt;
* Prise en charge des tableaux à index de base non-zéro&lt;br /&gt;
* Prise en charge de l&amp;#039;évaluation des propriétés et des variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Capacité à définir des points d&amp;#039;arrêt dans les fichiers d&amp;#039;en-tête C++.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==[[Utilitaires|Utilitaires]]==&lt;br /&gt;
&lt;br /&gt;
===[[Installateur|Nouvel installateur {{Product}}]]===&lt;br /&gt;
&lt;br /&gt;
{{Product}} fournit un nouvel [[Installateur|installateur]] qui vous permet d&amp;#039;installer uniquement les [[Plates-formes cible prises en charge|plates-formes cible]] que vous souhaitez utiliser. Après avoir installé {{Product}}, vous pouvez de nouveau utiliser l&amp;#039;installateur chaque fois que vous souhaitez ajouter ou supprimer des plates-formes cible de {{Product}}.&lt;br /&gt;
&lt;br /&gt;
===Autres modifications des utilitaires===&lt;br /&gt;
&lt;br /&gt;
* L&amp;#039;outil [[Java2OP.exe, le générateur de fichier pont natif pour Android|Java2OP.exe]] fonctionne maintenant avec JDK 8.&lt;br /&gt;
* Nouvel outil &amp;#039;&amp;#039;&amp;#039;SdkTransform.exe&amp;#039;&amp;#039;&amp;#039;. Il permet de convertir des en-têtes Objective-C ou C++ headers en en-têtes {{Delphi|London}}.&lt;br /&gt;
&lt;br /&gt;
==[[samp_en:Main Page|Applications exemple]]==&lt;br /&gt;
&lt;br /&gt;
De nouvelles applications exemple ont été ajoutées à {{Version|Berlin}} :&lt;br /&gt;
&lt;br /&gt;
* L&amp;#039;exemple RTL.RegExpression :&lt;br /&gt;
** La version C++ de [[samp_en:RTL.RegExpressionFMX Sample|l&amp;#039;exemple RTL.RegExpression FMX]].&lt;br /&gt;
** La version C++ de [[samp_en:RTL.RegExpressionVCL Sample|l&amp;#039;exemple RTL.RegExpression VCL]].&lt;br /&gt;
* La version C++ de [[samp_en:VCL.Windows 10 SharingContract Sample|l&amp;#039;exemple VCL.Windows 10 SharingContract]]&lt;br /&gt;
* [[samp_en:EMS.ThingPoint IoT Sample|L&amp;#039;exemple EMS.ThingPoint IoT]].&lt;br /&gt;
* La version C++ et {{Delphi}} de [[samp_en:EMS.APIDocAttributes Sample|l&amp;#039;exemple EMS.APIDocAttributes]].&lt;br /&gt;
* [[samp_en:FMX.Remote Service Demo Sample|L&amp;#039;exemple de démo FMX.Remote Service]].&lt;br /&gt;
* [[samp_en:FMX.Birthday Reminder Sample|L&amp;#039;exemple de démo FMX.Birthday Reminder]].&lt;br /&gt;
* Exemples FireDAC :&lt;br /&gt;
** Exemple [[samp_en:FireDAC.InterBase Arrays Sample|FireDAC InterBase Arrays]]&lt;br /&gt;
** L&amp;#039;exemple MongoDB.ListView.&lt;br /&gt;
*** Vous pouvez trouver cet exemple dans : {{path|Object Pascal\Database\FireDAC\Samples\DBMS Specific\MongoDB\ListView}}&lt;br /&gt;
** L&amp;#039;exemple Oracle.CQN.&lt;br /&gt;
*** Vous pouvez trouver cet exemple dans : {{path|Object Pascal\Database\FireDAC\Samples\DBMS Specific\Oracle\CQN}}&lt;br /&gt;
** L&amp;#039;exemple PostgreSQL.Arrays.&lt;br /&gt;
*** Vous pouvez trouver cet exemple dans : {{path|Object Pascal\Database\FireDAC\Samples\DBMS Specific\PostgreSQL\Arrays}}&lt;br /&gt;
** L&amp;#039;exemple PostgreSQL.Ranges.&lt;br /&gt;
*** Vous pouvez trouver cet exemple dans : {{path|Object Pascal\Database\FireDAC\Samples\DBMS Specific\PostgreSQL\Ranges}}&lt;br /&gt;
** L&amp;#039;exemple SQLite.Encryption.&lt;br /&gt;
*** Vous pouvez trouver cet exemple dans : {{path|Object Pascal\Database\FireDAC\Samples\DBMS Specific\SQLite\Encryption}}&lt;br /&gt;
&lt;br /&gt;
==Aide==&lt;br /&gt;
&lt;br /&gt;
* Les [[Utilisation de l&amp;#039;aide - CHM|fichiers CHM]] fournissent un onglet &amp;#039;&amp;#039;&amp;#039;Favoris&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
==Rubriques==&lt;br /&gt;
&lt;br /&gt;
* [[Notes de release|Notes de release]]&lt;br /&gt;
* [[Nouveautés des releases précédentes|Nouveautés des releases précédentes]] &lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[Notes d&amp;#039;installation|Notes d&amp;#039;installation]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Berlin]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Post&amp;diff=198044</id>
		<title>Post</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Post&amp;diff=198044"/>
		<updated>2016-03-01T08:44:27Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : 1 version : Internal Review. LOC-21718&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Post&amp;#039;&amp;#039;&amp;#039; peut faire référence à ce qui suit :&lt;br /&gt;
&lt;br /&gt;
* La méthode de requête {{Code|POST}} de [[Wikipedia:Hypertext Transfer Protocol|HTTP]]. Voir [[Utilisation d&amp;#039;un client HTTP#SEnvoi d&amp;#039;une requête HTTP en utilisant la méthode de requête HTTP POST|Envoi d&amp;#039;une requête HTTP en utilisant la méthode de requête HTTP POST]].&lt;br /&gt;
* Le nom d&amp;#039;un membre API. [[lib_fr:Special:Search/Post|Effectuez une recherche dans la documentation des bibliothèques]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages de levée d&amp;#039;ambiguïté]]&lt;br /&gt;
[[Category:Berlin]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Release&amp;diff=198046</id>
		<title>Release</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Release&amp;diff=198046"/>
		<updated>2016-03-01T08:44:27Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : 1 version : Internal Review. LOC-21718&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Release&amp;#039;&amp;#039;&amp;#039; peut faire référence à ce qui suit :&lt;br /&gt;
&lt;br /&gt;
* Le nom d&amp;#039;un membre API. [[lib_fr:Special:Search/Release|Effectuez une recherche dans la documentation des bibliothèques]].&lt;br /&gt;
* Les [[Notes de release|notes de release de {{Product}} {{Version}}]].&lt;br /&gt;
* [[Présentation du déploiement des applications|Préparation de votre application pour une release]].&lt;br /&gt;
* La configuration de construction [[Présentation des configurations de construction#Configuration de release|Release]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages de levée d&amp;#039;ambiguïté]]&lt;br /&gt;
[[Category:Berlin]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=ParamCount&amp;diff=198042</id>
		<title>ParamCount</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=ParamCount&amp;diff=198042"/>
		<updated>2016-03-01T08:44:26Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : 1 version : Internal Review. LOC-21718&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ParamCount&amp;#039;&amp;#039;&amp;#039; est le nom d&amp;#039;un membre API implémenté par de nombreuses classes différentes. [[lib_fr:Special:Search/ParamCount|Effectuez une recherche dans la documentation des bibliothèques]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages de levée d&amp;#039;ambiguïté]]&lt;br /&gt;
[[Category:Berlin]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Code-barres&amp;diff=198040</id>
		<title>Code-barres</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Code-barres&amp;diff=198040"/>
		<updated>2016-03-01T08:44:26Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : 1 version : Internal Review. LOC-21718&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
Un &amp;#039;&amp;#039;&amp;#039;[[Wikipedia:barcode|code-barres (EN)]]&amp;#039;&amp;#039;&amp;#039; est une représentation de données optique lisible par la machine. Pour savoir comment utiliser les codes-barres dans vos applications, regardez le webinar [https://www.youtube.com/watch?v=yJI2HaNMReI Barcode Scanner on Android and iOS (EN)].&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages de levée d&amp;#039;ambiguïté]]&lt;br /&gt;
[[Category:Berlin]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Post&amp;diff=198043</id>
		<title>Post</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Post&amp;diff=198043"/>
		<updated>2016-03-01T08:44:22Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : Internal Review. LOC-21718&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Post&amp;#039;&amp;#039;&amp;#039; peut faire référence à ce qui suit :&lt;br /&gt;
&lt;br /&gt;
* La méthode de requête {{Code|POST}} de [[Wikipedia:Hypertext Transfer Protocol|HTTP]]. Voir [[Utilisation d&amp;#039;un client HTTP#SEnvoi d&amp;#039;une requête HTTP en utilisant la méthode de requête HTTP POST|Envoi d&amp;#039;une requête HTTP en utilisant la méthode de requête HTTP POST]].&lt;br /&gt;
* Le nom d&amp;#039;un membre API. [[lib_fr:Special:Search/Post|Effectuez une recherche dans la documentation des bibliothèques]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages de levée d&amp;#039;ambiguïté]]&lt;br /&gt;
[[Category:Berlin]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Release&amp;diff=198045</id>
		<title>Release</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Release&amp;diff=198045"/>
		<updated>2016-03-01T08:44:22Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : Internal Review. LOC-21718&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Release&amp;#039;&amp;#039;&amp;#039; peut faire référence à ce qui suit :&lt;br /&gt;
&lt;br /&gt;
* Le nom d&amp;#039;un membre API. [[lib_fr:Special:Search/Release|Effectuez une recherche dans la documentation des bibliothèques]].&lt;br /&gt;
* Les [[Notes de release|notes de release de {{Product}} {{Version}}]].&lt;br /&gt;
* [[Présentation du déploiement des applications|Préparation de votre application pour une release]].&lt;br /&gt;
* La configuration de construction [[Présentation des configurations de construction#Configuration de release|Release]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages de levée d&amp;#039;ambiguïté]]&lt;br /&gt;
[[Category:Berlin]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=ParamCount&amp;diff=198041</id>
		<title>ParamCount</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=ParamCount&amp;diff=198041"/>
		<updated>2016-03-01T08:44:22Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : Internal Review. LOC-21718&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ParamCount&amp;#039;&amp;#039;&amp;#039; est le nom d&amp;#039;un membre API implémenté par de nombreuses classes différentes. [[lib_fr:Special:Search/ParamCount|Effectuez une recherche dans la documentation des bibliothèques]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages de levée d&amp;#039;ambiguïté]]&lt;br /&gt;
[[Category:Berlin]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Code-barres&amp;diff=198039</id>
		<title>Code-barres</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Code-barres&amp;diff=198039"/>
		<updated>2016-03-01T08:44:21Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : Internal Review. LOC-21718&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
Un &amp;#039;&amp;#039;&amp;#039;[[Wikipedia:barcode|code-barres (EN)]]&amp;#039;&amp;#039;&amp;#039; est une représentation de données optique lisible par la machine. Pour savoir comment utiliser les codes-barres dans vos applications, regardez le webinar [https://www.youtube.com/watch?v=yJI2HaNMReI Barcode Scanner on Android and iOS (EN)].&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages de levée d&amp;#039;ambiguïté]]&lt;br /&gt;
[[Category:Berlin]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Documentation_des_API_personnalis%C3%A9es&amp;diff=198038</id>
		<title>Documentation des API personnalisées</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Documentation_des_API_personnalis%C3%A9es&amp;diff=198038"/>
		<updated>2016-03-01T08:40:53Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : 1 version : Internal review. LOC-21758&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Extension du serveur EMS}}&lt;br /&gt;
&lt;br /&gt;
{{Product}} vous permet de créer une documentation API pour de nouveaux modules Ressource EMS aux formats YAML et JSON. La nouvelle implémentation est basée sur la spécification de documentation API [http://swagger-api.github.io/swagger-core/spec.html Swagger RESTful (EN)].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;EMS.ResourceType&amp;#039;&amp;#039;&amp;#039; implémente les nouveaux attributs pouvant être utilisés pour générer la documentation API des points de terminaison d&amp;#039;une ressource.&lt;br /&gt;
&lt;br /&gt;
==EndPointRequestSummary==&lt;br /&gt;
&lt;br /&gt;
Description d&amp;#039;une méthode :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointRequestSummary(&amp;#039;ATags&amp;#039;, &amp;#039;ASummary&amp;#039;, &amp;#039;ADescription&amp;#039;, &amp;#039;AProduces&amp;#039;, &amp;#039;AConsume&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tags&amp;#039;&amp;#039;&amp;#039; : définit une balise.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Summary&amp;#039;&amp;#039;&amp;#039; : titre d&amp;#039;une méthode.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039; : description d&amp;#039;une méthode. &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Produces&amp;#039;&amp;#039;&amp;#039; : type MIME que l&amp;#039;API peut produire. Global pour toutes les API, mais peut être redéfini sur des appels d&amp;#039;API spécifiques. La valeur doit être décrite sous Mime Types.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Consume&amp;#039;&amp;#039;&amp;#039; : type MIME que l&amp;#039;API peut consommer. Global pour toutes les API, mais peut être redéfini sur des appels d&amp;#039;API spécifiques. La valeur doit être décrite sous Mime Types.&lt;br /&gt;
&lt;br /&gt;
Exemple de déclaration de la description de la méthode GET d&amp;#039;un point de terminaison :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointRequestSummary(&amp;#039;Api Doc&amp;#039;, &amp;#039;Get API EndPoints&amp;#039;, &amp;#039;Used to retrieve all the API EndPoints&amp;#039;, &amp;#039;application/json&amp;#039;, &amp;#039;&amp;#039;)]&lt;br /&gt;
procedure Get(const AContext: TEndpointContext; const ARequest: TEndpointRequest; const AResponse: TEndpointResponse);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EndPointRequestParameter==&lt;br /&gt;
&lt;br /&gt;
Description des paramètres utilisés dans une requête.&lt;br /&gt;
&lt;br /&gt;
Un paramètre unique est défini par la combinaison d&amp;#039;un nom et d&amp;#039;un emplacement.&lt;br /&gt;
&lt;br /&gt;
Il existe cinq types de paramètres possibles : Path, Query, Header, Body et Form.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointRequestParameter(&amp;#039;AIn&amp;#039;, &amp;#039;AName&amp;#039;, &amp;#039;ADescription&amp;#039;, &amp;#039;ARequired&amp;#039;, &amp;#039;AType&amp;#039;, &amp;#039;AFormat&amp;#039;, &amp;#039;AItemType&amp;#039;, &amp;#039;AJSONSchema&amp;#039;, &amp;#039;AReference&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ParamIn&amp;#039;&amp;#039;&amp;#039; : l&amp;#039;emplacement du paramètre : Path, Query, Header, Body ou Form.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; : le nom du paramètre. Les noms de paramètres sont sensibles à la casse. &lt;br /&gt;
** Quand l&amp;#039;emplacement du paramètre est &amp;#039;Body&amp;#039;, son nom doit être &amp;#039;body&amp;#039;.&lt;br /&gt;
** Quand l&amp;#039;emplacement du paramètre est &amp;#039;Path&amp;#039;, son nom doit correspondre au segment de chemin d&amp;#039;accès associé depuis le champ chemin dans l&amp;#039;objet Paths.&lt;br /&gt;
** Dans les autres cas, son nom correspond à ParamIn.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039; : brève description du paramètre. Elle peut contenir des exemples d&amp;#039;utilisation. Vous pouvez utiliser la syntaxe GFM pour une représentation de texte formaté.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Required&amp;#039;&amp;#039;&amp;#039; : détermine si le paramètre est obligatoire. Si le paramètre est dans &amp;#039;Path&amp;#039;, cette propriété est requise et sa valeur doit être &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, sinon la propriété peut être incluse et sa valeur par défaut est &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ParamType&amp;#039;&amp;#039;&amp;#039; : le type du paramètre. Pour des valeurs autres que &amp;#039;Body&amp;#039;, la valeur doit être l&amp;#039;une des valeurs suivantes : &amp;#039;spArray&amp;#039;, &amp;#039;spBoolean&amp;#039;, &amp;#039;spInteger&amp;#039;, &amp;#039;spNumber&amp;#039;, &amp;#039;spNull&amp;#039;, &amp;#039;spObject&amp;#039;, &amp;#039;spString&amp;#039;, &amp;#039;spFile&amp;#039;. Si ParamType vaut &amp;#039;spFile&amp;#039;, le type MIME consommé doit être soit &amp;quot;multipart/form-data&amp;quot;, soit &amp;quot;application/x-www-form-urlencoded&amp;quot; et le paramètre doit être de &amp;quot;form-data&amp;quot;. Pour la valeur &amp;#039;Body&amp;#039;, JSONSchema et Reference sont requis.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ItemFormat&amp;#039;&amp;#039;&amp;#039; : le format d&amp;#039;extension pour le ParamType : &amp;#039;None&amp;#039;, &amp;#039;Int32&amp;#039;, &amp;#039;Int64&amp;#039;, &amp;#039;Float&amp;#039;, &amp;#039;Double&amp;#039;, &amp;#039;Byte&amp;#039;, &amp;#039;Date&amp;#039;, &amp;#039;DateTime&amp;#039;, &amp;#039;Password&amp;#039;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ItemType&amp;#039;&amp;#039;&amp;#039; : requis si ParamType a la valeur &amp;#039;array&amp;#039;. Décrit le type des éléments dans le tableau.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;JSONSchema&amp;#039;&amp;#039;&amp;#039; : La définition de schéma de la primitive envoyée au serveur. Il s&amp;#039;agit d&amp;#039;une définition de la structure de la requête du corps. Si ParamType vaut &amp;#039;Array&amp;#039; ou &amp;#039;Object&amp;#039;, un schéma peut être défini.&lt;br /&gt;
** Par exemple :&lt;br /&gt;
**: Au format JSON : {&amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&amp;quot;additionalProperties&amp;quot;: {&amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;}}.&lt;br /&gt;
**: Au format YAML : &lt;br /&gt;
**:: type: object&lt;br /&gt;
**::  additionalProperties:&lt;br /&gt;
**::   type: string&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Reference&amp;#039;&amp;#039;&amp;#039; : La définition de schéma de la primitive envoyée au serveur. Il s&amp;#039;agit d&amp;#039;une définition de la structure de la requête du corps. Si Type vaut &amp;#039;Array&amp;#039; ou &amp;#039;Object&amp;#039;, une définition de schéma peut être définie.&lt;br /&gt;
** Par exemple :&lt;br /&gt;
**: &amp;#039;#/definitions/pet&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointRequestParameter(TAPIDocParameter.TParameterIn.Path, &amp;#039;item&amp;#039;, &amp;#039;Path Parameter item Description&amp;#039;, true, TAPIDoc.TPrimitiveType.spString, TAPIDoc.TPrimitiveFormat.None, TAPIDoc.TPrimitiveType.spString, &amp;#039;&amp;#039;, &amp;#039;&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EndPointResponseDetails==&lt;br /&gt;
&lt;br /&gt;
Description des réponses à la requête :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointResponseDetails(&amp;#039;ACode&amp;#039;, &amp;#039;ADescription&amp;#039;, &amp;#039;AType&amp;#039;, &amp;#039;AFormat&amp;#039;, &amp;#039;ASchema&amp;#039;, &amp;#039;AReference&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Code&amp;#039;&amp;#039;&amp;#039; : le code de réponse.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039; : description du code de réponse.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;PrimitiveType&amp;#039;&amp;#039;&amp;#039; : le type de la [http://swagger-api.github.io/swagger-core/spec.html#4-3-1-primitives primitive (EN)] renvoyée. Les types de données primitifs compris dans la spécification Swagger sont basés sur les types pris en charge par le JSON-Schema Draft 4. JSON Schema définit sept types primitifs pour des valeurs JSON : &amp;#039;spArray&amp;#039;, &amp;#039;spBoolean&amp;#039;, &amp;#039;spInteger&amp;#039;, &amp;#039;spNumber&amp;#039;, &amp;#039;spNull&amp;#039;, &amp;#039;spObject&amp;#039;, &amp;#039;spString&amp;#039;. Voir [http://json-schema.org/latest/json-schema-core.html#anchor8 JSON Schema primitive types (EN)]. Un type de données primitif supplémentaire, &amp;#039;spFile&amp;#039;, est utilisé par les objets Parameter et Response afin de définir le type de paramètre ou la réponse comme étant un fichier.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;PrimitiveFormat&amp;#039;&amp;#039;&amp;#039; : le format de la primitive renvoyée, par exemple : &amp;#039;None&amp;#039;, &amp;#039;Int32&amp;#039;, &amp;#039;Int64&amp;#039;, &amp;#039;Float&amp;#039;, &amp;#039;Double&amp;#039;, &amp;#039;Byte&amp;#039;, &amp;#039;Date&amp;#039;, &amp;#039;DateTime&amp;#039;, &amp;#039;Password&amp;#039;.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Schema&amp;#039;&amp;#039;&amp;#039;: &lt;br /&gt;
** Par exemple :&lt;br /&gt;
**: Au format JSON : {&amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&amp;quot;additionalProperties&amp;quot;: {&amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;}}.&lt;br /&gt;
**: Au format YAML : &lt;br /&gt;
**:: type: object&lt;br /&gt;
**::  additionalProperties:&lt;br /&gt;
**::   type: string&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Reference :&amp;#039;&amp;#039;&amp;#039; la définition de schéma de la primitive renvoyée. Il s&amp;#039;agit d&amp;#039;une définition de la structure de la réponse. Si PrimitiveType vaut &amp;#039;spArray&amp;#039; ou &amp;#039;spObject&amp;#039;, une définition de schéma peut être définie.&lt;br /&gt;
** Par exemple :&lt;br /&gt;
**: &amp;#039;#/definitions/pet&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointResponseDetails(200, &amp;#039;Ok&amp;#039;, TAPIDoc.TPrimitiveType.spObject, TAPIDoc.TPrimitiveFormat.None, &amp;#039;&amp;#039;, &amp;#039;#/definitions/EmployeeTable&amp;#039;)]&lt;br /&gt;
[EndPointResponseDetails(404, &amp;#039;Not Found&amp;#039;, TAPIDoc.TPrimitiveType.spNull, TAPIDoc.TPrimitiveFormat.None, &amp;#039;&amp;#039;, &amp;#039;&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EndPointObjectsYAMLDefinitions==&lt;br /&gt;
&lt;br /&gt;
Définition des objets pour la version YAML de l&amp;#039;API.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
  [EndPointObjectsYAMLDefinitions(Objects)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Objects : Définitions d&amp;#039;objets YAML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
type&lt;br /&gt;
  [ResourceName(&amp;#039;SampleAttributes&amp;#039;)]&lt;br /&gt;
  [EndPointObjectsYAMLDefinitions(cYamlDefinitions)]&lt;br /&gt;
&lt;br /&gt;
// YAML Object definition:&lt;br /&gt;
  cYamlDefinitions =&lt;br /&gt;
  &amp;#039;# &amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039; PutObject:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;   properties:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    EMP_NO:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: integer&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    FIRST_NAME:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    LAST_NAME:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    PHONE_EXT:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    HIRE_DATE:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     format: date-time&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    DEPT_NO:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    JOB_CODE:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    JOB_GRADE:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: integer&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    JOB_COUNTRY:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    SALARY:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: integer&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    FULL_NAME:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;# &amp;#039; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EndPointObjectsJSONDefinitions==&lt;br /&gt;
&lt;br /&gt;
Définition des objets pour la version JSON de l&amp;#039;API.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    [EndPointObjectsJSONDefinitions(Objects)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Objects : Définitions d&amp;#039;objets JSON.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
type&lt;br /&gt;
  [ResourceName(&amp;#039;SampleAttributes&amp;#039;)]&lt;br /&gt;
  [EndPointObjectsJSONDefinitions(cJSONDefinitions)]&lt;br /&gt;
&lt;br /&gt;
// JSON Object definition:&lt;br /&gt;
&lt;br /&gt;
cJSONDefinitions =&lt;br /&gt;
 &amp;#039;{&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;   &amp;quot;PutObject&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;       &amp;quot;properties&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;EMP_NO&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;FIRST_NAME&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;LAST_NAME&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;PHONE_EXT&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;HIRE_DATE&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;format&amp;quot;: &amp;quot;date-time&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;DEPT_NO&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;JOB_CODE&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;JOB_GRADE&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            &amp;quot;JOB_COUNTRY&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;                &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            &amp;quot;SALARY&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;                &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            &amp;quot;FULL_NAME&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;                &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            }&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;        }&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    }&amp;#039; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rubriques==&lt;br /&gt;
&lt;br /&gt;
* [[Création d&amp;#039;un package EMS|Création d&amp;#039;un package EMS]]&lt;br /&gt;
* [[Ajout d&amp;#039;un module EMS à un package EMS|Ajout d&amp;#039;un module EMS à un package EMS]]&lt;br /&gt;
* [[Installation d&amp;#039;un package EMS|Installation d&amp;#039;un package EMS]]&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[samp_en:EMS.APIDocAttributes Sample|Exemple API Documentation Attributes]]&lt;br /&gt;
* [[Ressource API EMS|Ressource API EMS]]&lt;br /&gt;
* [http://swagger-api.github.io/swagger-core/spec.html Swagger RESTful API Documentation Specification (EN)]&lt;br /&gt;
* [[Serveur EMS|Serveur EMS]]&lt;br /&gt;
* [[Serveur de la console EMS|Serveur de la console EMS]]&lt;br /&gt;
* [[Application client EMS|Application client EMS]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Berlin]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Documentation_des_API_personnalis%C3%A9es&amp;diff=198037</id>
		<title>Documentation des API personnalisées</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Documentation_des_API_personnalis%C3%A9es&amp;diff=198037"/>
		<updated>2016-03-01T08:40:49Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : Internal review. LOC-21758&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Extension du serveur EMS}}&lt;br /&gt;
&lt;br /&gt;
{{Product}} vous permet de créer une documentation API pour de nouveaux modules Ressource EMS aux formats YAML et JSON. La nouvelle implémentation est basée sur la spécification de documentation API [http://swagger-api.github.io/swagger-core/spec.html Swagger RESTful (EN)].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;EMS.ResourceType&amp;#039;&amp;#039;&amp;#039; implémente les nouveaux attributs pouvant être utilisés pour générer la documentation API des points de terminaison d&amp;#039;une ressource.&lt;br /&gt;
&lt;br /&gt;
==EndPointRequestSummary==&lt;br /&gt;
&lt;br /&gt;
Description d&amp;#039;une méthode :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointRequestSummary(&amp;#039;ATags&amp;#039;, &amp;#039;ASummary&amp;#039;, &amp;#039;ADescription&amp;#039;, &amp;#039;AProduces&amp;#039;, &amp;#039;AConsume&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tags&amp;#039;&amp;#039;&amp;#039; : définit une balise.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Summary&amp;#039;&amp;#039;&amp;#039; : titre d&amp;#039;une méthode.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039; : description d&amp;#039;une méthode. &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Produces&amp;#039;&amp;#039;&amp;#039; : type MIME que l&amp;#039;API peut produire. Global pour toutes les API, mais peut être redéfini sur des appels d&amp;#039;API spécifiques. La valeur doit être décrite sous Mime Types.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Consume&amp;#039;&amp;#039;&amp;#039; : type MIME que l&amp;#039;API peut consommer. Global pour toutes les API, mais peut être redéfini sur des appels d&amp;#039;API spécifiques. La valeur doit être décrite sous Mime Types.&lt;br /&gt;
&lt;br /&gt;
Exemple de déclaration de la description de la méthode GET d&amp;#039;un point de terminaison :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointRequestSummary(&amp;#039;Api Doc&amp;#039;, &amp;#039;Get API EndPoints&amp;#039;, &amp;#039;Used to retrieve all the API EndPoints&amp;#039;, &amp;#039;application/json&amp;#039;, &amp;#039;&amp;#039;)]&lt;br /&gt;
procedure Get(const AContext: TEndpointContext; const ARequest: TEndpointRequest; const AResponse: TEndpointResponse);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EndPointRequestParameter==&lt;br /&gt;
&lt;br /&gt;
Description des paramètres utilisés dans une requête.&lt;br /&gt;
&lt;br /&gt;
Un paramètre unique est défini par la combinaison d&amp;#039;un nom et d&amp;#039;un emplacement.&lt;br /&gt;
&lt;br /&gt;
Il existe cinq types de paramètres possibles : Path, Query, Header, Body et Form.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointRequestParameter(&amp;#039;AIn&amp;#039;, &amp;#039;AName&amp;#039;, &amp;#039;ADescription&amp;#039;, &amp;#039;ARequired&amp;#039;, &amp;#039;AType&amp;#039;, &amp;#039;AFormat&amp;#039;, &amp;#039;AItemType&amp;#039;, &amp;#039;AJSONSchema&amp;#039;, &amp;#039;AReference&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ParamIn&amp;#039;&amp;#039;&amp;#039; : l&amp;#039;emplacement du paramètre : Path, Query, Header, Body ou Form.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; : le nom du paramètre. Les noms de paramètres sont sensibles à la casse. &lt;br /&gt;
** Quand l&amp;#039;emplacement du paramètre est &amp;#039;Body&amp;#039;, son nom doit être &amp;#039;body&amp;#039;.&lt;br /&gt;
** Quand l&amp;#039;emplacement du paramètre est &amp;#039;Path&amp;#039;, son nom doit correspondre au segment de chemin d&amp;#039;accès associé depuis le champ chemin dans l&amp;#039;objet Paths.&lt;br /&gt;
** Dans les autres cas, son nom correspond à ParamIn.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039; : brève description du paramètre. Elle peut contenir des exemples d&amp;#039;utilisation. Vous pouvez utiliser la syntaxe GFM pour une représentation de texte formaté.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Required&amp;#039;&amp;#039;&amp;#039; : détermine si le paramètre est obligatoire. Si le paramètre est dans &amp;#039;Path&amp;#039;, cette propriété est requise et sa valeur doit être &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, sinon la propriété peut être incluse et sa valeur par défaut est &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ParamType&amp;#039;&amp;#039;&amp;#039; : le type du paramètre. Pour des valeurs autres que &amp;#039;Body&amp;#039;, la valeur doit être l&amp;#039;une des valeurs suivantes : &amp;#039;spArray&amp;#039;, &amp;#039;spBoolean&amp;#039;, &amp;#039;spInteger&amp;#039;, &amp;#039;spNumber&amp;#039;, &amp;#039;spNull&amp;#039;, &amp;#039;spObject&amp;#039;, &amp;#039;spString&amp;#039;, &amp;#039;spFile&amp;#039;. Si ParamType vaut &amp;#039;spFile&amp;#039;, le type MIME consommé doit être soit &amp;quot;multipart/form-data&amp;quot;, soit &amp;quot;application/x-www-form-urlencoded&amp;quot; et le paramètre doit être de &amp;quot;form-data&amp;quot;. Pour la valeur &amp;#039;Body&amp;#039;, JSONSchema et Reference sont requis.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ItemFormat&amp;#039;&amp;#039;&amp;#039; : le format d&amp;#039;extension pour le ParamType : &amp;#039;None&amp;#039;, &amp;#039;Int32&amp;#039;, &amp;#039;Int64&amp;#039;, &amp;#039;Float&amp;#039;, &amp;#039;Double&amp;#039;, &amp;#039;Byte&amp;#039;, &amp;#039;Date&amp;#039;, &amp;#039;DateTime&amp;#039;, &amp;#039;Password&amp;#039;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ItemType&amp;#039;&amp;#039;&amp;#039; : requis si ParamType a la valeur &amp;#039;array&amp;#039;. Décrit le type des éléments dans le tableau.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;JSONSchema&amp;#039;&amp;#039;&amp;#039; : La définition de schéma de la primitive envoyée au serveur. Il s&amp;#039;agit d&amp;#039;une définition de la structure de la requête du corps. Si ParamType vaut &amp;#039;Array&amp;#039; ou &amp;#039;Object&amp;#039;, un schéma peut être défini.&lt;br /&gt;
** Par exemple :&lt;br /&gt;
**: Au format JSON : {&amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&amp;quot;additionalProperties&amp;quot;: {&amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;}}.&lt;br /&gt;
**: Au format YAML : &lt;br /&gt;
**:: type: object&lt;br /&gt;
**::  additionalProperties:&lt;br /&gt;
**::   type: string&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Reference&amp;#039;&amp;#039;&amp;#039; : La définition de schéma de la primitive envoyée au serveur. Il s&amp;#039;agit d&amp;#039;une définition de la structure de la requête du corps. Si Type vaut &amp;#039;Array&amp;#039; ou &amp;#039;Object&amp;#039;, une définition de schéma peut être définie.&lt;br /&gt;
** Par exemple :&lt;br /&gt;
**: &amp;#039;#/definitions/pet&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointRequestParameter(TAPIDocParameter.TParameterIn.Path, &amp;#039;item&amp;#039;, &amp;#039;Path Parameter item Description&amp;#039;, true, TAPIDoc.TPrimitiveType.spString, TAPIDoc.TPrimitiveFormat.None, TAPIDoc.TPrimitiveType.spString, &amp;#039;&amp;#039;, &amp;#039;&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EndPointResponseDetails==&lt;br /&gt;
&lt;br /&gt;
Description des réponses à la requête :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointResponseDetails(&amp;#039;ACode&amp;#039;, &amp;#039;ADescription&amp;#039;, &amp;#039;AType&amp;#039;, &amp;#039;AFormat&amp;#039;, &amp;#039;ASchema&amp;#039;, &amp;#039;AReference&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Code&amp;#039;&amp;#039;&amp;#039; : le code de réponse.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039; : description du code de réponse.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;PrimitiveType&amp;#039;&amp;#039;&amp;#039; : le type de la [http://swagger-api.github.io/swagger-core/spec.html#4-3-1-primitives primitive (EN)] renvoyée. Les types de données primitifs compris dans la spécification Swagger sont basés sur les types pris en charge par le JSON-Schema Draft 4. JSON Schema définit sept types primitifs pour des valeurs JSON : &amp;#039;spArray&amp;#039;, &amp;#039;spBoolean&amp;#039;, &amp;#039;spInteger&amp;#039;, &amp;#039;spNumber&amp;#039;, &amp;#039;spNull&amp;#039;, &amp;#039;spObject&amp;#039;, &amp;#039;spString&amp;#039;. Voir [http://json-schema.org/latest/json-schema-core.html#anchor8 JSON Schema primitive types (EN)]. Un type de données primitif supplémentaire, &amp;#039;spFile&amp;#039;, est utilisé par les objets Parameter et Response afin de définir le type de paramètre ou la réponse comme étant un fichier.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;PrimitiveFormat&amp;#039;&amp;#039;&amp;#039; : le format de la primitive renvoyée, par exemple : &amp;#039;None&amp;#039;, &amp;#039;Int32&amp;#039;, &amp;#039;Int64&amp;#039;, &amp;#039;Float&amp;#039;, &amp;#039;Double&amp;#039;, &amp;#039;Byte&amp;#039;, &amp;#039;Date&amp;#039;, &amp;#039;DateTime&amp;#039;, &amp;#039;Password&amp;#039;.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Schema&amp;#039;&amp;#039;&amp;#039;: &lt;br /&gt;
** Par exemple :&lt;br /&gt;
**: Au format JSON : {&amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&amp;quot;additionalProperties&amp;quot;: {&amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;}}.&lt;br /&gt;
**: Au format YAML : &lt;br /&gt;
**:: type: object&lt;br /&gt;
**::  additionalProperties:&lt;br /&gt;
**::   type: string&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Reference :&amp;#039;&amp;#039;&amp;#039; la définition de schéma de la primitive renvoyée. Il s&amp;#039;agit d&amp;#039;une définition de la structure de la réponse. Si PrimitiveType vaut &amp;#039;spArray&amp;#039; ou &amp;#039;spObject&amp;#039;, une définition de schéma peut être définie.&lt;br /&gt;
** Par exemple :&lt;br /&gt;
**: &amp;#039;#/definitions/pet&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointResponseDetails(200, &amp;#039;Ok&amp;#039;, TAPIDoc.TPrimitiveType.spObject, TAPIDoc.TPrimitiveFormat.None, &amp;#039;&amp;#039;, &amp;#039;#/definitions/EmployeeTable&amp;#039;)]&lt;br /&gt;
[EndPointResponseDetails(404, &amp;#039;Not Found&amp;#039;, TAPIDoc.TPrimitiveType.spNull, TAPIDoc.TPrimitiveFormat.None, &amp;#039;&amp;#039;, &amp;#039;&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EndPointObjectsYAMLDefinitions==&lt;br /&gt;
&lt;br /&gt;
Définition des objets pour la version YAML de l&amp;#039;API.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
  [EndPointObjectsYAMLDefinitions(Objects)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Objects : Définitions d&amp;#039;objets YAML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
type&lt;br /&gt;
  [ResourceName(&amp;#039;SampleAttributes&amp;#039;)]&lt;br /&gt;
  [EndPointObjectsYAMLDefinitions(cYamlDefinitions)]&lt;br /&gt;
&lt;br /&gt;
// YAML Object definition:&lt;br /&gt;
  cYamlDefinitions =&lt;br /&gt;
  &amp;#039;# &amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039; PutObject:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;   properties:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    EMP_NO:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: integer&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    FIRST_NAME:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    LAST_NAME:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    PHONE_EXT:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    HIRE_DATE:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     format: date-time&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    DEPT_NO:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    JOB_CODE:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    JOB_GRADE:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: integer&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    JOB_COUNTRY:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    SALARY:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: integer&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    FULL_NAME:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;# &amp;#039; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EndPointObjectsJSONDefinitions==&lt;br /&gt;
&lt;br /&gt;
Définition des objets pour la version JSON de l&amp;#039;API.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    [EndPointObjectsJSONDefinitions(Objects)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Objects : Définitions d&amp;#039;objets JSON.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
type&lt;br /&gt;
  [ResourceName(&amp;#039;SampleAttributes&amp;#039;)]&lt;br /&gt;
  [EndPointObjectsJSONDefinitions(cJSONDefinitions)]&lt;br /&gt;
&lt;br /&gt;
// JSON Object definition:&lt;br /&gt;
&lt;br /&gt;
cJSONDefinitions =&lt;br /&gt;
 &amp;#039;{&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;   &amp;quot;PutObject&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;       &amp;quot;properties&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;EMP_NO&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;FIRST_NAME&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;LAST_NAME&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;PHONE_EXT&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;HIRE_DATE&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;format&amp;quot;: &amp;quot;date-time&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;DEPT_NO&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;JOB_CODE&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;JOB_GRADE&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            &amp;quot;JOB_COUNTRY&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;                &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            &amp;quot;SALARY&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;                &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            &amp;quot;FULL_NAME&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;                &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            }&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;        }&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    }&amp;#039; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rubriques==&lt;br /&gt;
&lt;br /&gt;
* [[Création d&amp;#039;un package EMS|Création d&amp;#039;un package EMS]]&lt;br /&gt;
* [[Ajout d&amp;#039;un module EMS à un package EMS|Ajout d&amp;#039;un module EMS à un package EMS]]&lt;br /&gt;
* [[Installation d&amp;#039;un package EMS|Installation d&amp;#039;un package EMS]]&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[samp_en:EMS.APIDocAttributes Sample|Exemple API Documentation Attributes]]&lt;br /&gt;
* [[Ressource API EMS|Ressource API EMS]]&lt;br /&gt;
* [http://swagger-api.github.io/swagger-core/spec.html Swagger RESTful API Documentation Specification (EN)]&lt;br /&gt;
* [[Serveur EMS|Serveur EMS]]&lt;br /&gt;
* [[Serveur de la console EMS|Serveur de la console EMS]]&lt;br /&gt;
* [[Application client EMS|Application client EMS]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Berlin]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Documentation_des_API_personnalis%C3%A9es&amp;diff=198036</id>
		<title>Documentation des API personnalisées</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Documentation_des_API_personnalis%C3%A9es&amp;diff=198036"/>
		<updated>2016-03-01T08:34:11Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : 1 version : Internal review. LOC-21758&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Extension du serveur EMS}}&lt;br /&gt;
&lt;br /&gt;
{{Product}} vous permet de créer une documentation API pour de nouveaux modules Ressource EMS aux formats YAML et JSON. La nouvelle implémentation est basée sur la spécification de documentation API [http://swagger-api.github.io/swagger-core/spec.html Swagger RESTful (EN)].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;EMS.ResourceType&amp;#039;&amp;#039;&amp;#039; implémente les nouveaux attributs pouvant être utilisés pour générer la documentation API des points de terminaison d&amp;#039;une ressource.&lt;br /&gt;
&lt;br /&gt;
==EndPointRequestSummary==&lt;br /&gt;
&lt;br /&gt;
Description d&amp;#039;une méthode :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointRequestSummary(&amp;#039;ATags&amp;#039;, &amp;#039;ASummary&amp;#039;, &amp;#039;ADescription&amp;#039;, &amp;#039;AProduces&amp;#039;, &amp;#039;AConsume&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tags&amp;#039;&amp;#039;&amp;#039; : définit une balise.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Summary&amp;#039;&amp;#039;&amp;#039; : titre d&amp;#039;une méthode.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039; : description d&amp;#039;une méthode. &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Produces&amp;#039;&amp;#039;&amp;#039; : type MIME que l&amp;#039;API peut produire. Global pour toutes les API, mais peut être redéfini sur des appels d&amp;#039;API spécifiques. La valeur doit être décrite sous Mime Types.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Consume&amp;#039;&amp;#039;&amp;#039; : type MIME que l&amp;#039;API peut consommer. Global pour toutes les API, mais peut être redéfini sur des appels d&amp;#039;API spécifiques. La valeur doit être décrite sous Mime Types.&lt;br /&gt;
&lt;br /&gt;
Exemple de déclaration de la description de la méthode GET d&amp;#039;un point de terminaison :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointRequestSummary(&amp;#039;Api Doc&amp;#039;, &amp;#039;Get API EndPoints&amp;#039;, &amp;#039;Used to retrieve all the API EndPoints&amp;#039;, &amp;#039;application/json&amp;#039;, &amp;#039;&amp;#039;)]&lt;br /&gt;
procedure Get(const AContext: TEndpointContext; const ARequest: TEndpointRequest; const AResponse: TEndpointResponse);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EndPointRequestParameter==&lt;br /&gt;
&lt;br /&gt;
Description des paramètres utilisés dans une requête.&lt;br /&gt;
&lt;br /&gt;
Un paramètre unique est défini par la combinaison d&amp;#039;un nom et d&amp;#039;un emplacement.&lt;br /&gt;
&lt;br /&gt;
Il existe cinq types de paramètres possibles : Path, Query, Header, Body et Form.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointRequestParameter(&amp;#039;AIn&amp;#039;, &amp;#039;AName&amp;#039;, &amp;#039;ADescription&amp;#039;, &amp;#039;ARequired&amp;#039;, &amp;#039;AType&amp;#039;, &amp;#039;AFormat&amp;#039;, &amp;#039;AItemType&amp;#039;, &amp;#039;AJSONSchema&amp;#039;, &amp;#039;AReference&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ParamIn&amp;#039;&amp;#039;&amp;#039; : l&amp;#039;emplacement du paramètre : Path, Query, Header, Body ou Form.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; : le nom du paramètre. Les noms de paramètres sont sensibles à la casse. &lt;br /&gt;
** Quand l&amp;#039;emplacement du paramètre est &amp;#039;Body&amp;#039;, son nom doit être &amp;#039;body&amp;#039;.&lt;br /&gt;
** Quand l&amp;#039;emplacement du paramètre est &amp;#039;Path&amp;#039;, son nom doit correspondre au segment de chemin d&amp;#039;accès associé depuis le champ chemin dans l&amp;#039;objet Paths.&lt;br /&gt;
** Dans les autres cas, son nom correspond à ParamIn.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039; : brève description du paramètre. Elle peut contenir des exemples d&amp;#039;utilisation. Vous pouvez utiliser la syntaxe GFM pour une représentation de texte formaté.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Required&amp;#039;&amp;#039;&amp;#039; : détermine si le paramètre est obligatoire. Si le paramètre est dans &amp;#039;Path&amp;#039;, cette propriété est requise et sa valeur doit être &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, sinon la propriété peut être incluse et sa valeur par défaut est &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ParamType&amp;#039;&amp;#039;&amp;#039; : le type du paramètre. Pour des valeurs autres que &amp;#039;Body&amp;#039;, la valeur doit être l&amp;#039;une des valeurs suivantes : &amp;#039;spArray&amp;#039;, &amp;#039;spBoolean&amp;#039;, &amp;#039;spInteger&amp;#039;, &amp;#039;spNumber&amp;#039;, &amp;#039;spNull&amp;#039;, &amp;#039;spObject&amp;#039;, &amp;#039;spString&amp;#039;, &amp;#039;spFile&amp;#039;. Si ParamType vaut &amp;#039;spFile&amp;#039;, le type MIME consommé doit être soit &amp;quot;multipart/form-data&amp;quot;, soit &amp;quot;application/x-www-form-urlencoded&amp;quot; et le paramètre doit être de &amp;quot;form-data&amp;quot;. Pour la valeur &amp;#039;Body&amp;#039;, JSONSchema et Reference sont requis.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ItemFormat&amp;#039;&amp;#039;&amp;#039; : le format d&amp;#039;extension pour le ParamType : &amp;#039;None&amp;#039;, &amp;#039;Int32&amp;#039;, &amp;#039;Int64&amp;#039;, &amp;#039;Float&amp;#039;, &amp;#039;Double&amp;#039;, &amp;#039;Byte&amp;#039;, &amp;#039;Date&amp;#039;, &amp;#039;DateTime&amp;#039;, &amp;#039;Password&amp;#039;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ItemType&amp;#039;&amp;#039;&amp;#039; : requis si ParamType a la valeur &amp;#039;array&amp;#039;. Décrit le type des éléments dans le tableau.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;JSONSchema&amp;#039;&amp;#039;&amp;#039; : La définition de schéma de la primitive envoyée au serveur. Il s&amp;#039;agit d&amp;#039;une définition de la structure de la requête du corps. Si ParamType vaut &amp;#039;Array&amp;#039; ou &amp;#039;Object&amp;#039;, un schéma peut être défini.&lt;br /&gt;
** Par exemple :&lt;br /&gt;
**: Au format JSON : {&amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&amp;quot;additionalProperties&amp;quot;: {&amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;}}.&lt;br /&gt;
**: Au format YAML : &lt;br /&gt;
**:: type: object&lt;br /&gt;
**::  additionalProperties:&lt;br /&gt;
**::   type: string&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Reference&amp;#039;&amp;#039;&amp;#039; : La définition de schéma de la primitive envoyée au serveur. Il s&amp;#039;agit d&amp;#039;une définition de la structure de la requête du corps. Si Type vaut &amp;#039;Array&amp;#039; ou &amp;#039;Object&amp;#039;, une définition de schéma peut être définie.&lt;br /&gt;
** Par exemple :&lt;br /&gt;
**: &amp;#039;#/definitions/pet&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointRequestParameter(TAPIDocParameter.TParameterIn.Path, &amp;#039;item&amp;#039;, &amp;#039;Path Parameter item Description&amp;#039;, true, TAPIDoc.TPrimitiveType.spString, TAPIDoc.TPrimitiveFormat.None, TAPIDoc.TPrimitiveType.spString, &amp;#039;&amp;#039;, &amp;#039;&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EndPointResponseDetails==&lt;br /&gt;
&lt;br /&gt;
Description des réponses de la requête :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointResponseDetails(&amp;#039;ACode&amp;#039;, &amp;#039;ADescription&amp;#039;, &amp;#039;AType&amp;#039;, &amp;#039;AFormat&amp;#039;, &amp;#039;ASchema&amp;#039;, &amp;#039;AReference&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Code&amp;#039;&amp;#039;&amp;#039; : le code de réponse.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039; : description du code de réponse.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;PrimitiveType&amp;#039;&amp;#039;&amp;#039; : le type de la [http://swagger-api.github.io/swagger-core/spec.html#4-3-1-primitives primitive (EN)] renvoyée. Les types de données primitifs compris dans la spécification Swagger sont basés sur les types pris en charge par le JSON-Schema Draft 4. JSON Schema définit sept types primitifs pour des valeurs JSON : &amp;#039;spArray&amp;#039;, &amp;#039;spBoolean&amp;#039;, &amp;#039;spInteger&amp;#039;, &amp;#039;spNumber&amp;#039;, &amp;#039;spNull&amp;#039;, &amp;#039;spObject&amp;#039;, &amp;#039;spString&amp;#039;. Voir [http://json-schema.org/latest/json-schema-core.html#anchor8 JSON Schema primitive types (EN)]. Un type de données primitif supplémentaire, &amp;#039;spFile&amp;#039;, est utilisé par les objets Parameter et Response afin de définir le type de paramètre ou la réponse comme étant un fichier.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;PrimitiveFormat&amp;#039;&amp;#039;&amp;#039; : le format de la primitive renvoyée, par exemple : &amp;#039;None&amp;#039;, &amp;#039;Int32&amp;#039;, &amp;#039;Int64&amp;#039;, &amp;#039;Float&amp;#039;, &amp;#039;Double&amp;#039;, &amp;#039;Byte&amp;#039;, &amp;#039;Date&amp;#039;, &amp;#039;DateTime&amp;#039;, &amp;#039;Password&amp;#039;.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Schema&amp;#039;&amp;#039;&amp;#039;: &lt;br /&gt;
** Par exemple :&lt;br /&gt;
**: Au format JSON : {&amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&amp;quot;additionalProperties&amp;quot;: {&amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;}}.&lt;br /&gt;
**: Au format YAML : &lt;br /&gt;
**:: type: object&lt;br /&gt;
**::  additionalProperties:&lt;br /&gt;
**::   type: string&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Reference :&amp;#039;&amp;#039;&amp;#039; la définition de schéma de la primitive renvoyée. Il s&amp;#039;agit d&amp;#039;une définition de la structure de la réponse. Si PrimitiveType vaut &amp;#039;spArray&amp;#039; ou &amp;#039;spObject&amp;#039;, une définition de schéma peut être définie.&lt;br /&gt;
** Par exemple :&lt;br /&gt;
**: &amp;#039;#/definitions/pet&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointResponseDetails(200, &amp;#039;Ok&amp;#039;, TAPIDoc.TPrimitiveType.spObject, TAPIDoc.TPrimitiveFormat.None, &amp;#039;&amp;#039;, &amp;#039;#/definitions/EmployeeTable&amp;#039;)]&lt;br /&gt;
[EndPointResponseDetails(404, &amp;#039;Not Found&amp;#039;, TAPIDoc.TPrimitiveType.spNull, TAPIDoc.TPrimitiveFormat.None, &amp;#039;&amp;#039;, &amp;#039;&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EndPointObjectsYAMLDefinitions==&lt;br /&gt;
&lt;br /&gt;
Définition des objets pour la version YAML de l&amp;#039;API.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
  [EndPointObjectsYAMLDefinitions(Objects)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Objects : Définitions d&amp;#039;objets YAML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
type&lt;br /&gt;
  [ResourceName(&amp;#039;SampleAttributes&amp;#039;)]&lt;br /&gt;
  [EndPointObjectsYAMLDefinitions(cYamlDefinitions)]&lt;br /&gt;
&lt;br /&gt;
// YAML Object definition:&lt;br /&gt;
  cYamlDefinitions =&lt;br /&gt;
  &amp;#039;# &amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039; PutObject:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;   properties:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    EMP_NO:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: integer&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    FIRST_NAME:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    LAST_NAME:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    PHONE_EXT:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    HIRE_DATE:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     format: date-time&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    DEPT_NO:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    JOB_CODE:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    JOB_GRADE:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: integer&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    JOB_COUNTRY:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    SALARY:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: integer&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    FULL_NAME:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;# &amp;#039; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EndPointObjectsJSONDefinitions==&lt;br /&gt;
&lt;br /&gt;
Définition des objets pour la version JSON de l&amp;#039;API.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    [EndPointObjectsJSONDefinitions(Objects)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Objects : Définitions d&amp;#039;objets JSON.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
type&lt;br /&gt;
  [ResourceName(&amp;#039;SampleAttributes&amp;#039;)]&lt;br /&gt;
  [EndPointObjectsJSONDefinitions(cJSONDefinitions)]&lt;br /&gt;
&lt;br /&gt;
// JSON Object definition:&lt;br /&gt;
&lt;br /&gt;
cJSONDefinitions =&lt;br /&gt;
 &amp;#039;{&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;   &amp;quot;PutObject&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;       &amp;quot;properties&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;EMP_NO&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;FIRST_NAME&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;LAST_NAME&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;PHONE_EXT&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;HIRE_DATE&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;format&amp;quot;: &amp;quot;date-time&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;DEPT_NO&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;JOB_CODE&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;JOB_GRADE&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            &amp;quot;JOB_COUNTRY&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;                &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            &amp;quot;SALARY&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;                &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            &amp;quot;FULL_NAME&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;                &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            }&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;        }&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    }&amp;#039; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rubriques==&lt;br /&gt;
&lt;br /&gt;
* [[Création d&amp;#039;un package EMS|Création d&amp;#039;un package EMS]]&lt;br /&gt;
* [[Ajout d&amp;#039;un module EMS à un package EMS|Ajout d&amp;#039;un module EMS à un package EMS]]&lt;br /&gt;
* [[Installation d&amp;#039;un package EMS|Installation d&amp;#039;un package EMS]]&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[samp_en:EMS.APIDocAttributes Sample|Exemple API Documentation Attributes]]&lt;br /&gt;
* [[Ressource API EMS|Ressource API EMS]]&lt;br /&gt;
* [http://swagger-api.github.io/swagger-core/spec.html Swagger RESTful API Documentation Specification (EN)]&lt;br /&gt;
* [[Serveur EMS|Serveur EMS]]&lt;br /&gt;
* [[Serveur de la console EMS|Serveur de la console EMS]]&lt;br /&gt;
* [[Application client EMS|Application client EMS]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Berlin]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Documentation_des_API_personnalis%C3%A9es&amp;diff=198035</id>
		<title>Documentation des API personnalisées</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Documentation_des_API_personnalis%C3%A9es&amp;diff=198035"/>
		<updated>2016-03-01T08:34:02Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : Internal review. LOC-21758&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Extension du serveur EMS}}&lt;br /&gt;
&lt;br /&gt;
{{Product}} vous permet de créer une documentation API pour de nouveaux modules Ressource EMS aux formats YAML et JSON. La nouvelle implémentation est basée sur la spécification de documentation API [http://swagger-api.github.io/swagger-core/spec.html Swagger RESTful (EN)].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;EMS.ResourceType&amp;#039;&amp;#039;&amp;#039; implémente les nouveaux attributs pouvant être utilisés pour générer la documentation API des points de terminaison d&amp;#039;une ressource.&lt;br /&gt;
&lt;br /&gt;
==EndPointRequestSummary==&lt;br /&gt;
&lt;br /&gt;
Description d&amp;#039;une méthode :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointRequestSummary(&amp;#039;ATags&amp;#039;, &amp;#039;ASummary&amp;#039;, &amp;#039;ADescription&amp;#039;, &amp;#039;AProduces&amp;#039;, &amp;#039;AConsume&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tags&amp;#039;&amp;#039;&amp;#039; : définit une balise.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Summary&amp;#039;&amp;#039;&amp;#039; : titre d&amp;#039;une méthode.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039; : description d&amp;#039;une méthode. &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Produces&amp;#039;&amp;#039;&amp;#039; : type MIME que l&amp;#039;API peut produire. Global pour toutes les API, mais peut être redéfini sur des appels d&amp;#039;API spécifiques. La valeur doit être décrite sous Mime Types.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Consume&amp;#039;&amp;#039;&amp;#039; : type MIME que l&amp;#039;API peut consommer. Global pour toutes les API, mais peut être redéfini sur des appels d&amp;#039;API spécifiques. La valeur doit être décrite sous Mime Types.&lt;br /&gt;
&lt;br /&gt;
Exemple de déclaration de la description de la méthode GET d&amp;#039;un point de terminaison :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointRequestSummary(&amp;#039;Api Doc&amp;#039;, &amp;#039;Get API EndPoints&amp;#039;, &amp;#039;Used to retrieve all the API EndPoints&amp;#039;, &amp;#039;application/json&amp;#039;, &amp;#039;&amp;#039;)]&lt;br /&gt;
procedure Get(const AContext: TEndpointContext; const ARequest: TEndpointRequest; const AResponse: TEndpointResponse);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EndPointRequestParameter==&lt;br /&gt;
&lt;br /&gt;
Description des paramètres utilisés dans une requête.&lt;br /&gt;
&lt;br /&gt;
Un paramètre unique est défini par la combinaison d&amp;#039;un nom et d&amp;#039;un emplacement.&lt;br /&gt;
&lt;br /&gt;
Il existe cinq types de paramètres possibles : Path, Query, Header, Body et Form.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointRequestParameter(&amp;#039;AIn&amp;#039;, &amp;#039;AName&amp;#039;, &amp;#039;ADescription&amp;#039;, &amp;#039;ARequired&amp;#039;, &amp;#039;AType&amp;#039;, &amp;#039;AFormat&amp;#039;, &amp;#039;AItemType&amp;#039;, &amp;#039;AJSONSchema&amp;#039;, &amp;#039;AReference&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ParamIn&amp;#039;&amp;#039;&amp;#039; : l&amp;#039;emplacement du paramètre : Path, Query, Header, Body ou Form.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; : le nom du paramètre. Les noms de paramètres sont sensibles à la casse. &lt;br /&gt;
** Quand l&amp;#039;emplacement du paramètre est &amp;#039;Body&amp;#039;, son nom doit être &amp;#039;body&amp;#039;.&lt;br /&gt;
** Quand l&amp;#039;emplacement du paramètre est &amp;#039;Path&amp;#039;, son nom doit correspondre au segment de chemin d&amp;#039;accès associé depuis le champ chemin dans l&amp;#039;objet Paths.&lt;br /&gt;
** Dans les autres cas, son nom correspond à ParamIn.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039; : brève description du paramètre. Elle peut contenir des exemples d&amp;#039;utilisation. Vous pouvez utiliser la syntaxe GFM pour une représentation de texte formaté.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Required&amp;#039;&amp;#039;&amp;#039; : détermine si le paramètre est obligatoire. Si le paramètre est dans &amp;#039;Path&amp;#039;, cette propriété est requise et sa valeur doit être &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, sinon la propriété peut être incluse et sa valeur par défaut est &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ParamType&amp;#039;&amp;#039;&amp;#039; : le type du paramètre. Pour des valeurs autres que &amp;#039;Body&amp;#039;, la valeur doit être l&amp;#039;une des valeurs suivantes : &amp;#039;spArray&amp;#039;, &amp;#039;spBoolean&amp;#039;, &amp;#039;spInteger&amp;#039;, &amp;#039;spNumber&amp;#039;, &amp;#039;spNull&amp;#039;, &amp;#039;spObject&amp;#039;, &amp;#039;spString&amp;#039;, &amp;#039;spFile&amp;#039;. Si ParamType vaut &amp;#039;spFile&amp;#039;, le type MIME consommé doit être soit &amp;quot;multipart/form-data&amp;quot;, soit &amp;quot;application/x-www-form-urlencoded&amp;quot; et le paramètre doit être de &amp;quot;form-data&amp;quot;. Pour la valeur &amp;#039;Body&amp;#039;, JSONSchema et Reference sont requis.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ItemFormat&amp;#039;&amp;#039;&amp;#039; : le format d&amp;#039;extension pour le ParamType : &amp;#039;None&amp;#039;, &amp;#039;Int32&amp;#039;, &amp;#039;Int64&amp;#039;, &amp;#039;Float&amp;#039;, &amp;#039;Double&amp;#039;, &amp;#039;Byte&amp;#039;, &amp;#039;Date&amp;#039;, &amp;#039;DateTime&amp;#039;, &amp;#039;Password&amp;#039;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ItemType&amp;#039;&amp;#039;&amp;#039; : requis si ParamType a la valeur &amp;#039;array&amp;#039;. Décrit le type des éléments dans le tableau.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;JSONSchema&amp;#039;&amp;#039;&amp;#039; : La définition de schéma de la primitive envoyée au serveur. Il s&amp;#039;agit d&amp;#039;une définition de la structure de la requête du corps. Si ParamType vaut &amp;#039;Array&amp;#039; ou &amp;#039;Object&amp;#039;, un schéma peut être défini.&lt;br /&gt;
** Par exemple :&lt;br /&gt;
**: Au format JSON : {&amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&amp;quot;additionalProperties&amp;quot;: {&amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;}}.&lt;br /&gt;
**: Au format YAML : &lt;br /&gt;
**:: type: object&lt;br /&gt;
**::  additionalProperties:&lt;br /&gt;
**::   type: string&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Reference&amp;#039;&amp;#039;&amp;#039; : La définition de schéma de la primitive envoyée au serveur. Il s&amp;#039;agit d&amp;#039;une définition de la structure de la requête du corps. Si Type vaut &amp;#039;Array&amp;#039; ou &amp;#039;Object&amp;#039;, une définition de schéma peut être définie.&lt;br /&gt;
** Par exemple :&lt;br /&gt;
**: &amp;#039;#/definitions/pet&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointRequestParameter(TAPIDocParameter.TParameterIn.Path, &amp;#039;item&amp;#039;, &amp;#039;Path Parameter item Description&amp;#039;, true, TAPIDoc.TPrimitiveType.spString, TAPIDoc.TPrimitiveFormat.None, TAPIDoc.TPrimitiveType.spString, &amp;#039;&amp;#039;, &amp;#039;&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EndPointResponseDetails==&lt;br /&gt;
&lt;br /&gt;
Description des réponses de la requête :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointResponseDetails(&amp;#039;ACode&amp;#039;, &amp;#039;ADescription&amp;#039;, &amp;#039;AType&amp;#039;, &amp;#039;AFormat&amp;#039;, &amp;#039;ASchema&amp;#039;, &amp;#039;AReference&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Code&amp;#039;&amp;#039;&amp;#039; : le code de réponse.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039; : description du code de réponse.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;PrimitiveType&amp;#039;&amp;#039;&amp;#039; : le type de la [http://swagger-api.github.io/swagger-core/spec.html#4-3-1-primitives primitive (EN)] renvoyée. Les types de données primitifs compris dans la spécification Swagger sont basés sur les types pris en charge par le JSON-Schema Draft 4. JSON Schema définit sept types primitifs pour des valeurs JSON : &amp;#039;spArray&amp;#039;, &amp;#039;spBoolean&amp;#039;, &amp;#039;spInteger&amp;#039;, &amp;#039;spNumber&amp;#039;, &amp;#039;spNull&amp;#039;, &amp;#039;spObject&amp;#039;, &amp;#039;spString&amp;#039;. Voir [http://json-schema.org/latest/json-schema-core.html#anchor8 JSON Schema primitive types (EN)]. Un type de données primitif supplémentaire, &amp;#039;spFile&amp;#039;, est utilisé par les objets Parameter et Response afin de définir le type de paramètre ou la réponse comme étant un fichier.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;PrimitiveFormat&amp;#039;&amp;#039;&amp;#039; : le format de la primitive renvoyée, par exemple : &amp;#039;None&amp;#039;, &amp;#039;Int32&amp;#039;, &amp;#039;Int64&amp;#039;, &amp;#039;Float&amp;#039;, &amp;#039;Double&amp;#039;, &amp;#039;Byte&amp;#039;, &amp;#039;Date&amp;#039;, &amp;#039;DateTime&amp;#039;, &amp;#039;Password&amp;#039;.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Schema&amp;#039;&amp;#039;&amp;#039;: &lt;br /&gt;
** Par exemple :&lt;br /&gt;
**: Au format JSON : {&amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&amp;quot;additionalProperties&amp;quot;: {&amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;}}.&lt;br /&gt;
**: Au format YAML : &lt;br /&gt;
**:: type: object&lt;br /&gt;
**::  additionalProperties:&lt;br /&gt;
**::   type: string&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Reference :&amp;#039;&amp;#039;&amp;#039; la définition de schéma de la primitive renvoyée. Il s&amp;#039;agit d&amp;#039;une définition de la structure de la réponse. Si PrimitiveType vaut &amp;#039;spArray&amp;#039; ou &amp;#039;spObject&amp;#039;, une définition de schéma peut être définie.&lt;br /&gt;
** Par exemple :&lt;br /&gt;
**: &amp;#039;#/definitions/pet&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointResponseDetails(200, &amp;#039;Ok&amp;#039;, TAPIDoc.TPrimitiveType.spObject, TAPIDoc.TPrimitiveFormat.None, &amp;#039;&amp;#039;, &amp;#039;#/definitions/EmployeeTable&amp;#039;)]&lt;br /&gt;
[EndPointResponseDetails(404, &amp;#039;Not Found&amp;#039;, TAPIDoc.TPrimitiveType.spNull, TAPIDoc.TPrimitiveFormat.None, &amp;#039;&amp;#039;, &amp;#039;&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EndPointObjectsYAMLDefinitions==&lt;br /&gt;
&lt;br /&gt;
Définition des objets pour la version YAML de l&amp;#039;API.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
  [EndPointObjectsYAMLDefinitions(Objects)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Objects : Définitions d&amp;#039;objets YAML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
type&lt;br /&gt;
  [ResourceName(&amp;#039;SampleAttributes&amp;#039;)]&lt;br /&gt;
  [EndPointObjectsYAMLDefinitions(cYamlDefinitions)]&lt;br /&gt;
&lt;br /&gt;
// YAML Object definition:&lt;br /&gt;
  cYamlDefinitions =&lt;br /&gt;
  &amp;#039;# &amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039; PutObject:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;   properties:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    EMP_NO:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: integer&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    FIRST_NAME:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    LAST_NAME:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    PHONE_EXT:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    HIRE_DATE:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     format: date-time&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    DEPT_NO:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    JOB_CODE:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    JOB_GRADE:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: integer&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    JOB_COUNTRY:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    SALARY:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: integer&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    FULL_NAME:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;# &amp;#039; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EndPointObjectsJSONDefinitions==&lt;br /&gt;
&lt;br /&gt;
Définition des objets pour la version JSON de l&amp;#039;API.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    [EndPointObjectsJSONDefinitions(Objects)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Objects : Définitions d&amp;#039;objets JSON.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
type&lt;br /&gt;
  [ResourceName(&amp;#039;SampleAttributes&amp;#039;)]&lt;br /&gt;
  [EndPointObjectsJSONDefinitions(cJSONDefinitions)]&lt;br /&gt;
&lt;br /&gt;
// JSON Object definition:&lt;br /&gt;
&lt;br /&gt;
cJSONDefinitions =&lt;br /&gt;
 &amp;#039;{&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;   &amp;quot;PutObject&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;       &amp;quot;properties&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;EMP_NO&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;FIRST_NAME&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;LAST_NAME&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;PHONE_EXT&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;HIRE_DATE&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;format&amp;quot;: &amp;quot;date-time&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;DEPT_NO&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;JOB_CODE&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;JOB_GRADE&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            &amp;quot;JOB_COUNTRY&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;                &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            &amp;quot;SALARY&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;                &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            &amp;quot;FULL_NAME&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;                &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            }&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;        }&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    }&amp;#039; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rubriques==&lt;br /&gt;
&lt;br /&gt;
* [[Création d&amp;#039;un package EMS|Création d&amp;#039;un package EMS]]&lt;br /&gt;
* [[Ajout d&amp;#039;un module EMS à un package EMS|Ajout d&amp;#039;un module EMS à un package EMS]]&lt;br /&gt;
* [[Installation d&amp;#039;un package EMS|Installation d&amp;#039;un package EMS]]&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[samp_en:EMS.APIDocAttributes Sample|Exemple API Documentation Attributes]]&lt;br /&gt;
* [[Ressource API EMS|Ressource API EMS]]&lt;br /&gt;
* [http://swagger-api.github.io/swagger-core/spec.html Swagger RESTful API Documentation Specification (EN)]&lt;br /&gt;
* [[Serveur EMS|Serveur EMS]]&lt;br /&gt;
* [[Serveur de la console EMS|Serveur de la console EMS]]&lt;br /&gt;
* [[Application client EMS|Application client EMS]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Berlin]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Notes_d%27installation&amp;diff=197990</id>
		<title>Notes d&#039;installation</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Notes_d%27installation&amp;diff=197990"/>
		<updated>2016-02-29T12:42:29Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : Internal Review directly on docwiki. LOC-20934&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Installation}}&lt;br /&gt;
&lt;br /&gt;
Ces notes fournissent des informations importantes sur l&amp;#039;installation du produit ; {{Company}} recommande la lecture complète de ce document avant toute procédure d&amp;#039;installation ou de désinstallation. Vous pouvez obtenir la dernière version de ces notes à l&amp;#039;adresse [{{fullurl:{{PAGENAME}}}} {{PAGENAME}}].&lt;br /&gt;
&lt;br /&gt;
Ce document utilise le terme &amp;quot;le produit&amp;quot; ou &amp;quot;votre produit&amp;quot; pour décrire {{Delphi}} {{MarketingVersion}}, {{CBuilder}} {{MarketingVersion}} ou {{Product}} {{MarketingVersion}}.&lt;br /&gt;
&lt;br /&gt;
Pour plus d&amp;#039;informations sur l&amp;#039;installation du produit, voir les notes de release ({{f|radstudio|{{Path|radstudio_readme_xx.htm}}}}{{f|appmethod|{{Path|appmethod_readme_xx.htm}}}}) relatives à la langue choisie, disponibles aux emplacements suivants :&lt;br /&gt;
&lt;br /&gt;
* Le répertoire d&amp;#039;installation. L&amp;#039;emplacement par défaut est : {{Path|{{InstallPath}}}}&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;[[Notes de release|Notes de release]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
==Configuration système minimale pour {{Version}}==&lt;br /&gt;
&lt;br /&gt;
===Plates-formes Windows===&lt;br /&gt;
&lt;br /&gt;
Les plates-formes Windows suivantes sont prises en charge en tant que plates-formes de développement :&lt;br /&gt;
&lt;br /&gt;
* Microsoft Windows 10 (32 bits et 64 bits)&lt;br /&gt;
* Microsoft® Windows 8 et 8.1 (32 bits et 64 bits)&lt;br /&gt;
* Microsoft Windows 7 SP1 (32 bits et 64 bits)&lt;br /&gt;
* Les derniers Service packs et mises à jour de sécurité sont recommandés pour toutes les plates-formes&lt;br /&gt;
* Microsoft Internet Explorer 6.0 SP1 ou supérieur&lt;br /&gt;
&lt;br /&gt;
===Prérequis===&lt;br /&gt;
&lt;br /&gt;
Le produit nécessite un certain nombre de prérequis qui sont en principe installés automatiquement sur votre système pendant le processus d&amp;#039;installation s&amp;#039;ils ne sont pas déjà présents. Néanmoins, lors de l&amp;#039;installation sur une plate-forme Windows, certaines versions du .NET Framework ne sont pas installées par défaut avec le système d&amp;#039;exploitation, et vous devrez les installer. &lt;br /&gt;
&lt;br /&gt;
Vérifiez si votre système inclut les prérequis suivants : &lt;br /&gt;
&lt;br /&gt;
Voici la liste des prérequis :&lt;br /&gt;
&lt;br /&gt;
* Microsoft .NET Framework 3.5&lt;br /&gt;
* Microsoft .NET Framework 4.5&lt;br /&gt;
* Microsoft Visual J# version 2.0 Redistributable Package (32 bits)&lt;br /&gt;
&lt;br /&gt;
* La fonctionnalité de &amp;#039;&amp;#039;&amp;#039;modélisation&amp;#039;&amp;#039;&amp;#039; de {{Product}} nécessite l&amp;#039;environnement JRE (Java Run-time Environment). Vous pouvez télécharger le JRE depuis [http://www.java.com www.java.com].&lt;br /&gt;
&lt;br /&gt;
====Installation de .NET Framework 3.5 sur la plate-forme Windows 8/8.1 ou Windows 10====&lt;br /&gt;
&lt;br /&gt;
Si vous effectuez l&amp;#039;installation sur &amp;#039;&amp;#039;&amp;#039;Windows 8&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Windows 8.1&amp;#039;&amp;#039;&amp;#039; ou &amp;#039;&amp;#039;&amp;#039;Windows 10&amp;#039;&amp;#039;&amp;#039;, le .NET Framework 3.5 n&amp;#039;est pas inclus par défaut avec votre système d&amp;#039;exploitation. Par conséquent, avant de commencer l&amp;#039;installation de {{Product}}, vous devez suivre les étapes ci-après pour installer le .NET Framework 3.5 :&lt;br /&gt;
&lt;br /&gt;
# Ouvrez le &amp;#039;&amp;#039;&amp;#039;Panneau de configuration&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# Choisissez &amp;#039;&amp;#039;&amp;#039;Programmes et fonctionnalités&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# Choisissez &amp;#039;&amp;#039;&amp;#039;Activer ou désactiver des fonctionnalités Windows&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# Sélectionnez  &amp;#039;&amp;#039;&amp;#039;Microsoft .NET Framework 3.5&amp;#039;&amp;#039;&amp;#039; (ou 3.5.n).&lt;br /&gt;
&lt;br /&gt;
Si votre machine n&amp;#039;est pas connectée à Internet, Microsoft fournit les instructions suivantes pour installer .NET Framework 3.5 depuis une image ISO :&lt;br /&gt;
[http://msdn.microsoft.com/en-us/library/hh506443%28v=vs.110%29.aspx http://msdn.microsoft.com/en-us/library/hh506443%28v=vs.110%29.aspx (EN)].&lt;br /&gt;
&lt;br /&gt;
Autrement, vous pouvez également choisir d&amp;#039;installer le .NET Framework 3.5 depuis MS Windows Update Server.&lt;br /&gt;
&lt;br /&gt;
*  Pour connaître les différentes façons d&amp;#039;installer le .NET Framework sur Windows 8, Windows 8.1 ou Windows 10, voir :&lt;br /&gt;
** [http://msdn.microsoft.com/en-us/library/hh506443%28v=vs.110%29.aspx http://msdn.microsoft.com/en-us/library/hh506443%28v=vs.110%29.aspx (EN)]&lt;br /&gt;
*: Cette page Web décrit également le moyen hors ligne d&amp;#039;acquérir .NET, en utilisant votre support d&amp;#039;installation (ISO ou DVD) avec l&amp;#039;utilitaire DISM.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Remarque&amp;#039;&amp;#039;&amp;#039; : Sur Windows 7, le .NET Framework 3.5 est inclus par défaut lors de l&amp;#039;installation de ce système d&amp;#039;exploitation. Si vous l&amp;#039;avez désinstallé, suivez les instructions fournies par Microsoft pour le réinstaller :&lt;br /&gt;
&lt;br /&gt;
* [http://www.microsoft.com/en-us/download/details.aspx?id=39251 http://www.microsoft.com/en-us/download/details.aspx?id=39251 (EN)]&lt;br /&gt;
&lt;br /&gt;
====Installation de .NET Framework 4.5 sur la plate-forme Windows 7====&lt;br /&gt;
&lt;br /&gt;
Sur Windows 7, le .NET Framework 4.5 n&amp;#039;est pas inclus par défaut dans le système d&amp;#039;exploitation. Par conséquent, avant de commencer l&amp;#039;installation de {{Product}}, vous devez installer le .NET Framework 4.5 en suivant l&amp;#039;une des éventuelles procédures fournies par Microsoft :&lt;br /&gt;
&lt;br /&gt;
* [https://msdn.microsoft.com/en-us/library/5a4x27ek%28v=vs.110%29.aspx https://msdn.microsoft.com/en-us/library/5a4x27ek%28v=vs.110%29.aspx (EN)]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Remarque&amp;#039;&amp;#039;&amp;#039; : Sur Windows 8/8.1 et Windows 10, le .NET Framework 4.5 est inclus par défaut lors de l&amp;#039;installation de ces systèmes d&amp;#039;exploitation. Si vous l&amp;#039;avez désinstallé, suivez les instructions fournies par Microsoft pour le réinstaller :&lt;br /&gt;
&lt;br /&gt;
* [http://www.microsoft.com/en-US/download/details.aspx?id=30653 http://www.microsoft.com/en-US/download/details.aspx?id=30653 (EN)]&lt;br /&gt;
&lt;br /&gt;
====Installation du SDK Windows 10====&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;expert d&amp;#039;installation de {{Product}} {{Version}} vous permet d&amp;#039;installer le SDK Microsoft Windows 10, qui ajoute des en-têtes pour l&amp;#039;API Windows.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Remarque&amp;#039;&amp;#039;&amp;#039; : Le SDK Windows est requis uniquement pour {{CBuilder}} afin de prendre en charge les appels directs aux APIs Windows Bluetooth et BluetoothLE.&lt;br /&gt;
&lt;br /&gt;
===Exigences système===&lt;br /&gt;
&lt;br /&gt;
* Processeur Intel Pentium ou compatible, 1,6 GHz au minimum (2 GHz+ recommandé)&lt;br /&gt;
* Souris ou autre dispositif de pointage&lt;br /&gt;
* Lecteur DVD-ROM (en cas d&amp;#039;installation depuis un DVD)&lt;br /&gt;
* Moniteur de résolution 1024x768 ou supérieure&lt;br /&gt;
* GPU de base :&lt;br /&gt;
** Toute classe DirectX 11.0 fournisseur ou supérieur&lt;br /&gt;
** Pour les graphiques 3D, il est recommandé d&amp;#039;avoir Direct3D 11.1 ou supérieur (nuanceur de pixels de niveau 5), mais la version installée de Direct3D peut toutefois être utilisée&lt;br /&gt;
*** Vous pouvez télécharger Direct3D depuis le site [http://msdn.microsoft.com/en-us/library/windows/desktop/hh404562(v=vs.85).aspx http://msdn.microsoft.com/en-us/library/windows/desktop/hh404562(v=vs.85).aspx (EN)] &amp;lt;br /&amp;gt;(fichiers Windows6.1-KB2670838-x64.msu ou Windows6.1-KB2670838-x86.msu)&lt;br /&gt;
*** Mémoire supplémentaire requise pour la 3D : le système doit autoriser les ressources de taille supérieure à 4 Go, tout en conservant des index de toutes les ressources au niveau 32 bits.&lt;br /&gt;
* Qualité des couleurs au-dessus de 256 couleurs (32 bits ou 16 bits suffisent)&lt;br /&gt;
* 1 Go de mémoire vive (plus de 2 Go recommandé)&lt;br /&gt;
*: &amp;#039;&amp;#039;&amp;#039;Remarque :&amp;#039;&amp;#039;&amp;#039; L&amp;#039;EDI est autorisé à utiliser jusqu&amp;#039;à 3 Go sur Windows 32 bits et 4 Go sur Windows 64 bits.&lt;br /&gt;
* {{Product}} requiert {{f|radstudio|30}}{{f|appmethod|15}} Go d&amp;#039;espace libre disponible sur le disque.&amp;lt;br /&amp;gt;L&amp;#039;installation requiert également {{f|radstudio|30}}{{f|appmethod|15}} Go d&amp;#039;espace temporaire supplémentaires retirés par l&amp;#039;installateur une fois l&amp;#039;opération terminée. {{f|radstudio|&lt;br /&gt;
*: &amp;#039;&amp;#039;&amp;#039;L&amp;#039;édition Starter&amp;#039;&amp;#039;&amp;#039; nécessite seulement 3 Go d&amp;#039;espace libre disponible sur le disque et 3 Go d&amp;#039;espace temporaire. }}&lt;br /&gt;
* Système d&amp;#039;exploitation hôte :&lt;br /&gt;
** Windows 10 (32 bits et 64 bits)&lt;br /&gt;
** Windows 8 ou 8.1 (32 bits et 64 bits)&lt;br /&gt;
** Windows 7 SP1 (32 bits et 64 bits)&lt;br /&gt;
&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Remarques :&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:* Vous pouvez utiliser une machine virtuelle (VM) telle que VMware Fusion ou Parallels, hébergeant la plate-forme Windows prise en charge, afin d&amp;#039;exécuter {{Product}} sur OS X.&lt;br /&gt;
:* Windows Server 2008 et 2012 (32 bits et 64-bits) sont pris en charge seulement pour le &amp;#039;&amp;#039;&amp;#039;déploiement&amp;#039;&amp;#039;&amp;#039; des apps.&lt;br /&gt;
&lt;br /&gt;
Vous devez [https://get2.adobe.com/flashplayer/ télécharger et installer &amp;#039;&amp;#039;&amp;#039;Adobe Flash Player&amp;#039;&amp;#039;&amp;#039;] pour lire les vidéos du tutoriel.&lt;br /&gt;
&lt;br /&gt;
===Exigences pour le développement des applications (multi-périphériques) multiplates-formes===&lt;br /&gt;
&lt;br /&gt;
Les exigences spécifiques varient selon la plate-forme cible.&lt;br /&gt;
&lt;br /&gt;
====Exigences pour le développement des applications Windows 64 bits====&lt;br /&gt;
&lt;br /&gt;
* Un PC fonctionnant sous une version 64 bits de Windows ou un PC 32 bits connecté à un PC fonctionnant sous une version 64 bits de Windows.&lt;br /&gt;
* Si l&amp;#039;hôte est une machine Win32, le serveur Platform Assistant (paserver) doit être installé sur la plate-forme distante :&lt;br /&gt;
** [[Installation de Platform Assistant sur Windows|Installation de Platform Assistant sur Windows]]&lt;br /&gt;
&lt;br /&gt;
====Exigences pour le développement des applications OS X====&lt;br /&gt;
&lt;br /&gt;
*La plate-forme de développement peut être :&lt;br /&gt;
** Un PC exécutant Windows et connecté, via un réseau local (utilisant une solution de partage de fichiers SSH, VNC ou Windows), à un Mac basé sur Intel avec plus de 2 Go de RAM&lt;br /&gt;
** Un Mac exécutant Windows dans une mémoire virtuelle (VM), avec plus de 2 Go de RAM&lt;br /&gt;
*Le Mac doit s&amp;#039;exécuter sous :&lt;br /&gt;
** OS X 10.9 (Mavericks), ou&lt;br /&gt;
** OS X 10.10 (Yosemite)&lt;br /&gt;
** OS X 10.11 (El Capitan)&lt;br /&gt;
* Serveur Platform Assistant (paserver) installé sur le Mac :&lt;br /&gt;
** Le dossier PAServer est situé dans le dossier d&amp;#039;installation du produit.&lt;br /&gt;
** Les instructions d&amp;#039;installation sont disponibles ici :&lt;br /&gt;
*** [[Installation de Platform Assistant sur un Mac|Installation de Platform Assistant sur un Mac]]&lt;br /&gt;
&lt;br /&gt;
====Exigences pour le développement des applications iOS====&lt;br /&gt;
&lt;br /&gt;
* Un PC exécutant Windows et connecté à un Mac basé sur Intel, ou un Mac exécutant Windows sur une VM, avec plus de 2 Go de RAM.&lt;br /&gt;
* Le Mac doit s&amp;#039;exécuter sous :&lt;br /&gt;
** OS X 10.9 (Mavericks), ou&lt;br /&gt;
** OS X 10.10 (Yosemite)&lt;br /&gt;
** OS X 10.11 (El Capitan)&lt;br /&gt;
* Xcode 6 ou Xcode 7 doit être installé.&lt;br /&gt;
* Un compte développeur Apple est requis pour déployer des apps iOS sur des périphériques physiques.&lt;br /&gt;
* Le serveur Platform Assistant (paserver) doit être installé sur le Mac :&lt;br /&gt;
** [[Installation de Platform Assistant sur un Mac|Installation de Platform Assistant sur un Mac]]&lt;br /&gt;
&lt;br /&gt;
====Exigences pour le développement des applications Android====&lt;br /&gt;
&lt;br /&gt;
* Un PC exécutant Windows et connecté à un périphérique Android pris en charge (c&amp;#039;est-à-dire, s&amp;#039;exécutant sur un processeur ARMv7 prenant en charge NEON).&lt;br /&gt;
&lt;br /&gt;
* Les versions Android spécifiques et les périphériques pris en charge sont listés dans &amp;#039;&amp;#039;&amp;#039;[[Périphériques Android pris en charge pour le développement d&amp;#039;applications|Périphériques Android pris en charge pour le développement d&amp;#039;applications]]&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
===Exigences {{FM}}===&lt;br /&gt;
&lt;br /&gt;
Les applications {{FM}} s&amp;#039;exécutent sur plusieurs plates-formes avec ces exigences :&lt;br /&gt;
&lt;br /&gt;
* 2 Go de RAM ou davantage&lt;br /&gt;
* Unité de traitement graphique (GPU) de base :&lt;br /&gt;
** Pour le développement Windows, toute classe DirectX 11.0 fournisseur préférée (nuanceur de pixels de niveau 5)&lt;br /&gt;
** Pour le développement OSX, OpenGL&lt;br /&gt;
**: &amp;#039;&amp;#039;&amp;#039;Remarque :&amp;#039;&amp;#039;&amp;#039; Les Mac qualifiés ont tous une GPU qualifiée.&lt;br /&gt;
&lt;br /&gt;
Pour plus d&amp;#039;informations, voir &amp;#039;&amp;#039;&amp;#039;[[Prérequis de plate-forme FireMonkey|Prérequis de plate-forme {{FM}}]]&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
==Notes d&amp;#039;installation générales==&lt;br /&gt;
&lt;br /&gt;
===Espace temporaire supplémentaire requis par l&amp;#039;installateur===&lt;br /&gt;
&lt;br /&gt;
Si le lecteur contenant le dossier spécifié dans votre variable d&amp;#039;environnement {{Code|TEMP}} ne dispose pas de suffisamment d&amp;#039;espace, l&amp;#039;installateur peut s&amp;#039;interrompre avec un message d&amp;#039;erreur. Dans ce cas, assignez à votre variable {{Code|TEMP}} un dossier sur un lecteur disposant de davantage d&amp;#039;espace disque, puis exécutez à nouveau l&amp;#039;installation.&lt;br /&gt;
&lt;br /&gt;
Il est aussi possible de changer le chemin du cache de l&amp;#039;installateur en utilisant la ligne de commande {{Path|Setup.exe}} &amp;lt;code&amp;gt;OVERRIDECACHE=&amp;amp;lt;new-path-to-cache&amp;amp;gt;&amp;lt;/code&amp;gt;. Toutefois, cette opération s&amp;#039;effectue à vos propres risques. Par conséquent, {{Company}} ne peut être tenue responsable des problèmes rencontrés suite à l&amp;#039;utilisation de cette commande.&lt;br /&gt;
&lt;br /&gt;
Pour plus d&amp;#039;informations, voir [[#Exigences système|Exigences système]].&lt;br /&gt;
&lt;br /&gt;
{{f|radstudio|&lt;br /&gt;
&lt;br /&gt;
===Logiciels installables avec l&amp;#039;installateur du produit===&lt;br /&gt;
&lt;br /&gt;
Le programme d&amp;#039;installation installe le produit et facultativement le système d&amp;#039;aide du produit.&lt;br /&gt;
&lt;br /&gt;
Les produits tiers suivants sont installés en tant que partie du produit principal :&lt;br /&gt;
&lt;br /&gt;
* [[Beyond Compare|Beyond Compare]]&lt;br /&gt;
* [[Bibliothèque C++ standard Dinkumware|Bibliothèque C++ standard Dinkumware]] (pour Studio et {{CBuilder}})&lt;br /&gt;
* [[Indy|Internet Direct (Indy)]]&lt;br /&gt;
&lt;br /&gt;
Vous pouvez choisir d&amp;#039;installer le logiciel tiers suivant (installé par défaut) :&lt;br /&gt;
{{f|fastreport|* [[FastReport|FastReport]]}} pour la VCL&lt;br /&gt;
&lt;br /&gt;
* [[Introduction à IntraWeb - Index|IntraWeb]]&lt;br /&gt;
* [[TeeChart|TeeChart Standard]]&lt;br /&gt;
* Frameworks de test des unités DUnit ([[Présentation de DUnit|DUnit]] et [[Présentation de DUnitX|DUNitX]])&lt;br /&gt;
&lt;br /&gt;
Pour obtenir des détails sur les logiciels tiers, voir [[Add-ins logiciels tiers|Add-ins logiciels tiers]].&lt;br /&gt;
&lt;br /&gt;
===Autres téléchargements de logiciels disponibles===&lt;br /&gt;
&lt;br /&gt;
Après l&amp;#039;installation de {{Product}}, une liste de téléchargements supplémentaires est affichée. Les téléchargements supplémentaires comprennent les logiciels de Embarcadero et des partenaires de Embarcadero qui sont inclus dans votre achat. Vous pouvez télécharger les logiciels en utilisant les liens fournis dans ce fichier. Si vous avez besoin par la suite d&amp;#039;accéder aux téléchargements supplémentaires, utilisez le fichier {{Path|available_downloads.htm}} situé dans le répertoire d&amp;#039;installation racine de {{Product}}.&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;emplacement par défaut du fichier est : {{Path|C:\Program Files\Embarcadero\Studio\{{VersionNumber}}\available_downloads_xx.htm}} - dépend de la langue choisie pour l&amp;#039;installation. &lt;br /&gt;
&lt;br /&gt;
Sachez que pour les machines de développement Windows 64 bits, le répertoire de niveau supérieur est {{Path|Program Files (x86)}}.&lt;br /&gt;
&lt;br /&gt;
Si vous disposez d&amp;#039;un kit média ou ISO, certains des produits supplémentaires sont inclus dans un dossier à la racine du DVD. Vous pouvez parcourir le DVD et naviguer jusqu&amp;#039;au dossier relatif au produit qui vous intéresse, et lancer le programme d&amp;#039;installation depuis ce dossier. &lt;br /&gt;
&lt;br /&gt;
Voici la liste des logiciels supplémentaires disponibles :&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;[[Boost|Boost]]&amp;#039;&amp;#039;&amp;#039; pour {{CBuilder}}&lt;br /&gt;
* [http://www.embarcadero.com/products/er-studio-data-architect ER/Studio Data Architect Developer Edition (Architect seulement)] ER/Studio Developer Edition est enregistré lors de l&amp;#039;enregistrement de votre produit {{Product}} {{Version}}, {{Delphi}} {{Version}} ou {{CBuilder}} {{Version}} Architect Edition.&lt;br /&gt;
* [http://www.embarcadero.com/products/db-powerstudio DB PowerStudio Developer Edition (Ultimate seulement)] DB PowerStudio est enregistré lors de l&amp;#039;enregistrement de votre produit {{Product}} {{Version}}, {{Delphi}} {{Version}} ou {{CBuilder}} {{Version}} Ultimate Edition.&lt;br /&gt;
* [http://www.nsoftware.com/ipworks/ IP*Works! (EN)]&lt;br /&gt;
* [http://cc.embarcadero.com/item/30334 FastReport FMX Embarcadero edition for {{FM}} (EN)]&lt;br /&gt;
* [http://docwiki.embarcadero.com/HTML5_Builder/en/Main_Page HTML5 Builder XE5 (EN)]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Remarque :&amp;#039;&amp;#039;&amp;#039; Des logiciels supplémentaires tels que [[CodeSite|CodeSite]] sont maintenant disponibles dans le [[Gestionnaire de packages GetIt|Gestionnaire de packages GetIt]].&lt;br /&gt;
Voir la liste complète des logiciels disponibles dans le [[Fenêtre du Gestionnaire de packages GetIt|catalogue du Gestionnaire de packages GetIt]].&lt;br /&gt;
}}{{f|appmethod|&lt;br /&gt;
&lt;br /&gt;
===Logiciels supplémentaires pouvant être téléchargés depuis appmethod.com===&lt;br /&gt;
&lt;br /&gt;
Les utilisateurs Appmethod enregistrés peuvent télécharger les logiciels supplémentaires suivants :&lt;br /&gt;
&lt;br /&gt;
*  [[Boost|Boost]] (pour C++)&lt;br /&gt;
* Fichiers source du framework (fichiers source {{Delphi}} {{Path|.pas}} pour les unités FMX et RTL)&lt;br /&gt;
&lt;br /&gt;
Pour télécharger ce logiciel, visitez le site &amp;#039;&amp;#039;&amp;#039;[http://www.appmethod.com/downloads http://www.appmethod.com/downloads]&amp;#039;&amp;#039;&amp;#039; et connectez-vous en utilisant votre ID EDN (Embarcadero Developer Network)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Installation de Platform Assistant pour les applications OS X et iOS===&lt;br /&gt;
&lt;br /&gt;
Afin d&amp;#039;utiliser l&amp;#039;EDI pour développer des applications multi-périphériques pour OS X et iOS, vous devez installer et exécuter Platform Assistant sur votre Mac. L&amp;#039;emplacement par défaut de Platform Assistant est : {{Path|{{InstallPath}}\PAServer}}. L&amp;#039;installateur de Platform Assistant fournit également le débogueur distant.&lt;br /&gt;
&lt;br /&gt;
Pour de plus amples informations, voir :&lt;br /&gt;
&lt;br /&gt;
* [[PAServer, l&amp;#039;application serveur Platform Assistant|PAServer, l&amp;#039;application serveur Platform Assistant]]&lt;br /&gt;
* [[Installation de Platform Assistant sur un Mac|Installation de Platform Assistant sur un Mac]]&lt;br /&gt;
* [[Installation de Platform Assistant sur Windows|Installation de Platform Assistant sur Windows]]&lt;br /&gt;
* [[Installation du Gestionnaire PAServer sur un Mac|Installation du Gestionnaire PAServer sur un Mac]]&lt;br /&gt;
&lt;br /&gt;
===Outils de développement Android installés lors de l&amp;#039;installation du produit===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SDK et NDK Android :&amp;#039;&amp;#039;&amp;#039; L&amp;#039;installateur de {{Product}} installe par défaut pour vous le SDK Android Tools Revision {{AndroidToolsRevision}} et le NDK Android ({{AndroidNDKVersion}}). Si vous souhaitez développer des apps Android, nous vous recommandons d&amp;#039;accepter l&amp;#039;installation par défaut de ces outils.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Java and the JDK:&amp;#039;&amp;#039;&amp;#039; The {{Product}} installer installs Java 8 and the latest version of the JDK 1.8.&lt;br /&gt;
&lt;br /&gt;
: &amp;#039;&amp;#039;&amp;#039;Note&amp;#039;&amp;#039;&amp;#039;: If you already have a previous JDK version installed, the installer updates it to the latest version of the JDK 1.8.&lt;br /&gt;
&lt;br /&gt;
====Installation distincte requise pour plusieurs éléments du SDK Android====&lt;br /&gt;
&lt;br /&gt;
{{#lst:Installation des outils de développement Android|AndroidInstallation}}&lt;br /&gt;
For more information, see [[Installation des outils de développement Android|Installation des outils de développement Android]].&lt;br /&gt;
&lt;br /&gt;
===Exigences de plate-forme {{FM}}===&lt;br /&gt;
&lt;br /&gt;
Les applications développées en utilisant {{FM}} ont des exigences de plate-forme spécifiques, telles que l&amp;#039;unité GPU (Graphics Processing Unit). Pour plus de détails, voir [[Prérequis de plate-forme FireMonkey|Prérequis de plate-forme {{FM}}]].&lt;br /&gt;
&lt;br /&gt;
===Les plates-formes Windows nécessitent des privilèges Administrateur===&lt;br /&gt;
&lt;br /&gt;
Vous devez exécuter en tant qu&amp;#039;administrateur ou être sur la liste des privilèges Administrateur pour installer le produit sur Microsoft Windows 7, Windows 8/8.1 ou Windows 10.&lt;br /&gt;
&lt;br /&gt;
===Ne pas utiliser de caractères multi-octets dans les chemins d&amp;#039;installation===&lt;br /&gt;
&lt;br /&gt;
N&amp;#039;utilisez pas les caractères double-octets dans le chemin ou le répertoire d&amp;#039;installation. {{Product}} prend en charge Unicode, mais ce n&amp;#039;est pas le cas pour l&amp;#039;installateur.&lt;br /&gt;
{{f|radstudio|&lt;br /&gt;
&lt;br /&gt;
===Exemples et code source exemple===&lt;br /&gt;
&lt;br /&gt;
Des exemples de projets (parfois appelés Démos) sont installés par défaut. Les exemples sont aussi archivés dans [https://radstudiodemos.svn.sourceforge.net/svnroot/radstudiodemos/branches Subversion sur SourceForge (EN)]. Vous pouvez rechercher sur SourceForge les ajouts ou les mises à jour des exemples. Pour plus d&amp;#039;informations, voir [[samp_en:Category:Sample|Descriptions des exemples]].&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Aide hors ligne et en ligne===&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;aide hors ligne est livrée au format HTML (fichiers .CHM). Puisque l&amp;#039;aide de {{Product}} est volumineuse, elle est constituée de multiples fichiers CHM. Pour ouvrir l&amp;#039;aide, choisissez {{menu|Aide &amp;amp;gt; Aide {{Product}}}}.&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;aide hors ligne est générée à partir de l&amp;#039;aide en ligne [{{fullurl:Accueil}}]. L&amp;#039;aide en ligne étant mise à jour en permanence, veuillez vous y reporter pour obtenir les informations les plus récentes. Sur l&amp;#039;aide CHM compilée, cliquez sur le lien &amp;#039;&amp;#039;&amp;#039;Page Wiki en cours&amp;#039;&amp;#039;&amp;#039; en bas d&amp;#039;une page d&amp;#039;aide pour ouvrir la version en ligne.&lt;br /&gt;
&lt;br /&gt;
==Installation de {{Delphi}} {{MarketingVersion}}, {{CBuilder}} {{MarketingVersion}} ou {{Product}} {{MarketingVersion}}==&lt;br /&gt;
&lt;br /&gt;
Dès l&amp;#039;obtention du produit, vous recevez un fichier {{Path|Setup.exe}} pour {{Product}} {{Version}}, quel que soit le type de l&amp;#039;installation : une évaluation ou un autre [http://www.embarcadero.com/solutions/software-licensing-solutions type de solution de licence logicielle].&lt;br /&gt;
&lt;br /&gt;
Vous recevez également un &amp;#039;&amp;#039;&amp;#039;email de confirmation&amp;#039;&amp;#039;&amp;#039; dans lequel se trouve votre &amp;#039;&amp;#039;&amp;#039;licence&amp;#039;&amp;#039;&amp;#039; et un &amp;#039;&amp;#039;&amp;#039;lien&amp;#039;&amp;#039;&amp;#039; au fichier {{Path|.exe}}.&lt;br /&gt;
&lt;br /&gt;
Pour installer {{Product}} :&lt;br /&gt;
{{f|radstudio|&lt;br /&gt;
&lt;br /&gt;
# Double-cliquez sur le fichier {{Path|.exe}} pour commencer l&amp;#039;installation du produit. &lt;br /&gt;
# Dès l&amp;#039;acceptation des termes de la licence, l&amp;#039;expert d&amp;#039;installation vous invite à entrer votre licence. Selon le type de votre licence, vous devez choisir l&amp;#039;une des options suivantes :&lt;br /&gt;
&lt;br /&gt;
:&lt;br /&gt;
::&lt;br /&gt;
::* &amp;#039;&amp;#039;&amp;#039;&amp;quot;Je me suis inscrit pour une évaluation sur embarcadero.com&amp;quot;&amp;#039;&amp;#039;&amp;#039; : choisissez cette option pour une édition &amp;#039;&amp;#039;&amp;#039;d&amp;#039;évaluation&amp;#039;&amp;#039;&amp;#039; du produit.&lt;br /&gt;
::* &amp;#039;&amp;#039;&amp;#039;&amp;quot;J&amp;#039;ai déjà obtenu un numéro de série du produit&amp;quot;&amp;#039;&amp;#039;&amp;#039; : l&amp;#039;expert d&amp;#039;enregistrement s&amp;#039;ouvre afin que vous puissiez entrer le &amp;#039;&amp;#039;&amp;#039;numéro de série&amp;#039;&amp;#039;&amp;#039; que vous avez reçu dans l&amp;#039;email de confirmation et un &amp;#039;&amp;#039;&amp;#039;ID EDN (Embarcadero Developer Network)&amp;#039;&amp;#039;&amp;#039; valide. Pour obtenir un compte EDN, allez sur [http://members.embarcadero.com/newuser.aspx http://members.embarcadero.com/newuser.aspx].&lt;br /&gt;
::* &amp;#039;&amp;#039;&amp;#039;&amp;quot;J&amp;#039;ai un fichier licence valide (*.slip ou reg*.txt) à importer&amp;quot;&amp;#039;&amp;#039;&amp;#039; : le Gestionnaire de licences vous permet de naviguer et d&amp;#039;importer votre &amp;#039;&amp;#039;&amp;#039;fichier licence&amp;#039;&amp;#039;&amp;#039; au format {{Path|.slip}} ou {{Path|reg*.txt}}.&lt;br /&gt;
:3 L&amp;#039;installateur télécharge les fichiers {{Path|.zip}} requis, les décompresse et démarre l&amp;#039;installation.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Remarque&amp;#039;&amp;#039;&amp;#039; : si vous avez un abonnement Subscription Update actif, voir [[#Upgrading_to_.40templateStart.40Product.40templateEnd.40_.40templateStart.40MarketingVersion.40templateEnd.40_From_.40templateStart.40Product.40templateEnd.40_XE8_With_an_Active_Update_Subscription|#Mise à niveau vers {{Product}} {{MarketingVersion}} depuis {{Product}} XE8 dans le cadre d&amp;#039;un abonnement Subscription Update actif]].}}&lt;br /&gt;
&lt;br /&gt;
===Installation hors ligne===&lt;br /&gt;
&lt;br /&gt;
Si la machine prévue pour l&amp;#039;installation n&amp;#039;est pas connectée à internet, procédez comme suit :&lt;br /&gt;
&lt;br /&gt;
# Téléchargez l&amp;#039;installateur ISO (cette opération ne nécessite pas de téléchargement supplémentaire) : [https://downloads.embarcadero.com/Item/30352 https://downloads.embarcadero.com/Item/30352]&lt;br /&gt;
# Double-cliquez sur {{Path|install_RADStudio.exe}} pour commencer l&amp;#039;installation du produit.&lt;br /&gt;
# Choisissez &amp;#039;&amp;#039;&amp;#039;&amp;quot;J&amp;#039;ai déjà obtenu un numéro de série du produit&amp;quot;&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# Mémorisez le code d&amp;#039;enregistrement présenté.&lt;br /&gt;
# Sur une machine connectée à internet, ouvrez l&amp;#039;URL : [http://reg.embarcadero.com http://reg.embarcadero.com]&lt;br /&gt;
# Suivez les instructions pour obtenir le fichier d&amp;#039;enregistrement.&lt;br /&gt;
# Lancez à nouveau l&amp;#039;installateur et sélectionnez cette fois &amp;#039;&amp;#039;&amp;#039;&amp;quot;J&amp;#039;ai un fichier licence valide (*.slip ou reg*.txt) à importer&amp;quot;&amp;#039;&amp;#039;&amp;#039; et importez le fichier que vous avez reçu.&lt;br /&gt;
&lt;br /&gt;
{{f|appmethod|&lt;br /&gt;
&lt;br /&gt;
# Double-cliquez sur le fichier {{Path|.exe}} pour commencer l&amp;#039;installation du produit. &lt;br /&gt;
# Acceptez les termes de la licence.&lt;br /&gt;
# A l&amp;#039;invite, entrez le numéro de série du produit. Le numéro de série est indiqué dans l&amp;#039;email de confirmation de la commande. &lt;br /&gt;
# L&amp;#039;installateur télécharge les fichiers {{Path|.zip}} requis, les décompresse et démarre l&amp;#039;installation.}}&lt;br /&gt;
&lt;br /&gt;
Si vous rencontrez des difficultés avec l&amp;#039;installation de votre produit, veuillez contacter le Support produit à l&amp;#039;adresse [http://www.embarcadero.com/support http://www.embarcadero.com/support (EN)].&lt;br /&gt;
&lt;br /&gt;
==Installation des licences réseau (kit média ou téléchargement)==&lt;br /&gt;
&lt;br /&gt;
Si vous avez acheté une licence réseau (gérée par Embarcadero License Center, FLEXnet ou AppWave), suivez ces instructions pour configurer l&amp;#039;image de l&amp;#039;installation à partir du kit média ou d&amp;#039;un téléchargement.&lt;br /&gt;
&lt;br /&gt;
: &amp;#039;&amp;#039;&amp;#039;Remarque :&amp;#039;&amp;#039;&amp;#039; Suivez de façon précise ces instructions, ou bien vos utilisateurs seront invités à fournir un numéro de série et seront incapables d&amp;#039;effectuer l&amp;#039;installation.&lt;br /&gt;
&lt;br /&gt;
Si vous disposez d&amp;#039;un kit média ou d&amp;#039;un téléchargement pour l&amp;#039;installation :&lt;br /&gt;
&lt;br /&gt;
# Copiez la licence réseau (fichier {{Path|named*.slip}} ou {{Path|concurrent*.slip}}), obtenue auprès de l&amp;#039;administrateur du serveur de licences, sur votre ordinateur ou sur un lecteur réseau partagé.&lt;br /&gt;
# [[#Installation de {{Delphi}} {{MarketingVersion}}, {{CBuilder}} {{MarketingVersion}}, ou {{Product}} {{MarketingVersion}}|Démarrez l&amp;#039;installation]] puis lorsqu&amp;#039;un message vous demande de saisir le numéro de licence, choisissez &amp;#039;&amp;#039;&amp;#039;&amp;quot;J&amp;#039;ai fichier licence valide (*.slip ou reg*.txt) à importer&amp;quot;&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# Utilisez le Gestionnaire de licences pour importer le fichier licence qui est situé sur votre machine ou sur un lecteur réseau partagé.&lt;br /&gt;
# L&amp;#039;exécution de l&amp;#039;installateur est automatique. Suivez les invites.&lt;br /&gt;
&lt;br /&gt;
Pour des informations générales supplémentaires relatives à la récupération des licences réseau Embarcadero, voir les pages suivantes :&lt;br /&gt;
&lt;br /&gt;
* [http://docwiki.embarcadero.com/ELC/53/en/ELC_Quick_Start http://docwiki.embarcadero.com/ELC/53/en/ELC_Quick_Start (EN)]&lt;br /&gt;
* [http://docwiki.embarcadero.com/ELC/53/en/Main_Page http://docwiki.embarcadero.com/ELC/53/en/Main_Page (EN)]&lt;br /&gt;
&lt;br /&gt;
{{f|appmethod|&lt;br /&gt;
&lt;br /&gt;
==Installation d&amp;#039;une édition d&amp;#039;évaluation==&lt;br /&gt;
&lt;br /&gt;
Si vous voulez utiliser l&amp;#039;édition d&amp;#039;évaluation, voici l&amp;#039;emplacement où vous pouvez la télécharger pour {{Product}} :&lt;br /&gt;
&lt;br /&gt;
: [http://www.appmethod.com/ http://www.appmethod.com/]&lt;br /&gt;
&lt;br /&gt;
Pour demander une version d&amp;#039;évaluation de {{Product}}, vous pouvez utiliser votre email personnel ou votre compte Facebook ou Google+ existant.&lt;br /&gt;
&lt;br /&gt;
Pour enregistrer votre version d&amp;#039;évaluation de {{Product}}, vous n&amp;#039;avez pas besoin de créer un compte EDN.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Mise à niveau vers {{Product}} {{MarketingVersion}} depuis {{Product}} XE8 dans le cadre d&amp;#039;un abonnement Subscription Update actif==&lt;br /&gt;
&lt;br /&gt;
* Si {{Product}} XE8 est installé sur votre machine dans le cadre d&amp;#039;un &amp;#039;&amp;#039;&amp;#039;programme Update Subscription&amp;#039;&amp;#039;&amp;#039; :&lt;br /&gt;
** L&amp;#039;expert d&amp;#039;installation détecte automatiquement votre licence et l&amp;#039;installation commence sans qu&amp;#039;aucun message ne demande des informations sur la licence.&lt;br /&gt;
* Si {{Product}} XE8 n&amp;#039;est pas installé sur la même machine :&lt;br /&gt;
** Sélectionnez l&amp;#039;option &amp;#039;&amp;#039;&amp;#039;&amp;quot;J&amp;#039;ai déjà obtenu un numéro de série du produit&amp;quot;&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
** Entrez votre numéro de série XE8 et enregistrez-le. Cela inclut déjà la licence {{Product}} {{MarketingVersion}}. L&amp;#039;installation peut commencer.&lt;br /&gt;
&lt;br /&gt;
==Problèmes d&amp;#039;installation connus==&lt;br /&gt;
&lt;br /&gt;
===Erreur d&amp;#039;installation JSharp sur Windows Server 2008 64 bits===&lt;br /&gt;
&lt;br /&gt;
Sur un Windows 2008 Server\R2 64 bits, l&amp;#039;installation peut échouer en cas de recherche d&amp;#039;une version 32 bits de JSharp localisée sur :&lt;br /&gt;
&lt;br /&gt;
: {{Path|C:\Users\%USERNAME%\WINDOWS\Microsoft.NET\Framework\v2.0.50727\vjscor.dll}}&lt;br /&gt;
&lt;br /&gt;
au lieu de :&lt;br /&gt;
&lt;br /&gt;
: {{Path|C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\vjscor.dll}}&lt;br /&gt;
&lt;br /&gt;
La solution consiste à exécuter la commande suivante sur une fenêtre {{Path|cmd.exe}} :&lt;br /&gt;
&lt;br /&gt;
: {{Code|mklink C:\Users\%USERNAME%\WINDOWS\Microsoft.NET C:\Windows\Microsoft.NET /D}}&lt;br /&gt;
&lt;br /&gt;
===Erreurs d&amp;#039;installation 0x800F0906, 0x800F081F et 0x800F0907 du .NET Framework===&lt;br /&gt;
&lt;br /&gt;
Si vous rencontrez l&amp;#039;une quelconque des erreurs d&amp;#039;installation suivantes du .NET Framework 3.5 : 0x800F0906, 0x800F081F ou 0x800F0907, voir [https://support.microsoft.com/en-en/kb/2734782 Microsoft Support - .NET Framework 3.5 installation error: 0x800F0906, 0x800F081F, 0x800F0907 (EN)] pour de plus amples informations sur la résolution de ces erreurs.&lt;br /&gt;
&lt;br /&gt;
==Désinstallation du produit==&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;utilisateur détenant les privilèges Administrateur, ayant installé initialement le produit, peut le désinstaller :&lt;br /&gt;
&lt;br /&gt;
# Ouvrez le Panneau de configuration Windows.&lt;br /&gt;
# Sélectionnez &amp;#039;&amp;#039;&amp;#039;Ajouter ou supprimer des programmes&amp;#039;&amp;#039;&amp;#039; ou &amp;#039;&amp;#039;&amp;#039;Désinstaller un programme&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# Sélectionnez le nom du produit.&lt;br /&gt;
# Cliquez sur &amp;#039;&amp;#039;&amp;#039;Retirer&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
===Désinstallation d&amp;#039;instances qui utilisent des licences réseau===&lt;br /&gt;
&lt;br /&gt;
Après la désinstallation, chaque utilisateur qui n&amp;#039;est pas l&amp;#039;Administrateur doit retirer les données spécifiques à l&amp;#039;utilisateur du registre Windows :&lt;br /&gt;
&lt;br /&gt;
# Etablissez la connexion au compte utilisateur.&lt;br /&gt;
# Effectuez une copie de sauvegarde du registre.&lt;br /&gt;
# Lancez Regedit ou un autre outil d&amp;#039;édition du registre.&lt;br /&gt;
# Supprimez la clé de registre suivante :&lt;br /&gt;
#: {{Code|HKEY_CURRENT_USER\Software\{{Company}}\BDS\{{VersionNumber}}}}&lt;br /&gt;
&lt;br /&gt;
: &amp;#039;&amp;#039;&amp;#039;Avertissement :&amp;#039;&amp;#039;&amp;#039; La modification du registre s&amp;#039;effectue à vos risques et périls. {{Company}} recommande d&amp;#039;utiliser l&amp;#039;outil Microsoft Regedit pour modifier le registre. Avant d&amp;#039;effectuer vos modifications, faites des copies de sauvegarde de votre registre, et familiarisez-vous avec l&amp;#039;outil choisi et le processus d&amp;#039;édition du registre. Le registre est un composant critique de votre système d&amp;#039;exploitation et toute erreur lors de sa modification peut provoquer l&amp;#039;arrêt du fonctionnement de votre machine. Par conséquent, {{Company}} ne peut être tenu responsable des problèmes rencontrés suite à la modification du registre.&lt;br /&gt;
&lt;br /&gt;
===Retrait des fichiers de configuration===&lt;br /&gt;
&lt;br /&gt;
Après la désinstallation, les données spécifiques à l&amp;#039;utilisateur, telles que les paramètres de projet par défaut, peuvent rester dans les fichiers de configuration. Vous devrez retirer manuellement ces dossiers :&lt;br /&gt;
&lt;br /&gt;
* {{Path|All Users\Application Data\{{Company}}\{{f|radstudio|BDS}}{{f|appmethod|{{Product}}}}\{{VersionNumber}}}}&lt;br /&gt;
* {{Path|All Users\Shared Documents\{{Company}}\{{f|radstudio|BDS}}{{f|appmethod|{{Product}}}}\{{VersionNumber}}}}&lt;br /&gt;
&lt;br /&gt;
==Si vous avez un problème d&amp;#039;installation==&lt;br /&gt;
&lt;br /&gt;
Si vous rencontrez un problème lors de l&amp;#039;installation, ouvrez une demande de support sur le site web [http://support.embarcadero.com http://support.embarcadero.com (EN)].&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[Notes de release|Notes de release]]&lt;br /&gt;
* [[Nouveautés|Nouveautés]]&lt;br /&gt;
&lt;br /&gt;
* [[Plat fr:Accueil#RAD_Studio_Berlin|Solutions de contournement et corrections pour Berlin]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Seattle]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Installation Notes]]&lt;br /&gt;
[[de:Installationshinweise]]&lt;br /&gt;
[[ja:インストール ノート]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Fichier_des_informations_d%27application_Apple_(*.info.plist)&amp;diff=197989</id>
		<title>Fichier des informations d&#039;application Apple (*.info.plist)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Fichier_des_informations_d%27application_Apple_(*.info.plist)&amp;diff=197989"/>
		<updated>2016-02-29T12:08:09Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : 1 version : Internal review. LOC-21652&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Types de fichiers - Index}}&lt;br /&gt;
&lt;br /&gt;
Lorsque vous déployez un projet pour une plate-forme Apple ([[Développement d&amp;#039;applications Mac OS X|Mac OS X]] ou [[Développement d&amp;#039;applications mobiles iOS|iOS]]), {{Product}} génère un fichier d&amp;#039;informations d&amp;#039;application Apple. Ce fichier est nécessaire pour générer le bundle de votre application.&lt;br /&gt;
&lt;br /&gt;
Les fichiers d&amp;#039;informations d&amp;#039;application Apple sont des fichiers de listes de propriétés comportant des informations de configuration essentielles pour les plates-formes Apple. Le contenu du fichier est généré à partir de plusieurs sources, y compris la configuration relative au projet (voir [[Informations de version|Informations de version]]), les options du compilateur (voir &amp;quot;Version iOS minimale supportée&amp;quot; dans [[Linking|Liaison]]) ou votre [[Gestionnaire de SDK|SDK]]. Le fichier des informations d&amp;#039;application Apple est généré en tant que fichier XML contenant des clés et des valeurs associées.&lt;br /&gt;
&lt;br /&gt;
Pour les applications iOS, le fichier {{Path|info.plist}} est maintenu au format XML format pendant le développement, mais est livré sous forme de fichier binaire pour le déploiement. Pour les applications OS X, le fichier {{Path|info.plist}} est maintenu et déployé au format XML.&lt;br /&gt;
&lt;br /&gt;
Pour plus d&amp;#039;informations sur le fichier {{Path|Info.plist}}, voir la [https://developer.apple.com/library/mac/#documentation/General/Reference/InfoPlistKeyReference/Introduction/Introduction.html référence Info.plist (EN)].&lt;br /&gt;
&lt;br /&gt;
Lorsque vous construisez votre projet, le fichier des informations d&amp;#039;application Apple est généré par défaut sous {{Path|{{Placeholder|projet}}.info.plist}} dans le dossier suivant :&lt;br /&gt;
&lt;br /&gt;
* Dans les [[Packages|Packages]] :&lt;br /&gt;
*: &amp;#039;&amp;#039;&amp;#039;Remarque :&amp;#039;&amp;#039;&amp;#039; Vous n&amp;#039;avez pas besoin d&amp;#039;un fichier d&amp;#039;informations sur l&amp;#039;application Apple pour les [[Packages|Packages]].&lt;br /&gt;
** Pour {{Delphi}} : {{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 : {{Path|{{ProjectsPath}}\{{Placeholder|projet}}\{{Placeholder|plate-forme}}\{{Placeholder|configuration de construction}}}}&lt;br /&gt;
&lt;br /&gt;
Pour changer de répertoire de sortie :&lt;br /&gt;
&lt;br /&gt;
* Dans {{Delphi}}, utilisez l&amp;#039;option &amp;#039;&amp;#039;&amp;#039;Répertoire de sortie des packages&amp;#039;&amp;#039;&amp;#039; de {{Menu|Projet &amp;amp;gt; Options &amp;amp;gt; [[Compilateur Delphi|Compilateur {{Delphi}}]]}}.&lt;br /&gt;
* Dans C++, utilisez l&amp;#039;option &amp;#039;&amp;#039;&amp;#039;Sortie BPI/LIB&amp;#039;&amp;#039;&amp;#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;
* [[Personnalisation de votre fichier info.plist|Personnalisation de votre fichier info.plist]]&lt;br /&gt;
&lt;br /&gt;
* [[Options de l&amp;#039;application|Options de l&amp;#039;application]]&lt;br /&gt;
* [[Linking|Liaison]]&lt;br /&gt;
* [[Gestionnaire de SDK|Gestionnaire de SDK]]&lt;br /&gt;
* [[Informations de version|Informations de version]]&lt;br /&gt;
&lt;br /&gt;
* [[Fichier des droits d&amp;#039;application Apple (*.entitlements)|Fichier des droits d&amp;#039;application Apple (*.entitlements)]]&lt;br /&gt;
* [[Fichier des règles de ressources d&amp;#039;application Apple|Fichier des règles de ressources d&amp;#039;application Apple  (ResourceRules.plist)]]&lt;br /&gt;
&lt;br /&gt;
* [[Fichiers de packages créés lors d&amp;#039;une compilation|Fichiers de packages créés lors d&amp;#039;une compilation]]&lt;br /&gt;
&lt;br /&gt;
* [https://developer.apple.com/library/mac/documentation/Miscellaneous/Reference/EntitlementKeyReference/Chapters/AboutEntitlements.html About Entitlements (EN)] (documentation Apple)&lt;br /&gt;
&lt;br /&gt;
[[Category:Référence EDI]]&lt;br /&gt;
[[Category:XE7]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Fichier_des_informations_d%27application_Apple_(*.info.plist)&amp;diff=197988</id>
		<title>Fichier des informations d&#039;application Apple (*.info.plist)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Fichier_des_informations_d%27application_Apple_(*.info.plist)&amp;diff=197988"/>
		<updated>2016-02-29T12:08:07Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : Internal review. LOC-21652&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Types de fichiers - Index}}&lt;br /&gt;
&lt;br /&gt;
Lorsque vous déployez un projet pour une plate-forme Apple ([[Développement d&amp;#039;applications Mac OS X|Mac OS X]] ou [[Développement d&amp;#039;applications mobiles iOS|iOS]]), {{Product}} génère un fichier d&amp;#039;informations d&amp;#039;application Apple. Ce fichier est nécessaire pour générer le bundle de votre application.&lt;br /&gt;
&lt;br /&gt;
Les fichiers d&amp;#039;informations d&amp;#039;application Apple sont des fichiers de listes de propriétés comportant des informations de configuration essentielles pour les plates-formes Apple. Le contenu du fichier est généré à partir de plusieurs sources, y compris la configuration relative au projet (voir [[Informations de version|Informations de version]]), les options du compilateur (voir &amp;quot;Version iOS minimale supportée&amp;quot; dans [[Linking|Liaison]]) ou votre [[Gestionnaire de SDK|SDK]]. Le fichier des informations d&amp;#039;application Apple est généré en tant que fichier XML contenant des clés et des valeurs associées.&lt;br /&gt;
&lt;br /&gt;
Pour les applications iOS, le fichier {{Path|info.plist}} est maintenu au format XML format pendant le développement, mais est livré sous forme de fichier binaire pour le déploiement. Pour les applications OS X, le fichier {{Path|info.plist}} est maintenu et déployé au format XML.&lt;br /&gt;
&lt;br /&gt;
Pour plus d&amp;#039;informations sur le fichier {{Path|Info.plist}}, voir la [https://developer.apple.com/library/mac/#documentation/General/Reference/InfoPlistKeyReference/Introduction/Introduction.html référence Info.plist (EN)].&lt;br /&gt;
&lt;br /&gt;
Lorsque vous construisez votre projet, le fichier des informations d&amp;#039;application Apple est généré par défaut sous {{Path|{{Placeholder|projet}}.info.plist}} dans le dossier suivant :&lt;br /&gt;
&lt;br /&gt;
* Dans les [[Packages|Packages]] :&lt;br /&gt;
*: &amp;#039;&amp;#039;&amp;#039;Remarque :&amp;#039;&amp;#039;&amp;#039; Vous n&amp;#039;avez pas besoin d&amp;#039;un fichier d&amp;#039;informations sur l&amp;#039;application Apple pour les [[Packages|Packages]].&lt;br /&gt;
** Pour {{Delphi}} : {{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 : {{Path|{{ProjectsPath}}\{{Placeholder|projet}}\{{Placeholder|plate-forme}}\{{Placeholder|configuration de construction}}}}&lt;br /&gt;
&lt;br /&gt;
Pour changer de répertoire de sortie :&lt;br /&gt;
&lt;br /&gt;
* Dans {{Delphi}}, utilisez l&amp;#039;option &amp;#039;&amp;#039;&amp;#039;Répertoire de sortie des packages&amp;#039;&amp;#039;&amp;#039; de {{Menu|Projet &amp;amp;gt; Options &amp;amp;gt; [[Compilateur Delphi|Compilateur {{Delphi}}]]}}.&lt;br /&gt;
* Dans C++, utilisez l&amp;#039;option &amp;#039;&amp;#039;&amp;#039;Sortie BPI/LIB&amp;#039;&amp;#039;&amp;#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;
* [[Personnalisation de votre fichier info.plist|Personnalisation de votre fichier info.plist]]&lt;br /&gt;
&lt;br /&gt;
* [[Options de l&amp;#039;application|Options de l&amp;#039;application]]&lt;br /&gt;
* [[Linking|Liaison]]&lt;br /&gt;
* [[Gestionnaire de SDK|Gestionnaire de SDK]]&lt;br /&gt;
* [[Informations de version|Informations de version]]&lt;br /&gt;
&lt;br /&gt;
* [[Fichier des droits d&amp;#039;application Apple (*.entitlements)|Fichier des droits d&amp;#039;application Apple (*.entitlements)]]&lt;br /&gt;
* [[Fichier des règles de ressources d&amp;#039;application Apple|Fichier des règles de ressources d&amp;#039;application Apple  (ResourceRules.plist)]]&lt;br /&gt;
&lt;br /&gt;
* [[Fichiers de packages créés lors d&amp;#039;une compilation|Fichiers de packages créés lors d&amp;#039;une compilation]]&lt;br /&gt;
&lt;br /&gt;
* [https://developer.apple.com/library/mac/documentation/Miscellaneous/Reference/EntitlementKeyReference/Chapters/AboutEntitlements.html About Entitlements (EN)] (documentation Apple)&lt;br /&gt;
&lt;br /&gt;
[[Category:Référence EDI]]&lt;br /&gt;
[[Category:XE7]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Connexion_%C3%A0_IBM_DB2_Server_(FireDAC)&amp;diff=197987</id>
		<title>Connexion à IBM DB2 Server (FireDAC)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Connexion_%C3%A0_IBM_DB2_Server_(FireDAC)&amp;diff=197987"/>
		<updated>2016-02-29T11:57:44Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : 1 version : Internal review. LOC-21652&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Connectivité des bases de données (FireDAC)}}&lt;br /&gt;
Cette rubrique explique comment établir une connexion à IBM DB2 Server.&lt;br /&gt;
&lt;br /&gt;
==Versions prises en charge==&lt;br /&gt;
&lt;br /&gt;
Le pilote natif FireDAC supporte IBM DB2 éditions Enterprise, Workgroup, Express ou AS/400 version 8 ou ultérieure. Nous recommandons au minimum la version 8.2. Vous pouvez également travailler avec d&amp;#039;autres produits de base de données IBM utilisant les pilotes ODBC ou pont DBX de FireDAC.&lt;br /&gt;
&lt;br /&gt;
==Logiciel client Windows==&lt;br /&gt;
&lt;br /&gt;
FireDAC requiert l&amp;#039;installation du pilote ODBC x86 ou x64 &amp;quot;&amp;#039;&amp;#039;&amp;#039;IBM DATA SERVER DRIVER for ODBC&amp;#039;&amp;#039;&amp;#039;&amp;quot;, &amp;quot;&amp;#039;&amp;#039;&amp;#039;IBM DB2 ODBC DRIVER&amp;#039;&amp;#039;&amp;#039;&amp;quot; ou &amp;quot;&amp;#039;&amp;#039;&amp;#039;IBM DB2 DRIVER FOR ODBC&amp;#039;&amp;#039;&amp;#039;&amp;quot; sur la station de travail. Ceux-ci peuvent être téléchargés à partir des emplacements suivants&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
* [https://www14.software.ibm.com/webapp/iwm/web/reg/download.do?source=swg-idsoc97&amp;amp;lang=en_US&amp;amp;S_PKG=win32&amp;amp;cp=UTF-8 pour x86 (EN)]&lt;br /&gt;
* [https://www14.software.ibm.com/webapp/iwm/web/reg/download.do?source=swg-idsoc97&amp;amp;lang=en_US&amp;amp;S_PKG=win64&amp;amp;cp=UTF-8 pour x64 (EN)]&lt;br /&gt;
&lt;br /&gt;
Après avoir téléchargé et décompressé le pilote ODBC, exécutez &amp;quot;&amp;amp;lt;client&amp;amp;gt;\bin\db2oreg1 -i&amp;quot; pour l&amp;#039;installer. Téléchargez et installez également les packs de correction.&lt;br /&gt;
&lt;br /&gt;
Si le pilote ODBC DB2 n&amp;#039;a pas été installé correctement, une exception est déclenchée lorsque vous tentez d&amp;#039;établir une connexion&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 [FireDAC][Phys][ODBC][Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified&lt;br /&gt;
&lt;br /&gt;
===DB2 AS400===&lt;br /&gt;
&lt;br /&gt;
FireDAC requiert la connexion du pilote &amp;quot;&amp;#039;&amp;#039;&amp;#039;[http://www-01.ibm.com/support/knowledgecenter/ssw_ibm_i_71/rzaik/rzaikappodbc.htm iSERIES ACCESS ODBC DRIVER (EN)]&amp;#039;&amp;#039;&amp;#039;&amp;quot; à DB2 AS400.&lt;br /&gt;
&lt;br /&gt;
{{f|linux|&lt;br /&gt;
&lt;br /&gt;
==Logiciel client Linux==&lt;br /&gt;
&lt;br /&gt;
FireDAC requiert :&lt;br /&gt;
&lt;br /&gt;
* La bibliothèque de gestionnaires de pilotes ODBC x64 [[UnixODBC (FireDAC)|UnixODBC]] (&amp;#039;&amp;#039;&amp;#039;libodbc.so&amp;#039;&amp;#039;&amp;#039;).&lt;br /&gt;
* Le pilote ODBC x64 [https://www-01.ibm.com/marketing/iwm/iwm/web/reg/download.do?source=swg-idsoc97&amp;amp;S_PKG=linuxAMD64&amp;amp;lang=en_US&amp;amp;cp=UTF-8&amp;amp;dlmethod=http IBM DB2] (&amp;#039;&amp;#039;&amp;#039;libdb2o.so&amp;#039;&amp;#039;&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
Pour installer le pilote ODBC IBM DB2 sur Linux, utilisez les commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 wget https://iwm.dhe.ibm.com/sdfdl/v2/regs2/smkane/IDSOC/Xa.2/Xb.bL-snMrfTFUOEZM9SFIYEgkyzCYJ8GYhKPLuutqQPS4/Xc.ibm_data_server_driver_for_odbc_cli_linuxx64_v10.5.tar.gz/Xd./Xf.LPr.D1vk/Xg.8398418/Xi.swg-idsoc97/XY.regsrvs/XZ.UZeSrlXsxKGiPAxfyhfrEBeCLYU/ibm_data_server_driver_for_odbc_cli_linuxx64_v10.5.tar.gz&lt;br /&gt;
 tar -zxvf ibm_data_server_driver_for_odbc_cli_linuxx64_v10.5.tar.gz&lt;br /&gt;
 cd odbc_cli&lt;br /&gt;
 sudo mkdir -p /opt/ibm/clidriver&lt;br /&gt;
 sudo cp -r clidriver/* /opt/ibm/clidriver&lt;br /&gt;
 echo [IBM DB2 ODBC DRIVER 10.5] &amp;amp;gt; db2.driver.template&lt;br /&gt;
 echo Description=IBM DB2 ODBC Driver v 10.5 &amp;amp;gt;&amp;amp;gt; db2.driver.template&lt;br /&gt;
 echo Driver=/opt/ibm/clidriver/lib/libdb2o.so &amp;amp;gt;&amp;amp;gt; db2.driver.template&lt;br /&gt;
 echo DontDLClose=1 &amp;amp;gt;&amp;amp;gt; db2.driver.template&lt;br /&gt;
 echo Threading=1 &amp;amp;gt;&amp;amp;gt; db2.driver.template&lt;br /&gt;
 odbcinst -i -d -f db2.driver.template&lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Remarque :&amp;#039;&amp;#039;&amp;#039; En fonction de votre distribution Linux et configuration UnixODBC, les commandes ci-dessus peuvent être légèrement différentes. Ces commandes ont été testées sur Ubuntu Linux et la configuration par défaut UnixODBC.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Liaison du pilote==&lt;br /&gt;
&lt;br /&gt;
Pour lier le pilote&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
* déposez un composant [[lib_fr:FireDAC.Phys.DB2.TFDPhysDB2DriverLink|TFDPhysDB2DriverLink]] à partir de la page &amp;quot;Liens FireDAC&amp;quot; de la palette&lt;br /&gt;
* ou incluez l&amp;#039;unité [[lib_fr:FireDAC.Phys.DB2|FireDAC.Phys.DB2]] dans la clause uses.&lt;br /&gt;
&lt;br /&gt;
==Paramètres de définition de la connexion==&lt;br /&gt;
&lt;br /&gt;
Il existe deux méthodes de spécification des attributs de connexion à DB2. Dans le logiciel client DB2, si les alias de connexion à DB2 sont configurés, une application doit utiliser le paramètre &amp;#039;&amp;#039;&amp;#039;Alias&amp;#039;&amp;#039;&amp;#039;. Si aucun alias n&amp;#039;est configuré, vous devez utiliser les paramètres &amp;#039;&amp;#039;&amp;#039;Protocol&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Server&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Port&amp;#039;&amp;#039;&amp;#039; et &amp;#039;&amp;#039;&amp;#039;Database&amp;#039;&amp;#039;&amp;#039;. Spécifiez également les paramètres &amp;#039;&amp;#039;&amp;#039;User_Name&amp;#039;&amp;#039;&amp;#039; et &amp;#039;&amp;#039;&amp;#039;Password&amp;#039;&amp;#039;&amp;#039;. Pour plus de détails, voir [[Définition d&amp;#039;une connexion (FireDAC)|Définition d&amp;#039;une connexion (FireDAC)]].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;DriverID=DB2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;#039;&amp;#039;&amp;#039;Paramètre&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
! &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
! &amp;#039;&amp;#039;&amp;#039;Valeur exemple&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&amp;#039;&amp;#039;&amp;#039;Alias &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alias de connexion.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | MyDB2Srv&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&amp;#039;&amp;#039;&amp;#039;Server &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Nom de l&amp;#039;hôte, si le paramètre Alias n&amp;#039;est pas spécifié.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | 127.0.0.1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&amp;#039;&amp;#039;&amp;#039;Port &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Valeur du port, si le paramètre Alias n&amp;#039;est pas spécifié.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | 5000&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&amp;#039;&amp;#039;&amp;#039;Database &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Nom de la base de données, si le paramètre Alias n&amp;#039;est pas spécifié.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | ADDEMO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&amp;#039;&amp;#039;&amp;#039;Protocol &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Nom du protocole, si le paramètre Alias n&amp;#039;est pas spécifié.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TCPIP&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&amp;#039;&amp;#039;&amp;#039;User_Name&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Nom d&amp;#039;utilisateur de DB2.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | db2admin&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&amp;#039;&amp;#039;&amp;#039;Password &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mot de passe de l&amp;#039;utilisateur de la base de données. Notez que les mots de passe comportant &amp;#039;{&amp;#039; et &amp;#039;}&amp;#039; ne sont pas supportés.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | master&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&amp;#039;&amp;#039;&amp;#039;LoginTimeout &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Contrôle la durée, en secondes, s’écoulant avant qu&amp;#039;une application dépasse le temps imparti pour établir la connexion (la valeur 0 indique une attente infinie).&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | 30&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&amp;#039;&amp;#039;&amp;#039;StringFormat &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définit comment représenter les valeurs chaîne (String) :&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Choose&amp;#039;&amp;#039;&amp;#039; -- représenter en tant que ftString / ftWideString / ftMemo / ftWideMemo, selon le nom du type de données déclaré (valeur par défaut).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Unicode&amp;#039;&amp;#039;&amp;#039; -- toujours représenter en tant que ftWideString / ftWideMemo.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Unicode&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&amp;#039;&amp;#039;&amp;#039;ExtendedMetadata &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Contrôle la [[Métadonnées étendues (FireDAC)|description étendue]] des ensembles de résultats d&amp;#039;une requête :&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; -- FireDAC décrit un ensemble de résultats pour obtenir tous les attributs de colonne possibles (en lecture seule, auto-incrémentée, colonne d&amp;#039;origine, etc). Le fait de définir cette option sur &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; ralentit légèrement l&amp;#039;ouverture d&amp;#039;un ensemble de données.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039; -- FireDAC utilise les informations restreintes relatives aux colonnes de requête (valeur par défaut).&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | True&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&amp;#039;&amp;#039;&amp;#039;ODBCAdvanced &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Vous permet de spécifier toute autre valeur de paramètre de connexion ODBC. La valeur par défaut est &amp;quot;IGNOREWARNINGS=1&amp;quot;.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | &amp;#039;&amp;#039;&amp;#039;TxSupported &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Spécifie si la base de données DB2 prend en charge des transactions SQL.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Yes&amp;#039;&amp;#039;&amp;#039;. La base de données DB2 prend en charge des transactions. C&amp;#039;est la valeur par défaut.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;No&amp;#039;&amp;#039;&amp;#039;. La base de données DB2 ne prend pas en charge des transactions. &lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;Remarque&amp;#039;&amp;#039;&amp;#039; : Définissez ce paramètre sur &amp;#039;&amp;#039;&amp;#039;No&amp;#039;&amp;#039;&amp;#039; quand les appels aux méthodes [[lib_fr:FireDAC.Comp.Client.TFDCustomConnection.StartTransaction|StartTransaction]], [[lib_fr:FireDAC.Comp.Client.TFDCustomConnection.Commit|Commit]] ou [[lib_fr:FireDAC.Comp.Client.TFDCustomConnection.Rollback|Rollback]] entrainent des erreurs. Par exemple :&lt;br /&gt;
*:* Quand une transaction inclut une table de base de données DB2 créée avec l&amp;#039;option {{code|NOT LOGGED INITIALLY}}.&lt;br /&gt;
*:* Quand la journalisation des transactions d&amp;#039;une base de données AS400 DB2 est désactivée.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Yes&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&amp;#039;&amp;#039;&amp;#039;MetaDefSchema &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Nom du schéma par défaut. En mode conception, le code exclut le nom du schéma du nom d&amp;#039;objet s&amp;#039;il est égal à MetaDefSchema.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | db2admin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Exemples d&amp;#039;utilisation==&lt;br /&gt;
&lt;br /&gt;
* Etablir une connexion à DB2 en utilisant l&amp;#039;alias de base de données existant&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 DriverID=DB2&lt;br /&gt;
 Alias=addemo&lt;br /&gt;
 User_Name=db2admin&lt;br /&gt;
 Password=mypwd&lt;br /&gt;
 MetaDefSchema=db2admin&lt;br /&gt;
&lt;br /&gt;
* Etablir une connexion à la base de données en utilisant les informations de connexion complètes&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 DriverID=DB2&lt;br /&gt;
 Server=127.0.0.1&lt;br /&gt;
 Database=addemo&lt;br /&gt;
 Port=50000&lt;br /&gt;
 Protocol=TCPIP&lt;br /&gt;
 User_Name=db2admin&lt;br /&gt;
 Password=mypwd&lt;br /&gt;
 MetaDefSchema=db2admin&lt;br /&gt;
&lt;br /&gt;
* Etablir une connexion à DB2 AS400&lt;br /&gt;
&lt;br /&gt;
: Pour établir une connexion à TBDECallback, effectuez les étapes suivantes :&lt;br /&gt;
:# Déposez un composant [[lib_fr:FireDAC.Comp.Client.TFDConnection|TFDConnection]] et un composant [[lib_fr:FireDAC.Phys.DB2.TFDPhysDB2DriverLink|TFDPhysDB2DriverLink]] sur le  &amp;#039;&amp;#039;&amp;#039;[[TForm|TForm]]&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
:# Définissez la propriété [[lib_fr:FireDAC.Phys.DB2.TFDPhysDB2DriverLink|TFDPhysDB2DriverLink]].[[lib_fr:FireDAC.Phys.ODBCBase.TFDPhysODBCBaseDriverLink.ODBCDriver|ODBCDriver]] sur {{code|&amp;#039;iSeries Access ODBC Driver&amp;#039;}}.&lt;br /&gt;
:# Double-cliquez sur [[lib_fr:FireDAC.Comp.Client.TFDConnection|TFDConnection]] et définissez &amp;#039;&amp;#039;&amp;#039;Driver ID&amp;#039;&amp;#039;&amp;#039; sur {{code|DB2}}.&lt;br /&gt;
:# Appuyez sur le bouton &amp;#039;&amp;#039;&amp;#039;Expert&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
:# Renseignez les paramètres de connexion en utilisant le dialogue du pilote  ODBC.&lt;br /&gt;
:# Appuyez sur le bouton &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; pour enregistrer les paramètres.&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[Paramètres de connexion communs (FireDAC)|Paramètres de connexion communs]]&lt;br /&gt;
* [[FAQ (FireDAC)|FAQ]]&lt;br /&gt;
* [[Configuration des pilotes (FireDAC)|Comment configurer les pilotes FireDAC]]&lt;br /&gt;
* [[Définition d&amp;#039;une connexion (FireDAC)|Comment gérer les définitions des connexions FireDAC]]&lt;br /&gt;
&lt;br /&gt;
[[Category:FireDAC]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Connexion_%C3%A0_IBM_DB2_Server_(FireDAC)&amp;diff=197986</id>
		<title>Connexion à IBM DB2 Server (FireDAC)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Connexion_%C3%A0_IBM_DB2_Server_(FireDAC)&amp;diff=197986"/>
		<updated>2016-02-29T11:57:40Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : Internal review. LOC-21652&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Connectivité des bases de données (FireDAC)}}&lt;br /&gt;
Cette rubrique explique comment établir une connexion à IBM DB2 Server.&lt;br /&gt;
&lt;br /&gt;
==Versions prises en charge==&lt;br /&gt;
&lt;br /&gt;
Le pilote natif FireDAC supporte IBM DB2 éditions Enterprise, Workgroup, Express ou AS/400 version 8 ou ultérieure. Nous recommandons au minimum la version 8.2. Vous pouvez également travailler avec d&amp;#039;autres produits de base de données IBM utilisant les pilotes ODBC ou pont DBX de FireDAC.&lt;br /&gt;
&lt;br /&gt;
==Logiciel client Windows==&lt;br /&gt;
&lt;br /&gt;
FireDAC requiert l&amp;#039;installation du pilote ODBC x86 ou x64 &amp;quot;&amp;#039;&amp;#039;&amp;#039;IBM DATA SERVER DRIVER for ODBC&amp;#039;&amp;#039;&amp;#039;&amp;quot;, &amp;quot;&amp;#039;&amp;#039;&amp;#039;IBM DB2 ODBC DRIVER&amp;#039;&amp;#039;&amp;#039;&amp;quot; ou &amp;quot;&amp;#039;&amp;#039;&amp;#039;IBM DB2 DRIVER FOR ODBC&amp;#039;&amp;#039;&amp;#039;&amp;quot; sur la station de travail. Ceux-ci peuvent être téléchargés à partir des emplacements suivants&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
* [https://www14.software.ibm.com/webapp/iwm/web/reg/download.do?source=swg-idsoc97&amp;amp;lang=en_US&amp;amp;S_PKG=win32&amp;amp;cp=UTF-8 pour x86 (EN)]&lt;br /&gt;
* [https://www14.software.ibm.com/webapp/iwm/web/reg/download.do?source=swg-idsoc97&amp;amp;lang=en_US&amp;amp;S_PKG=win64&amp;amp;cp=UTF-8 pour x64 (EN)]&lt;br /&gt;
&lt;br /&gt;
Après avoir téléchargé et décompressé le pilote ODBC, exécutez &amp;quot;&amp;amp;lt;client&amp;amp;gt;\bin\db2oreg1 -i&amp;quot; pour l&amp;#039;installer. Téléchargez et installez également les packs de correction.&lt;br /&gt;
&lt;br /&gt;
Si le pilote ODBC DB2 n&amp;#039;a pas été installé correctement, une exception est déclenchée lorsque vous tentez d&amp;#039;établir une connexion&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 [FireDAC][Phys][ODBC][Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified&lt;br /&gt;
&lt;br /&gt;
===DB2 AS400===&lt;br /&gt;
&lt;br /&gt;
FireDAC requiert la connexion du pilote &amp;quot;&amp;#039;&amp;#039;&amp;#039;[http://www-01.ibm.com/support/knowledgecenter/ssw_ibm_i_71/rzaik/rzaikappodbc.htm iSERIES ACCESS ODBC DRIVER (EN)]&amp;#039;&amp;#039;&amp;#039;&amp;quot; à DB2 AS400.&lt;br /&gt;
&lt;br /&gt;
{{f|linux|&lt;br /&gt;
&lt;br /&gt;
==Logiciel client Linux==&lt;br /&gt;
&lt;br /&gt;
FireDAC requiert :&lt;br /&gt;
&lt;br /&gt;
* La bibliothèque de gestionnaires de pilotes ODBC x64 [[UnixODBC (FireDAC)|UnixODBC]] (&amp;#039;&amp;#039;&amp;#039;libodbc.so&amp;#039;&amp;#039;&amp;#039;).&lt;br /&gt;
* Le pilote ODBC x64 [https://www-01.ibm.com/marketing/iwm/iwm/web/reg/download.do?source=swg-idsoc97&amp;amp;S_PKG=linuxAMD64&amp;amp;lang=en_US&amp;amp;cp=UTF-8&amp;amp;dlmethod=http IBM DB2] (&amp;#039;&amp;#039;&amp;#039;libdb2o.so&amp;#039;&amp;#039;&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
Pour installer le pilote ODBC IBM DB2 sur Linux, utilisez les commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 wget https://iwm.dhe.ibm.com/sdfdl/v2/regs2/smkane/IDSOC/Xa.2/Xb.bL-snMrfTFUOEZM9SFIYEgkyzCYJ8GYhKPLuutqQPS4/Xc.ibm_data_server_driver_for_odbc_cli_linuxx64_v10.5.tar.gz/Xd./Xf.LPr.D1vk/Xg.8398418/Xi.swg-idsoc97/XY.regsrvs/XZ.UZeSrlXsxKGiPAxfyhfrEBeCLYU/ibm_data_server_driver_for_odbc_cli_linuxx64_v10.5.tar.gz&lt;br /&gt;
 tar -zxvf ibm_data_server_driver_for_odbc_cli_linuxx64_v10.5.tar.gz&lt;br /&gt;
 cd odbc_cli&lt;br /&gt;
 sudo mkdir -p /opt/ibm/clidriver&lt;br /&gt;
 sudo cp -r clidriver/* /opt/ibm/clidriver&lt;br /&gt;
 echo [IBM DB2 ODBC DRIVER 10.5] &amp;amp;gt; db2.driver.template&lt;br /&gt;
 echo Description=IBM DB2 ODBC Driver v 10.5 &amp;amp;gt;&amp;amp;gt; db2.driver.template&lt;br /&gt;
 echo Driver=/opt/ibm/clidriver/lib/libdb2o.so &amp;amp;gt;&amp;amp;gt; db2.driver.template&lt;br /&gt;
 echo DontDLClose=1 &amp;amp;gt;&amp;amp;gt; db2.driver.template&lt;br /&gt;
 echo Threading=1 &amp;amp;gt;&amp;amp;gt; db2.driver.template&lt;br /&gt;
 odbcinst -i -d -f db2.driver.template&lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;Remarque :&amp;#039;&amp;#039;&amp;#039; En fonction de votre distribution Linux et configuration UnixODBC, les commandes ci-dessus peuvent être légèrement différentes. Ces commandes ont été testées sur Ubuntu Linux et la configuration par défaut UnixODBC.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Liaison du pilote==&lt;br /&gt;
&lt;br /&gt;
Pour lier le pilote&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
* déposez un composant [[lib_fr:FireDAC.Phys.DB2.TFDPhysDB2DriverLink|TFDPhysDB2DriverLink]] à partir de la page &amp;quot;Liens FireDAC&amp;quot; de la palette&lt;br /&gt;
* ou incluez l&amp;#039;unité [[lib_fr:FireDAC.Phys.DB2|FireDAC.Phys.DB2]] dans la clause uses.&lt;br /&gt;
&lt;br /&gt;
==Paramètres de définition de la connexion==&lt;br /&gt;
&lt;br /&gt;
Il existe deux méthodes de spécification des attributs de connexion à DB2. Dans le logiciel client DB2, si les alias de connexion à DB2 sont configurés, une application doit utiliser le paramètre &amp;#039;&amp;#039;&amp;#039;Alias&amp;#039;&amp;#039;&amp;#039;. Si aucun alias n&amp;#039;est configuré, vous devez utiliser les paramètres &amp;#039;&amp;#039;&amp;#039;Protocol&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Server&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Port&amp;#039;&amp;#039;&amp;#039; et &amp;#039;&amp;#039;&amp;#039;Database&amp;#039;&amp;#039;&amp;#039;. Spécifiez également les paramètres &amp;#039;&amp;#039;&amp;#039;User_Name&amp;#039;&amp;#039;&amp;#039; et &amp;#039;&amp;#039;&amp;#039;Password&amp;#039;&amp;#039;&amp;#039;. Pour plus de détails, voir [[Définition d&amp;#039;une connexion (FireDAC)|Définition d&amp;#039;une connexion (FireDAC)]].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;DriverID=DB2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;#039;&amp;#039;&amp;#039;Paramètre&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
! &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
! &amp;#039;&amp;#039;&amp;#039;Valeur exemple&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&amp;#039;&amp;#039;&amp;#039;Alias &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alias de connexion.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | MyDB2Srv&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&amp;#039;&amp;#039;&amp;#039;Server &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Nom de l&amp;#039;hôte, si le paramètre Alias n&amp;#039;est pas spécifié.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | 127.0.0.1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&amp;#039;&amp;#039;&amp;#039;Port &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Valeur du port, si le paramètre Alias n&amp;#039;est pas spécifié.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | 5000&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&amp;#039;&amp;#039;&amp;#039;Database &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Nom de la base de données, si le paramètre Alias n&amp;#039;est pas spécifié.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | ADDEMO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&amp;#039;&amp;#039;&amp;#039;Protocol &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Nom du protocole, si le paramètre Alias n&amp;#039;est pas spécifié.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TCPIP&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&amp;#039;&amp;#039;&amp;#039;User_Name&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Nom d&amp;#039;utilisateur de DB2.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | db2admin&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&amp;#039;&amp;#039;&amp;#039;Password &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mot de passe de l&amp;#039;utilisateur de la base de données. Notez que les mots de passe comportant &amp;#039;{&amp;#039; et &amp;#039;}&amp;#039; ne sont pas supportés.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | master&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&amp;#039;&amp;#039;&amp;#039;LoginTimeout &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Contrôle la durée, en secondes, s’écoulant avant qu&amp;#039;une application dépasse le temps imparti pour établir la connexion (la valeur 0 indique une attente infinie).&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | 30&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&amp;#039;&amp;#039;&amp;#039;StringFormat &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Définit comment représenter les valeurs chaîne (String) :&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Choose&amp;#039;&amp;#039;&amp;#039; -- représenter en tant que ftString / ftWideString / ftMemo / ftWideMemo, selon le nom du type de données déclaré (valeur par défaut).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Unicode&amp;#039;&amp;#039;&amp;#039; -- toujours représenter en tant que ftWideString / ftWideMemo.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Unicode&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&amp;#039;&amp;#039;&amp;#039;ExtendedMetadata &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Contrôle la [[Métadonnées étendues (FireDAC)|description étendue]] des ensembles de résultats d&amp;#039;une requête :&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; -- FireDAC décrit un ensemble de résultats pour obtenir tous les attributs de colonne possibles (en lecture seule, auto-incrémentée, colonne d&amp;#039;origine, etc). Le fait de définir cette option sur &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; ralentit légèrement l&amp;#039;ouverture d&amp;#039;un ensemble de données.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039; -- FireDAC utilise les informations restreintes relatives aux colonnes de requête (valeur par défaut).&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | True&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&amp;#039;&amp;#039;&amp;#039;ODBCAdvanced &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Vous permet de spécifier toute autre valeur de paramètre de connexion ODBC. La valeur par défaut est &amp;quot;IGNOREWARNINGS=1&amp;quot;.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | &amp;#039;&amp;#039;&amp;#039;TxSupported &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Spécifie si la base de données DB2 prend en charge des transactions SQL.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Yes&amp;#039;&amp;#039;&amp;#039;. La base de données DB2 prend en charge des transactions. C&amp;#039;est la valeur par défaut.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;No&amp;#039;&amp;#039;&amp;#039;. La base de données DB2 ne prend pas en charge des transactions. &lt;br /&gt;
*:&amp;#039;&amp;#039;&amp;#039;Remarque&amp;#039;&amp;#039;&amp;#039; : Définissez ce paramètre sur &amp;#039;&amp;#039;&amp;#039;No&amp;#039;&amp;#039;&amp;#039; quand les appels aux méthodes [[lib_fr:FireDAC.Comp.Client.TFDCustomConnection.StartTransaction|StartTransaction]], [[lib_fr:FireDAC.Comp.Client.TFDCustomConnection.Commit|Commit]] ou [[lib_fr:FireDAC.Comp.Client.TFDCustomConnection.Rollback|Rollback]] entrainent des erreurs. Par exemple :&lt;br /&gt;
*:* Quand une transaction inclut une table de base de données DB2 créée avec l&amp;#039;option {{code|NOT LOGGED INITIALLY}}.&lt;br /&gt;
*:* Quand la journalisation des transactions d&amp;#039;une base de données AS400 DB2 est désactivée.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Yes&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&amp;#039;&amp;#039;&amp;#039;MetaDefSchema &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Nom du schéma par défaut. En mode conception, le code exclut le nom du schéma du nom d&amp;#039;objet s&amp;#039;il est égal à MetaDefSchema.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | db2admin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Exemples d&amp;#039;utilisation==&lt;br /&gt;
&lt;br /&gt;
* Etablir une connexion à DB2 en utilisant l&amp;#039;alias de base de données existant&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 DriverID=DB2&lt;br /&gt;
 Alias=addemo&lt;br /&gt;
 User_Name=db2admin&lt;br /&gt;
 Password=mypwd&lt;br /&gt;
 MetaDefSchema=db2admin&lt;br /&gt;
&lt;br /&gt;
* Etablir une connexion à la base de données en utilisant les informations de connexion complètes&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 DriverID=DB2&lt;br /&gt;
 Server=127.0.0.1&lt;br /&gt;
 Database=addemo&lt;br /&gt;
 Port=50000&lt;br /&gt;
 Protocol=TCPIP&lt;br /&gt;
 User_Name=db2admin&lt;br /&gt;
 Password=mypwd&lt;br /&gt;
 MetaDefSchema=db2admin&lt;br /&gt;
&lt;br /&gt;
* Etablir une connexion à DB2 AS400&lt;br /&gt;
&lt;br /&gt;
: Pour établir une connexion à TBDECallback, effectuez les étapes suivantes :&lt;br /&gt;
:# Déposez un composant [[lib_fr:FireDAC.Comp.Client.TFDConnection|TFDConnection]] et un composant [[lib_fr:FireDAC.Phys.DB2.TFDPhysDB2DriverLink|TFDPhysDB2DriverLink]] sur le  &amp;#039;&amp;#039;&amp;#039;[[TForm|TForm]]&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
:# Définissez la propriété [[lib_fr:FireDAC.Phys.DB2.TFDPhysDB2DriverLink|TFDPhysDB2DriverLink]].[[lib_fr:FireDAC.Phys.ODBCBase.TFDPhysODBCBaseDriverLink.ODBCDriver|ODBCDriver]] sur {{code|&amp;#039;iSeries Access ODBC Driver&amp;#039;}}.&lt;br /&gt;
:# Double-cliquez sur [[lib_fr:FireDAC.Comp.Client.TFDConnection|TFDConnection]] et définissez &amp;#039;&amp;#039;&amp;#039;Driver ID&amp;#039;&amp;#039;&amp;#039; sur {{code|DB2}}.&lt;br /&gt;
:# Appuyez sur le bouton &amp;#039;&amp;#039;&amp;#039;Expert&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
:# Renseignez les paramètres de connexion en utilisant le dialogue du pilote  ODBC.&lt;br /&gt;
:# Appuyez sur le bouton &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039; pour enregistrer les paramètres.&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[Paramètres de connexion communs (FireDAC)|Paramètres de connexion communs]]&lt;br /&gt;
* [[FAQ (FireDAC)|FAQ]]&lt;br /&gt;
* [[Configuration des pilotes (FireDAC)|Comment configurer les pilotes FireDAC]]&lt;br /&gt;
* [[Définition d&amp;#039;une connexion (FireDAC)|Comment gérer les définitions des connexions FireDAC]]&lt;br /&gt;
&lt;br /&gt;
[[Category:FireDAC]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Code-barres&amp;diff=197975</id>
		<title>Code-barres</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Code-barres&amp;diff=197975"/>
		<updated>2016-02-29T10:15:16Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : Tiphaineb a déplacé la page Barcode vers Code-barres sans laisser de redirection : Internal review. LOC-21718&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
Un &amp;#039;&amp;#039;&amp;#039;[[Wikipedia:barcode|barcode (EN)]]&amp;#039;&amp;#039;&amp;#039; ou &amp;#039;&amp;#039;&amp;#039;[[Wikipedia:barcode|code-barres]]&amp;#039;&amp;#039;&amp;#039; est une représentation de données optique lisible par la machine. Pour savoir comment utiliser les codes-barres dans vos applications, regardez le webinar [https://www.youtube.com/watch?v=yJI2HaNMReI Barcode Scanner on Android and iOS (EN)].&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages de levée d&amp;#039;ambiguïté]]&lt;br /&gt;
[[Category:Berlin]]&lt;br /&gt;
&lt;br /&gt;
[[en:Barcode]]&lt;br /&gt;
[[de:Barcode]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Les_cadres_dans_FireMonkey&amp;diff=197974</id>
		<title>Les cadres dans FireMonkey</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Les_cadres_dans_FireMonkey&amp;diff=197974"/>
		<updated>2016-02-29T10:06:15Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : Internal Review. LOC-21718&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Guide des applications FireMonkey}}&lt;br /&gt;
&lt;br /&gt;
Un &amp;#039;&amp;#039;cadre&amp;#039;&amp;#039; est un conteneur qui vous permet de regrouper des composants et de réutiliser ou imbriquer le groupe dans des fiches ou d&amp;#039;autres conteneurs.&lt;br /&gt;
{{f|radstudio|Dans {{FM}}, les cadres fonctionnent de la même façon que dans VCL.}} Pour des détails, voir [[Manipulation des cadres]].&lt;br /&gt;
&lt;br /&gt;
==Création d&amp;#039;un nouveau cadre==&lt;br /&gt;
&lt;br /&gt;
Pour créer une nouveau cadre dans {{FM}}, choisissez :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;Fichier &amp;amp;gt; Nouveau &amp;amp;gt; Autres &amp;amp;gt; Projets {{Delphi}} &amp;amp;gt; Fichiers {{Delphi}} &amp;amp;gt; [[Cadre FireMonkey]]&amp;#039;&amp;#039;&amp;#039;&amp;lt;/font&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;&lt;br /&gt;
&amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;Fichier &amp;amp;gt; Nouveau &amp;amp;gt; Autre &amp;amp;gt; Projets {{CBuilderUI}} &amp;amp;gt; Fichiers {{CBuilderUI}} &amp;amp;gt; [[Cadre FireMonkey]]&amp;#039;&amp;#039;&amp;#039;&amp;lt;/font&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
* [[Cadre FireMonkey]]&lt;br /&gt;
* [[Manipulation des cadres]]&lt;br /&gt;
* [[Création de cadres]]&lt;br /&gt;
* [[Utilisation et modification des cadres]]&lt;br /&gt;
* [[Partage des cadres]]&lt;br /&gt;
&lt;br /&gt;
[[Category:FMX]]&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:{{Delphi}}]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;br /&gt;
&lt;br /&gt;
[[en:Frames in FireMonkey]]&lt;br /&gt;
[[de:Frames in FireMonkey]]&lt;br /&gt;
[[ja:FireMonkey のフレーム]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Post&amp;diff=197973</id>
		<title>Post</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Post&amp;diff=197973"/>
		<updated>2016-02-29T10:03:35Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : Tiphaineb a déplacé la page Valider vers Post sans laisser de redirection : Internal review. LOC-21718&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Post&amp;#039;&amp;#039;&amp;#039; peut faire référence à ce qui suit :&lt;br /&gt;
&lt;br /&gt;
* La méthode de requête {{Code|POST}} de [[Wikipedia:Hypertext Transfer Protocol|HTTP]]. Voir [[Utilisation d&amp;#039;un client HTTP#SEnvoi d&amp;#039;une requête HTTP en utilisant la méthode de requête HTTP POST|Envoi d&amp;#039;une requête HTTP en utilisant la méthode de requête HTTP POST]].&lt;br /&gt;
* Le nom d&amp;#039;un membre API. [[lib_fr:Special:Search/Post|Effectuez une recherche dans la documentation des bibliothèques]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages de levée d&amp;#039;ambiguïté]]&lt;br /&gt;
[[Category:Berlin]]&lt;br /&gt;
&lt;br /&gt;
[[en:Post]]&lt;br /&gt;
[[de:Post]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Documentation_des_API_personnalis%C3%A9es&amp;diff=197972</id>
		<title>Documentation des API personnalisées</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Documentation_des_API_personnalis%C3%A9es&amp;diff=197972"/>
		<updated>2016-02-29T09:47:54Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : Tiphaineb a déplacé la page Documentation API personnalisées vers Documentation des API personnalisées sans laisser de redirection : LOC-21758&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Extension du serveur EMS}}&lt;br /&gt;
&lt;br /&gt;
{{Product}} vous permet de créer une documentation API pour de nouveaux modules Ressource EMS aux formats YAML et JSON. La nouvelle implémentation est basée sur la spécification de documentation API [http://swagger-api.github.io/swagger-core/spec.html Swagger RESTful (EN)].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;EMS.ResourceType&amp;#039;&amp;#039;&amp;#039; implémente les nouveaux attributs pouvant être utilisés pour générer la documentation API des points de terminaison d&amp;#039;une ressource.&lt;br /&gt;
&lt;br /&gt;
==EndPointRequestSummary==&lt;br /&gt;
&lt;br /&gt;
Description d&amp;#039;une méthode :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointRequestSummary(&amp;#039;ATags&amp;#039;, &amp;#039;ASummary&amp;#039;, &amp;#039;ADescription&amp;#039;, &amp;#039;AProduces&amp;#039;, &amp;#039;AConsume&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tags&amp;#039;&amp;#039;&amp;#039; : Définit une balise.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Summary&amp;#039;&amp;#039;&amp;#039; : Titre d&amp;#039;une méthode.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039; : Description d&amp;#039;une méthode. &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Produces&amp;#039;&amp;#039;&amp;#039; : Type MIME que l&amp;#039;API peut produire. Global pour toutes les API, mais peut être redéfini sur des appels d&amp;#039;API spécifiques. La valeur doit être décrite sous Mime Types.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Consume&amp;#039;&amp;#039;&amp;#039; : Type MIME que l&amp;#039;API peut consommer. Global pour toutes les API, mais peut être redéfini sur des appels d&amp;#039;API spécifiques. La valeur doit être décrite sous Mime Types.&lt;br /&gt;
&lt;br /&gt;
Exemple de déclaration de la description de la méthode GET d&amp;#039;un point de terminaison :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointRequestSummary(&amp;#039;Api Doc&amp;#039;, &amp;#039;Get API EndPoints&amp;#039;, &amp;#039;Used to retrieve all the API EndPoints&amp;#039;, &amp;#039;application/json&amp;#039;, &amp;#039;&amp;#039;)]&lt;br /&gt;
procedure Get(const AContext: TEndpointContext; const ARequest: TEndpointRequest; const AResponse: TEndpointResponse);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EndPointRequestParameter==&lt;br /&gt;
&lt;br /&gt;
Description des paramètres utilisés dans une requête.&lt;br /&gt;
&lt;br /&gt;
Un paramètre unique est défini par la combinaison d&amp;#039;un nom et d&amp;#039;un emplacement.&lt;br /&gt;
&lt;br /&gt;
Il existe cinq types de paramètres possibles : Path, Query, Header, Body et Form.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointRequestParameter(&amp;#039;AIn&amp;#039;, &amp;#039;AName&amp;#039;, &amp;#039;ADescription&amp;#039;, &amp;#039;ARequired&amp;#039;, &amp;#039;AType&amp;#039;, &amp;#039;AFormat&amp;#039;, &amp;#039;AItemType&amp;#039;, &amp;#039;AJSONSchema&amp;#039;, &amp;#039;AReference&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ParamIn&amp;#039;&amp;#039;&amp;#039; : L&amp;#039;emplacement du paramètre : Path, Query, Header, Body ou Form.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; : Le nom du paramètre. Les noms de paramètres sont sensibles à la casse. &lt;br /&gt;
** Quand l&amp;#039;emplacement du paramètre est &amp;#039;Body&amp;#039;, son nom doit être &amp;#039;body&amp;#039;.&lt;br /&gt;
** Quand l&amp;#039;emplacement du paramètre est &amp;#039;Path&amp;#039;, son nom doit correspondre au chemin d&amp;#039;accès associé depuis le champ chemin dans l&amp;#039;objet Paths.&lt;br /&gt;
** Dans les autres cas, son nom correspond à ParamIn.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039; : Brève description du paramètre. Elle peut contenir des exemples d&amp;#039;utilisation. Vous pouvez utiliser la syntaxe GFM pour une représentation de texte formaté.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Required&amp;#039;&amp;#039;&amp;#039; : Détermine si le paramètre est obligatoire. Si le paramètre est dans &amp;#039;Path&amp;#039;, cette propriété est requise et sa valeur doit être &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, sinon la propriété peut être incluse et sa valeur par défaut est &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ParamType&amp;#039;&amp;#039;&amp;#039; : Le type du paramètre. Pour des valeurs autres que &amp;#039;Body&amp;#039;, la valeur doit être l&amp;#039;une des valeurs suivantes : &amp;#039;spArray&amp;#039;, &amp;#039;spBoolean&amp;#039;, &amp;#039;spInteger&amp;#039;, &amp;#039;spNumber&amp;#039;, &amp;#039;spNull&amp;#039;, &amp;#039;spObject&amp;#039;, &amp;#039;spString&amp;#039;, &amp;#039;spFile&amp;#039;. Si ParamType vaut &amp;#039;spFile&amp;#039;, le type MIME consommé doit être soit &amp;quot;multipart/form-data&amp;quot;, soit &amp;quot;application/x-www-form-urlencoded&amp;quot; et le paramètre doit être de &amp;quot;form-data&amp;quot;. Pour la valeur &amp;#039;Body&amp;#039;, JSONSchema et Reference sont requis.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ItemFormat&amp;#039;&amp;#039;&amp;#039; : Le format d&amp;#039;extension pour le ParamType : &amp;#039;None&amp;#039;, &amp;#039;Int32&amp;#039;, &amp;#039;Int64&amp;#039;, &amp;#039;Float&amp;#039;, &amp;#039;Double&amp;#039;, &amp;#039;Byte&amp;#039;, &amp;#039;Date&amp;#039;, &amp;#039;DateTime&amp;#039;, &amp;#039;Password&amp;#039;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ItemType&amp;#039;&amp;#039;&amp;#039; : Requis si ParamType a la valeur &amp;#039;array&amp;#039;. Décrit le type des éléments dans le tableau.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;JSONSchema&amp;#039;&amp;#039;&amp;#039; : La définition de schéma de la primitive envoyée au serveur. Il s&amp;#039;agit d&amp;#039;une définition de la structure de la requête du corps. Si ParamType vaut &amp;#039;Array&amp;#039; ou &amp;#039;Object&amp;#039;, une définition de schéma peut être définie.&lt;br /&gt;
** Par exemple :&lt;br /&gt;
**: Au format JSON : {&amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&amp;quot;additionalProperties&amp;quot;: {&amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;}}.&lt;br /&gt;
**: Au format YAML : &lt;br /&gt;
**:: type: object&lt;br /&gt;
**::  additionalProperties:&lt;br /&gt;
**::   type: string&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Reference&amp;#039;&amp;#039;&amp;#039; : La définition de schéma de la primitive envoyée au serveur. Il s&amp;#039;agit d&amp;#039;une définition de la stucture de la requête du corps. Si Type vaut &amp;#039;Array&amp;#039; ou &amp;#039;Object&amp;#039;, une définition de schéma peut être définie.&lt;br /&gt;
** Par exemple :&lt;br /&gt;
**: &amp;#039;#/definitions/pet&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointRequestParameter(TAPIDocParameter.TParameterIn.Path, &amp;#039;item&amp;#039;, &amp;#039;Path Parameter item Description&amp;#039;, true, TAPIDoc.TPrimitiveType.spString, TAPIDoc.TPrimitiveFormat.None, TAPIDoc.TPrimitiveType.spString, &amp;#039;&amp;#039;, &amp;#039;&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EndPointResponseDetails==&lt;br /&gt;
&lt;br /&gt;
Description des réponses à la requête :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointResponseDetails(&amp;#039;ACode&amp;#039;, &amp;#039;ADescription&amp;#039;, &amp;#039;AType&amp;#039;, &amp;#039;AFormat&amp;#039;, &amp;#039;ASchema&amp;#039;, &amp;#039;AReference&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Code&amp;#039;&amp;#039;&amp;#039; : Le code de réponse.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039; : Description du code de réponse.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;PrimitiveType&amp;#039;&amp;#039;&amp;#039; : Le type de la [http://swagger-api.github.io/swagger-core/spec.html#4-3-1-primitives primitive (EN)] renvoyée. Les types de données primitifs compris dans la spécification Swagger sont basés sur les types pris en charge par le JSON-Schema Draft 4. JSON Schema définit sept types primitifs pour des valeurs JSON : &amp;#039;spArray&amp;#039;, &amp;#039;spBoolean&amp;#039;, &amp;#039;spInteger&amp;#039;, &amp;#039;spNumber&amp;#039;, &amp;#039;spNull&amp;#039;, &amp;#039;spObject&amp;#039;, &amp;#039;spString&amp;#039;. Voir [http://json-schema.org/latest/json-schema-core.html#anchor8 JSON Schema primitive types (EN)]. Un type de données primitif supplémentaire, &amp;#039;spFile&amp;#039;, est utilisé par les objets Parameter et Response afin de définir le type de paramètre ou la réponse comme étant un fichier.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;PrimitiveFormat&amp;#039;&amp;#039;&amp;#039; : Le format de la primitive renvoyée, par exemple : &amp;#039;None&amp;#039;, &amp;#039;Int32&amp;#039;, &amp;#039;Int64&amp;#039;, &amp;#039;Float&amp;#039;, &amp;#039;Double&amp;#039;, &amp;#039;Byte&amp;#039;, &amp;#039;Date&amp;#039;, &amp;#039;DateTime&amp;#039;, &amp;#039;Password&amp;#039;.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Schema&amp;#039;&amp;#039;&amp;#039;: &lt;br /&gt;
** Par exemple :&lt;br /&gt;
**: Au format JSON : {&amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&amp;quot;additionalProperties&amp;quot;: {&amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;}}.&lt;br /&gt;
**: au format YAML : &lt;br /&gt;
**:: type: object&lt;br /&gt;
**::  additionalProperties:&lt;br /&gt;
**::   type: string&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Reference :&amp;#039;&amp;#039;&amp;#039; La définition de schéma de la primitive renvoyée. Il s&amp;#039;agit d&amp;#039;une définition de la structure de la réponse. Si PrimitiveType vaut &amp;#039;spArray&amp;#039; ou &amp;#039;spObject&amp;#039;, une définition de schéma peut être définie.&lt;br /&gt;
** Par exemple :&lt;br /&gt;
**: &amp;#039;#/definitions/pet&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointResponseDetails(200, &amp;#039;Ok&amp;#039;, TAPIDoc.TPrimitiveType.spObject, TAPIDoc.TPrimitiveFormat.None, &amp;#039;&amp;#039;, &amp;#039;#/definitions/EmployeeTable&amp;#039;)]&lt;br /&gt;
[EndPointResponseDetails(404, &amp;#039;Not Found&amp;#039;, TAPIDoc.TPrimitiveType.spNull, TAPIDoc.TPrimitiveFormat.None, &amp;#039;&amp;#039;, &amp;#039;&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EndPointObjectsYAMLDefinitions==&lt;br /&gt;
&lt;br /&gt;
Définition des objets pour la version YAML de l&amp;#039;API.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
  [EndPointObjectsYAMLDefinitions(Objects)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Objects : Définitions d&amp;#039;objets YAML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
type&lt;br /&gt;
  [ResourceName(&amp;#039;SampleAttributes&amp;#039;)]&lt;br /&gt;
  [EndPointObjectsYAMLDefinitions(cYamlDefinitions)]&lt;br /&gt;
&lt;br /&gt;
// YAML Object definition:&lt;br /&gt;
  cYamlDefinitions =&lt;br /&gt;
  &amp;#039;# &amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039; PutObject:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;   properties:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    EMP_NO:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: integer&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    FIRST_NAME:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    LAST_NAME:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    PHONE_EXT:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    HIRE_DATE:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     format: date-time&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    DEPT_NO:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    JOB_CODE:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    JOB_GRADE:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: integer&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    JOB_COUNTRY:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    SALARY:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: integer&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    FULL_NAME:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;# &amp;#039; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EndPointObjectsJSONDefinitions==&lt;br /&gt;
&lt;br /&gt;
Définition des objets pour la version JSON de l&amp;#039;API.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    [EndPointObjectsJSONDefinitions(Objects)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Objects : Définitions d&amp;#039;objets JSON.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
type&lt;br /&gt;
  [ResourceName(&amp;#039;SampleAttributes&amp;#039;)]&lt;br /&gt;
  [EndPointObjectsJSONDefinitions(cJSONDefinitions)]&lt;br /&gt;
&lt;br /&gt;
// JSON Object definition:&lt;br /&gt;
&lt;br /&gt;
cJSONDefinitions =&lt;br /&gt;
 &amp;#039;{&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;   &amp;quot;PutObject&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;       &amp;quot;properties&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;EMP_NO&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;FIRST_NAME&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;LAST_NAME&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;PHONE_EXT&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;HIRE_DATE&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;format&amp;quot;: &amp;quot;date-time&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;DEPT_NO&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;JOB_CODE&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;JOB_GRADE&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            &amp;quot;JOB_COUNTRY&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;                &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            &amp;quot;SALARY&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;                &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            &amp;quot;FULL_NAME&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;                &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            }&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;        }&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    }&amp;#039; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rubriques==&lt;br /&gt;
&lt;br /&gt;
* [[Création d&amp;#039;un package EMS|Création d&amp;#039;un package EMS]]&lt;br /&gt;
* [[Ajout d&amp;#039;un module EMS à un package EMS|Ajout d&amp;#039;un module EMS à un package EMS]]&lt;br /&gt;
* [[Installation d&amp;#039;un package EMS|Installation d&amp;#039;un package EMS]]&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[samp_en:EMS.APIDocAttributes Sample|Exemple API Documentation Attributes]]&lt;br /&gt;
* [[Ressource API EMS|Ressource API EMS]]&lt;br /&gt;
* [http://swagger-api.github.io/swagger-core/spec.html Swagger RESTful API Documentation Specification (EN)]&lt;br /&gt;
* [[Serveur EMS|Serveur EMS]]&lt;br /&gt;
* [[Serveur de la console EMS|Serveur de la console EMS]]&lt;br /&gt;
* [[Application client EMS|Application client EMS]]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Documentation API personnalisees}}&lt;br /&gt;
[[Category:Berlin]]&lt;br /&gt;
&lt;br /&gt;
[[en:Custom API Documentation]]&lt;br /&gt;
[[de:Benutzerdefinierte API-Dokumentation]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Documentation_des_API_personnalis%C3%A9es&amp;diff=197950</id>
		<title>Documentation des API personnalisées</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Documentation_des_API_personnalis%C3%A9es&amp;diff=197950"/>
		<updated>2016-02-26T16:47:24Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : 1 version : Internal review. LOC-21758&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Extension du serveur EMS}}&lt;br /&gt;
&lt;br /&gt;
{{Product}} vous permet de créer une documentation API pour de nouveaux modules Ressource EMS aux formats YAML et JSON. La nouvelle implémentation est basée sur la spécification de documentation API [http://swagger-api.github.io/swagger-core/spec.html Swagger RESTful (EN)].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;EMS.ResourceType&amp;#039;&amp;#039;&amp;#039; implémente les nouveaux attributs pouvant être utilisés pour générer la documentation API des points de terminaison d&amp;#039;une ressource.&lt;br /&gt;
&lt;br /&gt;
==EndPointRequestSummary==&lt;br /&gt;
&lt;br /&gt;
Description d&amp;#039;une méthode :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointRequestSummary(&amp;#039;ATags&amp;#039;, &amp;#039;ASummary&amp;#039;, &amp;#039;ADescription&amp;#039;, &amp;#039;AProduces&amp;#039;, &amp;#039;AConsume&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tags&amp;#039;&amp;#039;&amp;#039; : Définit une balise.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Summary&amp;#039;&amp;#039;&amp;#039; : Titre d&amp;#039;une méthode.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039; : Description d&amp;#039;une méthode. &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Produces&amp;#039;&amp;#039;&amp;#039; : Type MIME que l&amp;#039;API peut produire. Global pour toutes les API, mais peut être redéfini sur des appels d&amp;#039;API spécifiques. La valeur doit être décrite sous Mime Types.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Consume&amp;#039;&amp;#039;&amp;#039; : Type MIME que l&amp;#039;API peut consommer. Global pour toutes les API, mais peut être redéfini sur des appels d&amp;#039;API spécifiques. La valeur doit être décrite sous Mime Types.&lt;br /&gt;
&lt;br /&gt;
Exemple de déclaration de la description de la méthode GET d&amp;#039;un point de terminaison :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointRequestSummary(&amp;#039;Api Doc&amp;#039;, &amp;#039;Get API EndPoints&amp;#039;, &amp;#039;Used to retrieve all the API EndPoints&amp;#039;, &amp;#039;application/json&amp;#039;, &amp;#039;&amp;#039;)]&lt;br /&gt;
procedure Get(const AContext: TEndpointContext; const ARequest: TEndpointRequest; const AResponse: TEndpointResponse);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EndPointRequestParameter==&lt;br /&gt;
&lt;br /&gt;
Description des paramètres utilisés dans une requête.&lt;br /&gt;
&lt;br /&gt;
Un paramètre unique est défini par la combinaison d&amp;#039;un nom et d&amp;#039;un emplacement.&lt;br /&gt;
&lt;br /&gt;
Il existe cinq types de paramètres possibles : Path, Query, Header, Body et Form.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointRequestParameter(&amp;#039;AIn&amp;#039;, &amp;#039;AName&amp;#039;, &amp;#039;ADescription&amp;#039;, &amp;#039;ARequired&amp;#039;, &amp;#039;AType&amp;#039;, &amp;#039;AFormat&amp;#039;, &amp;#039;AItemType&amp;#039;, &amp;#039;AJSONSchema&amp;#039;, &amp;#039;AReference&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ParamIn&amp;#039;&amp;#039;&amp;#039; : L&amp;#039;emplacement du paramètre : Path, Query, Header, Body ou Form.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; : Le nom du paramètre. Les noms de paramètres sont sensibles à la casse. &lt;br /&gt;
** Quand l&amp;#039;emplacement du paramètre est &amp;#039;Body&amp;#039;, son nom doit être &amp;#039;body&amp;#039;.&lt;br /&gt;
** Quand l&amp;#039;emplacement du paramètre est &amp;#039;Path&amp;#039;, son nom doit correspondre au chemin d&amp;#039;accès associé depuis le champ chemin dans l&amp;#039;objet Paths.&lt;br /&gt;
** Dans les autres cas, son nom correspond à ParamIn.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039; : Brève description du paramètre. Elle peut contenir des exemples d&amp;#039;utilisation. Vous pouvez utiliser la syntaxe GFM pour une représentation de texte formaté.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Required&amp;#039;&amp;#039;&amp;#039; : Détermine si le paramètre est obligatoire. Si le paramètre est dans &amp;#039;Path&amp;#039;, cette propriété est requise et sa valeur doit être &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, sinon la propriété peut être incluse et sa valeur par défaut est &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ParamType&amp;#039;&amp;#039;&amp;#039; : Le type du paramètre. Pour des valeurs autres que &amp;#039;Body&amp;#039;, la valeur doit être l&amp;#039;une des valeurs suivantes : &amp;#039;spArray&amp;#039;, &amp;#039;spBoolean&amp;#039;, &amp;#039;spInteger&amp;#039;, &amp;#039;spNumber&amp;#039;, &amp;#039;spNull&amp;#039;, &amp;#039;spObject&amp;#039;, &amp;#039;spString&amp;#039;, &amp;#039;spFile&amp;#039;. Si ParamType vaut &amp;#039;spFile&amp;#039;, le type MIME consommé doit être soit &amp;quot;multipart/form-data&amp;quot;, soit &amp;quot;application/x-www-form-urlencoded&amp;quot; et le paramètre doit être de &amp;quot;form-data&amp;quot;. Pour la valeur &amp;#039;Body&amp;#039;, JSONSchema et Reference sont requis.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ItemFormat&amp;#039;&amp;#039;&amp;#039; : Le format d&amp;#039;extension pour le ParamType : &amp;#039;None&amp;#039;, &amp;#039;Int32&amp;#039;, &amp;#039;Int64&amp;#039;, &amp;#039;Float&amp;#039;, &amp;#039;Double&amp;#039;, &amp;#039;Byte&amp;#039;, &amp;#039;Date&amp;#039;, &amp;#039;DateTime&amp;#039;, &amp;#039;Password&amp;#039;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ItemType&amp;#039;&amp;#039;&amp;#039; : Requis si ParamType a la valeur &amp;#039;array&amp;#039;. Décrit le type des éléments dans le tableau.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;JSONSchema&amp;#039;&amp;#039;&amp;#039; : La définition de schéma de la primitive envoyée au serveur. Il s&amp;#039;agit d&amp;#039;une définition de la structure de la requête du corps. Si ParamType vaut &amp;#039;Array&amp;#039; ou &amp;#039;Object&amp;#039;, une définition de schéma peut être définie.&lt;br /&gt;
** Par exemple :&lt;br /&gt;
**: Au format JSON : {&amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&amp;quot;additionalProperties&amp;quot;: {&amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;}}.&lt;br /&gt;
**: Au format YAML : &lt;br /&gt;
**:: type: object&lt;br /&gt;
**::  additionalProperties:&lt;br /&gt;
**::   type: string&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Reference&amp;#039;&amp;#039;&amp;#039; : La définition de schéma de la primitive envoyée au serveur. Il s&amp;#039;agit d&amp;#039;une définition de la stucture de la requête du corps. Si Type vaut &amp;#039;Array&amp;#039; ou &amp;#039;Object&amp;#039;, une définition de schéma peut être définie.&lt;br /&gt;
** Par exemple :&lt;br /&gt;
**: &amp;#039;#/definitions/pet&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointRequestParameter(TAPIDocParameter.TParameterIn.Path, &amp;#039;item&amp;#039;, &amp;#039;Path Parameter item Description&amp;#039;, true, TAPIDoc.TPrimitiveType.spString, TAPIDoc.TPrimitiveFormat.None, TAPIDoc.TPrimitiveType.spString, &amp;#039;&amp;#039;, &amp;#039;&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EndPointResponseDetails==&lt;br /&gt;
&lt;br /&gt;
Description des réponses à la requête :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointResponseDetails(&amp;#039;ACode&amp;#039;, &amp;#039;ADescription&amp;#039;, &amp;#039;AType&amp;#039;, &amp;#039;AFormat&amp;#039;, &amp;#039;ASchema&amp;#039;, &amp;#039;AReference&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Code&amp;#039;&amp;#039;&amp;#039; : Le code de réponse.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039; : Description du code de réponse.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;PrimitiveType&amp;#039;&amp;#039;&amp;#039; : Le type de la [http://swagger-api.github.io/swagger-core/spec.html#4-3-1-primitives primitive (EN)] renvoyée. Les types de données primitifs compris dans la spécification Swagger sont basés sur les types pris en charge par le JSON-Schema Draft 4. JSON Schema définit sept types primitifs pour des valeurs JSON : &amp;#039;spArray&amp;#039;, &amp;#039;spBoolean&amp;#039;, &amp;#039;spInteger&amp;#039;, &amp;#039;spNumber&amp;#039;, &amp;#039;spNull&amp;#039;, &amp;#039;spObject&amp;#039;, &amp;#039;spString&amp;#039;. Voir [http://json-schema.org/latest/json-schema-core.html#anchor8 JSON Schema primitive types (EN)]. Un type de données primitif supplémentaire, &amp;#039;spFile&amp;#039;, est utilisé par les objets Parameter et Response afin de définir le type de paramètre ou la réponse comme étant un fichier.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;PrimitiveFormat&amp;#039;&amp;#039;&amp;#039; : Le format de la primitive renvoyée, par exemple : &amp;#039;None&amp;#039;, &amp;#039;Int32&amp;#039;, &amp;#039;Int64&amp;#039;, &amp;#039;Float&amp;#039;, &amp;#039;Double&amp;#039;, &amp;#039;Byte&amp;#039;, &amp;#039;Date&amp;#039;, &amp;#039;DateTime&amp;#039;, &amp;#039;Password&amp;#039;.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Schema&amp;#039;&amp;#039;&amp;#039;: &lt;br /&gt;
** Par exemple :&lt;br /&gt;
**: Au format JSON : {&amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&amp;quot;additionalProperties&amp;quot;: {&amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;}}.&lt;br /&gt;
**: au format YAML : &lt;br /&gt;
**:: type: object&lt;br /&gt;
**::  additionalProperties:&lt;br /&gt;
**::   type: string&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Reference :&amp;#039;&amp;#039;&amp;#039; La définition de schéma de la primitive renvoyée. Il s&amp;#039;agit d&amp;#039;une définition de la structure de la réponse. Si PrimitiveType vaut &amp;#039;spArray&amp;#039; ou &amp;#039;spObject&amp;#039;, une définition de schéma peut être définie.&lt;br /&gt;
** Par exemple :&lt;br /&gt;
**: &amp;#039;#/definitions/pet&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointResponseDetails(200, &amp;#039;Ok&amp;#039;, TAPIDoc.TPrimitiveType.spObject, TAPIDoc.TPrimitiveFormat.None, &amp;#039;&amp;#039;, &amp;#039;#/definitions/EmployeeTable&amp;#039;)]&lt;br /&gt;
[EndPointResponseDetails(404, &amp;#039;Not Found&amp;#039;, TAPIDoc.TPrimitiveType.spNull, TAPIDoc.TPrimitiveFormat.None, &amp;#039;&amp;#039;, &amp;#039;&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EndPointObjectsYAMLDefinitions==&lt;br /&gt;
&lt;br /&gt;
Définition des objets pour la version YAML de l&amp;#039;API.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
  [EndPointObjectsYAMLDefinitions(Objects)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Objects : Définitions d&amp;#039;objets YAML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
type&lt;br /&gt;
  [ResourceName(&amp;#039;SampleAttributes&amp;#039;)]&lt;br /&gt;
  [EndPointObjectsYAMLDefinitions(cYamlDefinitions)]&lt;br /&gt;
&lt;br /&gt;
// YAML Object definition:&lt;br /&gt;
  cYamlDefinitions =&lt;br /&gt;
  &amp;#039;# &amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039; PutObject:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;   properties:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    EMP_NO:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: integer&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    FIRST_NAME:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    LAST_NAME:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    PHONE_EXT:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    HIRE_DATE:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     format: date-time&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    DEPT_NO:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    JOB_CODE:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    JOB_GRADE:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: integer&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    JOB_COUNTRY:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    SALARY:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: integer&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    FULL_NAME:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;# &amp;#039; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EndPointObjectsJSONDefinitions==&lt;br /&gt;
&lt;br /&gt;
Définition des objets pour la version JSON de l&amp;#039;API.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    [EndPointObjectsJSONDefinitions(Objects)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Objects : Définitions d&amp;#039;objets JSON.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
type&lt;br /&gt;
  [ResourceName(&amp;#039;SampleAttributes&amp;#039;)]&lt;br /&gt;
  [EndPointObjectsJSONDefinitions(cJSONDefinitions)]&lt;br /&gt;
&lt;br /&gt;
// JSON Object definition:&lt;br /&gt;
&lt;br /&gt;
cJSONDefinitions =&lt;br /&gt;
 &amp;#039;{&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;   &amp;quot;PutObject&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;       &amp;quot;properties&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;EMP_NO&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;FIRST_NAME&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;LAST_NAME&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;PHONE_EXT&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;HIRE_DATE&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;format&amp;quot;: &amp;quot;date-time&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;DEPT_NO&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;JOB_CODE&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;JOB_GRADE&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            &amp;quot;JOB_COUNTRY&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;                &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            &amp;quot;SALARY&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;                &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            &amp;quot;FULL_NAME&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;                &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            }&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;        }&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    }&amp;#039; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rubriques==&lt;br /&gt;
&lt;br /&gt;
* [[Création d&amp;#039;un package EMS|Création d&amp;#039;un package EMS]]&lt;br /&gt;
* [[Ajout d&amp;#039;un module EMS à un package EMS|Ajout d&amp;#039;un module EMS à un package EMS]]&lt;br /&gt;
* [[Installation d&amp;#039;un package EMS|Installation d&amp;#039;un package EMS]]&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[samp_en:EMS.APIDocAttributes Sample|Exemple API Documentation Attributes]]&lt;br /&gt;
* [[Ressource API EMS|Ressource API EMS]]&lt;br /&gt;
* [http://swagger-api.github.io/swagger-core/spec.html Swagger RESTful API Documentation Specification (EN)]&lt;br /&gt;
* [[Serveur EMS|Serveur EMS]]&lt;br /&gt;
* [[Serveur de la console EMS|Serveur de la console EMS]]&lt;br /&gt;
* [[Application client EMS|Application client EMS]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Berlin]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Documentation_des_API_personnalis%C3%A9es&amp;diff=197949</id>
		<title>Documentation des API personnalisées</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Documentation_des_API_personnalis%C3%A9es&amp;diff=197949"/>
		<updated>2016-02-26T16:47:10Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : Internal review. LOC-21758&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Extension du serveur EMS}}&lt;br /&gt;
&lt;br /&gt;
{{Product}} vous permet de créer une documentation API pour de nouveaux modules Ressource EMS aux formats YAML et JSON. La nouvelle implémentation est basée sur la spécification de documentation API [http://swagger-api.github.io/swagger-core/spec.html Swagger RESTful (EN)].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;EMS.ResourceType&amp;#039;&amp;#039;&amp;#039; implémente les nouveaux attributs pouvant être utilisés pour générer la documentation API des points de terminaison d&amp;#039;une ressource.&lt;br /&gt;
&lt;br /&gt;
==EndPointRequestSummary==&lt;br /&gt;
&lt;br /&gt;
Description d&amp;#039;une méthode :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointRequestSummary(&amp;#039;ATags&amp;#039;, &amp;#039;ASummary&amp;#039;, &amp;#039;ADescription&amp;#039;, &amp;#039;AProduces&amp;#039;, &amp;#039;AConsume&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tags&amp;#039;&amp;#039;&amp;#039; : Définit une balise.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Summary&amp;#039;&amp;#039;&amp;#039; : Titre d&amp;#039;une méthode.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039; : Description d&amp;#039;une méthode. &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Produces&amp;#039;&amp;#039;&amp;#039; : Type MIME que l&amp;#039;API peut produire. Global pour toutes les API, mais peut être redéfini sur des appels d&amp;#039;API spécifiques. La valeur doit être décrite sous Mime Types.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Consume&amp;#039;&amp;#039;&amp;#039; : Type MIME que l&amp;#039;API peut consommer. Global pour toutes les API, mais peut être redéfini sur des appels d&amp;#039;API spécifiques. La valeur doit être décrite sous Mime Types.&lt;br /&gt;
&lt;br /&gt;
Exemple de déclaration de la description de la méthode GET d&amp;#039;un point de terminaison :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointRequestSummary(&amp;#039;Api Doc&amp;#039;, &amp;#039;Get API EndPoints&amp;#039;, &amp;#039;Used to retrieve all the API EndPoints&amp;#039;, &amp;#039;application/json&amp;#039;, &amp;#039;&amp;#039;)]&lt;br /&gt;
procedure Get(const AContext: TEndpointContext; const ARequest: TEndpointRequest; const AResponse: TEndpointResponse);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EndPointRequestParameter==&lt;br /&gt;
&lt;br /&gt;
Description des paramètres utilisés dans une requête.&lt;br /&gt;
&lt;br /&gt;
Un paramètre unique est défini par la combinaison d&amp;#039;un nom et d&amp;#039;un emplacement.&lt;br /&gt;
&lt;br /&gt;
Il existe cinq types de paramètres possibles : Path, Query, Header, Body et Form.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointRequestParameter(&amp;#039;AIn&amp;#039;, &amp;#039;AName&amp;#039;, &amp;#039;ADescription&amp;#039;, &amp;#039;ARequired&amp;#039;, &amp;#039;AType&amp;#039;, &amp;#039;AFormat&amp;#039;, &amp;#039;AItemType&amp;#039;, &amp;#039;AJSONSchema&amp;#039;, &amp;#039;AReference&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ParamIn&amp;#039;&amp;#039;&amp;#039; : L&amp;#039;emplacement du paramètre : Path, Query, Header, Body ou Form.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; : Le nom du paramètre. Les noms de paramètres sont sensibles à la casse. &lt;br /&gt;
** Quand l&amp;#039;emplacement du paramètre est &amp;#039;Body&amp;#039;, son nom doit être &amp;#039;body&amp;#039;.&lt;br /&gt;
** Quand l&amp;#039;emplacement du paramètre est &amp;#039;Path&amp;#039;, son nom doit correspondre au chemin d&amp;#039;accès associé depuis le champ chemin dans l&amp;#039;objet Paths.&lt;br /&gt;
** Dans les autres cas, son nom correspond à ParamIn.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039; : Brève description du paramètre. Elle peut contenir des exemples d&amp;#039;utilisation. Vous pouvez utiliser la syntaxe GFM pour une représentation de texte formaté.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Required&amp;#039;&amp;#039;&amp;#039; : Détermine si le paramètre est obligatoire. Si le paramètre est dans &amp;#039;Path&amp;#039;, cette propriété est requise et sa valeur doit être &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039;, sinon la propriété peut être incluse et sa valeur par défaut est &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ParamType&amp;#039;&amp;#039;&amp;#039; : Le type du paramètre. Pour des valeurs autres que &amp;#039;Body&amp;#039;, la valeur doit être l&amp;#039;une des valeurs suivantes : &amp;#039;spArray&amp;#039;, &amp;#039;spBoolean&amp;#039;, &amp;#039;spInteger&amp;#039;, &amp;#039;spNumber&amp;#039;, &amp;#039;spNull&amp;#039;, &amp;#039;spObject&amp;#039;, &amp;#039;spString&amp;#039;, &amp;#039;spFile&amp;#039;. Si ParamType vaut &amp;#039;spFile&amp;#039;, le type MIME consommé doit être soit &amp;quot;multipart/form-data&amp;quot;, soit &amp;quot;application/x-www-form-urlencoded&amp;quot; et le paramètre doit être de &amp;quot;form-data&amp;quot;. Pour la valeur &amp;#039;Body&amp;#039;, JSONSchema et Reference sont requis.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ItemFormat&amp;#039;&amp;#039;&amp;#039; : Le format d&amp;#039;extension pour le ParamType : &amp;#039;None&amp;#039;, &amp;#039;Int32&amp;#039;, &amp;#039;Int64&amp;#039;, &amp;#039;Float&amp;#039;, &amp;#039;Double&amp;#039;, &amp;#039;Byte&amp;#039;, &amp;#039;Date&amp;#039;, &amp;#039;DateTime&amp;#039;, &amp;#039;Password&amp;#039;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ItemType&amp;#039;&amp;#039;&amp;#039; : Requis si ParamType a la valeur &amp;#039;array&amp;#039;. Décrit le type des éléments dans le tableau.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;JSONSchema&amp;#039;&amp;#039;&amp;#039; : La définition de schéma de la primitive envoyée au serveur. Il s&amp;#039;agit d&amp;#039;une définition de la structure de la requête du corps. Si ParamType vaut &amp;#039;Array&amp;#039; ou &amp;#039;Object&amp;#039;, une définition de schéma peut être définie.&lt;br /&gt;
** Par exemple :&lt;br /&gt;
**: Au format JSON : {&amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&amp;quot;additionalProperties&amp;quot;: {&amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;}}.&lt;br /&gt;
**: Au format YAML : &lt;br /&gt;
**:: type: object&lt;br /&gt;
**::  additionalProperties:&lt;br /&gt;
**::   type: string&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Reference&amp;#039;&amp;#039;&amp;#039; : La définition de schéma de la primitive envoyée au serveur. Il s&amp;#039;agit d&amp;#039;une définition de la stucture de la requête du corps. Si Type vaut &amp;#039;Array&amp;#039; ou &amp;#039;Object&amp;#039;, une définition de schéma peut être définie.&lt;br /&gt;
** Par exemple :&lt;br /&gt;
**: &amp;#039;#/definitions/pet&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointRequestParameter(TAPIDocParameter.TParameterIn.Path, &amp;#039;item&amp;#039;, &amp;#039;Path Parameter item Description&amp;#039;, true, TAPIDoc.TPrimitiveType.spString, TAPIDoc.TPrimitiveFormat.None, TAPIDoc.TPrimitiveType.spString, &amp;#039;&amp;#039;, &amp;#039;&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EndPointResponseDetails==&lt;br /&gt;
&lt;br /&gt;
Description des réponses à la requête :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointResponseDetails(&amp;#039;ACode&amp;#039;, &amp;#039;ADescription&amp;#039;, &amp;#039;AType&amp;#039;, &amp;#039;AFormat&amp;#039;, &amp;#039;ASchema&amp;#039;, &amp;#039;AReference&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Code&amp;#039;&amp;#039;&amp;#039; : Le code de réponse.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039; : Description du code de réponse.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;PrimitiveType&amp;#039;&amp;#039;&amp;#039; : Le type de la [http://swagger-api.github.io/swagger-core/spec.html#4-3-1-primitives primitive (EN)] renvoyée. Les types de données primitifs compris dans la spécification Swagger sont basés sur les types pris en charge par le JSON-Schema Draft 4. JSON Schema définit sept types primitifs pour des valeurs JSON : &amp;#039;spArray&amp;#039;, &amp;#039;spBoolean&amp;#039;, &amp;#039;spInteger&amp;#039;, &amp;#039;spNumber&amp;#039;, &amp;#039;spNull&amp;#039;, &amp;#039;spObject&amp;#039;, &amp;#039;spString&amp;#039;. Voir [http://json-schema.org/latest/json-schema-core.html#anchor8 JSON Schema primitive types (EN)]. Un type de données primitif supplémentaire, &amp;#039;spFile&amp;#039;, est utilisé par les objets Parameter et Response afin de définir le type de paramètre ou la réponse comme étant un fichier.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;PrimitiveFormat&amp;#039;&amp;#039;&amp;#039; : Le format de la primitive renvoyée, par exemple : &amp;#039;None&amp;#039;, &amp;#039;Int32&amp;#039;, &amp;#039;Int64&amp;#039;, &amp;#039;Float&amp;#039;, &amp;#039;Double&amp;#039;, &amp;#039;Byte&amp;#039;, &amp;#039;Date&amp;#039;, &amp;#039;DateTime&amp;#039;, &amp;#039;Password&amp;#039;.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Schema&amp;#039;&amp;#039;&amp;#039;: &lt;br /&gt;
** Par exemple :&lt;br /&gt;
**: Au format JSON : {&amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&amp;quot;additionalProperties&amp;quot;: {&amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;}}.&lt;br /&gt;
**: au format YAML : &lt;br /&gt;
**:: type: object&lt;br /&gt;
**::  additionalProperties:&lt;br /&gt;
**::   type: string&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Reference :&amp;#039;&amp;#039;&amp;#039; La définition de schéma de la primitive renvoyée. Il s&amp;#039;agit d&amp;#039;une définition de la structure de la réponse. Si PrimitiveType vaut &amp;#039;spArray&amp;#039; ou &amp;#039;spObject&amp;#039;, une définition de schéma peut être définie.&lt;br /&gt;
** Par exemple :&lt;br /&gt;
**: &amp;#039;#/definitions/pet&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
[EndPointResponseDetails(200, &amp;#039;Ok&amp;#039;, TAPIDoc.TPrimitiveType.spObject, TAPIDoc.TPrimitiveFormat.None, &amp;#039;&amp;#039;, &amp;#039;#/definitions/EmployeeTable&amp;#039;)]&lt;br /&gt;
[EndPointResponseDetails(404, &amp;#039;Not Found&amp;#039;, TAPIDoc.TPrimitiveType.spNull, TAPIDoc.TPrimitiveFormat.None, &amp;#039;&amp;#039;, &amp;#039;&amp;#039;)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EndPointObjectsYAMLDefinitions==&lt;br /&gt;
&lt;br /&gt;
Définition des objets pour la version YAML de l&amp;#039;API.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
  [EndPointObjectsYAMLDefinitions(Objects)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Objects : Définitions d&amp;#039;objets YAML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
type&lt;br /&gt;
  [ResourceName(&amp;#039;SampleAttributes&amp;#039;)]&lt;br /&gt;
  [EndPointObjectsYAMLDefinitions(cYamlDefinitions)]&lt;br /&gt;
&lt;br /&gt;
// YAML Object definition:&lt;br /&gt;
  cYamlDefinitions =&lt;br /&gt;
  &amp;#039;# &amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039; PutObject:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;   properties:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    EMP_NO:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: integer&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    FIRST_NAME:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    LAST_NAME:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    PHONE_EXT:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    HIRE_DATE:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     format: date-time&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    DEPT_NO:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    JOB_CODE:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    JOB_GRADE:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: integer&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    JOB_COUNTRY:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    SALARY:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: integer&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    FULL_NAME:&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;     type: string&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;# &amp;#039; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EndPointObjectsJSONDefinitions==&lt;br /&gt;
&lt;br /&gt;
Définition des objets pour la version JSON de l&amp;#039;API.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    [EndPointObjectsJSONDefinitions(Objects)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Objects : Définitions d&amp;#039;objets JSON.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
type&lt;br /&gt;
  [ResourceName(&amp;#039;SampleAttributes&amp;#039;)]&lt;br /&gt;
  [EndPointObjectsJSONDefinitions(cJSONDefinitions)]&lt;br /&gt;
&lt;br /&gt;
// JSON Object definition:&lt;br /&gt;
&lt;br /&gt;
cJSONDefinitions =&lt;br /&gt;
 &amp;#039;{&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;   &amp;quot;PutObject&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;       &amp;quot;properties&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;EMP_NO&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;FIRST_NAME&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;LAST_NAME&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;PHONE_EXT&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;HIRE_DATE&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;format&amp;quot;: &amp;quot;date-time&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;DEPT_NO&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;JOB_CODE&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           &amp;quot;JOB_GRADE&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;               &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;           },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            &amp;quot;JOB_COUNTRY&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;                &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            &amp;quot;SALARY&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;                &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            },&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            &amp;quot;FULL_NAME&amp;quot;: {&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;                &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;            }&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;        }&amp;#039; +  sLineBreak +&lt;br /&gt;
  &amp;#039;    }&amp;#039; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rubriques==&lt;br /&gt;
&lt;br /&gt;
* [[Création d&amp;#039;un package EMS|Création d&amp;#039;un package EMS]]&lt;br /&gt;
* [[Ajout d&amp;#039;un module EMS à un package EMS|Ajout d&amp;#039;un module EMS à un package EMS]]&lt;br /&gt;
* [[Installation d&amp;#039;un package EMS|Installation d&amp;#039;un package EMS]]&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
* [[samp_en:EMS.APIDocAttributes Sample|Exemple API Documentation Attributes]]&lt;br /&gt;
* [[Ressource API EMS|Ressource API EMS]]&lt;br /&gt;
* [http://swagger-api.github.io/swagger-core/spec.html Swagger RESTful API Documentation Specification (EN)]&lt;br /&gt;
* [[Serveur EMS|Serveur EMS]]&lt;br /&gt;
* [[Serveur de la console EMS|Serveur de la console EMS]]&lt;br /&gt;
* [[Application client EMS|Application client EMS]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Berlin]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=WindowProc&amp;diff=197886</id>
		<title>WindowProc</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=WindowProc&amp;diff=197886"/>
		<updated>2016-02-25T16:09:46Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : LOC-21298&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[La méthode WndProc]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Tregex&amp;diff=197885</id>
		<title>Tregex</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Tregex&amp;diff=197885"/>
		<updated>2016-02-25T16:07:20Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : LOC-21298&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[TRegEx]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Tlib64&amp;diff=197866</id>
		<title>Tlib64</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Tlib64&amp;diff=197866"/>
		<updated>2016-02-25T16:03:23Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : LOC-21298&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[TLIB64.EXE, le gestionnaire de bibliothèques pour Windows 64 bits]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Tinifile&amp;diff=197851</id>
		<title>Tinifile</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Tinifile&amp;diff=197851"/>
		<updated>2016-02-25T15:59:59Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : LOC-21298&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[TIniFile]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Splitter&amp;diff=197848</id>
		<title>Splitter</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Splitter&amp;diff=197848"/>
		<updated>2016-02-25T15:58:28Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : LOC-21298&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[TSplitter]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Restful&amp;diff=197845</id>
		<title>Restful</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Restful&amp;diff=197845"/>
		<updated>2016-02-25T15:54:00Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : LOC-21298&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Présentation de REST]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Enregistrements&amp;diff=197844</id>
		<title>Enregistrements</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Enregistrements&amp;diff=197844"/>
		<updated>2016-02-25T15:44:22Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : LOC-21298&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Enregistrement]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Email&amp;diff=197843</id>
		<title>Email</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Email&amp;diff=197843"/>
		<updated>2016-02-25T15:39:50Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : LOC-21298&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Indy]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Mail&amp;diff=197842</id>
		<title>Mail</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Mail&amp;diff=197842"/>
		<updated>2016-02-25T15:39:01Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : LOC-21298&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Indy]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Jar&amp;diff=197841</id>
		<title>Jar</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Jar&amp;diff=197841"/>
		<updated>2016-02-25T15:31:48Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : LOC-21298&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[JAR]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Inifile&amp;diff=197840</id>
		<title>Inifile</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Inifile&amp;diff=197840"/>
		<updated>2016-02-25T15:27:39Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : LOC-21298&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[TIniFile]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Filecopy&amp;diff=197839</id>
		<title>Filecopy</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Filecopy&amp;diff=197839"/>
		<updated>2016-02-25T15:26:28Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : LOC-21298&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[CopyFile]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Dialogue&amp;diff=197838</id>
		<title>Dialogue</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Dialogue&amp;diff=197838"/>
		<updated>2016-02-25T15:25:02Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : LOC-21298&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Dialogs]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Bo%C3%AEte_de_dialogue&amp;diff=197837</id>
		<title>Boîte de dialogue</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Bo%C3%AEte_de_dialogue&amp;diff=197837"/>
		<updated>2016-02-25T15:20:31Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : LOC-20821&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Dialogs]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Dialog&amp;diff=197836</id>
		<title>Dialog</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Dialog&amp;diff=197836"/>
		<updated>2016-02-25T15:18:00Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : LOC-21298&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Dialogs]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Bde.DBTables&amp;diff=197834</id>
		<title>Bde.DBTables</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Bde.DBTables&amp;diff=197834"/>
		<updated>2016-02-25T15:12:34Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : LOC-21298&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
{{Redirect|lib_fr:Bde.DBTables|Bde.DBTables}}&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Dbtables&amp;diff=197831</id>
		<title>Dbtables</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Dbtables&amp;diff=197831"/>
		<updated>2016-02-25T15:10:56Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : LOC-21298&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Bde.DBTables]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=JAR&amp;diff=197828</id>
		<title>JAR</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=JAR&amp;diff=197828"/>
		<updated>2016-02-25T15:08:39Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : 1 version : Translated with Trados. LOC-21298&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[[Wikipedia:JAR (file format)|JAR]]&amp;#039;&amp;#039;&amp;#039; est un format de fichier de package qui est typiquement utilisé pour distribuer les bibliothèques Java. Voir :&lt;br /&gt;
&lt;br /&gt;
* [[Java2OP.exe, le générateur de fichier pont natif pour Android|Génération de fichiers pont natif {{Delphi}} à partir de bibliothèques Java]]&lt;br /&gt;
* [[Utilisation de bibliothèques Java dans vos apps Android RAD Studio|Utilisation de bibliothèques Java dans vos applications Android {{Product}}]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages de levée d&amp;#039;ambiguïté]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=TSplitter&amp;diff=197830</id>
		<title>TSplitter</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=TSplitter&amp;diff=197830"/>
		<updated>2016-02-25T15:08:39Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : 1 version : Translated with Trados. LOC-21298&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;TSplitter&amp;#039;&amp;#039;&amp;#039; peut faire référence à ce qui suit :&lt;br /&gt;
&lt;br /&gt;
* [[lib_fr:FMX.StdCtrls.TSplitter|FMX.StdCtrls.TSplitter]]&lt;br /&gt;
* [[lib_fr:Vcl.ExtCtrls.TSplitter|Vcl.ExtCtrls.TSplitter]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages de levée d&amp;#039;ambiguïté]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=CopyFile&amp;diff=197824</id>
		<title>CopyFile</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=CopyFile&amp;diff=197824"/>
		<updated>2016-02-25T15:08:38Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : 1 version : Translated with Trados. LOC-21298&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;CopyFile&amp;#039;&amp;#039;&amp;#039; peut faire référence à ce qui suit :&lt;br /&gt;
&lt;br /&gt;
* Le fichier de ressources d&amp;#039;animation Windows {{Path|CopyFile.res}} . Voir [[lib_fr:Vcl.ShellAnimations.TShellResources|Vcl.ShellAnimations.TShellResources]].&lt;br /&gt;
* La fonction [https://msdn.microsoft.com/en-us/library/windows/desktop/aa363851 CopyFile (EN)] de l&amp;#039;API Windows.&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages de levée d&amp;#039;ambiguïté]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Dialogs&amp;diff=197826</id>
		<title>Dialogs</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Dialogs&amp;diff=197826"/>
		<updated>2016-02-25T15:08:38Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : 1 version : Translated with Trados. LOC-21298&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Dialogs&amp;#039;&amp;#039;&amp;#039; peut faire référence à ce qui suit :&lt;br /&gt;
&lt;br /&gt;
* [[lib_fr:FMX.Dialogs|FMX.Dialogs]]&lt;br /&gt;
* [[lib_fr:Vcl.Dialogs|Vcl.Dialogs]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages de levée d&amp;#039;ambiguïté]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=CopyFile&amp;diff=197823</id>
		<title>CopyFile</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=CopyFile&amp;diff=197823"/>
		<updated>2016-02-25T15:08:36Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : Translated with Trados. LOC-21298&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;CopyFile&amp;#039;&amp;#039;&amp;#039; peut faire référence à ce qui suit :&lt;br /&gt;
&lt;br /&gt;
* Le fichier de ressources d&amp;#039;animation Windows {{Path|CopyFile.res}} . Voir [[lib_fr:Vcl.ShellAnimations.TShellResources|Vcl.ShellAnimations.TShellResources]].&lt;br /&gt;
* La fonction [https://msdn.microsoft.com/en-us/library/windows/desktop/aa363851 CopyFile (EN)] de l&amp;#039;API Windows.&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages de levée d&amp;#039;ambiguïté]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Dialogs&amp;diff=197825</id>
		<title>Dialogs</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=Dialogs&amp;diff=197825"/>
		<updated>2016-02-25T15:08:36Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : Translated with Trados. LOC-21298&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Dialogs&amp;#039;&amp;#039;&amp;#039; peut faire référence à ce qui suit :&lt;br /&gt;
&lt;br /&gt;
* [[lib_fr:FMX.Dialogs|FMX.Dialogs]]&lt;br /&gt;
* [[lib_fr:Vcl.Dialogs|Vcl.Dialogs]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages de levée d&amp;#039;ambiguïté]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=JAR&amp;diff=197827</id>
		<title>JAR</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=JAR&amp;diff=197827"/>
		<updated>2016-02-25T15:08:36Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : Translated with Trados. LOC-21298&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[[Wikipedia:JAR (file format)|JAR]]&amp;#039;&amp;#039;&amp;#039; est un format de fichier de package qui est typiquement utilisé pour distribuer les bibliothèques Java. Voir :&lt;br /&gt;
&lt;br /&gt;
* [[Java2OP.exe, le générateur de fichier pont natif pour Android|Génération de fichiers pont natif {{Delphi}} à partir de bibliothèques Java]]&lt;br /&gt;
* [[Utilisation de bibliothèques Java dans vos apps Android RAD Studio|Utilisation de bibliothèques Java dans vos applications Android {{Product}}]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages de levée d&amp;#039;ambiguïté]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=TSplitter&amp;diff=197829</id>
		<title>TSplitter</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Athens/f/index.php?title=TSplitter&amp;diff=197829"/>
		<updated>2016-02-25T15:08:36Z</updated>

		<summary type="html">&lt;p&gt;Tiphaineb : Translated with Trados. LOC-21298&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;TSplitter&amp;#039;&amp;#039;&amp;#039; peut faire référence à ce qui suit :&lt;br /&gt;
&lt;br /&gt;
* [[lib_fr:FMX.StdCtrls.TSplitter|FMX.StdCtrls.TSplitter]]&lt;br /&gt;
* [[lib_fr:Vcl.ExtCtrls.TSplitter|Vcl.ExtCtrls.TSplitter]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Pages de levée d&amp;#039;ambiguïté]]&lt;/div&gt;</summary>
		<author><name>Tiphaineb</name></author>
		
	</entry>
</feed>