Création de l'application client (tutoriel Filtres de communication)
Remonter à Tutoriel : Filtres de communication Delphi DataSnap
Création de l'application client
1. Cliquez avec le bouton droit sur le groupe de projets, sélectionnez Ajouter un nouveau projet puis Application Fiches VCL, et appuyez sur OK.
2. Enregistrez le projet dans le même emplacement que le serveur et définissez le nom de la première unité sur FormClientUnit.pas.
3. Dans la page de conception FormClientUnit, ajoutez un composant TEdit et un composant TButton en utilisant la Palette d'outils sur la droite. Définissez le libellé du bouton sur "Reverse".
4. Ajoutez un composant TSQLConnection depuis la Palette d'outils.
5. Sélectionnez la propriété Driver du SQLConnection et choisissez Datasnap.
6. Définissez la propriété LoginPrompt du SQLConnection sur False.
7. Sélectionnez la propriété Driver > Filters du SQLConnection et définissez le même filtre que le serveur (ZLibCompression).
- Le serveur applique une compression (type ZIP) au flux de données, et le client doit savoir comment décompresser ce flux de données.
8. Définissez la propriété Connected du SQLConnection sur True.
9. Cliquez avec le bouton droit sur l'icône SQLConnection et sélectionnez Générer les classes client DataSnap.
- La page correspondante est affichée. Enregistrez cette unité sous proxy.pas, dans le même emplacement que les fichiers précédemment enregistrés.
10. Basculez sur FormClientUnit, sélectionnez Fichier > Utiliser l'unité > proxy.pas, et appuyez sur OK.
- L'unité proxy a été ajoutée à la clause uses du projet client.
11. Basculez sur la page de conception du FormClientUnit et double-cliquez sur le bouton Reverse que vous avez précédemment ajouté.
- Vous êtes redirigé vers la page de code, où les fonctionnalités du bouton doivent être implémentées.
12. Dans la procédure correspondante du bouton, implémentez ses fonctionnalités (pour remplacer la chaîne de la zone d'édition par sa chaîne inverse) :
- Déclarez et instanciez une variable aClient :
var aClient := TServerMethods2Client.Create(SQLCOnnection1.DBXConnection);
TServerMethods2Client *aClient = TServerMethods2Client(SQLCOnnection1->DBXConnection);
- Définissez le texte du composant TEdit depuis le FormClientUnit :
Edit1.Text := aClient.ReverseString(Edit1.Text);
Edit1->Text = aClient->ReverseString(Edit1->Text);
13. Ajoutez l'unité DBXCompressionFilter à la clause uses du client.
- Sinon, une notification d'exception du débogueur sera déclenchée avec le message suivant : Argument incorrect.
- L'unité DBXCompressionFilter a dans son initialisation une méthode RegisterFilter(TTransportCompressionFilter) nécessaire à l'application pour recenser le TTransportCompressionFilter, le rendant ainsi détectable. De cette façon, la communication peut être réalisée via les données compressées.
- Pour implémenter votre propre filtre de communication, vous devez définir une classe qui dérive de TTransportFilter. L'implémentation minimale consiste à redéfinir les fonctions Id, ProcessInput et ProcessOutput.
14. Exécutez le client en appuyant sur F9.