Guide du développeur
Borland
®Delphi
™7
pour Windows
™Reportez-vous au fichier DEPLOY situé dans le répertoire racine de votre produit Delphi 7 pour obtenir la liste complète des fichiers que vous pouvez distribuer conformément aux termes du contrat de licence de Delphi.
Les applications mentionnées dans ce manuel sont brevetées ou en attente de brevet. Ce document ne donne aucun droit sur ces brevets. Reportez-vous au CD du produit ou à la boîte de dialogue A propos.
COPYRIGHT © 1983–2002 Borland Software Corporation. Tous droits réservés. Tous les produits Borland sont des marques commerciales ou des marques déposées de Borland Software Corporation aux Etats-Unis ou dans les autres pays. Toutes les autres marques sont la propriété de leurs fabricants respectifs.
HDE1370WW21001 7E5R0802 0203040506-9 8 7 6 5 4 3 2 1 PDF
Chapitre 1
Introduction 1-1
Contenu de ce manuel . . . 1-1 Conventions typographiques. . . 1-3 Support technique . . . 1-3
Partie I
Programmation Delphi
Chapitre 2
Développement d’applications
avec Delphi 2-1
L’environnement de développement intégré. . 2-1 Conception d’applications . . . 2-2 Création des projets . . . 2-3 Modification du code . . . 2-4 Compilation des applications . . . 2-4 Débogage des applications . . . 2-5 Déploiement des applications . . . 2-6
Chapitre 3
Utilisation de la bibliothèque
de composants 3-1
Présentation de la bibliothèque
de composants . . . 3-1 Propriétés, méthodes et événements . . . . 3-3 Propriétés . . . 3-3 Méthodes . . . 3-4 Evénements . . . 3-4 Evénements utilisateur. . . 3-4 Evénements système . . . 3-5 Evénements internes . . . 3-5 Objets, composants et contrôles . . . 3-5 Branche TObject . . . 3-6 Branche TPersistent . . . 3-7 Branche TComponent . . . 3-8 Branche TControl. . . 3-9 Branche TWinControl/TWidgetControl . . . 3-10
Chapitre 4
Utilisation du modèle objet 4-1
Qu’est-ce qu’un objet ? . . . 4-1 Examen d’un objet Delphi . . . 4-2 Modification du nom d’un composant . . . 4-4
Héritage des données et du code d’un objet . . 4-5 Portée et qualificateurs. . . . 4-5
Déclarations privées, protégées, publiques et publiées . . . . 4-6 Utilisation de variables objet . . . . 4-7 Création, instanciation et destruction d’objets . 4-8 Composants et appartenance . . . . 4-9 Définition de nouvelles classes . . . 4-10 Utilisation des interfaces. . . 4-12
Utilisation des interfaces au travers
de la hiérarchie . . . 4-13 Utilisation d’interfaces
avec des procédures. . . 4-14 Implémentation de IInterface . . . 4-15 TInterfacedObject . . . 4-15 Utilisation de l’opérateur as
avec des interfaces . . . 4-16 Réutilisation de code et délégation . . . 4-17
Utilisation de implements
pour la délégation . . . 4-17 Agrégation . . . 4-18 Gestion mémoire des objets interface . . . 4-19 Utilisation du comptage de références . 4-19 Situations où il ne faut pas utiliser
le comptage de références . . . 4-20 Utilisation d’interfaces dans les applications
distribuées . . . 4-21
Chapitre 5
Utilisation de BaseCLX 5-1
Utilisation des flux . . . . 5-2 Utilisation des flux pour lire ou écrire
des données . . . . 5-2 Méthodes de flux pour la lecture
et l’écriture . . . . 5-2 Lecture et écriture de composants. . . . . 5-3 Lecture et écriture de chaînes . . . . 5-3 Copie de données d’un flux vers un autre . 5-3 Spécification de la position et de la taille
du flux . . . . 5-4 Déplacement sur une position
particulière . . . . 5-4 Utilisation des propriétés de position
et de taille. . . . 5-5 Utilisation des fichiers . . . . 5-5 Approches des E/S fichier . . . . 5-5
Table des matières
Utilisation de flux de fichier . . . 5-6 Création et ouverture de fichiers en utilisant des flux de fichier. . . 5-6 Utilisation du handle de fichier . . . 5-8 Manipulation de fichiers . . . 5-8 Suppression d’un fichier. . . 5-8 Recherche d’un fichier . . . 5-8 Modification d’un nom de fichier . . . . 5-10 Routines date-heure de fichier . . . . 5-10 Copie d’un fichier . . . . 5-11 Utilisation des fichiers ini et du registre . . . . 5-11 Utilisation de TIniFile et TMemIniFile. . 5-12 Utilisation de TRegistryIniFile . . . . 5-13 Utilisation de TRegistry . . . . 5-14 Utilisation des listes . . . . 5-14 Opérations de listes courantes . . . . 5-15 Ajout d’éléments de liste . . . . 5-15 Suppression d’éléments de liste . . . . . 5-16 Accès aux éléments de la liste . . . . 5-16 Réorganisation d’éléments de liste . . . . 5-16 Listes persistantes . . . . 5-17 Utilisation des listes de chaînes . . . . 5-17
Lecture et enregistrement des listes
de chaînes . . . . 5-18 Création d’une nouvelle liste de chaînes . . 5-18 Listes de chaînes à court terme . . . . 5-18 Listes de chaînes à long terme . . . . 5-19 Manipulation des chaînes d’une liste . . . . 5-20 Comptage des chaînes d’une liste . . . . 5-21 Accès à une chaîne spécifique . . . . 5-21 Recherche d’éléments dans une liste
de chaînes . . . . 5-21 Parcours des chaînes d’une liste . . . . . 5-21 Ajout d’une chaîne à une liste . . . . 5-21 Déplacement d’une chaîne
dans une liste . . . . 5-22 Suppression d’une chaîne d’une liste . . 5-22 Association d’objets à une liste
de chaînes . . . . 5-23 Utilisation des chaînes . . . . 5-23
Routines manipulant les caractères
étendus . . . . 5-23 Routines usuelles de manipulation
des chaînes longues . . . . 5-24 Routines couramment utilisées
pour les chaînes à zéro terminal . . . . 5-27 Déclaration et initialisation de chaînes . . . 5-28 Mélange et conversion de types chaîne . . . 5-29 Conversions de chaînes en PChar . . . . 5-30 Dépendances de chaîne . . . . 5-30
Renvoi d’une variable locale PChar. . . 5-31 Transfert d’une variable locale comme
PChar . . . 5-31 Directives de compilation portant
sur les chaînes . . . 5-32 Création d’espaces de dessin . . . 5-33 Impression . . . 5-33 Conversion de mesures . . . 5-34 Exécution des conversions . . . 5-35 Exécution des conversions simples . . . 5-35 Exécution des conversions complexes . 5-35 Ajout de nouveaux types de mesure . . . . 5-35 Création d’une famille de conversion
simple et ajout d’unités. . . 5-36 Déclaration des variables . . . 5-36 Recensement de la famille
de conversion. . . 5-37 Recensement des unités de mesure . . . 5-37 Utilisation des nouvelles unités . . . 5-37 Utilisation d’une fonction de conversion . 5-37 Déclaration des variables . . . 5-38 Recensement de la famille
de conversion. . . 5-38 Recensement de l’unité de base . . . 5-38 Ecriture des méthodes de conversion
vers et depuis l’unité de base . . . 5-38 Recensement des autres unités . . . 5-39 Utilisation des nouvelles unités . . . 5-39 Utilisation d’une classe pour gérer
les conversions. . . 5-39 Création de la classe de conversion . . . 5-40 Déclaration des variables . . . 5-41 Recensement de la famille
de conversion et des autres unités . . 5-41 Utilisation des nouvelles unités . . . 5-42 Définition de variants personnalisés . . . 5-42
Stockage des données d’un type variant personnalisé . . . 5-43 Création d’une classe pour le type variant
personnalisé . . . 5-44 Transtypage. . . 5-44 Implémentation d’opérations binaires . 5-46 Implémentation d’opérations
de comparaison . . . 5-48 Implémentation d’opérations unaires . . 5-49 Copie et effacement des variants
personnalisés. . . 5-50 Chargement et enregistrement des valeurs
des variants personnalisés . . . 5-51
Utilisation du descendant
de TCustomVariantType . . . . 5-52 Ecriture d’utilitaires fonctionnant
avec un type variant personnalisé . . . . . 5-52 Support des propriétés et des méthodes
dans les variants personnalisés. . . . 5-53 Utilisation de TInvokeableVariantType . 5-54 Utilisation de TPublishableVariantType . 5-55
Chapitre 6
Utilisation des composants 6-1
Initialisation des propriétés d’un composant . 6-2 Initialisation des propriétés à la conception 6-2 Utilisation des éditeurs de propriété. . . 6-3 Initialisation des propriétés à l’exécution . . 6-3 Appel de méthodes . . . 6-3 Utilisation des événements et des gestionnaires
d’événements . . . 6-4 Génération d’un nouveau gestionnaire
d’événement . . . 6-4 Génération du gestionnaire de l’événement
par défaut d’un composant . . . 6-4 Recherche de gestionnaires d’événements . 6-5 Association d’un événement à un gestionnaire
d’événement existant . . . 6-5 Utilisation du paramètre Sender . . . 6-6 Affichage et codage d’événements
partagés . . . 6-6 Association d’événements de menu
à des gestionnaires d’événements . . . 6-6 Suppression de gestionnaires d’événements 6-7 Composants multiplates-formes ou non
multiplates-formes . . . 6-7 Ajout de composants personnalisés
à la palette des composants . . . . 6-10
Chapitre 7
Manipulation des contrôles 7-1
Implémentation du glisser-déplacer
dans les contrôles . . . 7-1 Début de l’opération glisser-déplacer . . . . 7-1 Acceptation des éléments à déplacer . . . . 7-2 Déplacement des éléments . . . 7-3 Fin de l’opération glisser-déplacer . . . 7-3 Personnalisation du glisser-déplacer
avec un objet déplacement . . . 7-4 Changement du pointeur de la souris. . . . 7-4 Implémentation du glisser-ancrer
dans les contrôles . . . 7-4
Transformation d’un contrôle fenêtré
en un site d’ancrage. . . . 7-5 Transformation d’un contrôle en un enfant
ancrable . . . . 7-5 Contrôle de l’ancrage des contrôles enfant . 7-6 Contrôle du désancrage des contrôles
enfant . . . . 7-6 Contrôle de la réponse des contrôles enfant
aux opérations glisser-ancrer . . . . 7-7 Manipulation du texte dans les contrôles . . . . 7-7 Définition de l’alignement du texte. . . . 7-7 Ajout de barres de défilement en mode
exécution . . . . 7-8 Ajout de l’objet Clipboard . . . . 7-9 Sélection de texte . . . . 7-9 Sélection de la totalité d’un texte . . . 7-10 Couper, copier et coller du texte . . . 7-11 Effacement du texte sélectionné. . . 7-11 Désactivation des éléments de menu. . . . 7-11 Ajout d’un menu surgissant . . . 7-12 Gestion de l’événement OnPopup . . . 7-13 Ajout de graphiques à des contrôles . . . 7-14
Spécification du style dessiné
par le propriétaire . . . 7-14 Ajout d’objets graphiques à une liste
de chaînes . . . 7-15 Ajout d’images à une application . . . . 7-15 Ajout d’images à une liste de chaînes . 7-15 Dessiner des éléments dessinés
par le propriétaire . . . 7-16 Dimensionnement des éléments dessinés
par le propriétaire . . . 7-16 Dessin des éléments par le propriétaire . . 7-18
Chapitre 8
Création d’applications, de composants
et de bibliothèques 8-1
Création d’applications . . . . 8-1 Applications d’interface utilisateur
graphique. . . . 8-1 Modèles d’interfaces utilisateur . . . . 8-2 Applications SDI. . . . 8-2 MDI, applications . . . . 8-2 Définition des options de l’EDI,
du projet et du compilateur . . . . 8-3 Modèles de programmation . . . . 8-3 Applications console . . . . 8-4 Applications service . . . . 8-4 Threads de service. . . . 8-7
Propriétés de nom d’un service . . . 8-9 Débogage d’applications service . . . 8-9 Création de paquets et de DLL . . . . 8-10 Utilisation des paquets et des DLL . . . . . 8-11 Ecriture d’applications de bases de données. . 8-12
Distribution d’applications de bases
de données . . . . 8-13 Création d’applications serveur Web . . . . 8-13 Création d’applications Web Broker . . . . . 8-13 Création d’applications WebSnap . . . . 8-15 Création d’applications services Web . . . . 8-15 Ecriture d’applications en utilisant COM . . . 8-16 Utilisation de COM et de DCOM . . . . 8-16 Utilisation de MTS et de COM+ . . . . 8-16 Utilisation de modules de données . . . . 8-17
Création et modification de modules
de données standard . . . . 8-18 Nom d’un module de données
et de son fichier unité . . . . 8-18 Placer et nommer les composants . . . . 8-19 Utilisation des propriétés et événements
des composants dans un module
de données. . . . 8-20 Création de règles de gestion
dans un module de données . . . . 8-20 Accès à un module de données
depuis une fiche . . . . 8-21 Ajout d’un module de données distant
à un projet serveur d’application . . . . . 8-22 Utilisation du référentiel d’objets . . . . 8-22 Partage d’éléments dans un projet. . . . 8-22 Ajout d’éléments au référentiel d’objets . . 8-23 Partage d’objets par une équipe
de développement . . . . 8-23 Utilisation d’un élément du référentiel
d’objets dans un projet . . . . 8-23 Copie d’un élément . . . . 8-24 Héritage d’un élément . . . . 8-24 Utilisation d’un élément . . . . 8-24 Utilisation de modèles de projet . . . . 8-24 Modification d’éléments partagés . . . . 8-25 Spécification d’un projet par défaut, d’une
nouvelle fiche et de la fiche principale . . 8-25 Activation de l’aide dans les applications . . . 8-25 Interfaces avec les systèmes d’aide . . . . . 8-26 Implémentation de ICustomHelpViewer . . 8-27 Communication avec le gestionnaire
d’aide . . . . 8-27
Demande d’informations au gestionnaire d’aide . . . 8-28 Affichage de l’aide basée sur un mot clé . 8-28 Affichage des sommaires. . . 8-29 Implémentation de IExtendedHelpViewer. 8-30 Implémentation de IHelpSelector . . . 8-31 Recensement des objets du système
d’aide . . . 8-31 Recensement des visualiseurs d’aide . . 8-31 Recensement des sélecteurs d’aide . . . 8-32 Utilisation de l’aide dans une application
VCL . . . 8-32 Comment TApplication traite-il l’aide
VCL . . . 8-32 Comment les contrôles VCL traitent-ils
l’aide . . . 8-32 Utilisation de l’aide dans une application
CLX . . . 8-33 Comment TApplication traite-il l’aide
CLX . . . 8-33 Comment les contrôles CLX traitent-ils
l’aide . . . 8-33 Appel direct à un système d’aide . . . 8-34 Utilisation de IHelpSystem . . . 8-34 Personnalisation du système d’aide de l’EDI . 8-35
Chapitre 9
Conception de l’interface utilisateur
des applications 9-1
Contrôle du comportement de l’application . . 9-1 Manipulation de l’application . . . . 9-2 Gestion de l’écran . . . . 9-2 Paramétrage des fiches. . . . 9-2 Utilisation de la fiche principale . . . . 9-3 Cacher la fiche principale . . . . 9-3 Ajout de fiches. . . . 9-3 Liaison de fiches . . . . 9-3 Références circulaires d’unités . . . . 9-4 Gestion de la disposition. . . . 9-4 Utilisation des fiches . . . . 9-5
Contrôle du stockage en mémoire
des fiches . . . . 9-6 Affichage d’une fiche créée
automatiquement . . . . 9-6 Création dynamique de fiche . . . . 9-6 Création de fiches non modales comme
fenêtres . . . . 9-7 Création d’une instance de fiche en utilisant une variable locale. . . . 9-8
Transfert de paramètres supplémentaires aux fiches . . . 9-8 Récupération des données des fiches . . . . 9-9
Récupération de données dans les fiches non modales . . . 9-9 Récupération de données dans les fiches
modales . . . . 9-11 Réutilisation des composants et des groupes
de composants . . . . 9-13 Création et utilisation des modèles
de composants . . . . 9-13 Manipulation des cadres . . . . 9-14 Création de cadres . . . . 9-15 Ajout de cadres à la palette
des composants . . . . 9-15 Utilisation et modification des cadres . . . . 9-15 Partage des cadres . . . . 9-17 Développement de boîtes de dialogue . . . . . 9-17
Utilisation des boîtes de dialogue
d’ouverture . . . . 9-18 Organisation des actions pour les barres
d’outils et les menus. . . . 9-18 Qu’est-ce qu’une action ? . . . . 9-20 Définition des bandes d’actions . . . . 9-21 Création des barres d’outils et des menus . 9-21
Ajout de couleurs, de motifs ou d’images aux menus, boutons
et barres d’outils . . . . 9-23 Ajout d’icônes aux menus
et aux barres d’outils . . . . 9-24 Sélection de styles de menu
et de barre d’outils . . . . 9-24 Création de menus dynamiques . . . . . 9-25 Création de barres d’outils et de menus
personnalisables par l’utilisateur . . . . 9-26 Cacher les éléments et les catégories
inutilisés dans les bandes d’action . . . 9-26 Création de listes d’éléments
les plus récemment utilisés . . . . 9-27 Utilisation des listes d’actions . . . . 9-28 Définition des listes d’actions . . . . 9-28 Que se passe-t-il lors du déclenchement
d’une action ? . . . . 9-29 Réponse par les événements . . . . 9-29 Comment les actions trouvent
leurs cibles . . . . 9-31 Actualisation des actions . . . . 9-31 Classes d’actions prédéfinies . . . . 9-32 Conception de composants action . . . . 9-33 Recensement d’actions. . . . 9-34
Création et gestion de menus . . . 9-34 Ouverture du concepteur de menus . . . . 9-35 Construction des menus . . . 9-36 Nom des menus . . . 9-36 Nom des éléments de menu . . . 9-37 Ajout, insertion et suppression
d’éléments de menu . . . 9-37 Ajout de lignes de séparation . . . 9-39 Spécification de touches accélératrices
et de raccourcis clavier . . . 9-39 Création de sous-menus . . . 9-40
Création de sous-menus par déplacement de menus existants . . . 9-41 Déplacement d’éléments de menu . . . 9-41 Ajout d’images à des éléments
de menu. . . 9-42 Affichage du menu . . . 9-42 Edition des éléments de menu
dans l’inspecteur d’objets. . . 9-43 Utilisation du menu contextuel
du concepteur de menus . . . 9-43 Commandes du menu contextuel . . . . 9-43 Déplacement parmi les menus
à la conception . . . 9-44 Utilisation des modèles de menu . . . 9-45 Enregistrement d’un menu comme modèle 9-46
Conventions de nom pour les éléments et les gestionnaires d’événements
des modèles de menu . . . 9-47 Manipulation d’éléments de menu
à l’exécution . . . 9-47 Fusion de menus . . . 9-48
Spécification du menu actif :
propriété Menu. . . 9-48 Ordre des éléments de menu fusionnés :
propriété GroupIndex . . . 9-48 Importation de fichiers ressource . . . 9-49 Conception de barres d’outils et de barres
multiples . . . 9-49 Ajout d’une barre d’outils en utilisant
un composant volet . . . 9-50 Ajout d’un turbobouton à un volet . . . 9-51 Spécification du glyphe
d’un turbobouton . . . 9-51 Définition de l’état initial
d’un turbobouton . . . 9-52 Création d’un groupe
de turboboutons . . . 9-52 Utilisation de boutons bascule . . . 9-52
Ajout d’une barre d’outils en utilisant
le composant barre d’outils . . . . 9-53 Ajout d’un bouton outil . . . . 9-53 Affectation d’images à des boutons
outil. . . . 9-53 Définition de l’aspect et des conditions
initiales d’un bouton outil . . . . 9-54 Création de groupes de boutons outil . . 9-54 Utilisation de boutons outil bascule . . . 9-55 Ajout d’un composant barre multiple . . . . 9-55
Définition de l’aspect de la barre
multiple . . . . 9-55 Réponse aux clics . . . . 9-56
Affectation d’un menu à un bouton outil. . . . 9-56 Ajout de barres d’outils masquées. . . . 9-56 Masquage et affichage d’une barre
d’outils . . . . 9-57 Programmes exemple . . . . 9-57 Contrôles communs et thèmes XP. . . . 9-57
Chapitre 10
Types de contrôles 10-1
Contrôles texte . . . . 10-1 Contrôles de saisie . . . . 10-2 Propriétés des contrôles de saisie . . . . 10-3 Contrôles de saisie mémo
et texte formaté . . . . 10-3 Contrôles de visualisation de texte . . . . . 10-4 Libellés . . . . 10-4 Contrôles de saisie spécialisée . . . . 10-5 Barres de défilement . . . . 10-6 Barres graduées. . . . 10-6 Contrôles haut-bas . . . . 10-7 Contrôles incrémenteur (CLX seulement) . 10-7 Contrôles touche d’accès rapide
(VCL seulement) . . . . 10-7 Contrôles séparateur. . . . 10-7 Boutons et contrôles similaires. . . . 10-8 Contrôles bouton . . . . 10-8 Boutons bitmap. . . . 10-9 Turboboutons . . . . 10-9 Cases à cocher . . . 10-10 Boutons radio. . . 10-10 Barres d’outils . . . 10-10 Barres multiples (VCL seulement) . . . 10-11 Contrôles liste . . . 10-11
Boîtes liste et boîtes liste
de cases à cocher . . . 10-12
Boîtes à options . . . 10-13 Vues arborescentes . . . 10-13 Vues liste . . . 10-14 Vues icône (CLX seulement) . . . 10-14 Sélecteurs Date/Heure et calendriers
mensuels . . . 10-14 Regroupement de contrôles . . . 10-15
Boîtes groupe et groupes
de boutons radio . . . 10-15 Volets . . . 10-15 Boîtes de défilement . . . 10-16 Contrôles onglets . . . 10-17 Contrôles pages . . . 10-17 Contrôles en-têtes . . . 10-17 Contrôles d’affichage. . . 10-17 Barres d’état . . . 10-18 Barres de progression. . . 10-18 Propriétés d’aide ou de conseil d’aide . . 10-18 Grilles . . . 10-19 Grilles de dessin. . . 10-19 Grilles de chaînes . . . 10-19 Editeur de liste de valeurs (VCL seulement) 10-20 Contrôles graphiques. . . 10-21 Images . . . 10-21 Formes . . . 10-21 Biseaux . . . 10-21 Boîtes à peindre . . . 10-22 Contrôle animation . . . 10-22
Chapitre 11
Conception de classes et de
composants avec ModelMaker 11-1
Principes de ModelMaker . . . 11-1 Modèles ModelMaker . . . 11-2 Utilisation de ModelMaker dans l’EDI. . . 11-2 Création de modèles . . . 11-2 Utilisation des vues ModelMaker . . . 11-3 Volet Collections. . . 11-4 Vue Classes . . . 11-4 Vue Unités . . . 11-4 Vue Diagrammes . . . 11-5 Volet Membres. . . 11-6 Volet Editeurs . . . 11-6 Editeur d’Implémentation . . . 11-7 Editeur de Code d’unité . . . 11-7 Editeur de Diagramme . . . 11-8 Autres éditeurs. . . 11-8 Pour plus d’informations . . . 11-9
Chapitre 12
Utilisation des graphiques
et du multimédia 12-1
Présentation de la programmation relative aux graphiques . . . . 12-1
Rafraîchissement de l’écran . . . . 12-2 Types des objets graphiques . . . . 12-3 Propriétés et méthodes communes
du canevas . . . . 12-4 Utilisation des propriétés
de l’objet canevas. . . . 12-6 Utilisation des crayons. . . . 12-6 Utilisation des pinceaux . . . . 12-8 Lecture et définition de pixels . . . 12-10 Utilisation des méthodes du canevas
pour dessiner des objets graphiques. . . 12-10 Dessin de lignes et de polylignes . . . 12-10 Dessin de formes . . . 12-12 Gestion de plusieurs objets de dessin
dans votre application . . . 12-13 Faire le suivi de l’outil de dessin
à utiliser . . . 12-13 Changement d’outil en utilisant
un turbobouton . . . 12-14 Utilisation des outils de dessin . . . 12-15 Dessiner sur un graphique . . . 12-17 Création de graphiques défilables . . . 12-18 Ajout d’un contrôle image . . . 12-18 Chargement et enregistrement
de fichiers graphiques . . . 12-20 Chargement d’une image
depuis un fichier . . . 12-20 Enregistrement d’une image
dans un fichier . . . 12-21 Remplacement de l’image . . . 12-21 Utilisation du presse-papiers
avec les graphiques . . . 12-23 Copier des graphiques
dans le presse-papiers . . . 12-23 Couper un graphique
dans le presse-papiers . . . 12-23 Coller des graphiques
depuis le presse-papiers . . . 12-24 Techniques de dessin
dans une application. . . 12-25 Répondre à la souris . . . 12-25 Réponse à l’action bouton de souris
enfoncé . . . 12-27
Ajout d’un champ à un objet fiche pour faire le suivi des actions de la souris 12-28 Amélioration du dessin des lignes . . 12-30 Utilisation du multimédia . . . 12-31
Ajout de séquences vidéo silencieuses
à une application . . . 12-32 Exemple d’ajout de séquences vidéo
silencieuses . . . 12-33 Ajout de séquences audio et/ou vidéo
à une application . . . 12-34 Exemple d’ajout de séquences audio
et/ou vidéo (VCL seulement) . . . . 12-35
Chapitre 13 Ecriture
d’applications multithreads 13-1
Définition d’objets thread . . . 13-2 Initialisation du thread . . . 13-3 Affectation d’une priorité par défaut . . 13-3 Libération des threads . . . 13-4 Ecriture de la fonction thread . . . 13-4
Utilisation du thread principal
VCL/CLX . . . 13-4 Utilisation de variables locales
aux threads . . . 13-6 Vérification de l’arrêt
par d’autres threads . . . 13-6 Gestion des exceptions
dans la fonction thread . . . 13-6 Ecriture du code de nettoyage . . . 13-7 Coordination de threads . . . 13-7 Eviter les accès simultanés. . . 13-8 Verrouillage d’objets. . . 13-8 Utilisation de sections critiques . . . 13-8 Utilisation du synchronisateur à écriture
exclusive et lecture multiple . . . 13-9 Autres techniques de partage
de la mémoire . . . 13-9 Attente des autres threads . . . 13-10
Attente de la fin d’exécution
d’un thread . . . 13-10 Attente de l’achèvement d’une tâche . 13-10 Exécution d’objets thread . . . 13-12 Redéfinition de la priorité par défaut . . 13-12 Démarrage et arrêt des threads . . . 13-12 Débogage d’applications multithreads. . . . 13-13 Nommer un thread . . . 13-13
Conversion d’un thread anonyme
en thread nommé . . . 13-13
Affectation de noms distincts
à des threads similaires . . . 13-15
Chapitre 14
Gestion des exceptions 14-1
Définition des blocs protégés . . . . 14-2 Ecriture du bloc try . . . . 14-2 Déclenchement d’une exception . . . . . 14-3 Ecriture de gestionnaires d’exceptions . . . 14-4 Instructions de gestion des exceptions. . 14-4 Gestion des classes d’exceptions . . . . . 14-6 Portée des gestionnaires d’exceptions . . 14-6 Redéclenchement d’exceptions . . . . 14-7 Ecriture de blocs finally . . . . 14-8 Ecriture d’un bloc finally . . . . 14-9 Gestion des exceptions
dans les applications VCL . . . 14-10 Classes d’exception VCL . . . 14-10 Gestion des exceptions par défaut
dans VCL . . . 14-12 Exceptions silencieuses . . . 14-12 Définition d’exceptions VCL
personnalisées . . . 14-13
Chapitre 15
Développement d’applications
multiplates-formes 15-1
Création d’applications CLX . . . . 15-2 Portage d’applications VCL . . . . 15-2 Techniques de portage. . . . 15-2 Portages propres à une plate-forme . . . 15-3 Portages multiplates-formes. . . . 15-3 Portages d’émulation Windows . . . . . 15-3 Modification des applications VCL . . . . . 15-3 WinCLX ou VisualCLX . . . . 15-5 Différences de VisualCLX . . . . 15-6 Fonctionnalités non portées directement
ou manquantes . . . . 15-7 Comparaison des unités WinCLX
et VisualCLX . . . . 15-8 Différences dans les constructeurs
d’objets CLX . . . 15-12 Gestion des événements widget
et système . . . 15-12 Ecriture de code portable . . . 15-13
Utilisation des directives
conditionnelles . . . 15-14 Terminaison des directives
conditionnelles . . . 15-15
Inclusion de code assembleur inline . 15-16 Différences de programmation
sous Linux . . . 15-17 Transfert d’applications entre Windows
et Linux . . . 15-18 Partage des fichiers source
entre Windows et Linux . . . 15-18 Différences d’environnement
entre Windows et Linux . . . 15-19 Registre . . . 15-21 Présentation visuelle . . . 15-22 Structure de répertoires sous Linux . . . 15-22 Applications de bases de données
multiplates-formes . . . 15-23 Différences de dbExpress . . . 15-24 Différences au niveau composant. . . 15-25 Différences au niveau de l’interface
utilisateur. . . 15-26 Portage d’applications de bases de données
vers Linux . . . 15-26 Mise à jour des données
dans les applications dbExpress. . . 15-29 Applications Internet multiplates-formes . . 15-31
Portage d’applications Internet
vers Linux . . . 15-31
Chapitre 16
Utilisation des paquets
et des composants 16-1
Pourquoi utiliser des paquets ? . . . 16-2 Les paquets et les DLL standard . . . 16-2 Paquets d’exécution . . . 16-3
Chargement des paquets
dans une application . . . 16-3 Chargement des paquets
avec la fonction LoadPackage . . . 16-4 Choix des paquets d’exécution à utiliser. . 16-4 Paquets personnalisés . . . 16-5 Paquets de conception . . . 16-5 Installation de paquets de composants. . . 16-6 Création et modification de paquets . . . 16-7 Création d’un paquet . . . 16-7 Modification d’un paquet existant . . . 16-8 Présentation de la structure d’un paquet . 16-9 Nom de paquets . . . 16-9 Clause Requires . . . 16-9 Clause Contains . . . 16-10 Modification manuelle de fichiers source
de paquets . . . 16-10
Compilation de paquets . . . 16-11 Directives de compilation propres
aux paquets . . . 16-11 Compilation et liaison à partir
de la ligne de commande . . . 16-13 Fichiers de paquets créés
lors d’une compilation . . . 16-14 Déploiement de paquets . . . 16-14
Déploiement d’applications utilisant
des paquets . . . 16-14 Distribution de paquets à d’autres
développeurs . . . 16-14 Fichiers de collection de paquets . . . 16-15
Chapitre 17
Création d’applications
internationales 17-1
Internationalisation et localisation. . . . 17-1 Internationalisation . . . . 17-1 Localisation . . . . 17-2 Internationalisation des applications . . . . 17-2 Codage de l’application . . . . 17-2 Jeux de caractères. . . . 17-2 Jeux de caractères OEM et ANSI . . . . . 17-3 Jeux de caractères multi-octets . . . . 17-3 Caractères étendus . . . . 17-4 Inclure des fonctionnalités
bi-directionnelles dans les applications 17-4 Propriété BiDiMode . . . . 17-5 Fonctionnalités spécifiques
aux cibles locales . . . . 17-7 Conception de l’interface utilisateur. . . . . 17-8 Texte . . . . 17-8 Images graphiques . . . . 17-8 Formats et ordre de tri . . . . 17-9 Correspondances entre claviers. . . . 17-9 Isolation des ressources . . . . 17-9 Création de DLL de ressource . . . . 17-9 Utilisation des DLL de ressource . . . 17-11 Basculement dynamique de DLL
de ressource . . . 17-12 Localisation des applications. . . 17-13 Localisation des ressources . . . 17-13
Chapitre 18
Déploiement des applications 18-1
Déploiement d’applications généralistes . . . 18-1 Utilisation des programmes d’installation . 18-2
Identification des fichiers
de l’application. . . 18-3 Fichiers de l’application . . . 18-3 Fichiers paquet. . . 18-3 Modules de fusion. . . 18-3 Contrôles ActiveX . . . 18-5 Applications complémentaires . . . 18-6 Emplacement des DLL . . . 18-6 Déploiement d’applications CLX . . . 18-6 Déploiement d’applications
de bases de données . . . 18-6 Déploiement d’applications
de bases de données dbExpress . . . 18-8 Déploiement d’applications BDE . . . 18-9
Le moteur de bases de données
Borland . . . 18-9 Déploiement d’applications de bases
de données multiniveaux (DataSnap) . 18-10 Déploiement d’applications Web . . . 18-10 Déploiement sur les serveurs Apache . . .18-11 Activation des modules. . . .18-11 CGI, applications . . . .18-11 Programmation pour des environnements
hôtes hétérogènes . . . 18-12 Résolution d’écran et profondeur
de couleurs . . . 18-13 Si vous n’utilisez pas
de redimensionnement dynamique . 18-13 Si vous redimensionnez dynamiquement
les fiches et les contrôles . . . 18-13 Adaptation à des profondeurs
de couleurs variables . . . 18-15 Fontes . . . 18-15 Versions des systèmes d’exploitation. . . 18-16 Termes du contrat de licence logicielle . . . 18-16 DEPLOY . . . 18-16 README . . . 18-17 Contrat de licence . . . 18-17 Documentation de produits vendus
par un tiers . . . 18-17
Partie II
Développement d’applications de bases de données
Chapitre 19
Conception d’applications
de bases de données 19-1
Utilisation des bases de données . . . . 19-1 Types de bases de données . . . . 19-3 Sécurité des bases de données . . . . 19-4 Transactions . . . . 19-5 Intégrité référentielle, procédures
stockées et déclencheurs. . . . 19-6 Architecture des bases de données . . . . 19-6 Structure générale . . . . 19-7 Fiche interface utilisateur . . . . 19-7 Module de données . . . . 19-7 Connexion directe à un serveur
de bases de données . . . . 19-9 Utilisation d’un fichier dédié sur disque . 19-10 Connexion à un autre ensemble
de données . . . 19-12 Connexion d’un ensemble de données
client à un autre ensemble de données dans la même application . . . 19-14 Utilisation d’une architecture
multiniveau . . . 19-15 Combinaison des approches . . . 19-16 Conception de l’interface utilisateur . . . 19-17 Analyse des données . . . 19-18 Ecriture d’états . . . 19-18
Chapitre 20 Utilisation
de contrôles de données 20-1
Fonctionnalités communes des contrôles
de données . . . . 20-2 Association d’un contrôle de données
à un ensemble de données . . . . 20-3 Modification de l’ensemble de données
associé à l’exécution . . . . 20-4 Activation et désactivation
de la source de données . . . . 20-4 Réponse aux modifications effectuées
par le biais de la source de données . . 20-5 Edition et mise à jour des données . . . . . 20-5
Activation de l’édition des contrôles lors d’une saisie utilisateur . . . . 20-5
Edition des données affichées
dans un contrôle . . . 20-6 Activation et désactivation de l’affichage
des données . . . 20-7 Rafraîchissement de l’affichage
des données . . . 20-7 Activation des événements souris,
clavier et timer. . . 20-8 Choix de l’organisation des données. . . 20-8 Affichage d’un seul enregistrement. . . 20-8
Affichage de données
en tant que libellés. . . 20-9 Affichage et édition de champs
dans une zone de saisie. . . 20-9 Affichage et édition de texte
dans un contrôle mémo . . . 20-10 Affichage et édition dans un contrôle
mémo de texte formaté . . . 20-10 Affichage et édition de champs graphiques
dans un contrôle image . . . .20-11 Affichage de données dans des boîtes liste
et des boîtes à options . . . .20-11 Manipulation de champs booléens
avec des cases à cocher . . . 20-15 Limitation de valeurs de champ
avec des boutons radio . . . 20-16 Affichage de plusieurs enregistrements . 20-17 Visualisation et édition des données
avec un contrôle TDBGrid . . . 20-17 Utilisation d’un contrôle grille à son état
par défaut . . . 20-18 Création d’une grille personnalisée. . . . 20-19
Présentation des colonnes
persistantes . . . 20-20 Création de colonnes persistantes . . . 20-21 Suppression de colonnes persistantes. 20-22 Modification de l’ordre
des colonnes persistantes . . . 20-22 Définition des propriétés de colonne
en mode conception . . . 20-23 Définition d’une colonne de liste
de référence. . . 20-24 Insertion d’un bouton
dans une colonne . . . 20-25 Restauration des valeurs par défaut
d’une colonne . . . 20-25 Affichage des champs ADT et tableau . . 20-25 Définition des options de la grille . . . . 20-28 Saisie de modifications dans la grille. . . 20-29 Contrôle du dessin de la grille . . . 20-30
Comment répondre aux actions
de l’utilisateur à l’exécution . . . 20-30 Création d’une grille qui contient d’autres
contrôles orientés données . . . 20-31 Navigation et manipulation
d’enregistrements . . . 20-33 Choix des boutons visibles . . . 20-34
Affichage et dissimulation des boutons en mode conception . . . 20-34 Affichage et dissimulation des boutons
à l’exécution . . . 20-34 Affichage de panneaux d’information. . . 20-35 Utilisation d’un navigateur pour plusieurs
ensembles de données . . . 20-35
Chapitre 21 Création d’états
avec Rave Reports 21-1
Présentation . . . . 21-1 Démarrage . . . . 21-2 Le concepteur visuel Rave . . . . 21-3 Présentation des composants. . . . 21-4 Composants VCL/CLX . . . . 21-4 Composants moteur . . . . 21-4 Composants de restitution . . . . 21-4 Composants de connexion aux données. 21-4 Composant projet Rave . . . . 21-5 Composants d’état . . . . 21-5 Composants de projet . . . . 21-5 Objets de données . . . . 21-5 Composants standard . . . . 21-5 Composants de dessin . . . . 21-5 Composants d’état . . . . 21-6 Composants code barre . . . . 21-6 Pour plus d’informations . . . . 21-6
Chapitre 22
Utilisation de composants
d’aide à la décision 22-1
Présentation . . . . 22-1 Présentation des références croisées. . . . 22-2 Références croisées à une dimension . . . . 22-3 Références croisées à plusieurs dimensions 22-3 Instructions relatives à l’utilisation
de composants d’aide à la décision . . . . 22-3 Utilisation d’ensembles de données
avec les composants d’aide à la décision . . . 22-5
Création d’ensembles de données
de décision avec TQuery ou TTable. . . . 22-6 Création d’ensembles de données de décision
avec l’éditeur de requête de décision . . . 22-6 Utilisation des cubes de décision . . . 22-7
Propriétés et événements des cubes
de décision . . . 22-8 Utilisation de l’éditeur de cube de décision 22-8
Visualisation et modification
des paramètres de dimensions . . . 22-9 Définition du maximum de dimensions
et de récapitulations . . . 22-9 Visualisation et modification
des options de conception . . . 22-9 Utilisation de sources de décision . . . 22-10 Propriétés et événements. . . 22-10 Utilisation de pivots de décision . . . 22-10 Propriétés des pivots de décision . . . .22-11 Création et utilisation de grilles de décision .22-11 Création de grilles de décision . . . 22-12 Utilisation de grilles de décision . . . 22-12
Ouverture et fermeture des champs d’une grille de décision . . . 22-12 Réorganisation des lignes et des colonnes
d’une grille de décision . . . 22-12 Perforation pour voir les détails
dans les grilles de décision . . . 22-13 Limite des dimensions à sélectionner
dans les grilles de décision . . . 22-13 Propriétés des grilles de décision . . . 22-13 Création et utilisation de graphes
de décision . . . 22-14 Création de graphes de décision . . . 22-14 Utilisation de graphes de décision . . . . 22-15 Affichage du graphe de décision . . . 22-16 Personnalisation du graphe de décision . 22-17
Définition des modèles de graphe
de décision par défaut . . . 22-18 Personnalisation des séries
d’un graphe de décision . . . 22-19 Utilisation des composants d’aide
à la décision à l’exécution . . . 22-20 Pivots de décision à l’exécution . . . 22-20 Grilles de décision à l’exécution . . . 22-21 Graphes de décision à l’exécution . . . . 22-21 Considérations relatives au contrôle
de la mémoire . . . 22-21 Définition du maximum de dimensions,
de champs récapitulatifs et de cellules . 22-22
Définition de l’état des dimensions . . . . 22-22 Utilisation de dimensions paginées . . . . 22-23
Chapitre 23 Connexion
aux bases de données 23-1
Utilisation de connexions implicites . . . . 23-2 Contrôles des connexions. . . . 23-3
Connexion à un serveur
de bases de données . . . . 23-3 Déconnexion d’un serveur
de bases de données . . . . 23-4 Contrôle de la connexion au serveur . . . . 23-4 Gestion des transactions . . . . 23-6 Démarrage d’une transaction. . . . 23-7 Achèvement d’une transaction . . . . 23-9 Achèvement d’une transaction réussie . 23-9 Achèvement d’une transaction
non réussie. . . . 23-9 Spécification du niveau d’isolement
des transactions. . . 23-10 Envoi de commandes au serveur . . . 23-11 Utilisation d’ensembles de données associés 23-13
Fermeture d’ensembles de données
sans déconnexion du serveur . . . 23-13 Déplacement parmi les ensembles
de données associés . . . 23-14 Obtention de métadonnées . . . 23-14 Enumération des tables disponibles . . . . 23-15 Enumération des champs d’une table . . . 23-15 Enumération des procédures stockées
disponibles . . . 23-15 Enumération des index disponibles . . . . 23-16 Enumération des paramètres
de procédure stockée . . . 23-16
Chapitre 24
Présentation des ensembles
de données 24-1
Utilisation des descendants de TDataSet . . . . 24-2 Détermination des états d’un ensemble
de données . . . . 24-3 Ouverture et fermeture des ensembles
de données . . . . 24-5 Navigation dans les ensembles de données . . 24-6 Utilisation des méthodes First et Last . . . . 24-7 Utilisation des méthodes Next et Prior . . . 24-7 Utilisation de la méthode MoveBy . . . . . 24-8
Utilisation des propriétés Eof et Bof . . . . 24-9 Eof . . . 24-9 Bof . . . 24-10 Marquage d’enregistrements . . . 24-10 La propriété Bookmark . . . .24-11 La méthode GetBookmark . . . .24-11 Les méthodes GotoBookmark
et BookmarkValid . . . .24-11 La méthode CompareBookmarks . . . .24-11 La méthode FreeBookmark. . . .24-11 Un exemple d’utilisation de signets. . .24-11 Recherche dans les ensembles de données . 24-12 Utilisation de la méthode Locate . . . 24-12 Utilisation de la méthode Lookup . . . . 24-13 Affichage et édition d’ensembles
de données en utilisant des filtres . . . 24-14 Activation et désactivation des filtres . . 24-15 Création de filtres . . . 24-15 Définition de la propriété Filter . . . . 24-16 Ecriture d’un gestionnaire d’événement
OnFilterRecord . . . 24-17 Permutation entre les gestionnaires
d’événements filtre à l’exécution . . 24-18 Définition d’options de filtre . . . 24-18 Navigation parmi les enregistrements
d’un ensemble de données filtré . . . . 24-19 Modification des données . . . 24-20 Modification d’enregistrements . . . 24-20 Ajout de nouveaux enregistrements . . . 24-21 Insertion d’enregistrements . . . 24-22 Ajout d’enregistrements à la fin . . . . 24-23 Suppression d’enregistrements . . . 24-23 Validation des données. . . 24-24 Annulation des modifications . . . 24-24 Modification d’enregistrements entiers. . 24-25 Champs calculés . . . 24-26 Types d’ensembles de données . . . 24-27 Utilisation d’ensembles de données
de type table. . . 24-29 Avantages de l’utilisation des ensembles
de données de type table. . . 24-30 Tri des enregistrements avec des index . 24-30
Obtention d’informations
sur les index . . . 24-31 Spécification d’un index
avec IndexName . . . 24-31 Création d’un index
avec IndexFieldNames . . . 24-32
Utilisation d’index pour chercher
des enregistrements . . . 24-32 Exécution d’une recherche
avec les méthodes Goto . . . 24-33 Exécution d’une recherche
avec les méthodes Find . . . 24-34 Spécification de l’enregistrement en cours
après une recherche réussie . . . 24-34 Recherche sur des clés partielles . . . . 24-35 Réitération ou extension
d’une recherche . . . 24-35 Limitation des enregistrements
avec des portées . . . 24-35 Présentation des différences
entre les portées et les filtres. . . 24-36 Spécification de portées . . . 24-36 Modification d’une portée. . . 24-39 Application ou annulation
d’une portée . . . 24-40 Création de relations maître/détail . . . . 24-40
Comment faire de la table la partie détail d’un autre ensemble de données . . . 24-41 Utilisation de tables détail imbriquées. 24-43 Contrôle des accès en lecture/écriture
aux tables . . . 24-44 Création et suppression des tables. . . 24-44 Création de tables . . . 24-45 Suppression de tables . . . 24-47 Vidage des tables. . . 24-48 Synchronisation des tables . . . 24-48 Utilisation d’ensembles de données
de type requête. . . 24-49 Spécification de la requête . . . 24-50
Spécification d’une requête en utilisant la propriété SQL. . . 24-51 Spécification d’une requête en utilisant
la propriété CommandText . . . 24-51 Utilisation de paramètres
dans les requêtes . . . 24-52 Fourniture des paramètres
pendant la conception . . . 24-53 Fourniture des paramètres
pendant l’exécution. . . 24-54 Etablissement de relations maître/détail
en utilisant des paramètres . . . 24-55 Préparation des requêtes . . . 24-56 Exécution de requêtes qui ne renvoient
pas d’ensemble de résultats . . . 24-57
Utilisation d’ensembles de résultats
unidirectionnels . . . 24-57 Utilisation d’ensembles de données
de type procédure stockée . . . 24-58 Utilisation de paramètres
avec les procédures stockées. . . 24-59 Définition des paramètres p
endant la conception . . . 24-60 Utilisation des paramètres
pendant l’exécution . . . 24-62 Préparation des procédures stockées . . . 24-63 Exécution de procédures stockées qui ne
renvoient pas d’ensemble de résultats . 24-63 Lecture de plusieurs ensembles
de résultats . . . 24-64
Chapitre 25 Manipulation
des composants champ 25-1
Composants champ dynamique . . . 25-2 Champs persistants. . . 25-3 Création de champs persistants . . . 25-4 Modification de l’ordre
des champs persistants . . . 25-6 Définition de nouveaux
champs persistants . . . 25-6 Définition d’un champ de données . . . 25-7 Définition d’un champ calculé. . . 25-8 Programmation d’un champ calculé . . 25-9 Définition d’un champ de référence . 25-10 Définition d’un champ agrégat . . . . 25-12 Suppression de champs persistants. . . . 25-12 Définition des événements et des propriétés
des champs persistants . . . 25-13 Définition des propriétés d’affichage
et d’édition en mode conception . . . 25-13 Définition des propriétés des composants
champ à l’exécution . . . 25-15 Création des ensembles d’attributs
pour les composants champ . . . 25-15 Association des ensembles d’attributs
aux composants champ . . . 25-16 Suppression des associations
d’ensembles d’attributs . . . 25-17 Contrôle ou dissimulation
de la saisie utilisateur . . . 25-17 Utilisation des formats par défaut pour les
champs numériques, date et heure . 25-18 Gestion des événements . . . 25-18
Manipulation des méthodes de champ
lors de l’exécution . . . 25-19 Affichage, conversion et accès aux valeurs
des champs . . . 25-20 Affichage de valeurs
dans les contrôles standard . . . 25-21 Conversion des valeurs de champs . . . . 25-21 Accès à des valeurs par la propriété
par défaut d’un ensemble de données. . 25-23 Accès à des valeurs par la propriété Fields
d’un ensemble de données . . . 25-23 Accès à des valeurs par la méthode
FieldByName d’un ensemble
de données . . . 25-24 Définition de la valeur par défaut
d’un champ . . . 25-24 Utilisation de contraintes . . . 25-25 Création de contrainte personnalisée . . . 25-25 Utilisation des contraintes du serveur . . 25-25 Utilisation des champs objet . . . 25-26 Affichage des champs ADT et tableau . . 25-27 Utilisation des champs ADT . . . 25-27
Utilisation de composants
champ persistant . . . 25-28 Utilisation de la méthode FieldByName
d’un ensemble de données . . . 25-28 Utilisation de la propriété FieldValues
d’un ensemble de données . . . 25-28 Utilisation de la propriété FieldValues
d’un champ ADT . . . 25-29 Utilisation de la propriété Fields
d’un champ ADT . . . 25-29 Utilisation des champs tableau. . . 25-29 Utilisation de champs persistants . . . 25-29 Utilisation de la propriété FieldValues
d’un champ tableau . . . 25-30 Utilisation de la propriété Fields
d’un champ tableau . . . 25-30 Utilisation des champs ensemble
de données . . . 25-30 Affichage des champs ensemble
de données. . . 25-30 Accès aux données d’un ensemble
de données imbriqué . . . 25-31 Utilisation de champs de référence . . . . 25-31 Affichage des champs de référence . . 25-31 Accès aux données d’un champ
de référence . . . 25-32
Chapitre 26
Utilisation du moteur de bases
de données Borland 26-1
Architecture BDE . . . 26-1 Utilisation d’ensembles de données BDE . 26-2
Association d’un ensemble de données avec les connexions de bases
de données et de session . . . 26-3 Mise en cache des BLOBS . . . 26-4 Obtention d’un handle BDE . . . 26-4 Utilisation de TTable . . . 26-5
Spécification du type d’une table
locale . . . 26-6 Contrôle d’accès en lecture/écriture
aux tables locales. . . 26-6 Spécification d’un fichier
d’index dBASE . . . 26-7 Renommer une table locale . . . 26-8 Importation des données
d’une autre table . . . 26-8 Utilisation de TQuery . . . 26-9 Création de requêtes hétérogènes . . . 26-10 Obtention d’un ensemble de résultats
modifiable. . . .26-11 Mise à jour des ensembles
de résultats en lecture seule . . . 26-12 Utilisation de TStoredProc . . . 26-13 Liaison des paramètres . . . 26-13 Manipulation des procédures stockées
redéfinies d’Oracle . . . 26-13 Connexion aux bases de données
avec TDatabase . . . 26-14 Association d’un composant base
de données à une session . . . 26-14 Interactions entre les composants
base de données et session . . . 26-15 Identification de la base de données . 26-15 Ouverture d’une connexion
avec TDatabase. . . 26-17 Utilisation des composants base de données dans les modules de données . . . . 26-18 Gestion des sessions
de bases de données . . . 26-18 Activation d’une session . . . 26-20 Spécification du comportement
de la connexion de base de données par défaut . . . 26-21 Gestion des connexions de bases
de données . . . 26-21
Manipulation des tables Paradox et dBASE protégées par mot de passe . . . 26-24 Spécification des répertoires Paradox . 26-27 Manipulation des alias BDE. . . 26-28 Récupération des informations
d’une session . . . 26-30 Création de sessions supplémentaires . 26-31 Affectation d’un nom à une session . . 26-32 Gestion de sessions multiples. . . 26-32 Utilisation des transactions avec le BDE . . . 26-34 Utilisation du SQL transparent. . . 26-35 Utilisation de transactions locales . . . 26-36 Utilisation du BDE pour placer
en mémoire cache les mises à jour. . . 26-37 Activation des mises à jour BDE
en mémoire cache . . . 26-38 Application des mises à jour BDE
en mémoire cache . . . 26-39 Application des mises à jour en mémoire
cache avec une base de données . . . 26-40 Application des mises à jour en mémoire
cache avec les méthodes de composant base de données . . . 26-41 Création d’un gestionnaire d’événement
OnUpdateRecord . . . 26-42 Gestion des erreurs de mise à jour
en mémoire cache. . . 26-43 Utilisation d’objets mise à jour pour mettre
à jour un ensemble de données. . . 26-45 Création d’instructions SQL
pour les composants mise à jour . . . 26-46 Utilisation de plusieurs objets
mise à jour . . . 26-51 Exécution des instructions SQL. . . 26-52 Utilisation de TBatchMove . . . 26-55 Création d’un composant action groupée. 26-56 Spécification d’un mode
d’action groupée . . . 26-57 Ajout d’enregistrements à la fin . . . . 26-57 Mise à jour des enregistrements . . . . 26-57 Ajout et mise à jour
d’enregistrements . . . 26-58 Copie d’ensembles de données . . . 26-58 Suppression d’enregistrements . . . 26-58 Mappage des types de données . . . 26-58 Exécution d’une action groupée . . . 26-59 Gestion des erreurs relatives
aux actions groupées. . . 26-60
Dictionnaire de données . . . 26-61 Outils de manipulation du BDE . . . 26-62
Chapitre 27
Utilisation des composants ADO 27-1
Présentation des composants ADO . . . 27-1 Connexion à des stockages de données
ADO . . . 27-2 Connexion à un stockage de données
avec TADOConnection . . . 27-3 Accès à l’objet connexion . . . 27-5 Optimisation d’une connexion . . . 27-5 Connexions asynchrones . . . 27-5 Contrôle des dépassements de délais . . 27-6 Indication des types d’opérations
pris en charge par la connexion . . . . 27-6 Spécification de l’exécution automatique
des transactions par la connexion . . . 27-7 Accès aux commandes d’une connexion. . 27-8 Evénements connexion ADO . . . 27-8
Evénements se produisant pendant
l’établissement d’une connexion . . . . 27-8 Evénements se produisant pendant
la déconnexion . . . 27-9 Evénements se produisant pendant
la gestion des transactions . . . 27-9 Autres événements . . . 27-9 Utilisation des ensembles de données ADO . 27-9
Connexion d’un ensemble de données ADO à un stockage de données . . . 27-10 Utilisation des ensembles
d’enregistrements . . . .27-11 Filtrage d’enregistrements à partir
de signets . . . 27-12 Lecture d’enregistrements de façon
asynchrone . . . 27-13 Utilisation des mises à jour groupées. 27-13 Lecture et enregistrement des données
dans des fichiers . . . 27-16 Utilisation de TADODataSet. . . 27-17 Utilisation d’objets commande . . . 27-19 Spécification de la commande. . . 27-19 Utilisation de la méthode Execute . . . . 27-20 Annulation des commandes . . . 27-21 Récupération d’ensembles de résultats
à l’aide de commandes . . . 27-21 Gestion des paramètres de commande. . 27-22
Chapitre 28
Utilisation d’ensembles de données
unidirectionnels 28-1
Types d’ensembles de données
unidirectionnels . . . . 28-2 Connexion au serveur de bases de données . . 28-3 Configuration de TSQLConnection . . . . . 28-4 Identification du pilote . . . . 28-4 Spécification des paramètres
de connexion . . . . 28-4 Dénomination d’une description
de connexion . . . . 28-5 Utilisation de l’éditeur de connexion . . 28-6 Spécification des données à afficher . . . . 28-6
Représentation des résultats
d’une requête . . . . 28-7 Représentation des enregistrements
d’une table . . . . 28-7 Représentation d’une table en utilisant
TSQLDataSet . . . . 28-8 Représentation d’une table en utilisant
TSQLTable . . . . 28-8 Représentation des résultats
d’une procédure stockée. . . . 28-8 Récupération des données . . . . 28-9 Préparation de l’ensemble de données . . 28-10 Récupération de plusieurs ensembles
de données . . . 28-10 Exécution des commandes ne renvoyant
pas d’enregistrement . . . 28-11 Spécification de la commande à exécuter. 28-11 Exécution de la commande . . . 28-12 Création et modification des métadonnées
du serveur . . . 28-12 Définition de curseurs liés maître/détail . . . 28-13 Accès aux informations de schéma . . . 28-14
Récupération de métadonnées dans un ensemble de données unidirectionnel . . 28-14
Lecture des données après l’utilisation de l’ensemble de données
pour des métadonnées . . . 28-16 Structure des ensembles
de métadonnées. . . 28-16 Débogage d’applications dbExpress. . . 28-20
Utilisation de TSQLMonitor pour contrôler les commandes SQL . . . 28-20 Utilisation d’un callback pour contrôler
les commandes SQL . . . 28-21
Chapitre 29 Utilisation
d’ensembles de données client 29-1
Manipulation des données avec un ensemble de données client . . . 29-2
Navigation parmi les données des ensembles de données client . . . 29-2 Limitation des enregistrements affichés . . 29-3 Edition des données . . . 29-5 Annulation des modifications . . . 29-6 Enregistrement des modifications . . . . 29-7 Définition de contraintes pour les valeurs
des données . . . 29-8 Spécification de contraintes
personnalisées . . . 29-8 Tri et indexation . . . 29-9 Ajout d’un nouvel index . . . 29-9 Suppression et permutation d’index . .29-11 Utilisation des index pour regrouper
les données . . . .29-11 Représentation des valeurs calculées . . . 29-12
Utilisation de champs calculés de façon interne dans les ensembles de données client. . . 29-12 Utilisation des agrégats maintenus . . . . 29-13 Spécification d’agrégats. . . 29-13 Agrégats de groupes
d’enregistrements . . . 29-15 Obtention de valeurs d’agrégat . . . . 29-16 Copie de données d’un autre ensemble
de données . . . 29-16 Affectation directe des données . . . . 29-16 Clonage d’un curseur d’ensemble
de données client . . . 29-17 Ajout d’informations d’application
aux données . . . 29-18 Utilisation d’un ensemble de données client
pour mettre en cache les mises à jour . . . 29-18 Présentation de l’utilisation d’un cache
pour les mises à jour . . . 29-19 Choix du type d’ensemble de données
pour les mises à jour en cache . . . 29-21 Indication des enregistrements modifiés . 29-22 Mise à jour des enregistrements . . . 29-23 Application des mises à jour. . . 29-24 Intervention pendant l’application
des mises à jour . . . 29-25 Conciliation des erreurs
de mise à jour . . . 29-27
Utilisation d’un ensemble de données client avec un fournisseur . . . 29-29
Spécification d’un fournisseur . . . 29-29 Extraction des données dans l’ensemble
de données ou le document source . . . 29-31 Extractions incrémentales . . . 29-31 Extraction à la demande . . . 29-32 Obtention des paramètres de l’ensemble
de données source . . . 29-32 Transmission de paramètres à l’ensemble
de données source . . . 29-33 Envoi de paramètres de requête
ou de procédure stockée . . . 29-34 Limitation des enregistrements
avec des paramètres . . . 29-34 Gestion des contraintes liées au serveur . 29-35 Rafraîchissement des enregistrements. . . 29-36 Communication avec des fournisseurs
à l’aide d’événements personnalisés . . . 29-37 Redéfinition de l’ensemble de données
source . . . 29-38 Utilisation d’un ensemble de données client
avec des données basées sur des fichiers . . 29-39 Création d’un nouvel ensemble
de données . . . 29-39 Chargement des données depuis un fichier
ou un flux . . . 29-40 Fusion des modifications
dans les données . . . 29-40 Sauvegarde des données dans un fichier
ou un flux . . . 29-41 Utilisation d’un ensemble de données
simple . . . 29-42 Quand faut-il utiliser TSimpleDataSet ? . 29-42 Installation d’un ensemble de données
simple . . . 29-43
Chapitre 30 Utilisation
des composants fournisseur 30-1
Spécification de la source de données . . . . . 30-2 Utilisation d’un ensemble de données
comme source des données . . . . 30-2 Utilisation d’un document XML
comme source des données . . . . 30-3 Communication avec l’ensemble de données
client . . . . 30-3 Détermination du mode d’application
des mises à jour à l’aide d’un fournisseur d’ensemble de données . . . . 30-4
Contrôle des informations placées
dans les paquets de données . . . 30-5 Spécifier les champs apparaissant
dans les paquets de données . . . 30-5 Initialisation des options contrôlant
les paquets de données . . . 30-6 Ajout d’informations personnalisées
aux paquets de données . . . 30-7 Comment répondre aux demandes
de données des clients . . . 30-8 Comment répondre aux demandes
de mise à jour des clients . . . 30-9 Modification des paquets delta avant
la mise à jour de la base de données . . 30-10 Comment contrôler l’application
des mises à jour . . . .30-11 Filtrage des mises à jour . . . 30-12 Résolution des erreurs de mise à jour
par le fournisseur . . . 30-13 Application des mises à jour
à des ensembles de données
représentant plusieurs tables. . . 30-13 Comment répondre aux événements générés
par le client . . . 30-14 Gestion des contraintes du serveur . . . 30-15
Chapitre 31 Création
d’applications multiniveaux 31-1
Avantages du modèle de base de données multiniveau . . . 31-2 Présentation des applications
de bases de données multiniveaux . . . 31-3 Présentation d’une application
à niveau triple . . . 31-4 Structure de l’application client . . . 31-5 Structure du serveur d’applications . . . . 31-5
Contenu du module de données
distant . . . 31-6 Utilisation des modules
de données transactionnels . . . 31-7 Regroupement des modules de données
distants . . . 31-9 Sélection d’un protocole de connexion . . 31-10 Utilisation de connexions DCOM . . . 31-10 Utilisation de connexions Socket . . . 31-10 Utilisation de connexions Web. . . .31-11 Utilisation de connexions SOAP. . . . 31-12 Construction d’une application multiniveau 31-12
Création du serveur d’applications . . . 31-12 Configuration du module de données
distant . . . 31-14 Configuration
de TRemoteDataModule . . . 31-15 Configuration de TMTSDataModule. . 31-16 Configuration de TSoapDataModule . 31-17 Extension de l’interface du serveur
d’applications . . . 31-18 Ajout de rappels à l’interface du
serveur d’applications . . . 31-18 Extension de l’interface d’un serveur
d’applications transactionnel . . . 31-19 Gestion des transactions
dans les applications multiniveaux . . . 31-19 Gestion des relations maître/détail . . . . 31-20 Gestion des informations d’état
dans les modules de données distants . 31-21 Utilisation de plusieurs modules
de données distants . . . 31-23 Recensement du serveur d’applications . . . 31-24 Création de l’application client . . . 31-24 Connexion au serveur d’applications . . . 31-25
Spécification d’une connexion
à l’aide de DCOM . . . 31-26 Spécification d’une connexion
à l’aide de sockets . . . 31-26 Spécification d’une connexion
à l’aide de HTTP . . . 31-28 Spécification d’une connexion
à l’aide de SOAP . . . 31-28 Courtage de connexions . . . 31-29 Gestion des connexions serveur . . . 31-30 Connexion au serveur . . . 31-30 Fermeture ou changement
de connexion serveur. . . 31-30 Appel des interfaces serveur . . . 31-31
Utilisation de la liaison anticipée
avec DCOM . . . 31-31 Utilisation des interfaces de répartition
avec TCP/IP ou HTTP . . . 31-32 Appel de l’interface
d’un serveur SOAP . . . 31-32 Connexion à un serveur d’applications qui
utilise plusieurs modules de données . . 31-33 Ecriture des applications client Web . . . 31-34
Distribution d’une application client
en tant que contrôle ActiveX . . . 31-35 Création d’une fiche active pour
l’application client . . . 31-35
Construction des applications Web
avec InternetExpress . . . 31-36 Construction d’une application
InternetExpress . . . 31-37 Utilisation des bibliothèques
javascript . . . 31-38 Droits d’accès au serveur
d’applications et à son lancement . . 31-39 Utilisation d’un courtier XML . . . 31-40
Lecture des paquets de données
XML . . . 31-40 Application des mises à jour à partir
des paquets delta XML . . . 31-41 Création des pages Web avec un générateur
de page InternetExpress . . . 31-42 Utilisation de l’éditeur de pages Web. 31-43 Définition des propriétés
des éléments Web . . . 31-44 Personnalisation du modèle d’un générateur de page InternetExpress . . . 31-45
Chapitre 32
Utilisation de XML dans les applications
de bases de données 32-1
Définition des transformations . . . 32-1 Correspondance entre les nœuds XML
et les champs du paquet de données . . . 32-2 Utilisation de XMLMapper . . . 32-4
Chargement d’un schéma XML
ou d’un paquet de données . . . 32-5 Définition des mappages . . . 32-5 Génération de fichiers
de transformation . . . 32-6 Conversion de documents XML
en paquets de données . . . 32-7 Spécification du document XML source . . 32-7 Spécification de la transformation . . . 32-8 Obtention du paquet de données
résultant . . . 32-8 Conversion de nœuds définis
par l’utilisateur . . . 32-8 Utilisation d’un document XML comme source
pour un fournisseur . . . 32-9 Utilisation d’un document XML comme client
d’un fournisseur . . . 32-10 Lecture d’un document XML à partir
d’un fournisseur . . . 32-10 Application de mises à jour d’un document
XML à un fournisseur . . . 32-12