<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>RAD Studio  - Modifications récentes [fr]</title>
		<link>https://docwiki.embarcadero.com/RADStudio/Alexandria/fr/Sp%C3%A9cial:Modifications_r%C3%A9centes</link>
		<description>Suivez les dernières modifications du wiki dans ce flux.</description>
		<language>fr</language>
		<generator>MediaWiki 1.31.16</generator>
		<lastBuildDate>Fri, 15 May 2026 09:05:46 GMT</lastBuildDate>
		<item>
			<title>Application multi-périphérique pour recevoir des notifications push</title>
			<link>https://docwiki.embarcadero.com/RADStudio/Alexandria/f/index.php?title=Application_multi-p%C3%A9riph%C3%A9rique_pour_recevoir_des_notifications_push&amp;diff=217606&amp;oldid=0</link>
			<guid isPermaLink="false">https://docwiki.embarcadero.com/RADStudio/Alexandria/f/index.php?title=Application_multi-p%C3%A9riph%C3%A9rique_pour_recevoir_des_notifications_push&amp;diff=217606&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/RADStudio/Alexandria/f/index.php?title=Utilisateur:Yukikoi&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new mw-userlink&quot; title=&quot;Utilisateur:Yukikoi (page inexistante)&quot;&gt;&lt;bdi&gt;Yukikoi&lt;/bdi&gt;&lt;/a&gt; a importé &lt;a href=&quot;/RADStudio/Alexandria/fr/Application_multi-p%C3%A9riph%C3%A9rique_pour_recevoir_des_notifications_push&quot; title=&quot;Application multi-périphérique pour recevoir des notifications push&quot;&gt;Application multi-périphérique pour recevoir des notifications push&lt;/a&gt; par téléversement de fichier (1 révision) LOC-23446&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Parent|Tutoriel mobile : Utilisation des notifications distantes (iOS et Android)}}&lt;br /&gt;
