Vous êtes sur la page 1sur 194
Guide du concepteur de composants Borland ® Delphi ™ 7 pour Windows ™
Guide du concepteur de composants Borland ® Delphi ™ 7 pour Windows ™
Guide du concepteur de composants Borland ® Delphi ™ 7 pour Windows ™

Guide du concepteur de composants

Guide du concepteur de composants Borland ® Delphi ™ 7 pour Windows ™

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 © 19832002 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.

D7CWG0802

Table des matières Chapitre 1 Présentation générale de la création d’un composant 1-1 Bibliothèque de

Table des matières

Chapitre 1

Présentation générale de la création d’un composant

1-1

Bibliothèque de

.

.

.

.

.

1-1

.

.

.

.

.

.

.

.

.

.

1-2

Composants et Création de composants

. Modification de contrôles existants

.

.

.

.

.

.

.

Contenu d’un composant

.

.

.

.

.

.

.

.

.

.

.

.

1-3

1-3

Création de contrôles fenêtrés

.

.

.

.

1-4

Création de contrôles graphiques .

.

.

.

.

1-4

Sous-classement de contrôles

 

1-5

Création de composants non visuels

.

.

.

.

1-5

1-5

. Suppression des dépendances

.

.

.

.

.

1-6

Définition des propriétés, méthodes

 

et événements

.

.

.

.

.

.

.

.

.

.

1-6

Propriétés

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

1-6

Méthodes

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

1-7

Evénements .

.

.

.

.

.

.

. Encapsulation des graphiques

.

.

.

.

.

.

.

.

.

.

.

.

.

.

1-7

1-8

Recensement des composants

.

.

.

.

.

.

.

.

1-9

Création d’un nouveau composant Création d’un composant avec

.

.

.

.

.

1-9

l’expert composant

.

.

.

.

.

.

.

.

.

.1-10

Création manuelle d’un composant

 

.1-12

Création d’un fichier unité

.

.

.

.

.

.

.

.1-12

 

.

.

.

.

.1-13

Dérivation du composant Recensement du

. Création de bitmaps pour les composants .1-14 Installation d’un composant

.1-13

.

dans la palette de composants

. Emplacement des fichiers du composant

.

.

.

.

.1-16

.1-17

Test des composants non

.

.

.

.

.

.

.

.1-17

Test des composants installés

.

.

.

.

.

.

.1-19

Chapitre 2

Programmation orientée objet et écriture des composants

.

.

.

.

.

.

.

.

.

2-1

2-1

Définition de nouvelles classes Dérivation de nouvelles classes

.

.

.

.

.

.

.

2-2

Modification des valeurs par défaut d’une classe pour éviter les répétitions Ajout de nouvelles capacités

2-2

à une classe

. Déclaration d’une nouvelle classe

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

2-3

de composant .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

2-3

i

Ancêtres, descendants et hiérarchies

des classes .

. Contrôle des accès

.

.

.

.

.

. Masquer les détails d’implémentation

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

. 2-3

. 2-4

2-5

Définition de l’interface avec le concepteur

des composants .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

. 2-6

Définition de l’interface d’exécution

.

.

.

.

.

.

.

.

.

.

.

.

.

.

2-6

Définition de l’interface de Répartition des méthodes Méthodes statiques

.

.

.

.

.

.

2-7

. 2-8

. 2-8

Exemple de méthodes statiques

.

.

. 2-8

Méthodes virtuelles

.

.

.

.

.

.

.

.

. 2-9

Redéfinition des méthodes .

.

.

.

.

.

.

.

. 2-9

Méthodes dynamiques

.

.

.

.

.

.

.

.

.

.

.

.

. 2-10

Membres abstraits d’une classe .

.

.

. 2-10

Classes et pointeurs

.

.

.

.

.

.

.

.

.

.

.

.

.

.

. 2-10

Chapitre 3

Création de propriétés

3-1

Pourquoi créer des propriétés ?.

.

.

.

.

.

.

.

.

. 3-1

. Publication des propriétés Définition des propriétés

Types de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

. 3-2

. 3-3

. 3-4

. Déclarations des propriétés

.

.

.

.

.

.

.

.

.

. 3-4

Stockage interne des données .

.

Accès direct

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

. 3-4

. 3-5

Méthodes d’accès .

.

.

.

. 3-5

Méthode read

.

.

.

.

.

.

.

.

.

.

.

.

.

.

. 3-7

. Méthode write .

. Valeurs par défaut d’une propriété

.

.

.

