Vous êtes sur la page 1sur 19

Cration d'un Service Calculatrice Simple

par Evaris NGOUZO (http://evaris-ngouzo.developpez.com)


Date de publication : 25 mars 2011 Dernire mise jour :

Ceci est un tutoriel pas pas pour construire un simple service calculatrice, ainsi que son application cliente en utilisant Delphi XE et DataSnap.

Cration d'un Service Calculatrice Simple par Evaris NGOUZO (http://evaris-ngouzo.developpez.com)

I - Cration de l'application serveur............................................................................................................................ 3 II - Cration de l'application cliente............................................................................................................................. 9 III - Conclusion...........................................................................................................................................................18

http://evaris-ngouzo.developpez.com/tutoriels/delphi/creation-application-serveur-calculatrice-simple/

-2-

Cration d'un Service Calculatrice Simple par Evaris NGOUZO (http://evaris-ngouzo.developpez.com)

I - Cration de l'application serveur


La premire tape est de crer une nouvelle application serveur DataSnap, en utilisant l'assistant "Serveur DataSnap". Dmarrer Delphi XE. Slectionner dans le menu principal "Fichier -> Nouveau -> Autre", dans la boite de dialogue "Nouveaux lments" double-cliquers sur l'icne "Serveur DataSnap" dans la catgorie "Projets Delphi -> Serveur DataSnap".

http://evaris-ngouzo.developpez.com/tutoriels/delphi/creation-application-serveur-calculatrice-simple/

-3-

Cration d'un Service Calculatrice Simple par Evaris NGOUZO (http://evaris-ngouzo.developpez.com)

Dans le premier onglet, laisser le "type de projet" DataSnap qui par dfaut est "Application fiches VCL".

http://evaris-ngouzo.developpez.com/tutoriels/delphi/creation-application-serveur-calculatrice-simple/

-4-

Cration d'un Service Calculatrice Simple par Evaris NGOUZO (http://evaris-ngouzo.developpez.com)

Dans le second onglet, garder les valeurs par dfaut. Plus tard nous allons remplacer, les mthodes serveur exemple par nos propres implmentations.

http://evaris-ngouzo.developpez.com/tutoriels/delphi/creation-application-serveur-calculatrice-simple/

-5-

Cration d'un Service Calculatrice Simple par Evaris NGOUZO (http://evaris-ngouzo.developpez.com)

Dans le troisime onglet, nous allons garder la valeur par dfaut "211" comme port TCP/IP utiliser. C'est toujours une bonne ide tester le port en cliquant sur le bouton "Tester le port" pour s'assurer que le port est libre.

http://evaris-ngouzo.developpez.com/tutoriels/delphi/creation-application-serveur-calculatrice-simple/

-6-

Cration d'un Service Calculatrice Simple par Evaris NGOUZO (http://evaris-ngouzo.developpez.com)

Dans le dernier onglet, nous allons galement garder la classe anctre par dfaut des mthodes serveur qui est "TComponent". Cliquer sur le bouton "Terminer" et l'assistant devrait crer un nouveau projet avec 3 units. Sauvegarder tout le projet en cliquant sur le menu "Fichier -> Tout enregistrer". Crer un nouveau rpertoire pour tous les fichiers de ce tutoriel. Par exemple "C:\DataSnapLabs\SimpleCalc\". Sauvegarder la fiche principale de l'application sous le nom "FormServerUnit" et garder les noms de fichier par dfaut pour les autres units ("ServerContainerUnit1" et "ServerMethodsUnit1") et enregistrer le projet sous le nom "SimpleCalcServer". A ce niveau, vous devriez avoir ceci dans le gestionnaire de projets de delphi.

http://evaris-ngouzo.developpez.com/tutoriels/delphi/creation-application-serveur-calculatrice-simple/

-7-

Cration d'un Service Calculatrice Simple par Evaris NGOUZO (http://evaris-ngouzo.developpez.com)

Ouvrir prsent l'unit "ServerMethodsUnit1.pas" et implmenter les fonctions de notre service de calculatrice simple. Remplacer les mthodes exemples ajoutes par l'assistant ("EchoString" et "ReverseString") avec les mthodes "Add", "Substract", "Multiply" et "Divide". Le code source de l'unit "ServerMethodsUnit1" devrait ressembler ceci :
unit ServerMethodsUnit1; interface uses Classes; type {$METHODINFO ON} TServerMethods1 = class(TComponent) private { Private declarations } public function Add(a, b: double): double; function Subtract(a, b: double): double; function Multiply(a, b: double): double; function Divide(a, b: double): double; end; {$METHODINFO OFF} implementation { TServerMethods1 } function TServerMethods1.Add(a, b: double): double; begin Result := a + b; end; function TServerMethods1.Subtract(a, b: double): double; begin Result := a - b; end; function TServerMethods1.Multiply(a, b: double): double; begin Result := a * b; -8-

http://evaris-ngouzo.developpez.com/tutoriels/delphi/creation-application-serveur-calculatrice-simple/

Cration d'un Service Calculatrice Simple par Evaris NGOUZO (http://evaris-ngouzo.developpez.com) end; function TServerMethods1.Divide(a, b: double): double; begin Result := a / b; end; end.

Listing 1: ServerMethodsUnit1.pas Notre serveur est prsent implment. Pour dvelopper l'application cliente, le serveur doit tre en cours d'excution. Slectionner le menu "Excuter -> Excuter sans dbogage" pour dmarrer le projet serveur, puis minimiser la fentre. Le serveur doit tre en cours d'excution jusqu' la fin de ce tutoriel.

II - Cration de l'application cliente


Faire un clic droit sur le groupe de projets dans le gestionnaire de projets, et slectionner "Ajouter un nouveau projet".

A partir de la boite de dialogue "Nouveaux lments", slectionner "Application fiches VCL" partir de la catgorie "Projets delphi".

http://evaris-ngouzo.developpez.com/tutoriels/delphi/creation-application-serveur-calculatrice-simple/

-9-

Cration d'un Service Calculatrice Simple par Evaris NGOUZO (http://evaris-ngouzo.developpez.com)

Cliquer sur le bouton "OK". Un nouveau projet devrait s'ajouter dans le groupe de projets. Sauvegarder tout en cliquant sur le menu "Fichier -> Tout enregistrer". Naviguer vers le dossier o a t enregistr le serveur et y sauvegarder la fiche principale de l'application cliente en tant que "FormClientUnit", le nouveau projet en tant que "SimpleCalcClient", et le groupe de projets sous le nom "SimpleCalcGrp". A prsent, le gestionnaire de projets devrait ressembler ceci :"

http://evaris-ngouzo.developpez.com/tutoriels/delphi/creation-application-serveur-calculatrice-simple/

- 10 -

Cration d'un Service Calculatrice Simple par Evaris NGOUZO (http://evaris-ngouzo.developpez.com)

Assurez vous que le projet client soit le projet actif, et partir de la boite de dialogue "Nouveaux lments", choisir "Module client DataSnap".

http://evaris-ngouzo.developpez.com/tutoriels/delphi/creation-application-serveur-calculatrice-simple/

- 11 -

Cration d'un Service Calculatrice Simple par Evaris NGOUZO (http://evaris-ngouzo.developpez.com)

Une fois de plus, nous allons garder les valeurs par dfaut de l'assistant.

http://evaris-ngouzo.developpez.com/tutoriels/delphi/creation-application-serveur-calculatrice-simple/

- 12 -

Cration d'un Service Calculatrice Simple par Evaris NGOUZO (http://evaris-ngouzo.developpez.com)

Sur le premier onglet, garder l'option "Emplacement du serveur DataSnap" "Serveur Local".

http://evaris-ngouzo.developpez.com/tutoriels/delphi/creation-application-serveur-calculatrice-simple/

- 13 -

Cration d'un Service Calculatrice Simple par Evaris NGOUZO (http://evaris-ngouzo.developpez.com)

Notre serveur DataSnap est "Stand alone", gardez donc la valeur par dfaut et cliquer sur "Suivant".

http://evaris-ngouzo.developpez.com/tutoriels/delphi/creation-application-serveur-calculatrice-simple/

- 14 -

Cration d'un Service Calculatrice Simple par Evaris NGOUZO (http://evaris-ngouzo.developpez.com)

Notre serveur utilise "TCP/IP" comme protocole de connexion, gardez donc le choix par dfaut et cliquer sur suivant.

http://evaris-ngouzo.developpez.com/tutoriels/delphi/creation-application-serveur-calculatrice-simple/

- 15 -

Cration d'un Service Calculatrice Simple par Evaris NGOUZO (http://evaris-ngouzo.developpez.com)

Cliquer sur le bouton "Tester la connexion" afin de vrifier que le serveur est l'coute sur le port 211 et cliquer sur le bouton "Terminer". L'assistant ajoutera deux units au projet client, "ClientClassesUnit1" et "ClientModuleUnit1". La dernire chose faire dans ce tutoriel est de mettre en place l'interface utilisateur de l'application cliente. Allons-y en utilisant l'unit "ClientModuleUnit1" dans la fiche principale. Assurez vous que l'unit de la fiche client soit ouverte dans l'diteur, et slectionner la commande de menu "Fichier -> Utiliser l'unit".

http://evaris-ngouzo.developpez.com/tutoriels/delphi/creation-application-serveur-calculatrice-simple/

- 16 -

Cration d'un Service Calculatrice Simple par Evaris NGOUZO (http://evaris-ngouzo.developpez.com)

Maintenant, dans le code de la fiche client, vous devez utiliser les mthodes exposes via la proprit "ClientModule1.ServerMethods1Client". Ces mthodes possdent les mmes noms et les mmes signatures que les mthodes disponibles sur le serveur. Voici l'implmentation de la fiche principale de l'application cliente.
unit FormClientUnit; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm3 = class(TForm) EditA: TEdit; ButtonAdd: TButton; EditB: TEdit; ButtonSub: TButton; ButtonMult: TButton; ButtonDiv: TButton; LabelResult: TLabel; procedure ButtonAddClick(Sender: TObject); procedure ButtonSubClick(Sender: TObject); procedure ButtonMultClick(Sender: TObject); procedure ButtonDivClick(Sender: TObject); private { Private declarations } public function GetA: double; function GetB: double; procedure ShowResult(aValue: double); end; var Form3: TForm3; implementation uses ClientModuleUnit1; {$R *.dfm} function TForm3.GetA: double; begin Result := StrToFloat(EditA.Text); end; function TForm3.GetB: double; begin Result := StrToFloat(EditB.Text) end; procedure TForm3.ShowResult(aValue: double); begin LabelResult.Caption := FloatToStr(aValue); end; procedure TForm3.ButtonDivClick(Sender: TObject); begin ShowResult(ClientModule1.ServerMethods1Client.Divide(GetA, GetB)); end; procedure TForm3.ButtonMultClick(Sender: TObject); begin ShowResult(ClientModule1.ServerMethods1Client.Multiply(GetA, GetB)); end; - 17 -

http://evaris-ngouzo.developpez.com/tutoriels/delphi/creation-application-serveur-calculatrice-simple/

Cration d'un Service Calculatrice Simple par Evaris NGOUZO (http://evaris-ngouzo.developpez.com)

procedure TForm3.ButtonSubClick(Sender: TObject); begin ShowResult(ClientModule1.ServerMethods1Client.Subtract(GetA, GetB)); end; procedure TForm3.ButtonAddClick(Sender: TObject); begin ShowResult(ClientModule1.ServerMethods1Client.Add(GetA, GetB)); end; end.

Listing 2 : Implmentation de la fiche principale du client. Le client final devrait ressembler ceci :

Et voil! Vous avez certainement constat combien il est simple de crer des serveurs et des clients DataSnap l'aide de Delphi XE.

III - Conclusion
Dans ce tutoriel, nous avons utilis Delphi XE pour construire un service de calculatrice simple DataSnap XE consistant en une application native Win32 serveur et un client communicant ensembles via le protocole TCP/IP. Le code source complet de cet article est disponible en tlchargement l'adresse : Item/28184. http://cc.embarcadero.com/

La version vido des tapes dcrites dans ce tutoriel peuvent tre visionnes sur YouTube ( www.youtube.com/watch?v=Qm__RdmIWSg).

http://

http://evaris-ngouzo.developpez.com/tutoriels/delphi/creation-application-serveur-calculatrice-simple/

- 18 -

Cration d'un Service Calculatrice Simple par Evaris NGOUZO (http://evaris-ngouzo.developpez.com)

Pour plus d'informations sur Delphi, consulter les pages : http://delphi.developpez.com

http://www.embarcadero.com/products/delphi

http://evaris-ngouzo.developpez.com/tutoriels/delphi/creation-application-serveur-calculatrice-simple/

- 19 -

Vous aimerez peut-être aussi