__TOC__&lt;br /&gt;
Vous allez créer une application élémentaire pour recevoir une notification push avec des éléments génériques à Android et iOS. Vous ajouterez ensuite le code qui permettra de définir les caractéristiques de chacune des plates-formes.&lt;br /&gt;
&lt;br /&gt;
Notre implémentation étant basée sur le framework BAAS REST, {{Product}} vous permet d&amp;#039;utiliser dans vos apps iOS ou Android l&amp;#039;un des fournisseurs de services suivants :&lt;br /&gt;
&lt;br /&gt;
:&lt;br /&gt;
:*Kinvey&lt;br /&gt;
:*Parse&lt;br /&gt;
:*[[RAD Server (EMS)|RAD Server (EMS)]]&lt;br /&gt;
&lt;br /&gt;
Avant de créer votre application pour recevoir des notifications push, assurez-vous de terminer ces deux étapes nécessaires :&lt;br /&gt;
&lt;br /&gt;
*[[Configuration du service de messagerie|Configuration du service de messagerie]]&lt;br /&gt;
*Choix du fournisseur :&lt;br /&gt;
**[[Utilisation du service Cloud pour envoyer des notifications push|Utilisation du service Cloud pour envoyer des notifications push]]&lt;br /&gt;
**[[Notifications Push de RAD Server|Utilisation de RAD pour envoyer des notifications push]]&lt;br /&gt;
&lt;br /&gt;
==Conception et configuration de l&amp;#039;interface utilisateur==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Pour créer une [[Application multi-périphérique|application multi-périphérique]], sélectionnez l&amp;#039;une des options suivantes :&lt;br /&gt;
:{{Menu|Fichier &amp;amp;gt; Nouveau &amp;amp;gt; Application multi-périphérique - {{Delphi}} &amp;amp;gt; Application vide}}&lt;br /&gt;
:{{Menu|Fichier &amp;amp;gt; Nouveau &amp;amp;gt; Application multi-périphérique - {{CBuilderUI}} &amp;amp;gt; Application vide}}&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Déposez un composant [[lib_fr:FMX.StdCtrls.TCheckBox|TCheckBox]] sur la fiche.&lt;br /&gt;
:Dans [[Inspecteur d&amp;#039;objets|l&amp;#039;inspecteur d&amp;#039;objets]], définissez les propriétés suivantes pour la &amp;#039;&amp;#039;&amp;#039;case à cocher&amp;#039;&amp;#039;&amp;#039; :&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Définissez [[lib_fr:FMX.StdCtrls.TCheckBox.Align|Align]] sur &amp;#039;&amp;#039;&amp;#039;Top&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Définissez la propriété [[lib_fr:FMX.StdCtrls.TCheckBox.IsChecked|IsChecked]] sur &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Définissez la propriété [[lib_fr:FMX.StdCtrls.TCheckBox.Text|Text]] sur &amp;#039;&amp;#039;&amp;#039;Active&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Ajoutez un composant [[lib_fr:FMX.Memo.TMemo|TMemo]] à la fiche et définissez la propriété [[lib_fr:FMX.Controls.TControl.Align|Align]] sur &amp;#039;&amp;#039;&amp;#039;Client&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Déposez un objet [[lib_fr:REST.Backend.PushDevice.TPushEvents|TPushEvents]].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Définissez la propriété [[lib_fr:REST.Backend.PushDevice.TCustomPushEvents.AutoActivate|AutoActivate]] sur &amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Dans le Concepteur LiveBindings, ajoutez un lien depuis &amp;#039;&amp;#039;&amp;#039;Active&amp;#039;&amp;#039;&amp;#039; de [[lib_fr:REST.Backend.PushDevice.TPushEvents|PushEvents]] vers &amp;#039;&amp;#039;&amp;#039;IsChecked&amp;#039;&amp;#039;&amp;#039; de [[lib_fr:FMX.StdCtrls.TCheckBox|CheckBox]]. La propriété [[lib_fr:REST.Backend.PushDevice.TCustomPushEvents.Active|Active]] de [[lib_fr:REST.Backend.PushDevice.TPushEvents|PushEvents]] est définie sur &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; lorsque le composant [[lib_fr:FMX.StdCtrls.TCheckBox|CheckBox]] est coché.&lt;br /&gt;
:[[File:Link.png]]&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Selon le fournisseur de services que vous souhaitez utiliser, ajoutez :&lt;br /&gt;
*Pour &amp;#039;&amp;#039;&amp;#039;Parse&amp;#039;&amp;#039;&amp;#039; : un [[lib_fr:REST.Backend.ParseProvider.TParseProvider|TParseProvider]].&lt;br /&gt;
*Pour &amp;#039;&amp;#039;&amp;#039;Kinvey&amp;#039;&amp;#039;&amp;#039; : un [[lib_fr:REST.Backend.KinveyProvider.TKinveyProvider|TKinveyProvider]].&lt;br /&gt;
*Pour &amp;#039;&amp;#039;&amp;#039;RAD Server (EMS)&amp;#039;&amp;#039;&amp;#039; : un [[lib_fr:REST.Backend.EMSProvider.TEMSProvider|TEMSProvider]].&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;Utilisation de [[lib_fr:REST.Backend.KinveyProvider.TKinveyProvider|TKinveyProvider]]&amp;#039;&amp;#039;&amp;#039; (iOS ou Android)&lt;br /&gt;
:[[File:KinveyProvider.png]]&lt;br /&gt;
Dans [[Inspecteur d&amp;#039;objets|l&amp;#039;inspecteur d&amp;#039;objets]], définissez les propriétés suivantes pour le &amp;#039;&amp;#039;&amp;#039;KinveyProvider&amp;#039;&amp;#039;&amp;#039; :&lt;br /&gt;
*Développez le noeud &amp;#039;&amp;#039;&amp;#039;Android Push&amp;#039;&amp;#039;&amp;#039; et copiez dans &amp;#039;&amp;#039;&amp;#039;GCMAppID&amp;#039;&amp;#039;&amp;#039; le &amp;#039;&amp;#039;&amp;#039;numéro de projet&amp;#039;&amp;#039;&amp;#039; indiqué dans la procédure [[Configuration du service de messagerie#S&amp;#039;enregistrer chez Google|S&amp;#039;enregistrer chez Google]].&lt;br /&gt;
*Définissez [[lib_fr:REST.Backend.KinveyProvider.TCustomKinveyConnectionInfo.AppKey|AppKey]], [[lib_fr:REST.Backend.KinveyProvider.TCustomKinveyConnectionInfo.AppSecret|AppSecret]] et [[lib_fr:REST.Backend.KinveyProvider.TCustomKinveyConnectionInfo.MasterSecret|MasterSecret]] avec les valeurs des clés API [[Utilisation du service Cloud pour envoyer des notifications push#Configuration de votre projet|fournies lors de la configuration de votre projet dans Kinvey]].&lt;br /&gt;
*Définissez [[lib_fr:REST.Backend.KinveyProvider.TCustomKinveyConnectionInfo.UserName|UserName]] et [[lib_fr:REST.Backend.KinveyProvider.TCustomKinveyConnectionInfo.Password|Password]] avec les valeurs définies dans [[Utilisation du service Cloud pour envoyer des notifications push#Ajout d&amp;#039;un utilisateur|Ajout d&amp;#039;un utilisateur dans Kinvey]].&lt;br /&gt;
:[[File:KnvProv.png|300px]]&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;Utilisation de [[lib_fr:REST.Backend.ParseProvider.TParseProvider|TParseProvider]]&amp;#039;&amp;#039;&amp;#039; (iOS ou Android)&lt;br /&gt;
:[[File:ParseProvider.png]]&lt;br /&gt;
Dans [[Inspecteur d&amp;#039;objets|l&amp;#039;inspecteur d&amp;#039;objets]], définissez les propriétés suivantes pour &amp;#039;&amp;#039;&amp;#039;ParseProvider&amp;#039;&amp;#039;&amp;#039; :&lt;br /&gt;
*Définissez les paramètres [[lib_fr:REST.Backend.ParseProvider.TCustomParseConnectionInfo.ApplicationID|ApplicationID]], [[lib_fr:REST.Backend.ParseProvider.TCustomParseConnectionInfo.MasterKey|MasterKey]] et [[lib_fr:REST.Backend.ParseProvider.TCustomParseConnectionInfo.RestApiKey|RestApiKey]] conformément aux clés API indiquées dans [[Utilisation du service Cloud pour envoyer des notifications push#Création d&amp;#039;un projet avec Parse|Création d&amp;#039;un projet avec Parse]].&lt;br /&gt;
&lt;br /&gt;
{{Note| Il n&amp;#039;est pas nécessaire d&amp;#039;ajouter &amp;#039;&amp;#039;&amp;#039;GCM AppID&amp;#039;&amp;#039;&amp;#039; lors du développement des apps Android et de l&amp;#039;utilisation de Parse.}}&lt;br /&gt;
:[[File:ParsePorviderSett.png]]&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;Utilisation de [[lib_fr:REST.Backend.EMSProvider.TEMSProvider|TEMSProvider]]&amp;#039;&amp;#039;&amp;#039; (iOS ou Android)&lt;br /&gt;
:[[File:EMSProvider.png]]&lt;br /&gt;
Dans [[Inspecteur d&amp;#039;objets|l&amp;#039;inspecteur d&amp;#039;objets]], définissez les propriétés suivantes du &amp;#039;&amp;#039;&amp;#039;EMSProvider&amp;#039;&amp;#039;&amp;#039; :&lt;br /&gt;
*Développez le noeud &amp;#039;&amp;#039;&amp;#039;Android Push&amp;#039;&amp;#039;&amp;#039; et copiez dans &amp;#039;&amp;#039;&amp;#039;GCMAppID&amp;#039;&amp;#039;&amp;#039; le &amp;#039;&amp;#039;numéro de projet&amp;#039;&amp;#039; indiqué dans la procédure [[Configuration du service de messagerie#S&amp;#039;enregistrer chez Google|S&amp;#039;enregistrer chez Google]].&lt;br /&gt;
* Définissez [[lib_fr:REST.Backend.EMSProvider.TCustomEMSConnectionInfo.ApplicationId|ApplicationId]], [[lib_fr:REST.Backend.EMSProvider.TEMSProvider.AppSecret|AppSecret]] et [[lib_fr:REST.Backend.EMSProvider.TEMSProvider.MasterSecret|MasterSecret]] avec les valeurs des clés API fournies lors de la [[Notifications Push de RAD Server|configuration de RAD Server Engine]].&lt;br /&gt;
:[[File:EMSProv.png|300px]]&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Création des gestionnaires d&amp;#039;événement==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Sur la fiche, sélectionnez &amp;#039;&amp;#039;&amp;#039;PushEvents1&amp;#039;&amp;#039;&amp;#039; et accédez à [[Inspecteur d&amp;#039;objets|l&amp;#039;inspecteur d&amp;#039;objets]] :&lt;br /&gt;
*Vérifiez si la propriété [[lib_fr:REST.Backend.BindSource.TBackendBindSourceComponent.Provider|Provider]] est définie sur &amp;#039;&amp;#039;&amp;#039;KinveyProvider1&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;ParseProvider1&amp;#039;&amp;#039;&amp;#039; ou &amp;#039;&amp;#039;&amp;#039;EMSProvider1&amp;#039;&amp;#039;&amp;#039;, selon le fournisseur que vous avez choisi d&amp;#039;utiliser.&lt;br /&gt;
*Accédez à l&amp;#039;onglet &amp;#039;&amp;#039;&amp;#039;Evénements&amp;#039;&amp;#039;&amp;#039; et créez un gestionnaire d&amp;#039;événement pour chaque événement en double-cliquant sur le champ Valeur.&lt;br /&gt;
:&lt;br /&gt;
::[[File:PushEvents.png]]&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Passez à l&amp;#039;onglet &amp;#039;&amp;#039;&amp;#039;Code&amp;#039;&amp;#039;&amp;#039; en appuyant sur F12.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Définissez les gestionnaires d&amp;#039;événement comme suit :&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;{{Delphi}}&amp;#039;&amp;#039;&amp;#039; :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
implementation&lt;br /&gt;
&lt;br /&gt;
{$R *.fmx}&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.PushEvents1DeviceRegistered(Sender: TObject);&lt;br /&gt;
begin&lt;br /&gt;
  Memo1.Lines.Add(&amp;#039;Device Registered&amp;#039;);&lt;br /&gt;
  Memo1.Lines.Add(&amp;#039;&amp;#039;);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.PushEvents1DeviceTokenReceived(Sender: TObject);&lt;br /&gt;
begin&lt;br /&gt;
  Memo1.Lines.Add(&amp;#039;Device Token Received&amp;#039;);&lt;br /&gt;
  Memo1.Lines.Add(&amp;#039;&amp;#039;);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.PushEvents1DeviceTokenRequestFailed(Sender: TObject;&lt;br /&gt;
  const AErrorMessage: string);&lt;br /&gt;
begin&lt;br /&gt;
  Memo1.Lines.Add(&amp;#039;Device Token Request Failed&amp;#039;);&lt;br /&gt;
  Memo1.Lines.Add(AErrorMessage);&lt;br /&gt;
  Memo1.Lines.Add(&amp;#039;&amp;#039;);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.PushEvents1PushReceived(Sender: TObject;&lt;br /&gt;
  const AData: TPushData);&lt;br /&gt;
begin&lt;br /&gt;
  Memo1.Lines.Add(&amp;#039;Device push received&amp;#039;);&lt;br /&gt;
  Memo1.Lines.Add(AData.Message);&lt;br /&gt;
  Memo1.Lines.Add(&amp;#039;&amp;#039;);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
end.&amp;lt;/source&amp;gt;&lt;br /&gt;
:&amp;#039;&amp;#039;&amp;#039;C++&amp;#039;&amp;#039;&amp;#039; :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
//--------------------------------------------------------------------------&lt;br /&gt;
void __fastcall TForm1::PushEvents1DeviceRegistered(TObject *Sender)&lt;br /&gt;
{&lt;br /&gt;
   Memo1-&amp;gt;Lines-&amp;gt;Add(&amp;quot;Device Registered&amp;quot;);&lt;br /&gt;
   Memo1-&amp;gt;Lines-&amp;gt;Add(&amp;quot;&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
//--------------------------------------------------------------------------&lt;br /&gt;
void __fastcall TForm1::PushEvents1DeviceTokenReceived(TObject *Sender)&lt;br /&gt;
{&lt;br /&gt;
   Memo1-&amp;gt;Lines-&amp;gt;Add(&amp;quot;Device Token Received&amp;quot;);&lt;br /&gt;
   Memo1-&amp;gt;Lines-&amp;gt;Add(&amp;quot;&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
//--------------------------------------------------------------------------&lt;br /&gt;
void __fastcall TForm1::PushEvents1DeviceTokenRequestFailed(TObject *Sender, const UnicodeString AErrorMessage)&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  Memo1-&amp;gt;Lines-&amp;gt;Add(&amp;quot;Device Token Request Failed&amp;quot;);&lt;br /&gt;
  Memo1-&amp;gt;Lines-&amp;gt;Add(AErrorMessage);&lt;br /&gt;
  Memo1-&amp;gt;Lines-&amp;gt;Add(&amp;quot;&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
//--------------------------------------------------------------------------&lt;br /&gt;
void __fastcall TForm1::PushEvents1PushReceived(TObject *Sender, TPushData * const AData)&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  Memo1-&amp;gt;Lines-&amp;gt;Add(&amp;quot;Push Received&amp;quot;);&lt;br /&gt;
  Memo1-&amp;gt;Lines-&amp;gt;Add(AData-&amp;gt;Message);&lt;br /&gt;
  Memo1-&amp;gt;Lines-&amp;gt;Add(&amp;quot;&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
//--------------------------------------------------------------------------&amp;lt;/source&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Paramètres Android==&lt;br /&gt;
&lt;br /&gt;
{{Note| Pour savoir si votre périphérique Android prend en charge GCM, consultez [http://developer.android.com/google/gcm/gcm.html GCM Overview]}}. &lt;br /&gt;
&lt;br /&gt;
===Paramètres du projet===&lt;br /&gt;
&lt;br /&gt;
Pour permettre à votre application de recevoir des notifications distantes :&lt;br /&gt;
&lt;br /&gt;
#Cliquez avec le bouton droit sur votre projet dans le &amp;#039;&amp;#039;&amp;#039;Gestionnaire de projets&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
#Choisissez {{menu| Projet &amp;amp;gt; Options &amp;amp;gt; Liste des droits}}.&lt;br /&gt;
#Définissez la valeur &amp;#039;&amp;#039;&amp;#039;Recevoir les notifications push&amp;#039;&amp;#039;&amp;#039; sur {{True}}.&lt;br /&gt;
&lt;br /&gt;
{{Note| Si vous voulez activer une notification même lorsque l&amp;#039;application n&amp;#039;est pas en cours d&amp;#039;exécution au moment où la notification distante est reçue, vous devez recenser une classe de service. Cette classe de service Java va créer une entrée dans le centre de notification du périphérique Android. Si vous ne voulez pas avoir d&amp;#039;éléments dans le centre de notifications, vous pouvez ignorer cette étape.}}&lt;br /&gt;
&lt;br /&gt;
Vous devez inclure une entrée supplémentaire dans le fichier [[Fichier manifest d&amp;#039;application Android (AndroidManifest.xml)|AndroidManifest.xml]] du projet, en [[Préparation d&amp;#039;une application Android pour son déploiement#Personnalisation de votre fichier AndroidManifest.xml|personnalisant le fichier AndroidManifest.template.xml]]. Recherchez l&amp;#039;indicateur suivant dans le fichier &amp;#039;&amp;#039;&amp;#039;AndroidManifest.template.xml&amp;#039;&amp;#039;&amp;#039; de votre projet :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;%receivers%&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ajoutez le code suivant sous la balise :&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;service android:name=&amp;quot;com.embarcadero.gcm.notifications.GCMIntentService&amp;quot; /&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pensez à apporter les modifications suivantes à votre code :&lt;br /&gt;
&lt;br /&gt;
* Avant d&amp;#039;appliquer vos paramètres de projet, vous devez recenser le GCM sur un thread d&amp;#039;arrière-plan.&lt;br /&gt;
** Vous pouvez assigner la propriété {{Path|&amp;#039;TPushEvents.Active&amp;#039;}} sur le thread principal sans déclencher d&amp;#039;instance de l&amp;#039;exception Java {{Path|&amp;#039;IOException&amp;#039;}}.&lt;br /&gt;
** Vous pouvez assigner la propriété {{Path|&amp;#039;TPushServiceConnection.Active&amp;#039;}} sur le thread principal sans déclencher d&amp;#039;instance de l&amp;#039;exception Java {{Path|&amp;#039;IOException&amp;#039;}}.&lt;br /&gt;
&lt;br /&gt;
* Le changement d&amp;#039;état en {{Path|&amp;#039;Starting&amp;#039;}} est maintenant supporté.&lt;br /&gt;
** Les plates-formes {{Path|&amp;#039;Android&amp;#039;}} et {{Path|&amp;#039;iOS&amp;#039;}} commencent à avoir un comportement identique par rapport au cycle de vie du {{Path|push service}}.&lt;br /&gt;
** Vous pouvez maintenant tester si le {{Path|&amp;#039;push service&amp;#039;}} saisi est passé à l&amp;#039;état {{Path|&amp;#039;Starting&amp;#039;}} lors d&amp;#039;un changement de connexion, en utilisant le code suivant :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm1.OnServiceConnectionChange(Sender: TObject; PushChanges: TPushService.TChanges);&lt;br /&gt;
begin&lt;br /&gt;
  if TPushService.TChange.Status in PushChanges then&lt;br /&gt;
  begin&lt;br /&gt;
    if FPushService.Status = TPushService.TStatus.Starting then&lt;br /&gt;
    begin&lt;br /&gt;
      Memo1.Lines.Add(&amp;#039;GCM registration is going to start.&amp;#039;); &lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Les {{Path|gestionnaires d&amp;#039;événement}} sont maintenant appelés sur le thread principal.&lt;br /&gt;
** Les gestionnaires d&amp;#039;événement {{Path|&amp;#039;TPushEvents.OnDeviceRegistered&amp;#039;}}, {{Path|&amp;#039;TPushEvents.OnDeviceTokenReceived&amp;#039;}}, {{Path|&amp;#039;TPushEvents.OnDeviceTokenRequestFailed&amp;#039;}} et {{Path|&amp;#039;TPushEvents.OnPushReceived&amp;#039;}} n&amp;#039;ont plus besoin d&amp;#039;utiliser {{Path|&amp;#039;TThread.Synchronize&amp;#039;}} lorsqu&amp;#039;ils interagissent avec des contrôles visuels.&lt;br /&gt;
** Les gestionnaires d&amp;#039;événement {{Path|&amp;#039;TPushServiceConnection.OnChange&amp;#039;}} et {{Path|&amp;#039;TPushServiceConnection.OnReceiveNotification&amp;#039;}} n&amp;#039;ont plus besoin d&amp;#039;utiliser {{Path|&amp;#039;TThread.Synchronize&amp;#039;}} lorsqu&amp;#039;ils interagissent avec des contrôles visuels.&lt;br /&gt;
&lt;br /&gt;
==Paramètres iOS==&lt;br /&gt;
&lt;br /&gt;
===Paramètres du projet===&lt;br /&gt;
&lt;br /&gt;
#Cliquez avec le bouton droit sur votre projet dans le &amp;#039;&amp;#039;&amp;#039;Gestionnaire de projets&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
#Choisissez {{menu|Projet &amp;amp;gt; Options &amp;amp;gt; Informations de version}}, et définissez la clé &amp;#039;&amp;#039;&amp;#039;CFBundleIdentifier&amp;#039;&amp;#039;&amp;#039;. La valeur doit être identique à celle de l&amp;#039;identificateur de votre app. C&amp;#039;est la valeur &amp;#039;&amp;#039;&amp;#039;Bundle ID&amp;#039;&amp;#039;&amp;#039; de [[Configuration du service de messagerie#Création d&amp;#039;un ID d&amp;#039;app iOS sur le site Apple Developer Program|la section Création d&amp;#039;un ID d&amp;#039;app iOS sur le site Apple Developer Program]].&lt;br /&gt;
&lt;br /&gt;
:[[File:VersionInfo.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==Exécution de votre application sur un périphérique mobile==&lt;br /&gt;
&lt;br /&gt;
Votre application est maintenant prête pour s&amp;#039;exécuter sur un simulateur ou votre périphérique mobile connecté.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Pour exécuter votre application&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Dans la [[Fenêtre Projets|fenêtre Projets]], sélectionnez votre plate-forme cible.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Choisissez l&amp;#039;une des commandes suivantes :&lt;br /&gt;
*&amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt; &amp;#039;&amp;#039;&amp;#039;Exécuter &amp;amp;gt; Exécuter&amp;#039;&amp;#039;&amp;#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
*&amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt; &amp;#039;&amp;#039;&amp;#039;Exécuter &amp;amp;gt; Exécuter sans déboguer&amp;#039;&amp;#039;&amp;#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Cliquez sur la case à cocher &amp;#039;&amp;#039;&amp;#039;Active&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Accédez à Parse, Kinvey ou [[Envoi de messages Push de RAD Server|Envoi de messages Push de RAD Server]] et envoyez un nouveau message Push :&amp;lt;br /&amp;gt;&lt;br /&gt;
{{Note| Vous pouvez utiliser votre propre application RAD Server pour envoyer [[Notifications Push de RAD Server|des messages de notification Push RAD Server]].}}&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!&amp;#039;&amp;#039;&amp;#039; Parse&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[File:ParseHello.png|550px]]&lt;br /&gt;
|}&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!&amp;#039;&amp;#039;&amp;#039; Kinvey&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[File:HelloKinvey.png|550px]]&lt;br /&gt;
|}&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!&amp;#039;&amp;#039;&amp;#039; RAD Server (EMS)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[File:HelloEMS.png|550px]]&lt;br /&gt;
|}&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Passez à votre périphérique mobile :&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!&amp;#039;&amp;#039;&amp;#039; iOS&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[File:IosDevice.png|450px]]&lt;br /&gt;
|}&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!&amp;#039;&amp;#039;&amp;#039; Android&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[File:AndroidHello.png|400px]]&lt;br /&gt;
|}&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!&amp;#039;&amp;#039;&amp;#039; iOS RAD Server (EMS)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[File:IOSEMSHello.png|400px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Mettez votre app en arrière-plan et envoyez une autre notification Push depuis Parse ou Kinvey. Accédez maintenant à &amp;#039;&amp;#039;&amp;#039;Notifications&amp;#039;&amp;#039;&amp;#039; :&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!&amp;#039;&amp;#039;&amp;#039; iOS&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[File:Pushios.png|500px]]&lt;br /&gt;
|}&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!&amp;#039;&amp;#039;&amp;#039; Android&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[File:AndNotificationCenter.png|400px]]&lt;br /&gt;
|}&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Tutoriel mobile : Utilisation des notifications (iOS et Android)|Tutoriel mobile : Utilisation des notifications (iOS et Android)]]&lt;br /&gt;
*[[Tutoriel mobile : Utilisation de BaaS pour le stockage backend (iOS et Android)|Tutoriel mobile : Utilisation de BaaS pour le stockage backend (iOS et Android)]]&lt;br /&gt;
*[[RAD Server (EMS)|RAD Server (EMS)]]&lt;br /&gt;
*[[Notifications Push de RAD Server|Notifications Push de RAD Server]]&lt;br /&gt;
*[[Liste des droits|Liste des droits]]&lt;br /&gt;
&lt;br /&gt;
===Exemples de code===&lt;br /&gt;
&lt;br /&gt;
*[[samp_en:REST.BaaS ToDo Sample|Exemple BaaS ToDo]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Delphi]]&lt;br /&gt;
[[Category:FMX]]&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:IOS]]&lt;br /&gt;
[[Category:XE6]]&lt;br /&gt;
[[Category:Android]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</description>
			<pubDate>Sat, 09 May 2026 02:19:41 GMT</pubDate>
			<dc:creator>Yukikoi</dc:creator>
			<comments>https://docwiki.embarcadero.com/RADStudio/Alexandria/fr/Discussion:Application_multi-p%C3%A9riph%C3%A9rique_pour_recevoir_des_notifications_push</comments>
		</item>
		<item>
			<title>Rouvrir</title>
			<link>https://docwiki.embarcadero.com/RADStudio/Alexandria/f/index.php?title=Rouvrir&amp;diff=217608&amp;oldid=0</link>
			<guid isPermaLink="false">https://docwiki.embarcadero.com/RADStudio/Alexandria/f/index.php?title=Rouvrir&amp;diff=217608&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/RADStudio/Alexandria/f/index.php?title=Utilisateur:Yukikoi&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new mw-userlink&quot; title=&quot;Utilisateur:Yukikoi (page inexistante)&quot;&gt;&lt;bdi&gt;Yukikoi&lt;/bdi&gt;&lt;/a&gt; a importé &lt;a href=&quot;/RADStudio/Alexandria/fr/Rouvrir&quot; title=&quot;Rouvrir&quot;&gt;Rouvrir&lt;/a&gt; par téléversement de fichier (1 révision) LOC-23446&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{DISPLAYTITLE: Ouvrir Récents (Rouvrir)}}&lt;br /&gt;
{{Parent|Menu Fichier}}&lt;br /&gt;
&lt;br /&gt;
{{Menu|Fichier &amp;amp;gt; Ouvrir Récents}}&lt;br /&gt;
&lt;br /&gt;
Liste les fichiers et les projets récemment ouverts afin de vous permettre de les sélectionner et de les rouvrir.&lt;br /&gt;
&lt;br /&gt;
La &amp;#039;&amp;#039;&amp;#039;liste Rouvrir&amp;#039;&amp;#039;&amp;#039; est organisée en deux groupes séparés par une ligne.&lt;br /&gt;
&lt;br /&gt;
*Les projets sont listés au-dessus de la ligne (par exemple, {{Path|MyBigApp.dproj}} ou {{Path|MyFastApp.cbproj}}).&lt;br /&gt;
*Les fichiers source sont listés en dessous de la ligne (par exemple, {{Path|MyControl.pas}} ou {{Path|MyClass.cpp}}).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez gérer la &amp;#039;&amp;#039;&amp;#039;liste Rouvrir&amp;#039;&amp;#039;&amp;#039; sur la boîte de dialogue &amp;#039;&amp;#039;&amp;#039;[[Propriétés du menu Rouvrir|Propriétés du menu Rouvrir]]&amp;#039;&amp;#039;&amp;#039; en utilisant l&amp;#039;une des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
* {{Menu|Fichier &amp;amp;gt; Ouvrir Récents &amp;amp;gt; Propriétés}}&lt;br /&gt;
* {{Menu|Fichier &amp;amp;gt; Ouvrir Favoris &amp;amp;gt; Propriétés}}&lt;br /&gt;
* {{Menu|Outils &amp;amp;gt; Options &amp;amp;gt; Interface utilisateur &amp;amp;gt; Menu Rouvrir}}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Propriétés du menu Rouvrir|Menu Rouvrir, Propriétés du menu Rouvrir]] &lt;br /&gt;
&lt;br /&gt;
[[Category:Référence EDI]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</description>
			<pubDate>Sat, 09 May 2026 02:19:41 GMT</pubDate>
			<dc:creator>Yukikoi</dc:creator>
			<comments>https://docwiki.embarcadero.com/RADStudio/Alexandria/fr/Discussion:Rouvrir</comments>
		</item>
		<item>
			<title>Propriétés du menu Rouvrir</title>
			<link>https://docwiki.embarcadero.com/RADStudio/Alexandria/f/index.php?title=Propri%C3%A9t%C3%A9s_du_menu_Rouvrir&amp;diff=217610&amp;oldid=0</link>
			<guid isPermaLink="false">https://docwiki.embarcadero.com/RADStudio/Alexandria/f/index.php?title=Propri%C3%A9t%C3%A9s_du_menu_Rouvrir&amp;diff=217610&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/RADStudio/Alexandria/f/index.php?title=Utilisateur:Yukikoi&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new mw-userlink&quot; title=&quot;Utilisateur:Yukikoi (page inexistante)&quot;&gt;&lt;bdi&gt;Yukikoi&lt;/bdi&gt;&lt;/a&gt; a importé &lt;a href=&quot;/RADStudio/Alexandria/fr/Propri%C3%A9t%C3%A9s_du_menu_Rouvrir&quot; title=&quot;Propriétés du menu Rouvrir&quot;&gt;Propriétés du menu Rouvrir&lt;/a&gt; par téléversement de fichier (1 révision) LOC-23446&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Parent|Menu Fichier}}&lt;br /&gt;
{{Parent|Interface utilisateur}}&lt;br /&gt;
&lt;br /&gt;
{{Menu|Fichier &amp;amp;gt; Ouvrir Récents &amp;amp;gt; Propriétés}} &amp;amp;lt;/br&amp;amp;gt;&lt;br /&gt;
{{Menu|Fichier &amp;amp;gt; Ouvrir Favoris &amp;amp;gt; Propriétés}} &amp;amp;lt;/br&amp;amp;gt;&lt;br /&gt;
{{Menu|Outils &amp;amp;gt; Options &amp;amp;gt; Interface utilisateur &amp;amp;gt; Menu Rouvrir}} &amp;amp;lt;/br&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Affiche le contenu en cours de la &amp;#039;&amp;#039;&amp;#039;liste Rouvrir&amp;#039;&amp;#039;&amp;#039; (c&amp;#039;est-à-dire la liste déroulante {{Menu|Fichier &amp;amp;gt; [[Rouvrir|Ouvrir Récents]]}}) et vous permet de :&lt;br /&gt;
&lt;br /&gt;
*Spécifier le nombre maximal de fichiers et de projets qui peuvent être listés dans la liste Rouvrir.&lt;br /&gt;
*Supprimer des fichiers ou des projets spécifiques de la liste Rouvrir.&lt;br /&gt;
*Supprimer les fichiers qui n&amp;#039;existent plus de la liste Rouvrir.&lt;br /&gt;
&lt;br /&gt;
[[File:Reopen properties.png|link=]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&amp;#039;&amp;#039;&amp;#039;Elément&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;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Nombre de projets&lt;br /&gt;
|&lt;br /&gt;
Spécifie le nombre de projets autorisé sur la liste Rouvrir. La valeur maximale que vous pouvez spécifier est de 100 projets.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Nombre de fichiers&lt;br /&gt;
|&lt;br /&gt;
Spécifie le nombre de fichiers autorisé sur la liste Rouvrir. La valeur maximale que vous pouvez spécifier est de 100 fichiers.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Rouvrir les éléments&lt;br /&gt;
|&lt;br /&gt;
Liste les fichiers et les projets qui ont été récemment ouverts. &amp;amp;lt;/br&amp;amp;gt;&lt;br /&gt;
Dans cette section, vous pouvez marquer un élément comme &amp;#039;&amp;#039;&amp;#039;&amp;quot;Favori&amp;quot;&amp;#039;&amp;#039;&amp;#039; en cliquant sur le symbole Coeur qui suit son nom.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Supprimer les fichiers non existants&lt;br /&gt;
|&lt;br /&gt;
S&amp;#039;il est activé, ce bouton indique qu&amp;#039;un ou plusieurs fichiers de la liste Rouvrir n&amp;#039;existent plus à l&amp;#039;emplacement spécifié. Les éléments qui n&amp;#039;existent plus sont affichés en gris dans la liste Rouvrir. Cliquez sur ce bouton pour retirer les fichiers inexistants de la liste Rouvrir.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Supprimer&lt;br /&gt;
|&lt;br /&gt;
Supprime l&amp;#039;élément sélectionné de la liste Rouvrir.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Effacer&lt;br /&gt;
|&lt;br /&gt;
Supprime tous les éléments de la liste Rouvrir.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Note| &lt;br /&gt;
{{Menu|File &amp;amp;gt; Open Favorite}} &amp;amp;lt;/br&amp;amp;gt;&lt;br /&gt;
Items marked as &amp;#039;&amp;#039;&amp;#039;Favorite&amp;#039;&amp;#039;&amp;#039; will be listed on the &amp;#039;&amp;#039;Open Favorite&amp;#039;&amp;#039; list in the File Menu.}}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Rouvrir|Rouvrir]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Référence EDI]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</description>
			<pubDate>Sat, 09 May 2026 02:19:41 GMT</pubDate>
			<dc:creator>Yukikoi</dc:creator>
			<comments>https://docwiki.embarcadero.com/RADStudio/Alexandria/fr/Discussion:Propri%C3%A9t%C3%A9s_du_menu_Rouvrir</comments>
		</item>
		<item>
			<title>Prendre des photos en utilisant des interfaces FireMonkey</title>
			<link>https://docwiki.embarcadero.com/RADStudio/Alexandria/f/index.php?title=Prendre_des_photos_en_utilisant_des_interfaces_FireMonkey&amp;diff=217604&amp;oldid=0</link>
			<guid isPermaLink="false">https://docwiki.embarcadero.com/RADStudio/Alexandria/f/index.php?title=Prendre_des_photos_en_utilisant_des_interfaces_FireMonkey&amp;diff=217604&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/RADStudio/Alexandria/f/index.php?title=Utilisateur:Yukikoi&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new mw-userlink&quot; title=&quot;Utilisateur:Yukikoi (page inexistante)&quot;&gt;&lt;bdi&gt;Yukikoi&lt;/bdi&gt;&lt;/a&gt; a importé &lt;a href=&quot;/RADStudio/Alexandria/fr/Prendre_des_photos_en_utilisant_des_interfaces_FireMonkey&quot; title=&quot;Prendre des photos en utilisant des interfaces FireMonkey&quot;&gt;Prendre des photos en utilisant des interfaces FireMonkey&lt;/a&gt; par téléversement de fichier (1 révision) LOC-23446&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Parent|Tutoriel mobile : Prendre une photo et la partager, et partager du texte (iOS et Android)}}&lt;br /&gt;
&lt;br /&gt;
Ce tutoriel explique comment prendre et gérer des photos sur vos périphériques mobiles en utilisant les interfaces [[lib_fr:FMX.MediaLibrary.IFMXPhotoLibrary|IFMXPhotoLibrary]] et [[lib_fr:FMX.MediaLibrary.IFMXCameraService|IFMXCameraService]].&amp;lt;br /&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Construction de l&amp;#039;interface utilisateur pour votre application==&lt;br /&gt;
&lt;br /&gt;
Déposez les composants suivants sur le [[Concepteur de fiches|Concepteur de fiches]] :&lt;br /&gt;
&lt;br /&gt;
*Composant [[lib_fr:FMX.StdCtrls.TToolBar|TToolBar]]&lt;br /&gt;
**Sur la barre d&amp;#039;outils, placez deux composants [[lib_fr:FMX.StdCtrls.TSpeedButton|TSpeedButton]]. Vous allez utiliser ces boutons pour prendre des photos avec la caméra du périphérique et les sélectionner dans la bibliothèque de photos du périphérique.&lt;br /&gt;
**Dans [[Inspecteur d&amp;#039;objets|l&amp;#039;inspecteur d&amp;#039;objets]], spécifiez les propriétés suivantes pour ces boutons :&lt;br /&gt;
***Définissez la propriété &amp;#039;&amp;#039;&amp;#039;StyleLookup&amp;#039;&amp;#039;&amp;#039; sur &amp;#039;&amp;#039;&amp;#039;cameratoolbuttonbordered&amp;#039;&amp;#039;&amp;#039; et &amp;#039;&amp;#039;&amp;#039;searchtoolbuttonbordered&amp;#039;&amp;#039;&amp;#039;, respectivement.&lt;br /&gt;
***Définissez la propriété &amp;#039;&amp;#039;&amp;#039;Align&amp;#039;&amp;#039;&amp;#039; sur &amp;#039;&amp;#039;&amp;#039;Left&amp;#039;&amp;#039;&amp;#039; et &amp;#039;&amp;#039;&amp;#039;Right&amp;#039;&amp;#039;&amp;#039;, respectivement.&lt;br /&gt;
*Composant [[lib_fr:FMX.Objects.TImage|TImage]]&lt;br /&gt;
**Définissez la propriété &amp;#039;&amp;#039;&amp;#039;Align&amp;#039;&amp;#039;&amp;#039; sur &amp;#039;&amp;#039;&amp;#039;Client&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Avant que vous définissiez le &amp;#039;&amp;#039;&amp;#039;style&amp;#039;&amp;#039;&amp;#039; ou la &amp;#039;&amp;#039;&amp;#039;vue&amp;#039;&amp;#039;&amp;#039; dans le [[Concepteur de fiches|Concepteur de fiches]], la fiche de cette application exemple doit maintenant ressembler à l&amp;#039;écran suivant :&lt;br /&gt;
&lt;br /&gt;
[[File:AppMasterUserInterface.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{{Note| Pour plus d&amp;#039;informations sur la sélection du &amp;#039;&amp;#039;&amp;#039;style&amp;#039;&amp;#039;&amp;#039; et des &amp;#039;&amp;#039;&amp;#039;vues&amp;#039;&amp;#039;&amp;#039;, voir [[Concepteur de fiches#Sélecteur de style|Sélecteur de style]] et [[Utilisation des vues FireMonkey|Utilisation des vues FireMonkey]].}}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Prise d&amp;#039;une photo avec la caméra du périphérique==&lt;br /&gt;
&lt;br /&gt;
Pour prendre des photos avec une caméra de périphérique mobile, vous pouvez utiliser l&amp;#039;interface [[lib_fr:FMX.MediaLibrary.IFMXCameraService|IFMXCameraService]]. Procédez comme suit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Ouvrez [[Editeur de code|l&amp;#039;éditeur de code]] et ajoutez les lignes suivantes à votre code si elles ne sont pas déjà présentes :&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&amp;#039;&amp;#039;&amp;#039;{{Delphi}}&amp;#039;&amp;#039;&amp;#039; :&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
uses&lt;br /&gt;
  System.Messaging, System.Permissions, FMX.MediaLibrary, FMX.Platform;&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&amp;#039;&amp;#039;&amp;#039;C++ :&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;System.Messaging.hpp&amp;gt;&lt;br /&gt;
#include &amp;lt;System.Permissions.hpp&amp;gt;&lt;br /&gt;
#include &amp;lt;FMX.MediaLibrary.hpp&amp;gt;&lt;br /&gt;
#include &amp;lt;FMX.Platform.hpp&amp;gt;&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Ajoutez l&amp;#039;en-tête de procédure suivant à la section private de la définition de fiche :&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&amp;#039;&amp;#039;&amp;#039;{{Delphi}}&amp;#039;&amp;#039;&amp;#039; :&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
 procedure DoDidFinish(Image: TBitmap);&lt;br /&gt;
 procedure DoMessageListener(const Sender: TObject; const M: TMessage);&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&amp;#039;&amp;#039;&amp;#039;C++ :&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void __fastcall DoDidFinish(TBitmap *Image);&lt;br /&gt;
void __fastcall DoMessageListener(const TObject *Sender, TMessage const *M);&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Dans la section implementation, définissez &amp;#039;&amp;#039;&amp;#039;DoDidFinish&amp;#039;&amp;#039;&amp;#039; et &amp;#039;&amp;#039;&amp;#039;DoMessageListener&amp;#039;&amp;#039;&amp;#039; comme suit :&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&amp;#039;&amp;#039;&amp;#039;{{Delphi}}&amp;#039;&amp;#039;&amp;#039; :&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
 procedure TForm1.DoDidFinish(Image: TBitmap);&lt;br /&gt;
begin&lt;br /&gt;
  Image1.Bitmap.Assign(Image);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.DoMessageListener(const Sender: TObject; const M: TMessage);&lt;br /&gt;
begin&lt;br /&gt;
  if M is TMessageDidFinishTakingImageFromLibrary then&lt;br /&gt;
    Image1.Bitmap.Assign(TMessageDidFinishTakingImageFromLibrary(M).Value);&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&amp;#039;&amp;#039;&amp;#039;C++ :&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void __fastcall TForm1::DoDidFinish(TBitmap *Image) {&lt;br /&gt;
	Image1-&amp;gt;Bitmap-&amp;gt;Assign(Image);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void __fastcall TForm1::DoMessageListener(const TObject *Sender, TMessage const *M) {&lt;br /&gt;
	TMessageDidFinishTakingImageFromLibrary const *v = dynamic_cast&amp;lt;TMessageDidFinishTakingImageFromLibrary const *&amp;gt;(M);&lt;br /&gt;
	if (v) {&lt;br /&gt;
		Image1-&amp;gt;Bitmap-&amp;gt;Assign(v-&amp;gt;Value);&lt;br /&gt;
	}&lt;br /&gt;
}&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Sur le [[Concepteur de fiches|Concepteur de fiches]], double-cliquez sur le bouton &amp;#039;&amp;#039;&amp;#039;SpeedButton1&amp;#039;&amp;#039;&amp;#039; puis, dans [[Editeur de code|l&amp;#039;éditeur de code]], implémentez le gestionnaire d&amp;#039;événement &amp;#039;&amp;#039;&amp;#039;onClick&amp;#039;&amp;#039;&amp;#039; suivant :&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&amp;#039;&amp;#039;&amp;#039;{{Delphi}}&amp;#039;&amp;#039;&amp;#039; :&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm1.SpeedButton1Click(Sender: TObject);&lt;br /&gt;
var&lt;br /&gt;
  Service: IFMXCameraService;&lt;br /&gt;
  Params: TParamsPhotoQuery;&lt;br /&gt;
begin&lt;br /&gt;
  if TPlatformServices.Current.SupportsPlatformService(IFMXCameraService, Service) then&lt;br /&gt;
  begin&lt;br /&gt;
    Params.Editable := True;&lt;br /&gt;
    // Specifies whether to save a picture to device Photo Library&lt;br /&gt;
    Params.NeedSaveToAlbum := True;&lt;br /&gt;
    Params.RequiredResolution := TSize.Create(640, 640);&lt;br /&gt;
    Params.OnDidFinishTaking := DoDidFinish;&lt;br /&gt;
{$IF Defined(ANDROID)}&lt;br /&gt;
    if TOSVersion.Check(11) then&lt;br /&gt;
      Service.TakePhoto(SpeedButton1, Params)&lt;br /&gt;
    else&lt;br /&gt;
      PermissionsService.RequestPermissions([&amp;#039;android.permission.WRITE_EXTERNAL_STORAGE&amp;#039;],&lt;br /&gt;
        procedure(const Permissions: TClassicStringDynArray; const GrantResults: TClassicPermissionStatusDynArray)&lt;br /&gt;
        begin&lt;br /&gt;
          if (Length(GrantResults) = 1) and (GrantResults[0] = TPermissionStatus.Granted) then&lt;br /&gt;
            Service.TakePhoto(SpeedButton1, Params)&lt;br /&gt;
          else&lt;br /&gt;
            ShowMessage(&amp;#039;Cannot take a photo because the required permission has not been granted&amp;#039;)&lt;br /&gt;
        end);&lt;br /&gt;
{$ELSE}&lt;br /&gt;
    Service.TakePhoto(SpeedButton1, Params);&lt;br /&gt;
{$ENDIF}&lt;br /&gt;
  end&lt;br /&gt;
  else&lt;br /&gt;
    ShowMessage(&amp;#039;This device does not support the camera service&amp;#039;);&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&amp;#039;&amp;#039;&amp;#039;C++ :&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void __fastcall TForm1::SpeedButton1Click(TObject *Sender) {&lt;br /&gt;
    _di_IFMXCameraService service;&lt;br /&gt;
    TParamsPhotoQuery params;&lt;br /&gt;
    if (TPlatformServices::Current-&amp;gt;SupportsPlatformService(__uuidof(IFMXCameraService), &amp;amp;service)) {&lt;br /&gt;
        params.Editable = true;&lt;br /&gt;
        // Specifies whether to save a picture to device Photo Library&lt;br /&gt;
        params.NeedSaveToAlbum = true;&lt;br /&gt;
        params.RequiredResolution = TSize(640, 640);&lt;br /&gt;
        params.OnDidFinishTaking = DoDidFinish;&lt;br /&gt;
#if defined(_PLAT_ANDROID)&lt;br /&gt;
        if (TOSVersion::Check(11)) {&lt;br /&gt;
            service-&amp;gt;TakePhoto(SpeedButton1, params);&lt;br /&gt;
        } else {&lt;br /&gt;
            PermissionsService()-&amp;gt;RequestPermissions({ &amp;quot;android.permission.WRITE_EXTERNAL_STORAGE&amp;quot; },&lt;br /&gt;
                [this, service, params](const TClassicStringDynArray Permissions, const TClassicPermissionStatusDynArray GrantResults) {&lt;br /&gt;
                    if (GrantResults.Length == 1 &amp;amp;&amp;amp; GrantResults[0] == TPermissionStatus::Granted) {&lt;br /&gt;
                        service-&amp;gt;TakePhoto(SpeedButton1, params);&lt;br /&gt;
                    } else {&lt;br /&gt;
                        ShowMessage(&amp;quot;Cannot take a photo because the required permission has not been granted&amp;quot;);&lt;br /&gt;
                    }&lt;br /&gt;
                });&lt;br /&gt;
        }&lt;br /&gt;
#else&lt;br /&gt;
        service-&amp;gt;TakePhoto(SpeedButton1, params);&lt;br /&gt;
#endif&lt;br /&gt;
    } else {&lt;br /&gt;
        ShowMessage(&amp;quot;This device does not support the camera service&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note| Lors de la création d&amp;#039;un projet d&amp;#039;application FireMonkey, l&amp;#039;option &amp;#039;&amp;#039;&amp;#039;’Camera project’&amp;#039;&amp;#039;&amp;#039; qui se trouve dans {{Menu|Projet &amp;amp;gt; Options &amp;amp;gt; Application &amp;amp;gt; [[Permissions d&amp;#039;utilisation|Permissions d&amp;#039;utilisation]]}} et qui est activée par défaut, a une incidence inattendue sur le comportement de l&amp;#039;application. Même si l&amp;#039;application n&amp;#039;accède pas directement à l&amp;#039;appareil photo (par ex. via le composant [[lib_fr:FMX.Media.TCameraComponent|TCameraComponent]]) et qu&amp;#039;elle demande à une autre application, comme l&amp;#039;application appareil photo intégrée, de le faire à sa place, dès que la permission d&amp;#039;utilisation &amp;lt;code&amp;gt;CAMERA&amp;lt;/code&amp;gt; est déclarée dans le fichier manifeste, elle devient une permission d&amp;#039;utilisation requise inattendue pour le service de plate-forme [[lib_fr:FMX.MediaLibrary.IFMXCameraService|IFMXCameraService]]. Il est donc conseillé de désactiver l&amp;#039;option &amp;#039;&amp;#039;&amp;#039;&amp;#039;Camera project’&amp;#039;&amp;#039;&amp;#039; afin d&amp;#039;éviter que vos applications ne réclament une permission d&amp;#039;utilisation non nécessaire.}}&lt;br /&gt;
&lt;br /&gt;
{{Note| Les nouvelles implémentations derrière les services de plate-forme [[lib_fr:FMX.MediaLibrary.IFMXCameraService|IFMXCameraService]] et [[lib_fr:FMX.MediaLibrary.IFMXTakenImageService|IFMXTakenImageService]] ne prennent plus en charge l&amp;#039;édition de l&amp;#039;image obtenue, car cette opération n&amp;#039;est pas supportée par la plate-forme &amp;#039;Android&amp;#039;. En conséquence, le champ [[lib_fr:FMX.MediaLibrary.TParamsPhotoQuery.Editable|TParamsPhotoQuery.Editable]] est ignoré. }}&lt;br /&gt;
&lt;br /&gt;
===Exécution de l&amp;#039;application===&lt;br /&gt;
&lt;br /&gt;
Exécutez l&amp;#039;application sur votre périphérique mobile en appuyant sur &amp;#039;&amp;#039;&amp;#039;F9&amp;#039;&amp;#039;&amp;#039; ou en choisissant &amp;lt;font color=&amp;quot;#598527&amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;Exécuter &amp;amp;gt; Exécuter&amp;#039;&amp;#039;&amp;#039;&amp;lt;/font&amp;gt;. Pour activer la caméra du périphérique, appuyez sur l&amp;#039;icône de la caméra sur la barre d&amp;#039;outils de votre application :&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!&amp;#039;&amp;#039;&amp;#039; iOS&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
!&amp;#039;&amp;#039;&amp;#039; Android&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[File:TakePicture IOS.png|300px]]&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; |&lt;br /&gt;
[[File:TakePicture Android.png|300px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Pour utiliser cette photo :&lt;br /&gt;
&lt;br /&gt;
*Sur les périphériques Android, cliquez sur &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
*Sur les périphériques iOS, cliquez sur &amp;#039;&amp;#039;&amp;#039;Use&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
===Enregistrement d&amp;#039;une photo dans la bibliothèque de photos du périphérique===&lt;br /&gt;
&lt;br /&gt;
Pour que votre application enregistre automatiquement les photos prises par la caméra du périphérique dans la bibliothèque de photos de ce périphérique, définissez le champ &amp;#039;&amp;#039;&amp;#039;[[lib_fr:FMX.MediaLibrary.TParamsPhotoQuery.NeedSaveToAlbum|NeedSaveToAlbum]]&amp;#039;&amp;#039;&amp;#039; du second paramètre de la méthode &amp;#039;&amp;#039;&amp;#039;[[lib_fr:FMX.MediaLibrary.IFMXCameraService.TakePhoto|TakePhoto]]&amp;#039;&amp;#039;&amp;#039; sur &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; (voir les extraits de code à [[#Prise d&amp;#039;une photo avec la caméra du périphérique|l&amp;#039;étape 4 de la procédure ci-dessus]]).&lt;br /&gt;
&lt;br /&gt;
Votre application enregistre les photos dans un album au sein de la bibliothèque de photos du périphérique. Le nom de l&amp;#039;album dépend du système d&amp;#039;exploitation du périphérique, comme indiqué ci-dessous :&lt;br /&gt;
&lt;br /&gt;
:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;padding-left: 2em&amp;quot; |&amp;#039;&amp;#039;&amp;#039;Version du système d&amp;#039;exploitation&amp;amp;nbsp;&amp;amp;nbsp;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
! style=&amp;quot;padding-left: 2em&amp;quot; |&amp;#039;&amp;#039;&amp;#039;Nom de l&amp;#039;album&amp;amp;nbsp;&amp;amp;nbsp;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 2em&amp;quot; |iOS&lt;br /&gt;
| style=&amp;quot;padding-left: 2em&amp;quot; |Pellicule&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding-left: 2em&amp;quot; |Android&lt;br /&gt;
| style=&amp;quot;padding-left: 2em&amp;quot; |Caméra&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Sélection d&amp;#039;une photo dans la bibliothèque de photos du périphérique==&lt;br /&gt;
&lt;br /&gt;
{{FM}} définit l&amp;#039;interface [[lib_fr:FMX.MediaLibrary.IFMXTakenImageService|IFMXTakenImageService]] qui vous permet de sélectionner une photo à partir de la bibliothèque de photos du périphérique.&lt;br /&gt;
&lt;br /&gt;
Pour que votre application sélectionne une photo à partir de la bibliothèque de photos du périphérique, procédez comme suit :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Sur le [[Concepteur de fiches|Concepteur de fiches]], double-cliquez sur le bouton &amp;#039;&amp;#039;&amp;#039;SpeedButton2&amp;#039;&amp;#039;&amp;#039; (afin de choisir une photo), puis dans [[Editeur de code|l&amp;#039;éditeur de code]], implémentez le gestionnaire d&amp;#039;événement &amp;#039;&amp;#039;&amp;#039;onClick&amp;#039;&amp;#039;&amp;#039; suivant :&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&amp;#039;&amp;#039;&amp;#039;{{Delphi}}&amp;#039;&amp;#039;&amp;#039; :&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm1.SpeedButton2Click(Sender: TObject);&lt;br /&gt;
var&lt;br /&gt;
  Service: IFMXTakenService;&lt;br /&gt;
  Params: TParamsPhotoQuery;&lt;br /&gt;
begin&lt;br /&gt;
  if TPlatformServices.Current.SupportsPlatformService(IFMXTakenService, Service) then&lt;br /&gt;
  begin&lt;br /&gt;
    Params.RequiredResolution := TSize.Create(640, 640);&lt;br /&gt;
    Params.OnDidFinishTaking := DoDidFinish;&lt;br /&gt;
    Service.TakeImageFromLibrary(SpeedButton2, Params);&lt;br /&gt;
  end;&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&amp;#039;&amp;#039;&amp;#039;C++ :&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void __fastcall TForm1::SpeedButton2Click(TObject *Sender) {&lt;br /&gt;
    _di_IFMXTakenImageService service;&lt;br /&gt;
    TParamsPhotoQuery params;&lt;br /&gt;
    if (TPlatformServices::Current-&amp;gt;SupportsPlatformService(__uuidof(IFMXTakenImageService), &amp;amp;service) {&lt;br /&gt;
        params.RequiredResolution = TSize(640, 640);&lt;br /&gt;
        params.OnDidFinishTaking = DoDidFinish;&lt;br /&gt;
        service-&amp;gt;TakeImageFromLibrary(SpeedButton2, params);&lt;br /&gt;
    } else {&lt;br /&gt;
        ShowMessage(&amp;quot;This device does not support the photo library service&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Dans la vue [[Vue Structure|Structure]], sélectionnez &amp;#039;&amp;#039;&amp;#039;Form1&amp;#039;&amp;#039;&amp;#039;, puis dans [[Inspecteur d&amp;#039;objets|l&amp;#039;inspecteur d&amp;#039;objets]], ouvrez l&amp;#039;onglet &amp;#039;&amp;#039;&amp;#039;Evénements&amp;#039;&amp;#039;&amp;#039;, double-cliquez sur un champ vide en regard de &amp;#039;&amp;#039;&amp;#039;OnCreate&amp;#039;&amp;#039;&amp;#039;, et implémentez le gestionnaire d&amp;#039;événement &amp;#039;&amp;#039;&amp;#039;onFormCreate&amp;#039;&amp;#039;&amp;#039; suivant : &amp;lt;br /&amp;gt;&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&amp;#039;&amp;#039;&amp;#039;{{Delphi}}&amp;#039;&amp;#039;&amp;#039; :&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
 procedure TForm1.FormCreate(Sender: TObject);&lt;br /&gt;
begin&lt;br /&gt;
TMessageManager.DefaultManager.SubscribeToMessage(TMessageDidFinishTakingImageFromLibrary, DoMessageListener);&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&amp;#039;&amp;#039;&amp;#039;C++ :&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void __fastcall TForm1::FormCreate(TObject *Sender) {&lt;br /&gt;
	TMessageManager::DefaultManager-&amp;gt;SubscribeToMessage(__classid(TMessageDidFinishTakingImageFromLibrary),&lt;br /&gt;
		TMessageListenerMethod(&amp;amp;DoMessageListener));&lt;br /&gt;
}&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Compilez et exécutez votre application. Pour sélectionner une photo, appuyez sur le bouton de recherche, puis sélectionnez la photo de votre choix dans la bibliothèque de photos du périphérique.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!&amp;#039;&amp;#039;&amp;#039; iOS&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
!&amp;#039;&amp;#039;&amp;#039; Android&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; |&lt;br /&gt;
[[File:TakePhotoFromLibraryAction.PNG|300px]] &amp;lt;br /&amp;gt;&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; |&lt;br /&gt;
[[File:Android SelectfromLibrary.png|300px]]&lt;br /&gt;
|}&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{{Note| Sur les iPad, l&amp;#039;application affiche des miniatures des photos dans une fenêtre popup en regard de l&amp;#039;élément de contrôle spécifié dans le premier paramètre de la méthode [[lib_fr:FMX.MediaLibrary.IFMXTakenImageService.TakeImageFromLibrary|TakeImageFromLibrary]]. Dans votre projet exemple, &amp;#039;&amp;#039;&amp;#039;SpeedButton2&amp;#039;&amp;#039;&amp;#039; fait référence au bouton de recherche.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note| Les nouvelles implémentations derrière les services de plate-forme [[lib_fr:FMX.MediaLibrary.IFMXCameraService|IFMXCameraService]] et [[lib_fr:FMX.MediaLibrary.IFMXTakenImageService|IFMXTakenImageService]] ne prennent plus en charge l&amp;#039;édition de l&amp;#039;image obtenue, car cette opération n&amp;#039;est pas supportée par la plate-forme &amp;#039;Android&amp;#039;. En conséquence, le champ [[lib_fr:FMX.MediaLibrary.TParamsPhotoQuery.Editable|TParamsPhotoQuery.Editable]] est ignoré. }}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Prendre et partager des photos et du texte en utilisant les listes d&amp;#039;actions|Prendre et partager des photos et du texte en utilisant les listes d&amp;#039;actions]]&lt;br /&gt;
*[[samp_en:FMX.CameraComponent Sample|Exemple FMX.CameraComponent]]&lt;br /&gt;
&lt;br /&gt;
*[[lib_fr:FMX.StdCtrls.TButton|FMX.StdCtrls.TButton]]&lt;br /&gt;
*[[lib_fr:FMX.Objects.TImage|FMX.Objects.TImage]]&lt;br /&gt;
*[[lib_fr:FMX.MediaLibrary|FMX.MediaLibrary]]&lt;br /&gt;
*[[lib_fr:FMX.MediaLibrary.IFMXPhotoLibrary|IFMXPhotoLibrary]]&lt;br /&gt;
*[[lib_fr:FMX.MediaLibrary.IFMXCameraService|IFMXCameraService]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Delphi]]&lt;br /&gt;
[[Category:FMX]]&lt;br /&gt;
[[Category:IOS]]&lt;br /&gt;
[[Category:XE8]]&lt;br /&gt;
[[Category:Android]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</description>
			<pubDate>Sat, 09 May 2026 02:19:39 GMT</pubDate>
			<dc:creator>Yukikoi</dc:creator>
			<comments>https://docwiki.embarcadero.com/RADStudio/Alexandria/fr/Discussion:Prendre_des_photos_en_utilisant_des_interfaces_FireMonkey</comments>
		</item>
		<item>
			<title>Connexion à Microsoft SQL Server (FireDAC)</title>
			<link>https://docwiki.embarcadero.com/RADStudio/Alexandria/f/index.php?title=Connexion_%C3%A0_Microsoft_SQL_Server_(FireDAC)&amp;diff=217598&amp;oldid=0</link>
			<guid isPermaLink="false">https://docwiki.embarcadero.com/RADStudio/Alexandria/f/index.php?title=Connexion_%C3%A0_Microsoft_SQL_Server_(FireDAC)&amp;diff=217598&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/RADStudio/Alexandria/f/index.php?title=Utilisateur:Yukikoi&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new mw-userlink&quot; title=&quot;Utilisateur:Yukikoi (page inexistante)&quot;&gt;&lt;bdi&gt;Yukikoi&lt;/bdi&gt;&lt;/a&gt; a importé &lt;a href=&quot;/RADStudio/Alexandria/fr/Connexion_%C3%A0_Microsoft_SQL_Server_(FireDAC)&quot; title=&quot;Connexion à Microsoft SQL Server (FireDAC)&quot;&gt;Connexion à Microsoft SQL Server (FireDAC)&lt;/a&gt; par téléversement de fichier (1 révision) LOC-23446&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Parent|Connectivité des bases de données (FireDAC)}}&lt;br /&gt;
Cette rubrique explique comment établir une connexion à Microsoft SQL Server.&lt;br /&gt;
&lt;br /&gt;
==Versions prises en charge==&lt;br /&gt;
&lt;br /&gt;
Le pilote natif FireDAC prend en charge Microsoft SQL Server éditions Standard et Express version 2000 et ultérieure, ainsi que Microsoft SQL Azure. Pour une description sur comment établir une connexion à Microsoft SQL Server Compact Edition, voir [[Connexion à Microsoft SQL Server Compact Edition (FireDAC)|Connexion à Microsoft SQL Server Compact Edition]].&lt;br /&gt;
&lt;br /&gt;
==Logiciel client==&lt;br /&gt;
&lt;br /&gt;
===Logiciel client Windows===&lt;br /&gt;
&lt;br /&gt;
FireDAC requiert l&amp;#039;installation de l&amp;#039;un des pilotes ODBC x86 ou x64 Microsoft SQL Server sur la station de travail :&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Pilote ODBC SQL Server&amp;#039;&amp;#039;&amp;#039; pour la connectivité de SQL Server 2000. Il est probable que le pilote ODBC est déjà installé sur votre station de travail. Sinon, voir les [https://learn.microsoft.com/en-us/sql/connect/odbc/download-odbc-driver-for-sql-server?view=sql-server-ver16 informations détaillées].&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;SQL Native Client&amp;#039;&amp;#039;&amp;#039; pour la connectivité de SQL Server 2000 et 2005. Nous vous recommandons fortement d&amp;#039;installer SQL Native Client si votre application doit fonctionner avec SQL Server 2005. Voir Microsoft [https://learn.microsoft.com/en-us/sql/relational-databases/native-client/sql-server-native-client?view=sql-server-ver15 SQL Server Native Client].&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;SQL Server Native Client NN.N&amp;#039;&amp;#039;&amp;#039; pour la connectivité de SQL Server 2000, 2005, 2008, 2012 et SQL Azure. Nous vous recommandons fortement d&amp;#039;installer SQL Server Native Client NN.N si votre application doit fonctionner avec SQL Server 2008, 2012 ou SQL Azure. Voir [https://www.microsoft.com/en-us/download/details.aspx?id=57606 Microsoft SQL Server 2008 Native Client].&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;SQL Server Native Client 11.0&amp;#039;&amp;#039;&amp;#039; pour la connectivité de la base de données locale.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Pilote ODBC 13-18&amp;#039;&amp;#039;&amp;#039; pour la connectivité de SQL Server 2008, 2008 R2, 2012, 2014, 2016, 2017 et 2019 et SQL Azure. Nous vous recommandons d&amp;#039;utiliser le &amp;#039;&amp;#039;&amp;#039;pilote ODBC 18&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
{{Note| SQL Server Native Client 10.0 (SQL Server 2008) peut échouer à appeler une procédure stockée lorsqu&amp;#039;il est connecté à SQL Server 2000. Le symptôme de ce problème est le message d&amp;#039;erreur &amp;quot;Syntaxe incorrecte proche de {&amp;quot;. Dans ce cas, utilisez le pilote ODBC de la distribution SQL Server 2000 ou 2005.}}&lt;br /&gt;
&lt;br /&gt;
Si le pilote ODBC SQL Server n&amp;#039;a pas été installé correctement, une exception est déclenchée lorsque vous tentez d&amp;#039;établir une connexion :&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;
===Logiciel client macOS===&lt;br /&gt;
&lt;br /&gt;
FireDAC requiert :&lt;br /&gt;
&lt;br /&gt;
*la bibliothèque du gestionnaire de pilote ODBC x86, [[UnixODBC (FireDAC)|UnixODBC]] (&amp;#039;&amp;#039;&amp;#039;libodbc.dylib&amp;#039;&amp;#039;&amp;#039;).&lt;br /&gt;
*le pilote ODBC FreeTDS x86 (&amp;#039;&amp;#039;&amp;#039;libtdsodbc.dylib&amp;#039;&amp;#039;&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
FreeTDS peut être transféré à partir de CVS dans un dossier de votre répertoire home ([http://www.freetds.org/userguide/ plus d&amp;#039;infos 1]) ([http://www.unixodbc.org/doc/FreeTDS.html plus d&amp;#039;infos 2]). Pour installer FreeTDS sur macOS, utilisez les commandes :&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 cvs -z3 -d:pserver:anonymous@freetds.cvs.sourceforge.net:/cvsroot/freetds checkout -P freetdsc&lt;br /&gt;
 cd freetds&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
 ./configure --with-tdsver=8.0 --with-unixodbc=/usr/local&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 echo [FreeTDS] &amp;amp;gt; tds.driver.template&lt;br /&gt;
 echo Description=v0.82 with protocol v8.0 &amp;amp;gt;&amp;amp;gt; tds.driver.template&lt;br /&gt;
 echo Driver=/usr/local/lib/libtdsodbc.so &amp;amp;gt;&amp;amp;gt; tds.driver.template&lt;br /&gt;
 odbcinst -i -d -f tds.driver.template&lt;br /&gt;
 cd ..&lt;br /&gt;
&lt;br /&gt;
Notez que vous devrez peut-être également installer l&amp;#039;utilitaire gawk. A ce stade, vous pouvez configurer un DSN ODBC ou tester la connexion FireDAC.&lt;br /&gt;
&lt;br /&gt;
Notez que le pilote ODBC FreeTDS n&amp;#039;est pas aussi performant et stable que le pilote ODBC Microsoft d&amp;#039;origine.&lt;br /&gt;
&lt;br /&gt;
===Logiciel client Linux===&lt;br /&gt;
&lt;br /&gt;
FireDAC requiert la [[UnixODBC (FireDAC)|bibliothèque du gestionnaire de pilotes ODBC 64 bits]] et le pilote Microsoft ODBC Driver 11 pour SQL Server sur Linux.&lt;br /&gt;
&lt;br /&gt;
Pour installer le pilote Microsoft ODBC Driver 11 pour SQL Server sur Linux :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Sur &amp;#039;&amp;#039;&amp;#039;{{SupportedUbuntu}}&amp;#039;&amp;#039;&amp;#039;, exécutez les commandes suivantes :&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install openssl libkrb5-3 libc6 e2fsprogs&lt;br /&gt;
sudo ln -s /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 /usr/lib/x86_64-linux-gnu/libcrypto.so.10&lt;br /&gt;
sudo ln -s /lib/x86_64-linux-gnu/libssl.so.1.0.0    /usr/lib/x86_64-linux-gnu/libssl.so.10&lt;br /&gt;
wget http://download.microsoft.com/download/B/C/D/BCDD264C-7517-4B7D-8159-C99FC5535680/RedHat6/msodbcsql-11.0.2270.0.tar.gz&lt;br /&gt;
tar -xavf msodbcsql-11.0.2270.0.tar.gz&lt;br /&gt;
sudo bash msodbcsql-11.0.2270.0/install.sh install --accept-license --force&amp;lt;/source&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Sur &amp;#039;&amp;#039;&amp;#039;{{SupportedRHEL}}&amp;#039;&amp;#039;&amp;#039;, [https://www.microsoft.com/en-us/download/details.aspx?id=36437 téléchargez l&amp;#039;installateur correspondant] et [https://msdn.microsoft.com/en-us/library/hh568454%28v=sql.110%29.aspx#Anchor_1 suivez les instructions d&amp;#039;installation].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Liaison du pilote==&lt;br /&gt;
&lt;br /&gt;
Pour lier le pilote :&lt;br /&gt;
&lt;br /&gt;
*déposez un composant [[lib_fr:FireDAC.Phys.MSSQL.TFDPhysMSSQLDriverLink|TFDPhysMSSQLDriverLink]] à 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.MSSQL|FireDAC.Phys.MSSQL]] dans la clause uses.&lt;br /&gt;
&lt;br /&gt;
==Paramètres de définition de la connexion==&lt;br /&gt;
&lt;br /&gt;
Pour établir la connexion au SGBD Microsoft SQL Server, la plupart des applications vous demandent de spécifier les paramètres DriverID, Server, Database, OSAuthent, User_Name et Password, voir [[Définition d&amp;#039;une connexion (FireDAC)|Définition d&amp;#039;une connexion (FireDAC)]] pour plus de détails.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;DriverID=MSSQL&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;Server&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Nom d&amp;#039;un serveur exécutant SQL Server sur le réseau. La valeur doit être le nom d&amp;#039;un serveur sur le réseau ou le nom d&amp;#039;une entrée de serveur avancé SQL Server Client Network Utility.&lt;br /&gt;
Lorsque vous établissez une connexion à SQL Azure, vous devez ajouter le préfixe &amp;quot;tcp:&amp;quot; au nom du serveur.&lt;br /&gt;
{{Note| Un port TPC/IP alternatif peut être spécifié après le nom du serveur, séparé par une virgule.}}&lt;br /&gt;
{{Note| Pour établir une connexion à une instance nommée sur Linux, le port TPC/IP doit être spécifié après le nom du serveur, séparé par une virgule. Ne spécifiez pas le nom de l&amp;#039;instance.}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
*127.0.0.1\SQLEXPRESS&lt;br /&gt;
*SrvHost, 4000&lt;br /&gt;
*tcp:nasdfert6.database.windows.net&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; |Uniquement pour macOS. Spécifie le port d&amp;#039;écoute de SQL Server.&lt;br /&gt;
Pour la plate-forme Windows, le port peut être spécifié après une virgule dans la valeur du paramètre Server. Par exemple, Server=host, port. Le port par défaut est 1433.&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;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 par défaut pour la connexion. Si le paramètre Database n&amp;#039;est pas spécifié, la base de données par défaut spécifiée pour la connexion est utilisée.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Northwind&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&amp;#039;&amp;#039;&amp;#039;OSAuthent&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 le mode d&amp;#039;authentification :&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Yes&amp;#039;&amp;#039;&amp;#039; -- utiliser l&amp;#039;authentification Windows.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;No&amp;#039;&amp;#039;&amp;#039; -- utiliser l&amp;#039;authentification du SGBD. C&amp;#039;est la valeur par défaut.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |No&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 de connexion à SQL Server, si OSAuthent=No.&lt;br /&gt;
Lorsque vous établissez une connexion à SQL Azure, vous devez ajouter le suffixe &amp;quot;@&amp;amp;lt;server&amp;amp;gt;&amp;quot; à votre nom d&amp;#039;utilisateur.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
*sa&lt;br /&gt;
*addemo@nasdfert6&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 connexion à SQL Server, si OSAuthent=No.&lt;br /&gt;
Notez que les mots de passe comportant &amp;#039;{&amp;#039; et &amp;#039;}&amp;#039; ne sont pas pris en charge.&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;Network&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Nom d&amp;#039;une bibliothèque de liaison dynamique de bibliothèque réseau. Le nom ne doit pas nécessairement inclure le chemin d&amp;#039;accès et ne doit pas inclure l&amp;#039;extension de nom de fichier .dll.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |dbnmpntw&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&amp;#039;&amp;#039;&amp;#039;Address&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Adresse réseau du serveur exécutant une instance de SQL Server. &amp;#039;&amp;#039;&amp;#039;Address&amp;#039;&amp;#039;&amp;#039; est généralement le nom réseau du serveur, mais il peut s&amp;#039;agir d&amp;#039;autres noms, par exemple un canal, ou un port TCP/IP et une adresse de socket.&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;MARS&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 prise en charge MARS (Multiple Active Result Sets) dans une connexion :&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Yes&amp;#039;&amp;#039;&amp;#039; -- MARS est activé pour une connexion. 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; -- MARS est désactivé.&lt;br /&gt;
&lt;br /&gt;
MARS est une fonctionnalité prise en charge par SQL 2005 et ultérieur ou par SQL Azure. Sachez que l&amp;#039;activation de la fonctionnalité MARS peut entraîner une dégradation des performances.&lt;br /&gt;
Pour de plus amples informations sur MARS, voir : [http://msdn.microsoft.com/en-us/library/ms131686.aspx Using Multiple Active Result Sets (MARS) (EN)]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |No&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&amp;#039;&amp;#039;&amp;#039;Workstation&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |ID de la station de travail. Généralement, il s&amp;#039;agit du nom réseau de l&amp;#039;ordinateur sur lequel réside l&amp;#039;application (facultatif). Si elle est spécifiée, cette valeur est stockée dans la colonne hostname de master.dbo.sysprocesses column et est retournée par sp_who et la fonction HOST_NAME de Transact-SQL.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Bookkeeper1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&amp;#039;&amp;#039;&amp;#039;Language&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Nom du langage SQL Server (facultatif). Lors de la connexion à un serveur SQL Server ayant plusieurs langages, &amp;#039;&amp;#039;&amp;#039;Language&amp;#039;&amp;#039;&amp;#039; spécifie le jeu de messages utilisé pour la connexion.&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;Encrypt&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 le cryptage du trafic réseau :&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Yes&amp;#039;&amp;#039;&amp;#039; -- le trafic réseau est crypté.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;No&amp;#039;&amp;#039;&amp;#039; -- aucun cryptage n&amp;#039;est utilisé. C&amp;#039;est la valeur par défaut.&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;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&amp;#039;écoulant avant qu&amp;#039;une application dépasse le temps imparti pour établir la connexion. 0 spécifie un délai d&amp;#039;attente infini (valeur par défaut).&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;VariantFormat&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 représentation du type de données SQL_VARIANT :&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;String&amp;#039;&amp;#039;&amp;#039; -- les valeurs sont représentées en tant que dtWideString. Une valeur de chaîne est retournée en tant que chaîne hex, des nombres en tant que chaînes, etc. C&amp;#039;est la valeur par défaut.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Binary&amp;#039;&amp;#039;&amp;#039; -- les valeurs sont représentées en tant que dtByteString avec présentation des données brutes. Une valeur de chaîne est retournée en tant que chaîne avec codage d&amp;#039;origine, les nombres sont retournés au format binaire, etc.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Binary&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;
*&amp;#039;&amp;#039;&amp;#039;Choisir&amp;#039;&amp;#039;&amp;#039; -- laisse FireDAC détecter automatiquement l’encodage des données caractère : ANSI ou Unicode. C&amp;#039;est la valeur par défaut.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;ANSI&amp;#039;&amp;#039;&amp;#039; -- les données caractère sont représentées en tant que dtWideString.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Choisir&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 obtient la table et la colonne d&amp;#039;origine du champ en plus des autres attributs de colonne. Le fait de définir cette option sur &amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; peut ralentir 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. C&amp;#039;est la 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;ApplicationName&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;application. Si elle est spécifiée, cette valeur est stockée dans la colonne program_name de master.dbo.sysprocesses column et est retournée par sp_who et la fonction APP_NAME de Transact-SQL.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |AllBooks&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 la valeur des paramètres de connexion ODBC supplémentaires.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |MARS_Connection=no;Regional=yes&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&amp;#039;&amp;#039;&amp;#039;MetaDefCatalog&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 par défaut. En mode conception, le code exclut le nom du catalogue du nom d&amp;#039;objet s&amp;#039;il est égal à MetaDefCatalog.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Northwind&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; |dbo&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&amp;#039;&amp;#039;&amp;#039;MetaCaseIns&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 le respect de la casse des métadonnées :&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; -- recherche de métadonnées sans tenir compte de la casse.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039; -- dépend du classement de base de données. C&amp;#039;est la 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;MetaCaseInsCat&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 le respect de la casse des noms du catalogue SQL Server. Il peut prendre l&amp;#039;une des valeurs suivantes :&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Choose&amp;#039;&amp;#039;&amp;#039; -- laisse FireDAC détecter automatiquement le respect de la casse des noms du catalogue. C&amp;#039;est la valeur par défaut.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;False&amp;#039;&amp;#039;&amp;#039; -- les noms du catalogue sont sensibles à la casse.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;True&amp;#039;&amp;#039;&amp;#039; -- les noms de catalogue ne sont pas sensibles à la casse.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |True&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Cas d&amp;#039;utilisation==&lt;br /&gt;
&lt;br /&gt;
===Utilisation d&amp;#039;une connexion sécurisée===&lt;br /&gt;
&lt;br /&gt;
Pour utiliser l&amp;#039;encryptage TLS/SSL, transmettez la paire clé-valeur {{Code|1=TrustServerCertificate=yes}} dans la valeur du paramètre &amp;#039;&amp;#039;&amp;#039;ODBCAdvanced&amp;#039;&amp;#039;&amp;#039; :&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 ODBCAdvanced=TrustServerCertificate=yes&lt;br /&gt;
&lt;br /&gt;
===Autres cas d&amp;#039;utilisation===&lt;br /&gt;
&lt;br /&gt;
*Etablir la connexion à l&amp;#039;instance SQL Server locale en utilisant l&amp;#039;authentification SQL Server :&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 DriverID=MSSQL&lt;br /&gt;
 Server=127.0.0.1&lt;br /&gt;
 Database=Northwind&lt;br /&gt;
 User_Name=sa&lt;br /&gt;
 MetaDefSchema=dbo&lt;br /&gt;
 MetaDefCatalog=Northwind&lt;br /&gt;
&lt;br /&gt;
*Etablir la connexion à SQL Express 2005 en utilisant l&amp;#039;authentification Windows :&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 DriverID=MSSQL&lt;br /&gt;
 Server=DA\SQLEXPRESS&lt;br /&gt;
 Database=Northwind&lt;br /&gt;
 OSAuthent=Yes&lt;br /&gt;
 MARS=no&lt;br /&gt;
&lt;br /&gt;
*Etablir la connexion à SQL Azure. Notez la présence du suffixe &amp;quot;@&amp;amp;lt;server&amp;amp;gt;&amp;quot; dans User_Name et du préfixe &amp;quot;tcp:&amp;quot; dans les paramètres Server :&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 DriverID=MSSQL&lt;br /&gt;
 Server=tcp:nasdfert6.database.windows.net&lt;br /&gt;
 Database=Northwind&lt;br /&gt;
 User_Name=addemo@nasdfert6&lt;br /&gt;
 Password=asd123zxc&lt;br /&gt;
 Encrypt=Yes&lt;br /&gt;
 MetaDefSchema=dbo&lt;br /&gt;
 MetaDefCatalog=Northwind&lt;br /&gt;
&lt;br /&gt;
*Etablir la connexion à une base de données locale :&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 DriverID=MSSQL&lt;br /&gt;
 Server=(localdb)\\v11.0&lt;br /&gt;
 Database=master&lt;br /&gt;
 OSAuthent=Yes&lt;br /&gt;
&lt;br /&gt;
*Etablir une connexion à une base de données locale et attacher un fichier de base de données :&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 Server=(localdb)\\v11.0&lt;br /&gt;
 DriverID=MSSQL&lt;br /&gt;
 ODBCAdvanced=AttachDbFileName=C:\\Users\\Alex\\ADDemo.mdf&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;
===Exemples===&lt;br /&gt;
&lt;br /&gt;
*Exemple [[samp_en:FireDAC.MSSQL Sample|FireDAC MS SQL]]&lt;br /&gt;
&lt;br /&gt;
[[Category:FireDAC]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</description>
			<pubDate>Sat, 09 May 2026 02:19:37 GMT</pubDate>
			<dc:creator>Yukikoi</dc:creator>
			<comments>https://docwiki.embarcadero.com/RADStudio/Alexandria/fr/Discussion:Connexion_%C3%A0_Microsoft_SQL_Server_(FireDAC)</comments>
		</item>
		<item>
			<title>Web</title>
			<link>https://docwiki.embarcadero.com/RADStudio/Alexandria/f/index.php?title=Web&amp;diff=217600&amp;oldid=0</link>
			<guid isPermaLink="false">https://docwiki.embarcadero.com/RADStudio/Alexandria/f/index.php?title=Web&amp;diff=217600&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/RADStudio/Alexandria/f/index.php?title=Utilisateur:Yukikoi&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new mw-userlink&quot; title=&quot;Utilisateur:Yukikoi (page inexistante)&quot;&gt;&lt;bdi&gt;Yukikoi&lt;/bdi&gt;&lt;/a&gt; a importé &lt;a href=&quot;/RADStudio/Alexandria/fr/Web&quot; title=&quot;Web&quot;&gt;Web&lt;/a&gt; par téléversement de fichier (1 révision) LOC-23446&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Parent|Menu Fichier}}&lt;br /&gt;
&lt;br /&gt;
{{Menu| Fichier &amp;amp;gt; Nouveau &amp;amp;gt; Autre &amp;amp;gt; Autre &amp;amp;gt; Web}}&lt;br /&gt;
&lt;br /&gt;
Utilisez cette boîte de dialogue pour créer de nouveaux fichiers (JavaScript, Page HTML, Document Markdown, Document WML, Feuille de style CSS, Fichier XML, Schéma XML, Feuille de style XSL ou XSLT).&lt;br /&gt;
&lt;br /&gt;
[[File:Web.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
===Voir aussi===&lt;br /&gt;
&lt;br /&gt;
*[[Nouveaux éléments|Nouveaux éléments]]&lt;br /&gt;
*[[Experts de test - Index|Test unitaire]]&lt;/div&gt;</description>
			<pubDate>Sat, 09 May 2026 02:19:37 GMT</pubDate>
			<dc:creator>Yukikoi</dc:creator>
			<comments>https://docwiki.embarcadero.com/RADStudio/Alexandria/fr/Discussion:Web</comments>
		</item>
		<item>
			<title>Prise en charge des documents Markdown</title>
			<link>https://docwiki.embarcadero.com/RADStudio/Alexandria/f/index.php?title=Prise_en_charge_des_documents_Markdown&amp;diff=217602&amp;oldid=0</link>
			<guid isPermaLink="false">https://docwiki.embarcadero.com/RADStudio/Alexandria/f/index.php?title=Prise_en_charge_des_documents_Markdown&amp;diff=217602&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/RADStudio/Alexandria/f/index.php?title=Utilisateur:Yukikoi&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new mw-userlink&quot; title=&quot;Utilisateur:Yukikoi (page inexistante)&quot;&gt;&lt;bdi&gt;Yukikoi&lt;/bdi&gt;&lt;/a&gt; a importé &lt;a href=&quot;/RADStudio/Alexandria/fr/Prise_en_charge_des_documents_Markdown&quot; title=&quot;Prise en charge des documents Markdown&quot;&gt;Prise en charge des documents Markdown&lt;/a&gt; par téléversement de fichier (1 révision) LOC-23446&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Parent|Référence EDI et utilitaires}}&lt;br /&gt;
&lt;br /&gt;
==Prise en charge des documents Markdown et des prévisualisations HTML dans l&amp;#039;EDI==&lt;br /&gt;
&lt;br /&gt;
Les fichiers Markdown prennent en charge les liens vers des emails, des pages web et des fichiers. Ils prennent également en charge les vues table.&lt;br /&gt;
Le fichier Markdown peut être modifié dans l&amp;#039;onglet Code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Markdowns.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note| Les fichiers liés s&amp;#039;ouvrent uniquement à l&amp;#039;intérieur d&amp;#039;un onglet dans l&amp;#039;EDI. L&amp;#039;EDI ne permet pas d&amp;#039;ouvrir un fichier directement dans le système. Toutefois, les liens web s&amp;#039;ouvrent dans le navigateur système par défaut.}}&lt;br /&gt;
&lt;br /&gt;
Les liens vers des images ou des fichiers peuvent être absolus ou relatifs à l&amp;#039;emplacement du fichier Markdown.&lt;br /&gt;
&lt;br /&gt;
{{Note| Seuls les chemins locaux sont pris en charge.}}&lt;br /&gt;
&lt;br /&gt;
La restitution de l&amp;#039;affichage du fichier Markdown fonctionne avec la feuille de style CSS. L&amp;#039;EDI convertit les couleurs système spécifiées dans un fichier CSS en couleurs correspondant au thème en cours. Pour modifier le fichier Markdown.css de l&amp;#039;EDI (dans ObjRepos), utilisez les couleurs comportant un préfixe ide_ (par exemple, color: ide_red;).&lt;br /&gt;
&lt;br /&gt;
{{Note| Vous ne pouvez pas modifier les fichiers HTML en mode prévisualisation formatée.}}&lt;br /&gt;
&lt;br /&gt;
==Voir aussi==&lt;br /&gt;
&lt;br /&gt;
*[[Options de la page Projet|Options de la page Projet]]&lt;br /&gt;
*[[Web|Web]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Référence EDI]]&lt;/div&gt;</description>
			<pubDate>Sat, 09 May 2026 02:19:37 GMT</pubDate>
			<dc:creator>Yukikoi</dc:creator>
			<comments>https://docwiki.embarcadero.com/RADStudio/Alexandria/fr/Discussion:Prise_en_charge_des_documents_Markdown</comments>
		</item>
		<item>
			<title>Raccourcis clavier par défaut</title>
			<link>https://docwiki.embarcadero.com/RADStudio/Alexandria/f/index.php?title=Raccourcis_clavier_par_d%C3%A9faut&amp;diff=217596&amp;oldid=0</link>
			<guid isPermaLink="false">https://docwiki.embarcadero.com/RADStudio/Alexandria/f/index.php?title=Raccourcis_clavier_par_d%C3%A9faut&amp;diff=217596&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/RADStudio/Alexandria/f/index.php?title=Utilisateur:Yukikoi&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new mw-userlink&quot; title=&quot;Utilisateur:Yukikoi (page inexistante)&quot;&gt;&lt;bdi&gt;Yukikoi&lt;/bdi&gt;&lt;/a&gt; a importé &lt;a href=&quot;/RADStudio/Alexandria/fr/Raccourcis_clavier_par_d%C3%A9faut&quot; title=&quot;Raccourcis clavier par défaut&quot;&gt;Raccourcis clavier par défaut&lt;/a&gt; par téléversement de fichier (1 révision) LOC-23446&lt;/p&gt;
&lt;a href=&quot;https://docwiki.embarcadero.com/RADStudio/Alexandria/f/index.php?title=Raccourcis_clavier_par_d%C3%A9faut&amp;amp;diff=217596&quot;&gt;Voir les modifications&lt;/a&gt;</description>
			<pubDate>Sat, 09 May 2026 02:19:36 GMT</pubDate>
			<dc:creator>Yukikoi</dc:creator>
			<comments>https://docwiki.embarcadero.com/RADStudio/Alexandria/fr/Discussion:Raccourcis_clavier_par_d%C3%A9faut</comments>
		</item>
</channel></rss>