.

.

.

.

.

.

.

.

.

.

. 3-7

3-8

Spécification d’aucune valeur par défaut 3-8

.

.

.

.

.

.

.

.

. 3-9

Création de propriétés tableau . Création de propriétés pour sous-composants

. Création des propriétés pour interfaces

.

.

.

.

.

.

. 3-10

3-11

Stockage et chargement des propriétés Utilisation du mécanisme de stockage

3-12

et de chargement

.

.

.

.

.

.

.

.

.

.

.

.

.

. 3-12

Spécification des valeurs par défaut

3-13

. Initialisation après chargement Stockage et chargement des propriétés non publiées

Détermination du stockage

. 3-14

. 3-14

.

.

.

.

.

.

.

.

.

.

. Création de méthodes pour le stockage et le chargement de valeurs de propriétés . 3-15

. 3-15

.

.

.

.

.

.

.

.

.

.

Redéfinition de la méthode

DefineProperties

.

.

.

.

.

.

.

.

.

.

.

.

.3-16

Chapitre 4

Création d’événements

4-1

Quest-ce quun événement ?

.

.

.

.

.

.

.

.

.

.

4-1

Les événements sont des pointeurs

de méthodes.

.

. Les événements sont des propriétés

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

4-2

4-2

Les types d’événements sont des types

de pointeurs de

.

.

.

.

.

4-3

Les types gestionnaire d’événement

sont des procédures

. Les gestionnaires d’événements

.

.

.

.

.

.

.

.

.

.

4-3

sont facultatifs

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

4-4

 

4-5

Implémentation des événements standard Identification des événements Evénements standard pour tous les contrôles .

. Evénements standard pour les contrôles

.

.

.

.

.

.

.

.

4-5

4-5

standard

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

4-5

 

4-6

Rendre visibles des événements Changement de la gestion des événements standard .

. Définition de vos propres événements

.

.

.

.

.

.

.

.

4-6

4-7

Déclenchement de l’événement

 

4-7

Deux sortes

.

.

.

.

.

4-8

Définition du type de gestionnaire

 

4-8

Notifications

4-8

Gestionnaires d’événements spécifiques. 4-8 Renvoi dinformations

à partir du gestionnaire

.

.

.

.

.

.

.

.

.

4-9

Déclaration de l’événement

 

4-9

Les noms d’événement débutent

par On

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

4-9

. Appel de l’événement

.

.

.

.

.

.

.

.

.

.

4-9

Chapitre 5

Création de méthodes

 

5-1

Eviter les interdépendances

.

.

.

.

.

.

.

.

.

.

.

5-1

 

.

.

.

.

.

.

.

.

.

.

5-2

Noms des Protection des méthodes

. Méthodes qui doivent être publiques

.

.

.

.

.

.

.

.

.

5-3

5-3

Méthodes qui doivent être protégées

 

5-3

Méthodes abstraites

.

.

.

.

.

.

.

.

.

.

5-4

Rendre virtuelles des méthodes

 

.

.

.

.

.

5-4

Déclaration des méthodes

.

.

.

.

.

.

.

.

.

.

.

.

5-4

ii

Chapitre 6

Graphiques et composants

6-1

Présentation des graphiques

 

.

.

.

.

.

.

.

.

.

.

. 6-1

Utilisation du canevas .

.

.

.

.

.

.

.

.

.

.

.

.

.

. 6-3

Travail sur les images

.

.

.

.

.

.

.

.

.

.

.

.

.

.

. 6-3

Utilisation dune image, dun graphique

 

ou dun canevas .

. Chargement et stockage des

.

.

.

.

.

.

.

.

.

.

.

.

.

. 6-4

6-4

Gestion des palettes.

.

.

.

.

.

.

.

.

.

.

.

.

.

. 6-5

Spécification dune palette

 

pour un contrôle .

.

.

.

.

.

.

.

.

.

.

.

.

. 6-6

Bitmaps hors écran

.

.

.

.

.

.

.

.

.

.

.

.

.

.

. 6-6

Création et gestion des bitmaps hors écran . 6-6

Copie des images bitmap

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

. 6-7

Réponse aux changements

.

.

.

.

. 6-7

Chapitre 7

Gestion des messages et des notifications système

7-1

Compréhension du système de gestion

des messages.

.

.

.

. Que contient un message Windows ?

.

.

.

.

.

.

.

.

.

.

.

.

.

.

. 7-1

7-2

Répartition des messages

.

. Modification de la gestion des messages

