Ce livre s'adresse à toute personne qui souhaite apprendre la programmation orientée objet avec le langage Delphi (en version 10.3 Community Edition) pour développer une application fenêtrée ou un service en environnement Windows. Tout au long du livre, l’auteur agrémente son propos de schémas UML afin que le lecteur puisse constater avec quelle facilité il est possible de programmer pour Windows avec Delphi.
Après une présentation de l’environnement de développement et un rappel sur les...
Ce livre s'adresse à toute personne qui souhaite apprendre la programmation orientée objet avec le langage Delphi (en version 10.3 Community Edition) pour développer une application fenêtrée ou un service en environnement Windows. Tout au long du livre, l’auteur agrémente son propos de schémas UML afin que le lecteur puisse constater avec quelle facilité il est possible de programmer pour Windows avec Delphi.
Après une présentation de l’environnement de développement et un rappel sur les fonctions de base héritées du langage Pascal, le lecteur étudie l'architecture et les principes de la programmation orientée objet en Delphi, illustrés par des programmes d'exemple mettant en œuvre les bibliothèques fournies par Delphi 10.3 Community Edition. La manipulation de la bibliothèque graphique Visual Component Library lui permet ainsi d’appréhender concrètement la création d’applications fenêtrées attrayantes, robustes et performantes.
Dans la suite du livre, l’auteur familiarise le lecteur avec la création de librairies dll ou de composants Delphi que l’on peut inclure dans l'environnement de développement avant de détailler la notion de sérialisation de données aux formats XML et JSON ainsi que l'élaboration de services système. Des chapitres dédiés présentent le concept de parallélisation de tâches sous Windows ainsi que les différentes méthodes pour communiquer entre applications, sans oublier la connexion aux bases de données grâce au moteur d'accès aux données FireDAC.
Pour finir, le lecteur a l’occasion de découvrir le framework FireMonkey associé au moteur de LiveBinding qui offre la portabilité du langage Delphi vers de nombreuses plateformes (Linux, Android ou iOS), ainsi que l’élaboration et la consommation de webservices REST.
Des éléments complémentaires sont en téléchargement sur le site www.editions-eni.fr.
10.1 Les fonctions de conversion pour les chaînes de caractères
10.2 Les fonctions de conversion pour les nombres
10.3 Les fonctions de conversion récemment ajoutées
11. Les pointeurs
11.1 Définition
11.2 Utilisation
11.3 Implémentation
11.4 Conclusion
Concept objet en Delphi
1. Introduction à la programmation orientée objet
2. Principes de la programmation objet
2.1 Les champs
2.2 Les méthodes
2.3 Encapsulation de données
2.4 Représentation UML et nommage
2.5 Héritage
2.6 Polymorphisme
3. Définition de classe
3.1 Constructeur
3.2 Destructeur
3.3 Le pointeur nil
3.4 Pointeur interne Self
3.5 Propriétés
3.6 Propriété tableau
3.7 Objets et pointeurs
3.8 Évènements
3.9 L'opérateur is
3.10 L'opérateur as
3.11 Champs et méthodes statiques
4. Mise en pratique - Application pour la location de véhicules
4.1 Convention de nommage
4.2 Implémentation
4.3 Utilisation
4.4 Remarques
5. Conclusion
Run Time Library, fondation de Delphi
1. Les bibliothèques fournies par Delphi
2. RTL mise en pratique
2.1 La classe TObject
2.2 Les cas d’exception
2.3 La classe TPersistent et le système RTTI
2.4 Mise en pratique de l’introspection RTTI
2.5 La classe helper
2.6 Les listes en Delphi
2.6.1 TList
2.6.2 Exemple d'utilisation de TList
2.6.3 TObjectList
2.6.4 TArray
2.6.5 Les files (FIFO) TQueue et TObjectQueue
2.6.6 Les piles (LIFO) TStack et TObjectStack
2.6.7 Les listes de string TStringList
2.6.8 Les dictionnaires TDictionnary et TObjectDictionnary
2.7 Le système de fichiers TFile, TPath, TDirectory
2.7.1 TPath : Manipulation de chemins sur le disque
2.7.2 TDirectory : Parcours et manipulation de répertoire
2.7.3 TFile : Manipulation de fichier
2.8 Les flux, TStream et ses descendants
2.9 Opérations mathématiques
2.10 La manipulation de dates avec TDate et TTime
2.11 La base des registres TRegistry
2.12 Les expressions régulières avec TRegEx
2.13 Compression de fichier ou de répertoires
3. Les méthodes anonymes
3.1 Définition
3.2 Déclaration
3.3 Implémentation
3.4 Le principe de closure
3.5 Conclusion
4. Les interfaces
4.1 Définition
4.2 Déclaration
4.3 Utilisation
4.4 Héritage d'interface
4.5 Utilisation de plusieurs interfaces, héritage multiple
4.6 Utilisation de même nom de méthode dans deux interfaces différentes
4.7 Pour finir
5. Conclusion
Les applications Windows avec la VCL
1. La VCL : Visual Component Library
1.1 Introduction
1.2 Les classes de base
1.2.1 La classe TComponent
1.2.2 La classe TControl
1.2.3 La classe TWinControl
2. La classe TApplication
3. Les applications Windows VCL
3.1 Une application Windows VCL simple
3.2 Une application MDI
4. Création d'une IHM avec Delphi
4.1 Paramètres d'affichage de TForm
4.1.1 Méthodes relatives à l'apparition d'une fenêtre
4.1.2 Évènements de TForm
4.2 La palette de composants standards
4.2.1 Le bouton : TButton
4.2.2 Zone de texte : TLabel
4.2.3 Case à cocher : TCheckBox
4.2.4 Choix multiples : TRadioButton
4.2.5 Choix multiple dans une liste : TCombobox
4.2.6 Les composants d'édition de textes
4.2.7 Les menus
4.2.8 Les alignements avec les TPanel et les TGroupBox
4.3 Modifier la position d'un composant
4.4 Travailler avec des frames et réutiliser le contexte graphique
4.5 Sélectionner des fichiers (TOpenDialog) et des répertoires (TOpenFileDialog)
4.6 Présentation de données
4.6.1 Avec TPageControl
4.6.2 En tableau avec la TStringGrid
4.6.3 Présentation de données en arbre avec TTreeView
4.7 Zone avec barre de défilement : TScrollBox
4.8 Exécuter une action périodique avec TTimer
4.9 Applications VCL multifenêtres
4.10 Échanger des données entre deux fenêtres
4.10.1 Méthode par un appel modal
4.10.2 Méthode par évènement
4.11 Récupérer des évènements du clavier
4.12 Faire un glisser-déposer (Drag&Drop)
4.13 Afficher des images
4.13.1 Le contrôle TImage
4.13.2 Le contrôle TImageList
4.13.3 Le contrôle TImageCollection
4.14 Travailler avec les styles prédéfinis en VCL
4.15 Créer et utiliser son propre style VCL
4.16 Configurer une application
4.16.1 Par ligne de commande
4.16.2 Par fichier de configuration
5. Conclusion
Les librairies (dll) et les packages (bpl)
1. Définitions
2. Mise en pratique de l'utilisation d'une dll
2.1 Création
2.2 Export de routines
2.3 Exploitation d'une dll dans un exécutable
2.3.1 Chargement statique de la dll
2.3.2 Chargement dynamique de la dll
2.3.3 La directive delayed
2.4 Passage de chaînes de caractères
2.4.1 La méthode ShareMem
2.4.2 La méthode par type primitif (pchar integer)
2.4.3 Évènement levé dans une dll et utilisé dans le programme hôte
3. Les packages BPL Delphi
3.1 Création d'un package runtime
3.2 Création d'un package design
4. Conclusion
Représentation de données : formats XML et JSON
1. Introduction
2. Format XML
2.1 Écriture du fichier XML, sérialisation directe
2.2 Lecture du fichier XML, désérialisation directe
3. XML Data Binding
3.1 Utilisation du moteur XML Data Binding
3.2 Sérialisation
3.3 Désérialisation
4. Format JSON
4.1 Présentation
4.2 Syntaxe
4.3 Sérialisation JSON
4.3.1 Par une structure objet définie manuellement
4.3.2 Par réflexion
4.4 Désérialisation
4.4.1 Par la classe TJSONObject
4.4.2 Par réflexion
5. Conclusion
Traitement de tâches asynchrones
1. Description d'un processus
2. Les threads dans un processus
3. Pourquoi utiliser du multithreading ?
3.1 Effectuer plusieurs traitements en parallèle
3.2 Donner une meilleure expérience utilisateur
4. La classe TThread
5. Thread transitoire TThread
6. Thread transitoire par procédure anonyme (TThread.CreateAnonymousThread)
7. Thread persistant
8. Les concepts de ressource partagée et de section critique
9. Une liste thread safe, l'interface d'échange privilégiée entre deux threads
9.1 Par TCriticalSection
9.2 Par TThreadList et TMonitor
10. PPL : la bibliothèque de programmation parallèle
10.1 Pourquoi cette bibliothèque en plus de TThread ?
10.2 Thread transitoire par TTask.Start
11. Synchronisation de deux threads grâce à l'appel Future
12. Exécuter N actions en parallèle avec TParallel
12.1 Présentation
12.2 Exécution de la même action en parallèle TParallel.For
12.3 Exécution de N méthodes différentes avec TParallel.Join
12.4 Remarques
13. Recommandations
14. Conclusion
Création d’un service Windows
1. Définition
2. Configuration
2.1 Configuration du type d’exécution
2.2 Configuration du compte associé
2.3 Configuration des dépendances
3. Implémentation
3.1 Configuration du service
3.2 Implémentation des évènements
3.3 Exécution et débogage
3.3.1 L’évènement OnExecute
3.3.2 Utilisation d’un thread secondaire
4. Débogage de service Windows
4.1 Par fichier de log
4.2 S’attacher au processus par l’IDE
5. Conclusion
Communication interprocessus (IPC)
1. Introduction
2. Communication via message Windows
2.1 Récupération du handle de fenêtre destinataire
2.2 Envoi du message
2.3 Réception du message
2.4 À savoir
3. Communication via TCP/IP
3.1 Définitions
3.2 Implémentation d’un système de communication client/serveur
3.2.1 Implémentation du serveur
3.2.2 Implémentation du client
3.2.3 Gestion du contenu du message
3.2.4 Écriture d’un protocole
3.2.5 Envoi d’un message
3.2.6 Réception d’un message
3.2.7 Intégration dans le client
3.2.8 Intégration dans le serveur
3.2.9 Identification de l’émetteur du message
3.3 Implémentation d’un tchat
3.3.1 Modifications du client de tchat
3.3.2 Modifications de l’interface graphique
3.3.3 Rafraîchissement des onglets
3.3.4 Ajout d’un message entrant
3.3.5 Envoi d’un message
3.3.6 Autres modifications du serveur de tchat
3.4 Utilisation du tchat dans un réseau d’ordinateurs
3.4.1 Modélisation Model View Controller
3.4.2 Création d’un service
4. Conclusion
Connectivité aux bases de données
1. Définitions
2. Les différents frameworks
2.1 Le framework BDE
2.2 Le framework dbGo
2.3 Le framework dbExpress
2.4 Le framework FireDAC
3. Le SQL en bref - fonctions de base
4. Les composants FireDAC
5. Une application de e-commerce avec back-office
5.1 Design de la base de données
5.2 Étapes de développement
5.3 Installation MariaDB
6. L'application de back-office
6.1 Configuration des composants
6.1.1 Configuration de TFDConnection : FDConnection
6.1.2 Configuration du TFDTable : FDTableProduct
6.1.3 Configuration du TDataSource : DataSourceProduct
6.1.4 Configuration de TDBGrid : DBGridProduct
6.1.5 Configuration du TDBNavigator : DBNavigatorProduct
6.1.6 Configuration du TDBImage : DBImageProduct
6.2 Interfaçages
6.2.1 Interfaçage du champ description
6.2.2 Interfaçage du champ category
6.2.3 Interfaçage du champ image
6.3 Personnalisation du rendu de la grille
6.3.1 Insertion de l'image dans la colonne image
6.3.2 Modification des couleurs de texte ou de police dans la grille
6.3.3 Modification de la hauteur des lignes de la grille
6.4 Tri de la grille par valeur d'un champ
7. Conclusion
Utilisation du design pattern MVC
1. Introduction
2. Design pattern MVC
2.1 Le modèle
2.2 La vue
2.3 Le contrôleur
2.4 Les avantages
3. Développement de l'application
3.1 Fonctionnalités
3.2 Couches MVC
3.2.1 Les vues
3.2.2 Les modèles
3.2.3 Les contrôleurs
3.3 Navigation entre les pages
3.4 Normaliser les échanges entre MVC
3.5 Les vues
3.5.1 La vue « Login »
3.5.2 La vue "Choix d'objets"
3.5.3 La vue gestion de compte
3.5.4 La vue « Validation de panier »
3.6 Création d'une facture
3.6.1 Préparation et création des éléments nécessaires à l'opération
3.6.2 Création d'un modèle
3.6.3 Récupération des données
3.6.4 Design du rapport
3.6.5 Génération du fichier
3.7 Calcul du montant total de la commande par procédure stockée
4. Conclusion
Attributs, annotations et RTTI
1. Introduction
2. Principe du mapping propriété/colonne
3. Attributs Delphi
3.1 Généralités
3.2 Modélisation
4. Un moteur d'accès aux données générique
4.1 Implémentation
4.2 Le cas des propriétés objets
4.2.1 Sauvegarde dans la base de données
4.2.2 Chargement dans la base de données
4.3 Gestion de listes
4.4 Les tables de jointure, relation OneToMany
5. Conclusion
FireDAC, FireMonkey et LiveBinding
1. FireMonkey
2. LiveBinding
3. Migration des outils back-office et E-Commerce en FireMonkey
3.1 Le composant TListView
3.2 Liaison visuelle avec une source de données FireDAC : LiveBinding
4. Interagir avec la TListView
4.1 Le clic
4.2 Le double clic
5. Visualisation Maître/Détail
5.1 Présentation
5.2 Maître/Détail utilisateur/commandes
5.3 Maître/Détail commande/objets achetés
5.4 Relation Maître/Détail, commande/adresse de livraison
6. Modification de la valeur issue de la source de donnée
6.1 Cas d'application
6.2 La propriété CustomFormat
6.3 Les routines de conversion
6.4 Créer ses propres routines de conversion
7. Conclusion
Serveur d’application REST
1. Définition : application distribuée
2. Protocole HTTP
3. Exemple d'échanges de données : information de météo
3.1 Par le protocole HTTP
3.2 Par le protocole SOAP (Simple Object Access Protocol)
3.3 Par une architecture REST
4. Service web et web-méthodes REST
4.1 Cas général
4.2 Cas de l'authentification
4.2.1 La problématique
4.2.2 Les méthodes d'authentification HTTP
4.2.3 Les différentes options
4.2.4 Implémentation choisie
5. Implémentation de l’application côté serveur
5.1 Le projet Web Server Application
5.2 Mise en place du serveur Apache
5.2.1 Installation d’Apache
5.2.2 Configuration du serveur Apache
5.2.3 Intégration du module
5.3 Édition des points d’entrée
5.4 Utilisation du REST Debugger de Delphi
5.5 Passage de paramètres du client vers le serveur
5.6 Implémentation de l’enregistrement d’un utilisateur
5.7 La classe TJsonResult
5.8 Le cas de l’authentification : le login
5.9 Récupération des produits
5.10 Mettre à jour un utilisateur
5.11 Passer une commande
5.12 Gérer la montée en charge avec l’utilisation d'un pool de connexion
6. Conclusion
Client REST multi-plateforme FireMonkey
1. Introduction
1.1 Design graphique
1.2 Échanges entre le client et le serveur
1.3 Implémentation
2. Appel REST simple, enregistrement d’un utilisateur
3. Authentification REST de type Basic et login d’un utilisateur
4. Utilisation du Livebinding avec un modèle de données
4.1 Utilisation d’un TDataGeneratorAdapter pour définir un prototype d’échange
4.2 Encapsulation dans un TAdapterBindSource
4.3 Liaison avec un TListView
4.4 Gestion de panier
4.4.1 Design graphique
4.4.2 Implémentation
4.5 Passer une commande
4.6 Gestion compte utilisateur
5. Conclusion
Travailler avec les styles FireMonkey
1. Présentation
2. Modifier ou créer un style de composant
2.1 Le Style Designer
2.2 Modification du style TLabel
2.3 Créer un nouveau style
3. Créer et utiliser un style spécifique pour une TListBox
3.1 Création d'un style TListBox
3.2 Ajout d'éléments stylisés dans la TListBox
3.2.1 Exemple : Affectation du prix
3.2.2 Exemple : Affectation de l'image
4. Intégration dans le client REST
5. Conclusion
Conclusion
Index
Délais de livraison et qualité du produit sont au Rendez-vous. Un petite remarque tout de même. Il faudrait pouvoir télécharger l'intégralité du livre au format .
pdf
Jean-Claude R
Très bonne aide avec des exemples concrets, disponibles et qui fonctionnent
Anonyme
Pas de problème pour le text du livre, par ailleurs la police est bien grand, ce qui m'arrange conte tenu de mon age! Malheuresement les pages du livre se détaches facilment!
Anonyme
Pour moi, ce livre est excellent. Certes il ne s'adresse pas au débutant en programmation mais plutôt au débutant en Delphi et son langage Pascal Orienté Objet . On y trouve tout ce qui est nécessaire pour appréhender l'outil le plus efficacement possible. Mais aussi de nombreux sujets avancés de nature a rassurer les chefs de projet quand à la puissance et polyvalence de Delphi. En tant que Senior Developer, je recommande expressément ce livre en Français, il faut le souligner. J'aimerai forcement un tome 2 ;-)
Anonyme
Thierry GRASSIA
Diplômé de Telecom Physique Strasbourg depuis 1999, Thierry GRASSIA est aujourd’hui Ingénieur en développement expert sur le langage Delphi qu’il a su éprouver au cours de ses différentes expériences professionnelles. Avec ce livre, il propose au lecteur de l’accompagner dans son apprentissage du langage pour le mener vers le développement d’applications ou de services en environnement Windows.