• Aide
  • Eurêkoi Eurêkoi

Livre

Delphi 10.3 : programmation orientée objet en environnement Windows

Résumé

Un guide pour apprendre la programmation objet avec le langage Delphi, en version XE10, afin de programmer en environnement Windows : manipulation de la bibliothèque graphique, connexion aux bases de données, création de libraires binaires dll, sérialisation de données en XML et JSON ou encore élaboration de services système. Avec le code des exemples en téléchargement et la version en ligne. ©Electre 2021


  • Éditeur(s)
  • Date
    • C 2021
  • Notes
    • La couv. porte en plus : "En téléchargement : code des exemples" ; "+ quiz" ; "Version numérique offerte ! pendant 1 an"
    • La 4e de couv. indique : "Sur www.editions-eni.fr : le code source des exemples du livre"
    • Contient un "flashcode" permettant d'accéder à un contenu via Internet
  • Langues
    • Français
  • Description matérielle
    • 1 vol. (910 p.) : ill. ; 22 cm
  • Collections
  • Sujet(s)
  • ISBN
    • 978-2-409-02466-5
  • Indice
  • Quatrième de couverture
    • Delphi 10.3

      Programmation Orientée Objet en environnement Windows

      Ce livre s'adresse à toute personne qui souhaite apprendre la programmation orientée objet avec le langage Delphi (en version 10.3 Community Édition) 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 UNIL 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 oeuvre 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


  • Tables des matières
      • Delphi 10.3

      • Programmation Orientée Objet en environnement Windows

      • Éditions-ENI

      • Chapitre 1
      • Introduction
      • 1. À qui s'adresse ce livre ?19
      • 2. Delphi20
      • 3. Un peu de vocabulaire20
      • 4. Installation22
      • 4.1 Téléchargement22
      • 4.2 Licence23
      • 4.3 Installation24
      • Chapitre 2
      • Prise en main de l'IDE de Delphi 10.3
      • 1. Présentation27
      • 2. Mise en pratique32
      • 2.1 Création d'un nouveau projet32
      • 2.2 Ajouts de quelques composants sur la fiche36
      • 2.3 Mise en forme39
      • 2.4 Définir un gestionnaire d'évènement51
      • 2.5 Menu Chercher54
      • 3. Le débogueur intégré de Delphi56
      • 3.1 À quoi sert-il ?56
      • 3.2 Comment ?57
      • 3.3 Utilisation du débogueur57
      • 4. Refactoring63
      • 4.1 Renommer une classe64
      • 4.2 Extraire une méthode d'un bloc de code65
      • 5. Renommage de nom de fichier66
      • 6. Options du projet67
      • 7. Conclusion70
      • Chapitre 3
      • Delphi, le langage Pascal objet
      • 1. Introduction71
      • 2. Structure des fichiers Delphi71
      • 2.1 Création d'un projet d'exemple72
      • 2.2 Le fichier .pas75
      • 2.3 Le fichier .dpr78
      • 2.4 Le fichier .dproj81
      • 3. Le mot réservé uses81
      • 4. Les variables et les constantes82
      • 4.1 Déclaration82
      • 4.2 Portée83
      • 5. Les types de variables Delphi85
      • 5.1 Les types entiers85
      • 5.2 Les types décimaux86
      • 5.3 Les types booléens86
      • 5.4 Les types caractères87
      • 5.5 Les types chaînes de caractères87
      • 5.6 Les types énumération90
      • 5.7 Les tableaux91
      • 5.7.1 Tableau statique91
      • 5.7.2 Tableau dynamique92
      • 5.7.3 Manipulations de base93
      • 5.8 Les variants94
      • 5.9 Le record95
      • 5.9.1 Définition95
      • 5.9.2 Le mot réservé with96
      • 6. Les opérateurs97
      • 6.1 Opérateur d'affectation97
      • 6.2 Opérations mathématiques97
      • 6.3 Opérations logiques booléennes102
      • 6.4 Comparaisons numériques102
      • 7. Procédures et fonctions105
      • 7.1 Procédure107
      • 7.2 Fonction108
      • 7.3 Passage de paramètres110
      • 8. Instructions basiques115
      • 8.1 Les tests de conditions115
      • 8.2 If then else116
      • 8.3 Case of else117
      • 8.4 Les instructions d'itération118
      • 9. Les directives de compilation conditionnelles124
      • 10. Les fonctions de conversion126
      • 10.1 Les fonctions de conversion pour les chaînes de caractères126
      • 10.2 Les fonctions de conversion pour les nombres127
      • 10.3 Les fonctions de conversion récemment ajoutées127
      • 11. Les pointeurs129
      • 11.1 Définition130
      • 11.2 Utilisation130
      • 11.3 Implémentation131
      • 11.4 Conclusion132
      • Chapitre 4
      • Concept objet en Delphi
      • 1. Introduction à la programmation orientée objet133
      • 2. Principes de la programmation objet134
      • 2.1 Les champs134
      • 2.2 Les méthodes134
      • 2.3 Encapsulation de données135
      • 2.4 Représentation UML et nommage135
      • 2.5 Héritage136
      • 2.6 Polymorphisme138
      • 3. Définition de classe141
      • 3.1 Constructeur143
      • 3.2 Destructeur145
      • 3.3 Le pointeur nil146
      • 3.4 Pointeur interne Self146
      • 3.5 Propriétés147
      • 3.6 Propriété tableau150
      • 3.7 Objets et pointeurs151
      • 3.8 Évènements152
      • 3.9 L'opérateur is157
      • 3.10 L'opérateur as157
      • 3.11 Champs et méthodes statiques159
      • 4. Mise en pratique - Application pour la location de véhicules160
      • 4.1 Convention de nommage161
      • 4.2 Implémentation162
      • 4.3 Utilisation170
      • 4.4 Remarques173
      • 5. Conclusion174
      • Chapitre 5
      • Run Time Library, fondation de Delphi
      • 1. Les bibliothèques fournies par Delphi175
      • 2. RTL mise en pratique176
      • 2.1 La classe TObject177
      • 2.2 Les cas d'exception178
      • 2.3 La classe TPersistent et le système RTTI184
      • 2.4 Mise en pratique de l'introspection RTTI185
      • 2.5 La classe helper189
      • 2.6 Les listes en Delphi192
      • 2.6.1 TList192
      • 2.6.2 Exemple d'utilisation de TList193
      • 2.6.3 TObjectList201
      • 2.6.4 TArray201
      • 2.6.5 Les files (FIFO) TQueue et TObjectQueue203
      • 2.6.6 Les piles (LIFO) TStack et TObjectStack206
      • 2.6.7 Les listes de string TStringList206
      • 2.6.8 Les dictionnaires TDictionnary et TObjectDictionnary217
      • 2.7 Le système de fichiers TFile, TPath, TDirectory219
      • 2.7.1 TPath : Manipulation de chemins sur le disque220
      • 2.7.2 TDirectory : Parcours et manipulation de répertoire222
      • 2.7.3 TFile : Manipulation de fichier224
      • 2.8 Les flux, TStream et ses descendants227
      • 2.9 Opérations mathématiques233
      • 2.10 La manipulation de dates avec TDate et TTime235
      • 2.11 La base des registres TRegistry240
      • 2.12 Les expressions régulières avec TRegEx244
      • 2.13 Compression de fichier ou de répertoires245
      • 3. Les méthodes anonymes246
      • 3.1 Définition246
      • 3.2 Déclaration247
      • 3.3 Implémentation247
      • 3.4 Le principe de closure248
      • 3.5 Conclusion250
      • 4. Les interfaces250
      • 4.1 Définition250
      • 4.2 Déclaration251
      • 4.3 Utilisation252
      • 4.4 Héritage d'interface253
      • 4.5 Utilisation de plusieurs interfaces, héritage multiple254
      • 4.6 Utilisation de même nom de méthode dans deux interfaces différentes255
      • 4.7 Pour finir255
      • 5. Conclusion256
      • Chapitre 6
      • Les applications Windows avec la VCL
      • 1. La VCL : Visual Component Library257
      • 1.1 Introduction257
      • 1.2 Les classes de base258
      • 1.2.1 La classe TComponent258
      • 1.2.2 La classe TControl259
      • 1.2.3 La classe TWinControl263
      • 2. La classe TApplication264
      • 3. Les applications Windows VCL265
      • 3.1 Une application Windows VCL simple266
      • 3.2 Une application MDI269
      • 4. Création d'une IHM avec Delphi272
      • 4.1 Paramètres d'affichage de TForm272
      • 4.1.1 Méthodes relatives à l'apparition d'une fenêtre273
      • 4.1.2 Évènements de TForm274
      • 4.2 La palette de composants standards274
      • 4.2.1 Le bouton : TButton275
      • 4.2.2 Zone de texte : TLabel276
      • 4.2.3 Case à cocher : TCheckBox276
      • 4.2.4 Choix multiples : TRadioButton277
      • 4.2.5 Choix multiple dans une liste : TCombobox278
      • 4.2.6 Les composants d'édition de textes279
      • 4.2.7 Les menus280
      • 4.2.8 Les alignements avec les TPanel et les TGroupBox284
      • 4.3 Modifier la position d'un composant289
      • 4.4 Travailler avec des frames et réutiliser le contexte graphique293
      • 4.5 Sélectionner des fichiers (TOpenDialog) et des répertoires (TOpenFileDialog)298
      • 4.6 Présentation de données299
      • 4.6.1 Avec TPageControl299
      • 4.6.2 En tableau avec la TStringGrid302
      • 4.6.3 Présentation de données en arbre avec TTreeView305
      • 4.7 Zone avec barre de défilement : TScrollBox309
      • 4.8 Exécuter une action périodique avec TTimer312
      • 4.9 Applications VCL multifenêtres313
      • 4.10 Échanger des données entre deux fenêtres315
      • 4.10.1 Méthode par un appel modal315
      • 4.10.2 Méthode par évènement316
      • 4.11 Récupérer des évènements du clavier318
      • 4.12 Faire un glisser-déposer (Drag&Drop)320
      • 4.13 Afficher des images322
      • 4.13.1 Le contrôle TImage322
      • 4.13.2 Le contrôle TImageList323
      • 4.13.3 Le contrôle TImageCollection324
      • 4.14 Travailler avec les styles prédéfinis en VCL327
      • 4.15 Créer et utiliser son propre style VCL329
      • 4.16 Configurer une application339
      • 4.16.1 Par ligne de commande339
      • 4.16.2 Par fichier de configuration340
      • 5. Conclusion341
      • Chapitre 7
      • Les librairies (dll) et les packages (bpl)
      • 1. Définitions343
      • 2. Mise en pratique de l'utilisation d'une dll345
      • 2.1 Création345
      • 2.2 Export de routines346
      • 2.3 Exploitation d'une dll dans un exécutable347
      • 2.3.1 Chargement statique de la dll349
      • 2.3.2 Chargement dynamique de la dll351
      • 2.3.3 La directive delayed353
      • 2.4 Passage de chaînes de caractères353
      • 2.4.1 La méthode ShareMem353
      • 2.4.2 La méthode par type primitif (pchar integer)356
      • 2.4.3 Évènement levé dans une dll et utilisé dans le programme hôte358
      • 3. Les packages BPL Delphi363
      • 3.1 Création d'un package runtime363
      • 3.2 Création d'un package design372
      • 4. Conclusion380
      • Chapitre 8
      • Représentation de données : formats XML et JSON
      • 1. Introduction381
      • 2. Format XML382
      • 2.1 Écriture du fichier XML, sérialisation directe382
      • 2.2 Lecture du fichier XML, désérialisation directe393
      • 3. XML Data Binding398
      • 3.1 Utilisation du moteur XML Data Binding399
      • 3.2 Sérialisation406
      • 3.3 Désérialisation407
      • 4. Format JSON408
      • 4.1 Présentation408
      • 4.2 Syntaxe409
      • 4.3 Sérialisation JSON410
      • 4.3.1 Par une structure objet définie manuellement410
      • 4.3.2 Par réflexion413
      • 4.4 Désérialisation415
      • 4.4.1 Par la classe TJSONObject415
      • 4.4.2 Par réflexion418
      • 5. Conclusion419
      • Chapitre 9
      • Traitement de tâches asynchrones
      • 1. Description d'un processus421
      • 2. Les threads dans un processus422
      • 3. Pourquoi utiliser du multithreading ?423
      • 3.1 Effectuer plusieurs traitements en parallèle423
      • 3.2 Donner une meilleure expérience utilisateur424
      • 4. La classe TThread426
      • 5. Thread transitoire TThread428
      • 6. Thread transitoire par procédure anonyme (TThread.CreateAnonymousThread)431
      • 7. Thread persistant432
      • 8. Les concepts de ressource partagée et de section critique436
      • 9. Une liste thread safe, l'interface d'échange privilégiée entre deux threads439
      • 9.1 Par TCriticalSection439
      • 9.2 Par TThreadList et TMonitor442
      • 10. PPL : la bibliothèque de programmation parallèle443
      • 10.1 Pourquoi cette bibliothèque en plus de TThread ?444
      • 10.2 Thread transitoire par TTask.Start444
      • 11. Synchronisation de deux threads grâce à l'appel Future445
      • 12. Exécuter N actions en parallèle avec TParallel449
      • 12.1 Présentation449
      • 12.2 Exécution de la même action en parallèle TParallel.For449
      • 12.3 Exécution de N méthodes différentes avec TParallel.Join454
      • 12.4 Remarques457
      • 13. Recommandations457
      • 14. Conclusion458
      • Chapitre 10
      • Création d'un service Windows
      • 1. Définition459
      • 2. Configuration460
      • 2.1 Configuration du type d'exécution460
      • 2.2 Configuration du compte associé460
      • 2.3 Configuration des dépendances461
      • 3. Implémentation461
      • 3.1 Configuration du service463
      • 3.2 Implémentation des évènements464
      • 3.3 Exécution et débogage468
      • 3.3.1 L'évènement OnExecute471
      • 3.3.2 Utilisation d'un thread secondaire476
      • 4. Débogage de service Windows477
      • 4.1 Par fichier de log477
      • 4.2 S'attacher au processus par l'IDE483
      • 5. Conclusion485
      • Chapitre 11
      • Communication interprocessus (IPC)
      • 1. Introduction487
      • 2. Communication via message Windows488
      • 2.1 Récupération du handle de fenêtre destinataire490
      • 2.2 Envoi du message492
      • 2.3 Réception du message494
      • 2.4 À savoir494
      • 3. Communication via TCP/IP495
      • 3.1 Définitions495
      • 3.2 Implémentation d'un système de communication client/serveur497
      • 3.2.1 Implémentation du serveur498
      • 3.2.2 Implémentation du client500
      • 3.2.3 Gestion du contenu du message502
      • 3.2.4 Ecriture d'un protocole504
      • 3.2.5 Envoi d'un message506
      • 3.2.6 Réception d'un message508
      • 3.2.7 Intégration dans le client513
      • 3.2.8 Intégration dans le serveur514
      • 3.2.9 Identification de l'émetteur du message515
      • 3.3 Implémentation d'un tchat520
      • 3.3.1 Modifications du client de tchat526
      • 3.3.2 Modifications de l'interface graphique529
      • 3.3.3 Rafraîchissement des onglets531
      • 3.3.4 Ajout d'un message entrant533
      • 3.3.5 Envoi d'un message534
      • 3.3.6 Autres modifications du serveur de tchat535
      • 3.4 Utilisation du tchat dans un réseau d'ordinateurs540
      • 3.4.1 Modélisation Model View Controller542
      • 3.4.2 Création d'un service543
      • 4. Conclusion545
      • Chapitre 12
      • Connectivité aux bases de données
      • 1. Définitions547
      • 2. Les différents frameworks551
      • 2.1 Le framework BDE551
      • 2.2 Le framework dbGo551
      • 2.3 Le framework dbExpress552
      • 2.4 Le framework FireDAC552
      • 3. Le SQL en bref - fonctions de base553
      • 4. Les composants FireDAC555
      • 5. Une application de e-commerce avec back-office557
      • 5.1 Design de la base de données557
      • 5.2 Etapes de développement559
      • 5.3 Installation MariaDB560
      • 6. L'application de back-office563
      • 6.1 Configuration des composants566
      • 6.1.1 Configuration de TFDConnection : FDConnection566
      • 6.1.2 Configuration du TFDTable : FDTableProduct568
      • 6.1.3 Configuration du TDataSource : DataSourceProduct568
      • 6.1.4 Configuration de TDBGrid : DBGridProduct569
      • 6.1.5 Configuration du TDBNavigator : DBNavigatorProduct571
      • 6.1.6 Configuration du TDBImage : DBImageProduct572
      • 6.2 Interfaçages572
      • 6.2.1 Interfaçage du champ description572
      • 6.2.2 Interfaçage du champ category573
      • 6.2.3 Interfaçage du champ image574
      • 6.3 Personnalisation du rendu de la grille576
      • 6.3.1 Insertion de l'image dans la colonne image576
      • 6.3.2 Modification des couleurs de texte ou de police dans la grille578
      • 6.3.3 Modification de la hauteur des lignes de la grille580
      • 6.4 Tri de la grille par valeur d'un champ581
      • 7. Conclusion582
      • Chapitre 13
      • Utilisation du design pattern MVC
      • 1. Introduction583
      • 2. Design pattern MVC583
      • 2.1 Le modèle584
      • 2.2 La vue585
      • 2.3 Le contrôleur585
      • 2.4 Les avantages585
      • 3. Développement de l'application586
      • 3.1 Fonctionnalités586
      • 3.2 Couches MVC586
      • 3.2.1 Les vues586
      • 3.2.2 Les modèles587
      • 3.2.3 Les contrôleurs587
      • 3.3 Navigation entre les pages592
      • 3.4 Normaliser les échanges entre MVC596
      • 3.5 Les vues599
      • 3.5.1 La vue « Login »600
      • 3.5.2 La vue « Choix d'objets »611
      • 3.5.3 La vue gestion de compte626
      • 3.5.4 La vue « Validation de panier »644
      • 3.6 Création d'une facture651
      • 3.6.1 Préparation et création des éléments nécessaires à l'opération651
      • 3.6.2 Création d'un modèle652
      • 3.6.3 Récupération des données655
      • 3.6.4 Design du rapport659
      • 3.6.5 Génération du fichier660
      • 3.7 Calcul du montant total de la commande par procédure stockée662
      • 4. Conclusion666
      • Chapitre 14
      • Attributs, annotations et RTTI
      • 1. Introduction667
      • 2. Principe du mapping propriété/colonne668
      • 3. Attributs Delphi669
      • 3.1 Généralités669
      • 3.2 Modélisation670
      • 4. Un moteur d'accès aux données générique677
      • 4.1 Implémentation677
      • 4.2 Le cas des propriétés objets692
      • 4.2.1 Sauvegarde dans la base de données692
      • 4.2.2 Chargement dans la base de données694
      • 4.3 Gestion de listes695
      • 4.4 Les tables de jointure, relation OneToMany698
      • 5. Conclusion711
      • Chapitre 15
      • FireDÂC, FireMonkey et LiveBinding
      • 1. FireMonkey713
      • 2. LiveBinding714
      • 3. Migration des outils back-office et E-Commerce en FireMonkey715
      • 3.1 Le composant TListView715
      • 3.2 Liaison visuelle avec une source de données FireDAC : LiveBinding721
      • 4. Interagir avec la TListView724
      • 4.1 Le clic724
      • 4.2 Le double clic725
      • 5. Visualisation Maître/Détail725
      • 5.1 Présentation725
      • 5.2 Maître/Détail utilisateur/commandes726
      • 5.3 Maître/Détail commande/objets achetés732
      • 5.4 Relation Maître/Détail, commande/adresse de livraison736
      • 6. Modification de la valeur issue de la source de donnée739
      • 6.1 Cas d'application739
      • 6.2 La propriété CustomFormat740
      • 6.3 Les routines de conversion742
      • 6.4 Créer ses propres routines de conversion746
      • 7. Conclusion747
      • Chapitre 16
      • Serveur d'application REST
      • 1. Définition : application distribuée749
      • 2. Protocole HTTP750
      • 3. Exemple d'échanges de données : information de météo751
      • 3.1 Par le protocole HTTP751
      • 3.2 Par le protocole SOAP (Simple Object Access Protocol)752
      • 3.3 Par une architecture REST754
      • 4. Service web et web-méthodes REST756
      • 4.1 Cas général756
      • 4.2 Cas de l'authentification758
      • 4.2.1 La problématique758
      • 4.2.2 Les méthodes d'authentification HTTP758
      • 4.2.3 Les différentes options759
      • 4.2.4 Implémentation choisie762
      • 5. Implémentation de l'application côté serveur778
      • 5.1 Le projet Web Server Application779
      • 5.2 Mise en place du serveur Apache782
      • 5.2.1 Installation d'Apache783
      • 5.2.2 Configuration du serveur Apache783
      • 5.2.3 Intégration du module785
      • 5.3 Edition des points d'entrée786
      • 5.4 Utilisation du REST Debugger de Delphi788
      • 5.5 Passage de paramètres du client vers le serveur791
      • 5.6 Implémentation de l'enregistrement d'un utilisateur791
      • 5.7 La classe TJsonResult796
      • 5.8 Le cas de l'authentification : le login799
      • 5.9 Récupération des produits805
      • 5.10 Mettre à jour un utilisateur809
      • 5.11 Passer une commande813
      • 5.12 Gérer la montée en charge avec l'utilisation d'un pool de connexion819
      • 6. Conclusion824
      • Chapitre 17
      • Client REST multi-plateforme FireMonkey
      • 1. Introduction825
      • 1.1 Design graphique825
      • 1.2 Échanges entre le client et le serveur829
      • 1.3 Implémentation831
      • 2. Appel REST simple, enregistrement d'un utilisateur836
      • 3. Authentification REST de type Basic et login d'un utilisateur843
      • 4. Utilisation du Livebinding avec un modèle de données846
      • 4.1 Utilisation d'un TDataGeneratorAdapter pour définir un prototype d'échange848
      • 4.2 Encapsulation dans un TAdapterBindSource849
      • 4.3 Liaison avec un TListView851
      • 4.4 Gestion de panier854
      • 4.4.1 Design graphique854
      • 4.4.2 Implémentation856
      • 4.5 Passer une commande859
      • 4.6 Gestion compte utilisateur863
      • 5. Conclusion870
      • Chapitre 18
      • Travailler avec les styles FireMonkey
      • 1. Présentation871
      • 2. Modifier ou créer un style de composant872
      • 2.1 Le Style Designer872
      • 2.2 Modification du style TLabel875
      • 2.3 Créer un nouveau style878
      • 3. Créer et utiliser un style spécifique pour une TListBox881
      • 3.1 Création d'un style TListBox881
      • 3.2 Ajout d'éléments stylisés dans la TListBox883
      • 3.2.1 Exemple : Affectation du prix884
      • 3.2.2 Exemple : Affectation de l'image884
      • 4. Intégration dans le client REST886
      • 5. Conclusion891
      • Conclusion893
      • Index895

  • Origine de la notice:
    • Electre
  • Disponible - 681.21 GRA

    Niveau 3 - Informatique