. Suivi du flux des messages

.

.

.

.

.

.

.

.

.

.

.

.

.

.

. 7-3

. 7-3

7-4

Surcharge de la méthode du gestionnaire

7-4

Utilisation des paramètres dun message

7-4

Interception des messages

.

.

.

.

.

.

.

.

. 7-5

Création de nouveaux gestionnaires

de messages .

.

.

.

.

.

.

.

.

.

.

.

. Définition de vos propres messages

.

.

.

.

.

.

. 7-6

7-6

Déclaration dun identificateur

de message

.

.

.

.

.

.

.

.

.

.

.

.

.

.

. 7-6

Déclaration dun type enregistrement

 

de message

. Déclaration dune nouvelle méthode

.

.

.

.

.

.

.

.

.

.

.

.

.

. 7-6

de gestion dun message

.

.

.

.

.

.

.

.

. 7-7

Envoi des messages.

. Diffusion dun message à tous

.

.

.

.

.

.

.

.

.

.

.

.

. 7-8

les contrôles dune fiche.

.

.

.

.

.

.

.

. 7-8

. Appel direct du gestionnaire de message dun contrôle.

. Envoi dun message à laide de la file dattente des messages Windows Envoi dun message qui ne sexécute

.

.

.

.

.

.

. 7-9

7-10

pas immédiatement

.

.

.

.

.

.

.

. 7-10

Réponse aux notifications du système

à laide de CLX .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

. 7-10

Réponse aux signaux

.

.

.

7-11

Affectation de gestionnaires de signaux

personnalisés

. Réponse aux événements système

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.7-12

.7-12

Evénements couramment utilisés

.7-13

Surcharge de la méthode EventFilter

.7-15

Génération des événements Qt

.7-16

Chapitre 8

Accessibilité des composants au moment de la conception

8-1

Recensement des composants

.

.

.

.

.

8-1

Déclaration de la procédure Register

8-2

Ecriture de la procédure Register

.

.

.

.

.

.

.

.

.

.

8-2

Spécification des composants

Spécification de la page de palette Utilisation de la fonction

.

8-3

8-3

RegisterComponents .

.

.

.

.

.

.

.

.

.

.

8-3

Fournir laide pour vos composants

.

.

.

.

.

.

8-4

Création du fichier daide.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

8-4

Création des entrées

.

8-4

Aide contextuelle des composants Ajout des fichiers daide

8-6

des composants

.

.

.

.

.

.

.

.

.

.

.

.

8-6

Ajout d’éditeurs de propriétés Dérivation dune classe éditeur

.

.

.

.

.

8-7

de propriétés

. Modification de la propriété sous une forme textuelle

.

.

.

.

.

.

.

.

.

.

.

.

.

.

. Affichage de la valeur de la propriété

.

.

.

.

.

.

.

.

.

.

.

8-7

8-8

8-9

Définition de la valeur de la propriété

.

8-9

Modification globale de la propriété

.

.

.

.8-10

Spécification des attributs de l’éditeur

8-11

Recensement de l’éditeur de

.8-12

Catégories de propriétés

.

.

.

.

.

.

.

.

.

.8-13

Recensement dune propriété à la fois Recensement de plusieurs propriétés

.8-14

en une seule fois .

.

.

.

.

.

.

.

.

.

.

.

.

.

.8-14

Spécification de catégories de propriétés Utilisation de la fonction

IsPropertyInCategory

.

.

.

.

.

.

.

.

.

.

.

.8-15

.8-16

. Ajout d’éditeurs de composants

.

.

.

.

Ajout d’éléments au menu

suite à un double-clic

.

.

.

.

.

.

.

.

.

.8-16

.8-17

Spécification d’éléments de menu

.8-17

Implémentation des commandes

.8-18

Modification du comportement

Ajout de formats de presse-papiers

.8-18

.8-19

Recensement dun éditeur de composants .8-20

.8-20

Compilation des composants en

iii

Chapitre 9

Modification dun composant existant

9-1

Création et recensement du composant

.

.

.

.

 

9-1

Modification de la classe Redéfinition du constructeur Spécification de la nouvelle valeur

.

.

.

.

9-2

. 9-2

par défaut de la propriété .

.

.

.

.

.

.

.

.

. 9-3

Chapitre 10

Création dun contrôle graphique

10-1

Création et recensement du composant

10-1

Publication des propriétés

10-2

Ajout de fonctionnalités graphiques

10-3

Détermination de ce qui doit être dessiné . 10-3

Déclaration du type de la

10-3

Déclaration de la propriété Ecriture de la méthode

10-4

dimplémentation

.

.

.

.

.

.

.

.

.

.

.

. 10-4

Redéfinition du constructeur

et du destructeur

.

.

.

.

.

.

.

.

.

.

.

.

.

. 10-5

Modification des valeurs par défaut

 

des propriétés

. Publication du crayon et du

.

.

.

.

.

.

.

.

.

.

Déclaration des champs de classe

.

.

. 10-5

10-5

 

10-6

Déclaration des propriétés daccès Initialisation des classes ayant

10-6

un propriétaire

.

.

.

.

.

.

.

.

.

.

. 10-7

Définition des propriétés des classes

ayant un propriétaire

.

.

.

.

.

.

. 10-8

. Dessin de limage du composant

.

. 10-8

Adaptation du dessin de la forme

10-10

Chapitre 11

Personnalisation dune grille

11-1

Création et recensement du composant

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

11-1

Publication des propriétés

11-3

Modification des valeurs initiales Redimensionnement des cellules

.

.

.

11-3

11-4

Remplissage des

11-5

Suivi de la date . Stockage interne de la date. Accès au jour, au mois et à lannée

.

.

.

.

.

.

11-6

11-6

11-7

Génération des numéros de jours

11-8

Sélection du jour en cours

.

.

.

.

.

.

.

.11-10

Navigation de mois en mois

. Navigation de jour en jour

.

et dannée en année

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.11-11

.11-12

. Déplacement de la sélection .

.

.

.

.

.

.

.

.11-12

Fourniture dun événement OnChange

11-13

Exclusion des cellules vides

11-13

Chapitre 12

Contrôles orientés données

Création dun contrôle pour scruter

12-1

les données .

.

.

.

.

. Création et recensement du composant

Fonctionnement du contrôle en lecture

.

.

.

.

.

.

.

.

.

.

.

.

.

.12-2

.12-2

 

seulement .

. Ajout de la propriété ReadOnly Autorisation des mises à jour

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

nécessaires .

.

.

.

.

.

.

.

.

.

.12-3

.12-4

.12-4

. Ajout du lien aux données

.

.

.

.

.12-5

Déclaration du champ de classe

.12-6

Déclaration des propriétés daccès Exemple de déclaration des propriétés

.12-6

daccès .

. Initialisation du lien de données

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.12-6

.12-7

Réponse aux changements de données

.12-8

Création dun contrôle de modification

de données

.

.

.

.

.

.

.

.

. Modification de la valeur par défaut

.

.

.

.

.

.

.

.

.

.

.12-9

de FReadOnly.

.

.

.

.

.

.

.

.

.

.

. Gestion des messages liés à la souris . Réponse aux messages indiquant la manipulation de la

ou au

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.12-9

. 12-10

. 12-10

Réponse aux messages indiquant la manipulation du

.

. 12-11

Mise à jour de la classe lien de données

.

sur un champ .

.

.

.

.

.

.

.

.

.

.

.

.

. 12-12

. Modification de la méthode Change

.

.

. 12-13

Mise à jour de lensemble de données

.

. 12-13

iv

Chapitre 13

Transformation dune boîte de dialogue

en composant

13-1

Définition de linterface du composant

13-2

Création et recensement du composant

13-2

Création de linterface du composant

13-3

. Ajout des propriétés de linterface

Inclusion de lunité de la fiche

.

.

.

.

.

. 13-3

13-4

Ajout de la méthode Execute .

.

.

.

.

.

.

. 13-5

Test du composant

.

.

.

.

.

.

.

.

.

.

.

.

.

. 13-6

Chapitre 14

Extensions de lEDI

14-1

.

.

.

.

.

.

.

. 14-2

Présentation de lAPI Tools Conception dune classe expert .

. Implémentation des interfaces de lexpert . 14-4

14-3

.

.

.

.

.

Installation du paquet de

.

.

.

14-5

Accès aux services de lAPI Tools

Utilisation dobjets natifs de lEDI

.

.

14-5

14-6

Utilisation de linterface INTAServices . 14-6 Ajout dune image à la liste dimages . 14-7

Ajout dune action à la liste dactions Suppression de boutons

. 14-7

 

.

.

.

.

.

.

.

.

.

.

.

. 14-8

de barres doutils Débogage dun expert

. Numéros de version de linterface

.

.

.

.

.

.

.

.

.

.

. 14-9

14-10

Utilisation des fichiers et des éditeurs