608

MS Visio 2003 Guide du Développeur

Embed Size (px)

DESCRIPTION

Guide du Développeur Microsoft Visio 2003

Citation preview

Page 1: MS Visio 2003 Guide du Développeur

�������������� ���������������������� ���������

isoz
Rectangle
Page 2: MS Visio 2003 Guide du Développeur

Les informations contenues dans ce document, y compris les URL et autres références à des sites Web Internet, pourront faire l’objet de modificationssans préavis. Sauf mention contraire, les exemples de sociétés, d'organisations, de produits, de personnes et d'événements sont fictifs et toute ressem-blance avec des sociétés, des organisations, des produits, des personnes ou des événements réels serait tout à fait fortuite. L’utilisateur est tenu d’observerla réglementation relative aux droits d’auteur applicable dans son pays. Sans limitation des droits issus des droits d'auteur, aucune partie de ce manuel nepeut être reproduite, stockée ou incluse dans un système de récupération de données ou transmise à quelque fin ou par quelque moyen que ce soit (élec-tronique, mécanique, photocopie, enregistrement ou autre) sans la permission expresse et écrite de Microsoft Corporation.

Les produits mentionnés dans ce document peuvent faire l’objet de brevets, de dépôts de brevets en cours, de marques, de droits d’auteur ou d’autresdroits de propriété intellectuelle et industrielle de Microsoft. À l'exception des droits expressément visés dans un contrat de licence écrit émanant deMicrosoft, la fourniture de ce document ne vous confère aucune licence sur ces brevets, marques, droits d’auteur ou autres droits de propriété intellec-tuelle et industrielle.

© 2000 Visio Corporation. Tous droits réservés.

Microsoft, Active Directory, ActiveX, FoxPro, FrontPage, MS-DOS, Outlook, PowerPoint, Visual Basic, Visual C++, Visual FoxPro, Visual J++, VisualSourceSafe, Visual Studio, Win32, Windows et Windows NT sont soit des marques de Microsoft Corporation, soit des marques déposées de MicrosoftCorporation, aux États-Unis d’Amérique et/ou dans d’autres pays.

Visio, ShapeSheet et SmartShapes sont soit des marques de Visio Corporation, soit des marques déposées de Visio Corporation, aux États-Unisd’Amérique et/ou dans d’autres pays. Visio Corporation est une filiale contrôlée à cent pour cent par Microsoft Corporation.

Technologies de fournisseurs tiers :

Parties sous copyright 1991-1997 Compuware Corporation.

Parties du logiciel sous licence accordée à Visio Corporation par SwitchSoft Systems, Inc. copyright © 1996-1999. Tous droits réservés.

ImageStream Graphics Filters copyright © 1998 par INSO Corporation. Tous droits réservés.

International CorrectSpell, système de vérification orthographique, copyright © 1995 par Lernout & Hauspie Speech Products N.V. Tous droits réservés.

Certaines fonctionnalités graphiques LZW sous licence de Unisys Corporation (brevet américain N° 4 558 302 et équivalents étrangers).

Certaines images clipart utilisées dans ce produit sont dérivées d'images protégées par le copyright ©1988-1995 3G Graphics, Inc. de IMAGES WITHIMPACT!® FOR WINDOWS® Vol. 1. Ces images sont utilisées ici dans le cadre d'un contrat de licence non exclusif entre Visio Corporation et 3GGraphics, Inc., 114 Second Avenue South, Suite 104, Edmonds, WA 98020, États-Unis, (425) 774-3518 ou (800) 456-0234.

Certaines cartes intégrées dans ce produit ont été extraites de données fournies gracieusement par Environmental Systems Research Institute, Inc.,380 New York Street, Redlands, CA 92373-8100, États-Unis, (909) 793-2853.

Les noms de produits et de sociétés réels mentionnés dans la présente documentation sont des marques de leurs propriétaires respectifs.

0500 PN X05-69333

Page 3: MS Visio 2003 Guide du Développeur

Table des matières

Préface .................................................................................................................................1A propos du présent guide .............................................................................................. 2

Connaissances nécessaires ......................................................................................... 2Conventions ............................................................................................................... 2

Nouvelles fonctions destinées aux développeurs........................................................... 3Matériaux de référence en ligne...................................................................................... 4

Matériaux de référence fournis sur le CD de Visio 2000 ......................................... 4Matériaux de référence sur le site Web de Visio....................................................... 5

Chapitre 1 Présentation du manuel Developing Visio Solutions..................................................7A propos des solutions Visio........................................................................................... 8

Modélisation au moyen de formes Visio .................................................................. 8Exemple de solution Visio d’automatisation des ventes sur le terrain.................. 13

Utilisation de formes Visio pour créer des solutions .................................................. 15Assemblage d’objets dans des dessins ..................................................................... 15Utilisation de formes comme composants ............................................................. 16

Développement de formes à l’aide de la technologie SmartShapes ............................ 18Recours à Automation dans une solution Visio .......................................................... 20

Automation et objets Visio ...................................................................................... 20Exemple de surveillance des événements et de calcul d’un total .......................... 22

Planification d’une solution Visio ................................................................................ 25Planification du processus de développement........................................................ 25Planification des formes et des gabarits .................................................................. 27Planification de modèles de dessin.......................................................................... 28Utilisation d’Automation dans les formes et les modèles ...................................... 29Intégration d’une solution Visio et d’une base de données ................................... 29Choix concernant la mise en oeuvre d’Automation .............................................. 30

Chapitre 2 Création de formes Visio.................................................................................................33Anatomie des formes Visio ........................................................................................... 34

Formes ouvertes et fermées ..................................................................................... 35Formes 1D ou 2D ..................................................................................................... 36Poignées des formes ................................................................................................. 36Formes en groupes ................................................................................................... 38

Conception de formes ................................................................................................... 39Utilisation des outils de dessin lors de la création de formes ................................ 39Création de formes fermées ..................................................................................... 41Création de formes avec des éléments récurrents .................................................. 41Création de groupes ................................................................................................. 41Création de formes par fusion................................................................................. 42

Page 4: MS Visio 2003 Guide du Développeur

iv T A B L E D E S M A T I E R E S

Importation de formes issues d’autres programmes ...................................................44Importation d’images graphiques ...........................................................................44Modification de métafichiers et de bitmaps importés............................................45Conversion de métafichiers importés en formes ....................................................46Conversion de bibliothèques de symboles CAO en formes ...................................46

Ajustement de formes Visio existantes .........................................................................47Modification des formes ..........................................................................................47Modification des groupes.........................................................................................48

Chapitre 3 Formes de base, gabarits, modèles et documents Visio .......................................... 51Création de formes de base et de gabarits ....................................................................52

Création d’un gabarit ...............................................................................................53Création de formes de base dans des gabarits.........................................................54Modification des formes de base dans les gabarits .................................................55

Création de modèles ......................................................................................................56Création d’un modèle ..............................................................................................56A propos des pages, des arrière-plans et des calques ..............................................58

Ouverture et enregistrement de documents Visio.......................................................60Composants d’un document Visio..........................................................................60Ouverture d’un fichier Visio....................................................................................61Choix du type de fichier adapté à votre solution....................................................62

Chapitre 4 Formules Visio.................................................................................................................. 63Fenêtre ShapeSheet ........................................................................................................64

Affichage de la fenêtre ShapeSheet ..........................................................................64Affichage des sections de la fenêtre ShapeSheet......................................................66Sections ShapeSheet : présentation et objet de leur contrôle .................................67Examen d’une forme dans la fenêtre ShapeSheet ...................................................70

Eléments des formules Visio .........................................................................................72Saisie et modification des formules dans la fenêtre ShapeSheet ............................72Fonctions et opérateurs des formules Visio ............................................................73Références de cellule ShapeSheet.............................................................................75Règles concernant les références de cellule dans les formules................................77Unités de mesure des formules Visio ......................................................................78Unités multidimensionnelles ...................................................................................79Indication des unités de mesure ..............................................................................79

Conception de formules Visio ......................................................................................80Héritage des formules d’une forme .........................................................................80Formules des sections Cellules personnalisées et Montage....................................81Protection des formules ...........................................................................................84Contrôle du recalcul des formules...........................................................................84

Ajout de fonctionnalités aux formules Visio à l’aide d’Automation ..........................86

Chapitre 5 Contrôle de la géométrie des formes à l’aide de formules...................................... 87Géométrie des formes....................................................................................................88

Description de formes dans un système de coordonnées ......................................89Représentation de la géométrie d’une forme à l’aide de formules.........................90Représentation de la position d’une forme sur une page.......................................92Mesure visant à empêcher les utilisateurs de déplacer une forme.........................94

Page 5: MS Visio 2003 Guide du Développeur

T A B L E D E S M A T I È R E S v

Contrôle de l’étirement et de la réduction des formes ................................................ 94Exemple de formules calculées sur la base de la hauteur ....................................... 95Optimisation de l’exemple de flèche ....................................................................... 97

Contrôle du retournement et de la rotation des formes ............................................. 98Conséquences du retournement d’une forme........................................................ 98Conséquence de la rotation d’une forme.............................................................. 100Création de formes pouvant être retournées et pivotées ..................................... 101Mesure permettant d’empêcher tout retournement ou toute rotation des formes ............................................................................................................... 102

Contrôle des courbes des formes................................................................................ 103Utilisation des styles d’angle arrondi .................................................................... 104Présentation des arcs .............................................................................................. 104Conversion des segments de trait et d’arc............................................................. 108Formules d’arc utiles .............................................................................................. 109

Optimisation de la géométrie d’une forme................................................................ 110Limitation du comportement d’une forme à l’aide de verrouillages........................ 111

Chapitre 6 Regroupement et fusion de formes .............................................................................113Différences entre formes regroupées et formes fusionnées....................................... 114Création et contrôle des groupes ................................................................................ 115

Regroupement et dissociation de formes.............................................................. 115Modification d’un groupe...................................................................................... 116Incidence du regroupement de formes sur leurs formules .................................. 116

Contrôle du comportement des groupes ................................................................... 118Contrôle du mode de sélection des groupes ......................................................... 118Définition du comportement de redimensionnement des formes regroupées .. 119Redimensionnement des formes dans un seul sens ............................................. 121Exemple de création d’un cube ............................................................................. 122

Protection du formatage des formes figurant dans des groupes............................... 126Création et contrôle des formes fusionnées ............................................................... 126

Fusion de formes .................................................................................................... 127Remplissage des formes fusionnées....................................................................... 128Masquage de la géométrie d’une forme ................................................................ 129

Chapitre 7 Amélioration du comportement des formes..............................................................131Flexibilité des formes grâce aux poignées de contrôle............................................... 132

Ajout d’une section Points de contrôle à une forme............................................ 132Définition d’une poignée de contrôle ................................................................... 133Définition du point d’ancrage d’une poignée de contrôle................................... 136Définition du comportement d’une poignée de contrôle .................................... 137

Commandes du menu contextuel .............................................................................. 138Définition d’une commande de menu contextuel ............................................... 139Contrôle de l’apparence d’une commande de menu contextuel......................... 140Commandes cochées dans le menu contextuel .................................................... 141Commandes de menu contextuel en grisé ............................................................ 142Masquage et affichage de commandes dans le menu contextuel ........................ 142Exemple d’utilisation de commandes de menu contextuel afin de modifier la géométrie d’une forme........................................................................................... 143Mode de fonctionnement des formules ................................................................ 145

Page 6: MS Visio 2003 Guide du Développeur

vi T A B L E D E S M A T I E R E S

Propriétés personnalisées ............................................................................................146Utilisation de propriétés personnalisées ...............................................................146Définition des propriétés personnalisées ..............................................................148Ajout de propriétés personnalisées à une forme de base......................................151Etablissement d’une liaison entre les propriétés personnalisées et une base de données ...................................................................................................................151

Formules d’événements...............................................................................................152Utilisation des cellules dans la section Evénements .............................................153Simulation d’événements avec la fonction DEPENDDE .....................................154Fonctions exécutant des actions ............................................................................154Remarques concernant les performances des formules d’événement .................156

Chapitre 8 Liaison des formes : formes 1D et collage................................................................ 157Présentation des formes 1D et 2D ..............................................................................158

Conversion des formes 1D et 2D...........................................................................159Galerie de formes 1D..............................................................................................160

Création de liens 1D repositionnables et d’autres types de lien................................161Création de liens repositionnables ........................................................................162Autres exemples de création de liens 1D...............................................................163Création d’un lien avec angle.................................................................................164Création d’une forme 1D en fonction de la hauteur ............................................166

Contrôle du mode de connexion des formes .............................................................169Définition du comportement de collage d’un lien ...............................................169Précision des éléments pouvant être collés ...........................................................171Présentation des points de connexion...................................................................171Ajout de points de connexion à une forme...........................................................174Attribution d’un nom aux points de connexion ..................................................176Conception de formes de lien dynamique ............................................................177

Chapitre 9 Création d’un comportement de texte ....................................................................... 179A propos du texte contenu dans les formes et dans les formes de base....................180

Affichage des attributs de texte dans la fenêtre ShapeSheet .................................181Contrôle de la position du bloc de texte ...............................................................182Ajout de poignées de contrôle permettant de manipuler un bloc de texte .........183Apparence des poignées de contrôle du texte dans la fenêtre ShapeSheet ..........183Contrôle du texte dans un groupe.........................................................................184

Redimensionnement de formes contenant du texte..................................................185Contrôle de la taille du bloc de texte .....................................................................186Contrôle de la largeur du bloc de texte .................................................................186Contrôle de la hauteur d’un bloc de texte.............................................................187Choix de la taille de la forme d’après la quantité de texte....................................188Choix de la taille de la forme d’après la valeur du texte .......................................189Modification de la taille de la police lors du redimensionnement d’une forme.189Création de formules de redimensionnement du texte à l’aide de l’Assistant SmartShape .............................................................................................................189Ecriture de formules de redimensionnement personnalisées ..............................190

Page 7: MS Visio 2003 Guide du Développeur

T A B L E D E S M A T I È R E S vii

Contrôle de la rotation du texte ................................................................................. 191Contrôle de la rotation du texte à l’aide de l’Assistant SmartShape.................... 192Formules de pesanteur........................................................................................... 193Formules de rotation inverse du texte droit ......................................................... 193Exemples de contrainte de taille du bloc de texte................................................. 194Contrainte de largeur d’un bloc de texte droit ..................................................... 195Contrôle de la largeur d’un bloc de texte droit décalé ......................................... 196

Utilisation des formules de texte ................................................................................ 198Affichage et formatage des résultats d’une formule ............................................. 198Affichage de la largeur d’une forme dans différentes unités................................ 198Affichage des valeurs d’angle normalisées ............................................................ 199Formatage des chaînes et sortie du texte............................................................... 200Utilisation de la fonction format........................................................................... 200Affichage des propriétés personnalisées formatées .............................................. 201Protection des formules de texte ........................................................................... 202Test des formules de bloc de texte......................................................................... 203

Chapitre 10 Gestion des styles, des formats et des couleurs......................................................205Utilisation des styles dans la page de dessin............................................................... 206

Présentation des styles............................................................................................ 206Paramétrage des styles par défaut d’un dessin...................................................... 207Création d’un style ................................................................................................. 208Modification d’un style .......................................................................................... 209

Instructions concernant l’application de styles aux formes ...................................... 209Reformatage des formes sur la page de dessin...................................................... 210Reformatage des formes de base dans un gabarit autonome............................... 211Reformatage de toutes les occurrences d’une forme de base............................... 212

Utilisation de styles dans les gabarits et les modèles.................................................. 213Maintien de la cohérence dans les fichiers............................................................ 213Utilisation de conventions de dénomination pour les styles ............................... 214Instructions concernant la définition des styles ................................................... 214

Protection des formats locaux des formes ................................................................. 215Utilisation de l’option Conserver le formatage local............................................ 216Utilisation de la cellule VerrFormat et de la fonction PROTECTION ............... 216

Gestion de la couleur dans les styles, les formes et les fichiers.................................. 216Modification de la palette de couleurs .................................................................. 217Normalisation des palettes de couleurs pour tous les documents....................... 217Utilisation d’une formule pour définir une couleur personnalisée..................... 218

Motifs personnalisés.................................................................................................... 219Création d’un motif personnalisé.......................................................................... 220Création de motifs de remplissage personnalisés ................................................. 222Couleurs du motif de remplissage......................................................................... 222Création de motifs en mosaïque............................................................................ 223Création de motifs de trait personnalisés ............................................................. 224Création d’extrémités de traits personnalisées ..................................................... 227

Page 8: MS Visio 2003 Guide du Développeur

viii T A B L E D E S M A T I E R E S

Chapitre 11 Réorganisation des formes d’un dessin .................................................................... 229Attribution de formes et de formes de base à des calques .........................................230

Utilisation optimisée des calques...........................................................................230Attribution de formes de base à des calques .........................................................231

Création d’une grille....................................................................................................233Définition de la grille pour la page de dessin d’un modèle ..................................233Création de formes de base fonctionnant avec une grille ....................................234Stockage d’informations de grille à l’aide de formules.........................................235

Alignement des formes sur des repères et des points de repère ................................237Instructions concernant l’utilisation de repères ou de grilles ..............................237Manipulation des repères et des points de repère ................................................238Repères se trouvant sur une page pivotée .............................................................239Regroupement de repères et de formes .................................................................239

Accrochage de formes à une grille à l’aide des rectangles de sélection .....................240Réglage de la taille du rectangle de sélection d’une forme ...................................240Mise à jour d’un rectangle de sélection .................................................................242Modification du rectangle de sélection des formes 1D ........................................243

Création de formes et mise en page automatique......................................................243Définition des options de mise en page de la page ...............................................244Définition du comportement des formes et des connecteurs ..............................246

Chapitre 12 Formes mises à l’échelle et dessins cotés ............................................................... 249Choix d’une échelle de dessin appropriée ..................................................................250

Présentation des échelles de dessin et de page ......................................................251Facteurs à prendre en compte lors du choix d’une échelle de dessin ..................252

Choix des échelles des formes de base ........................................................................253Définition d’une échelle appropriée pour une forme de base .............................254Définition de l’échelle d’une forme de base ..........................................................256

Création de formes non mises à l’échelle ...................................................................257

Chapitre 13 Diffusion de gabarits et de modèles .......................................................................... 259Conception de formes personnalisées pour la distribution ......................................260

Procédure concernant la conception des formes..................................................260Remarques concernant la distribution des formes ...............................................261

Test des formes de base ...............................................................................................262Contrôle de la cohérence des formes de base........................................................262Contrôle de la forme de base dans la fenêtre de dessin de cette forme ...............263Test des différentes échelles de page des formes de base ......................................263

Ajout d’une aide aux formes de base ..........................................................................266Association d’une aide à une forme de base .........................................................266Test de l’aide sur les formes ...................................................................................268

Finalisation et test d’un gabarit...................................................................................268Création de raccourcis vers des formes de base....................................................268Nettoyage des formes de base dans un gabarit .....................................................270Nettoyage d’un fichier de gabarit ..........................................................................271Test des gabarits......................................................................................................272

Finalisation et test d’un modèle ..................................................................................273Nettoyage d’un modèle ..........................................................................................273Test d’un modèle ....................................................................................................274

Page 9: MS Visio 2003 Guide du Développeur

T A B L E D E S M A T I È R E S ix

Installation des gabarits et des modèles...................................................................... 277Déplacement des fichiers de modèle ..................................................................... 277Protection des gabarits et des modèles.................................................................. 277

Chapitre 14 Automation et le modèle d’objet de Visio..................................................................279Présentation d’Automation ........................................................................................ 280Modèle d’objet de Visio .............................................................................................. 280Récupération et libération d’objets Visio................................................................... 283

Déclaration de variables objets .............................................................................. 283Accès aux objets de Visio via les propriétés .......................................................... 284Référence à un objet d’une collection ................................................................... 285Itération dans une collection ................................................................................. 286Libération d’un objet ............................................................................................. 287Utilisation de références d’objet composées......................................................... 288Limitation de la portée et de la durée de vie des variables objets ........................ 288

Utilisation des propriétés et des méthodes ................................................................ 289Déclaration de variables utilisables comme valeurs renvoyées et comme arguments.................................................................................................. 289Lecture et définition des propriétés....................................................................... 289Utilisation de la propriété par défaut d’un objet .................................................. 290Utilisation de méthodes ......................................................................................... 291

Chapitre 15 Programmation dans Visio avec Microsoft VBA......................................................293Utilisation de l’Editeur Visual Basic ........................................................................... 294

Démarrage de l’Editeur Visual Basic ..................................................................... 295Navigation parmi les projets.................................................................................. 296Enregistrement d’un projet.................................................................................... 296

Création d’un projet VBA........................................................................................... 298Insertion de modules et de modules de classe dans un projet ............................. 299Insertion de formulaires utilisateur dans un projet ............................................. 301Importation de fichier et exportation d’un projet................................................ 302

Utilisation de la bibliothèque de types Visio.............................................................. 303Utilisation de l’explorateur d’objets ...................................................................... 303Paramétrage des références aux bibliothèques de types....................................... 304Utilisation des types d’objet Visio ......................................................................... 305

Utilisation des objets global et ThisDocument.......................................................... 306Utilisation de l’objet global Visio .......................................................................... 307Utilisation de l’objet ThisDocument..................................................................... 308

Exécution du code VBA depuis Visio......................................................................... 310Gestion des erreurs ...................................................................................................... 313

Exécution du programme dans le contexte correct.............................................. 313Verification de l’existence des objets et des valeurs renvoyées ............................ 314Vérification des valeurs d’erreur ........................................................................... 314

Gestion d’un projet VBA............................................................................................. 315Suppression d’éléments d’un projet ...................................................................... 315Protection du code ................................................................................................. 316Utilisation du gestionnaire des programmes complémentaires .......................... 316

Page 10: MS Visio 2003 Guide du Développeur

x T A B L E D E S M A T I E R E S

Chapitre 16 Utilisation des objets Visio Document, Page et Shape.......................................... 317Utilisation des objets Document.................................................................................318

Récupération d’un objet Document......................................................................318Récupération d’informations sur des documents ................................................320Utilisation des styles d’un document ....................................................................320Création d’un style pour un document.................................................................321Impression et enregistrement de documents........................................................322

Utilisation des objets Page...........................................................................................324Récupération d’un objet Page................................................................................324Récupération des informations sur les pages ........................................................325Ajout de pages dans un dessin ...............................................................................325

Utilisation des objets Shape ........................................................................................326Récupération d’un objet Shape..............................................................................326Récupération d’informations sur une forme ........................................................328Création et modification de formes ......................................................................329Ajout de texte aux formes ......................................................................................332Récupération du texte d’une forme.......................................................................333Identification et application des styles aux formes...............................................333Conservation du formatage local...........................................................................334Création de groupes à partir d’un programme.....................................................335Création de formes de base ....................................................................................336

Exemple de création d’un dessin simple ....................................................................337

Chapitre 17 Automatisation des formules ...................................................................................... 341Utilisation des formules dans les cellules ...................................................................342

Récupération d’un objet Cell .................................................................................342Modification des formules de cellule à l’aide de la propriété Formula ...............345Récupération du résultat d’une formule ...............................................................345Remplacement d’une formule par un résultat......................................................346Remplacement de formules protégées...................................................................347Exemple d’utilisation de formules pour déplacer des formes..............................348

Utilisation des sections et des lignes ...........................................................................349Ajout de sections et de lignes .................................................................................349Exemple d’ajout d’une section Géométrie à une forme .......................................351Suppression de sections et de lignes ......................................................................353Modification du type d’un segment ......................................................................354Exemple d’itération dans une collection de sections et de lignes ........................355

Utilisation de données héritées ...................................................................................356

Chapitre 18 Création de dessins par automatisation ................................................................... 357Création automatisée de dessins à l’aide de formes de base......................................358

Récupération du gabarit.........................................................................................358Récupération de la forme de base..........................................................................359Insertion de la forme de base dans la page............................................................359

Choix de la position des formes sur un dessin...........................................................361

Page 11: MS Visio 2003 Guide du Développeur

T A B L E D E S M A T I È R E S xi

Utilisation de formes sélectionnées ............................................................................ 363Obtention des formes sélectionnées dans une fenêtre ......................................... 363Ajout et suppression de formes dans les sélections .............................................. 365Sélection et désélection de formes dans une fenêtre ............................................ 365Exécution d’opérations sur les formes sélectionnées ........................................... 366Définition de la portée d’une sélection ................................................................. 366

Pages d’arrière-plan..................................................................................................... 367Création et association de pages d’arrière-plan.................................................... 367Exemple d’itération dans la collection Pages ........................................................ 368Exemple de configuration de pages et d’arrière-plans ......................................... 368Modification des paramètres de page.................................................................... 370

Calques......................................................................................................................... 371Identification des calques d’une page ou d’une forme de base............................ 371Identification des calques auxquels une forme est attribuée ............................... 372Attribution de formes à un calque et suppression................................................ 372Ajout et suppression de calques dans les pages et les formes de base.................. 373Modification des paramètres de calque ................................................................ 373

Chapitre 19 Automatisation des connexions d’une solution Visio.............................................375Utilisation d’un objet Connect ................................................................................... 376Récupération d’informations d’un dessin avec connexions ..................................... 378

Détermination des formes reliées.......................................................................... 378Détermination des parties connectées des formes ............................................... 379Récupération des cellules d’une connexion.......................................................... 380Instructions d’analyse d’un dessin avec connexions ............................................ 381

Exemples d’itération dans les connexions sur une page............................................ 382Création d’un dessin avec connexions à partir d’un programme............................. 384

Eléments d’origine et de destination d’un collage................................................ 385Collage avec des objets Cell ................................................................................... 387Collage d’une forme à une autre forme ................................................................ 387

Exemple de connexion de formes dans un diagramme de flux ................................ 389

Chapitre 20 Intégration de données et d’une solution Visio........................................................391Association de données avec des formes à l’aide d’Automation............................... 392

Ajout de lignes de propriétés personnalisées et définies par l’utilisateur............ 392Génération et utilisation d’ID uniques ................................................................. 393

Propriétés Visio pour le stockage et l’extraction des données .................................. 395Ecriture de code pour l’extraction des données d’un dessin Visio ........................... 396

Exemple d’extraction de données d’un dessin...................................................... 397Examen du code servant à l’extraction des données d’un dessin ........................ 399

Ecriture de code pour la création d’un dessin Visio à partir de données................. 401Exemple de création d’un dessin à partir de données .......................................... 401Examen du code pour la création d’un dessin à partir de données..................... 405

Intégration d’une solution Visio et d’une base de données ...................................... 406

Page 12: MS Visio 2003 Guide du Développeur

xii T A B L E D E S M A T I E R E S

Chapitre 21 Gestion des événements dans Visio .......................................................................... 409Présentation des événements ......................................................................................410Rédaction du code pour les événements ....................................................................411

Gestion des événements déclenchés par ThisDocument .....................................412Déclaration d’une variable objet à l’aide du mot-clé WithEvents .......................415Définition d’une classe recevant des événements .................................................416Exemple de module de classe répondant aux événements...................................418

Objets Event Visio .......................................................................................................420Définition de l’objet Event .....................................................................................420Obtention d’informations concernant un objet Event.........................................422Création d’un objet Event exécutant un programme complémentaire ..............423Persistance d’un objet Event exécutant un programme complémentaire ..........424Création d’un objet Event envoyant une notification..........................................424Exemple de procédure VisEventProc ....................................................................428Exemple d’objets Event envoyant des notifications .............................................429Durée de vie d’un objet Event envoyant une notification....................................430

Chapitre 22 Personnalisation de l’interface utilisateur Visio .................................................... 431Eléments personnalisables...........................................................................................432

Récupération d’un objet UIObject ........................................................................433Objets relatifs aux menus .......................................................................................435Objets relatifs aux accélérateurs.............................................................................437Objets relatifs aux barres d’outils ..........................................................................437Objets relatifs aux barres d’état..............................................................................439

Planification des modifications de l’interface utilisateur ..........................................440Différences entre la personnalisation d’une copie de l’interface utilisateur Visio intégrée et celle d’une interface personnalisée ......................................................440Contrôle de la portée de l’interface utilisateur......................................................441Contrôle de la persistance de l’interface utilisateur..............................................442

Modifications apportées à l’interface utilisateur........................................................443Récupération d’un objet MenuSet, ToolbarSet, AccelTable ou StatusBar..........443ID des constantes pour des contextes de fenêtre ..................................................444Ajout d’un menu et d’une option de menu ..........................................................445Ajout d’une barre d’outils et d’un bouton de barre d’outils ................................448Paramétrage des propriétés d’une option .............................................................451Suppression d’options d’une interface utilisateur ................................................452Suppression d’une option de barre d’outils ..........................................................454Suppression d’un accélérateur ...............................................................................455Mise en oeuvre des modifications apportées à l’interface utilisateur personnalisée ..........................................................................................................456

Utilisation des fichiers d’interface utilisateur personnalisée .....................................457Fichier Custom.vsu.................................................................................................457Enregistrement d’un fichier d’interface utilisateur personnalisée .......................458Chargement d’un fichier d’interface utilisateur personnalisée ............................458Restauration de l’interface utilisateur intégrée Visio............................................459

Page 13: MS Visio 2003 Guide du Développeur

T A B L E D E S M A T I È R E S xiii

Chapitre 23 Utilisation de contrôles ActiveX dans une solution Visio......................................461Ajout de contrôles ActiveX à une solution Visio ....................................................... 462

Utilisation du mode création................................................................................. 462Insertion d’un contrôle dans un dessin................................................................. 462Définition de l’ordre de tabulation des contrôles................................................. 464Utilisation des propriétés d’ambiance de Visio dans des contrôles..................... 465Impression d’un dessin sans contrôle ................................................................... 465Protection des contrôles contre les modifications................................................ 465

Gestion des événements d’un contrôle....................................................................... 466Utilisation des contrôles à l’exécution........................................................................ 467

A propos des noms de contrôle ............................................................................. 467Récupération d’un contrôle de la collection OLEObjects.................................... 468

Distribution de contrôles ActiveX dans une solution Visio...................................... 469Exemple de contrôles ActiveX qui interagissent avec des formes............................. 470

Chapitre 24 Utilisation du gestionnaire d’annulation de Visio dans votre programme..........473Le gestionnaire d’annulation de Visio........................................................................ 474

Présentation des options de Annuler/Rétablir...................................................... 474Fonctionnement du gestionnaire d’annulation de Visio avec un programme complémentaire...................................................................................................... 475

Création de domaines d’annulation dans votre programme complémentaire........ 477Création d’un domaine d’annulation ................................................................... 477Association d’événements à un domaine d’annulation ....................................... 478

Création d’unités d’annulation................................................................................... 479Création d’une unité d’annulation........................................................................ 479Ajout d’une unité d’annulation dans le gestionnaire d’annulation de Visio ...... 481

Exemple de création d’une unité d’annulation qui gère des données non-Visio .... 481

Chapitre 25 Distribution d’une solution Visio Automation...........................................................485Installation d’une solution Visio ................................................................................ 486

Détermination des chemins et dossiers des fichiers Visio ................................... 486Mode de recherche des chemins de fichier de Visio............................................. 487

Contrôle de l’exécution d’un programme.................................................................. 488Diffusion d’un programme......................................................................................... 491

Diffusion de programmes Microsoft VBA............................................................ 491Taille des fichiers de dessin dans une solution Microsoft VBA ........................... 492Utilisation de noms universels dans une solution................................................ 493Informations importantes concernant les licences............................................... 493

Chapitre 26 Programmation de Visio avec Microsoft Visual Basic ...........................................495Récupération d’une copie de Visio............................................................................. 496

Création d’un objet Application............................................................................ 496Récupération d’un objet Application.................................................................... 497Libération d’un objet Application......................................................................... 497Exemple d’utilisation d’un objet Application dans un programme Microsoft Visual Basic ........................................................................................... 497Raccourcis d’utilisation d’une copie de Visio....................................................... 499Utilisation du descripteur de fenêtre d’une copie ................................................ 500Interactions avec d’autres programmes ................................................................ 500

Création d’un document Visio ................................................................................... 501

Page 14: MS Visio 2003 Guide du Développeur

xiv T A B L E D E S M A T I E R E S

Gestion des erreurs dans Microsoft Visual Basic .......................................................502Interprétation de la chaîne de commande envoyée par Visio à votre programme..503

Exécution du programme depuis le sous-menu Macros......................................503Exécution du programme lors du calcul d’une formule ......................................504Exécution du programme à l’aide d’arguments....................................................505Exécution du programme depuis le dossier Startup ............................................506Analyse de la chaîne de commande.......................................................................506

Utilisation de la bibliothèque de types de Visio dans les projets Microsoft Visual Basic .................................................................................................506Migration de Microsoft Visual Basic à VBA...............................................................507

Chapitre 27 Programmation de Visio avec C++ ............................................................................. 509Mise à disposition des objets dans Visio ....................................................................510Prise en charge de C++ dans Visio .............................................................................511

Utilisation des classes wrapper ..............................................................................512Interfaces situées derrière les classes wrapper.......................................................514Récupération d’un objet Application Visio ..........................................................516Valeurs renvoyées par les méthodes de Visio........................................................516Arguments transmis aux méthodes Visio .............................................................518

Gestion des événements Visio dans les programmes C++........................................520Mise en oeuvre d’un objet récepteur .....................................................................520Utilisation de CVisioAddonSink ...........................................................................521

Bibliothèques Visio (VSL)...........................................................................................524Avantages des bibliothèques Visio.........................................................................524Architecture d’une bibliothèque Visio ..................................................................525Déclaration et enregistrement de programmes complémentaires.......................526Exécution d’un programme complémentaire.......................................................528

Annexe A Propriétés, méthodes et événements classés par objet ........................................ 531

Annexe B Indices de section, de ligne et de cellule ShapeSheet.......................................... 547Indices de section, de ligne et de cellule associés aux formes....................................548Indices de section, de ligne et de cellule associés aux styles ......................................554Indices de section, de ligne et de cellule associés aux pages ......................................554Indices de section, de ligne et de cellule associés aux documents.............................556Cellules de tabulation et types de ligne.......................................................................557

Glossaire ......................................................................................................................... 559

Index................................................................................................................................. 575

Page 15: MS Visio 2003 Guide du Développeur

Sommaire

Préface

Developing Visio Solutions est un guide complet qui permet de créer des solutions graphiques avec la famille de produits Microsoft® Visio® 2000. Il contient les éléments suivants :

• Une présentation de l’environnement Visio et des concepts relatifs au développement de solutions Visio.

• Des informations détaillées sur l’utilisation de formules permettant de concevoir des symboles SmartShapes® qui modélisent le comportement et les objets réels.

• Des informations, des conseils et des techniques d’utilisation de Microsoft® Visual Basic® pour Applications (VBA) qui permettent d’enrichir l’application Visio ou de l’utiliser en tant que composant de vos propres applications.

• Une présentation des langages de programmation Microsoft® Visual Basic® et C++ qui permettent de développer des programmes utilisant Visio en tant que composant.

Cette préface définit les conventions utilisées dans ce guide, les connaissances nécessaires à sa compréhension, présente les toutes dernières fonctions destinées aux développeurs de solutions et répertorie les matériaux de référence en ligne.

A propos du présent guide....................................................................................... 2

Nouvelles fonctions destinées aux développeurs.................................................. 3

Matériaux de référence en ligne .............................................................................. 4

Page 16: MS Visio 2003 Guide du Développeur

2 P R É F A C E

A propos du présent guide

Le guide Developing Visio Solutions peut aider tout utilisateur souhaitant personnaliser les formes ou les solutions Visio, notamment les développeurs d’applications, les analystes système, les programmeurs, les architectes, les ingénieurs et les utilisateurs de logiciels de CAO.

Connaissances nécessairesVous devez connaître les techniques de dessin et les commandes, les outils et les menus de Visio. Vous devez également maîtriser les systèmes de coordonnées cartésiens et les bases de la géométrie. Des connaissances en transformation, trigonométrie et géométrie analytique peuvent également vous être utiles.

Pour les chapitres traitant du contrôle de Visio à l’aide d’un autre langage de programmation tel que Microsoft Visual Basic pour Applications (VBA) ou C++, vous devez connaître le langage de programmation utilisé. La plupart des exemples inclus dans cet ouvrage sont écrits en langage VBA.

ConventionsLe présent guide utilise les conventions typographiques ci-dessous :

Par ailleurs, pour améliorer la lisibilité des exemples de code et de formule, les conventions suivantes ont été adoptées :

• Au sein des formules, des espaces ont été insérés avant et après les opérateurs et le signe égal (=). Ces espaces n’étant pas nécessaires, Visio les supprime si vous les avez insérés dans les formules saisies.

• Dans les exemples de code, des constantes de type numérique ou chaîne ont été utilisées là où vous utilisez généralement des variables ou des constantes globales, notamment si vous essayez de localiser des programmes.

Convention typographique Description

Gras Utilisé pour repérer les termes de programmation dans le corps du texte.

Italique Utilisé pour les variables, les formules ou les termes définis dans le corps du texte. Egalement utilisé dans les syntaxes pour indiquer les données que l’utilisateur doit saisir.

MajusculesInitiales Utilisées pour améliorer la lisibilité dans Visio et dans VBA. En ce qui concerne les termes de programmation, les langages Visio et VBA ne différencient pas les majuscules des minuscules. En revanche, C++ fait la différence.

Nom de fichier Utilisé pour les noms de fichier dans le corps du texte.

����������������������

Utilisée pour les exemples de code.

Page 17: MS Visio 2003 Guide du Développeur

P R É F A C E 3

Nouvelles fonctions destinées aux développeurs

La version Visio 2000 offre une plateforme unique et puissante pour les solutions de dessin personnalisées. Elle a été enrichie de nouvelles sections, lignes et cellules ShapeSheet®, et de nouveaux objets, propriétés, méthodes et événements Automation. Vous disposez maintenant d’un plus grand nombre d’options pour définir le fonctionnement des éléments des solutions. Pour plus d’informations, reportez-vous aux aides en ligne Référence de ShapeSheet et Référence d’Automation, fournies avec le programme Visio.

Vous bénéficiez des nouvelles fonctions et des nouveaux outils suivants.

Nouveaux outils et nouvelles fonctions

Outil ou fonction Description

Prise en charge de dessins complexes

Créez des dessins contenant un grand nombre de formes et des formules complexes.

Amélioration des fonctionnalités d’annulation

Bénéficiez de l’intégration transparente des programmes complémentaires et des programmes externes que vous développez, et du gestionnaire d’annulation de Visio.

Enrichissement du modèle de fenêtre

Hébergez des fenêtres dans Visio avec un programme externe ou complémentaire.

Prise en charge de Microsoft Visual Basic pour Applications (VBA) 6.0

Utilisez la même version de VBA que Microsoft® Office 2000 pour simplifier le codage et améliorer la prise en charge du développement inter-application. VBA 6.0 offre de nouvelles fonctions telles que la prise en charge de formulaires standard et la parité de langage avec Microsoft Visual Basic 6.0.

Personnalisation des barres d’outils

Créez des solutions hautement personnalisées en travaillant l’apparence et le comportement des barres d’outils et des menus en fonction des besoins de la solution.

Dynamique en temps réel

Insérez une forme dans un document, puis modifiez-la : le document est mis à jour automatiquement. Cette fonction permet de bénéficier presque immédiatement des modifications apportées aux dessins.

Enrichissement et rationalisation de la géométrie

Rendez vos solutions plus efficaces en utilisant des nouveaux types de forme géométrique, tels que des NURBS, des ellipses et des lignes sans fin, et en représentant d’autres types de forme géométrique, tels que des polylignes. En outre, les occurrences de forme peuvent maintenant hériter des propriétés géométriques des formes de base.

Propriétés des documents

Gérez les propriétés de l’ensemble du document et faites-y référence dans des cellules associées à un document.

Raccourcis de formes de base

Ajoutez des raccourcis aux formes de base des gabarits pour économiser du temps lorsque vous gérez ces formes et de l’espace pour stocker les fichiers. Les raccourcis peuvent également être dotés d’actions liées au déplacement qui permettent aux occurrences de chaque raccourci de fonctionner ou d’apparaître différemment par rapport à la forme de base.

Page 18: MS Visio 2003 Guide du Développeur

4 P R É F A C E

Matériaux de référence en ligne

De nombreux matériaux de référence sont livrés sur le CD de Visio 2000. D’autres matériaux de référence sont disponibles sur le site Web de Visio.

Matériaux de référence fournis sur le CD de Visio 2000Outre les matériaux fournis dans le guide Developing Visio Solutions, vous pouvez accéder à des informations de référence détaillées sur le CD de Visio 2000. Ces fichiers sont stockés dans le dossier \Visio\DVS ou dans celui qui contient le programme Visio. Pour plus d’informations concernant le contenu de ce dossier, consultez le fichier \DVS\Lisezmoi.txt.

REMARQUE : lorsque vous utilisez Visio, si un message vous informe qu’un des fichiers ou qu’une des ressources précédemment mentionnés est introuvable, ou que vous ne parveniez pas à les localiser, installez-les à partir du CD du produit. L’aide en ligne Référence du développeur et les exemples de fichier sont installés avec la fonction Developing Visio Solutions, disponible uniquement si vous sélectionnez l’option Installation personnalisée/complète au cours de l’installation. Vous pouvez choisir l’un ou l’autre de ces composants dans l’écran Installation personnalisée du programme d’installation.

Références croisées au sein d’un document

Faites référence à toute cellule d’un document à partir d’une autre cellule de ce document. Une forme peut fonder son comportement sur les propriétés du document ou de tout autre style, forme, page ou forme de base de ce document.

Amélioration de l’uniformité des objets

Faites pivoter les formes (bitmaps, métafichiers et objets OLE). Ajoutez du texte ou des propriétés géométriques aux formes, y compris aux repères et aux groupes.

Amélioration des fonctionnalités de groupe

Ajoutez des propriétés géométriques directement aux groupes et choisissez entre trois modes de sélection de groupes (le groupe en premier, le membre en premier, le groupe uniquement).

Amélioration de la prise en charge de la localisation

Attribuez des noms universels aux objets et d’autres noms aux documents pour qu’ils puissent être utilisés par des solutions indépendamment du langage.

Modification des cellules in situ

Cliquez sur une cellule de la fenêtre Feuille ShapeSheet et saisissez-y une formule directement, sans passer par la barre de formules. Redimensionnez ensuite les colonnes dans cette fenêtre pour afficher les longues formules.

Nouveaux outils et nouvelles fonctions (suite)

Outil ou fonction Description

Page 19: MS Visio 2003 Guide du Développeur

P R É F A C E 5

Voici la liste des éléments disponibles dans le dossier DVS :

• Une illustration du modèle d’objet Visio.

• Des exemples de gabarits qui comprennent un assortiment de formes illustrant une vaste gamme de fonctionnements de formes courantes.

• Des modèles contenant de nombreux exemples de macros Microsoft Visual Basic pour Applications (VBA).

• Les fichiers de l’Assistant Documentation de gabarit, application exemple qui crée un dessin avec une occurrence de chaque forme de base d’un gabarit, ainsi que du code source Microsoft Visual Basic utilisé pour créer cette application et d’autres applications exemple.

• Les fichiers de prise en charge Visual Basic, ainsi que le code source et les programmes d’utilitaire C++ décrits au chapitre 26, « Programmation de Visio avec Microsoft Visual Basic »et au chapitre 27, « Programmation de Visio avec C++ », situés dans le dossier \DVS\Libraries.

Matériaux de référence sur le site Web de VisioLe site Web de Visio (www.visio.com) présente des informations concernant le développement de solutions Visio destinées aux développeurs de solutions personnalisées qui utilisent la technologie Visio. Ces informations sont les suivantes :

• Des données techniques détaillées concernant la création de symboles SmartShapes® personnalisés, ou de produits Visio personnalisés ou automatisés.

• Des mises à jour d’informations destinées aux développeurs, notamment les manifestations les concernant, les prochaines diffusions de données en ligne et les derniers téléchargements.

• Des ressources relatives au support du développement, notamment les versions en ligne des matériaux de référence, une base de connaissances en ligne et une bibliothèque de fichiers téléchargeables contenant des exemples de code et d’applications.

• La page Visio Developer Forum, lieu de rassemblement en ligne permettant de partager des informations avec des développeurs Visio et d’obtenir de l’aide.

• Des informations sur les services et l’assistance technique Visio.

• Des informations sur la formation des développeurs, notamment le programme, la description et le calendrier des cours, ainsi que quelques cours en ligne.

• Des études de cas réels pour vous permettre de comprendre comment les entreprises personnalisent la technologie Visio pour satisfaire leurs besoins.

• Des informations sur les produits Visio destinés aux développeurs, tels que Microsoft® Visio® 2000, Enterprise Edition, contenant des outils pour la modélisation, la conception et la documentation des applications.

Saisissez l’adresse www.visio.com/vdn/ dans votre navigateur pour accéder aux informations relatives au développement de solutions Visio.

Page 20: MS Visio 2003 Guide du Développeur
Page 21: MS Visio 2003 Guide du Développeur

Sommaire

1Présentation du manuelDeveloping Visio Solutions

Ce guide concerne le développement de solutions. Ces solutions sont des ensembles de formes et de programmes Microsoft® Visio® qui représentent fidèlement la réalité et résolvent certains problèmes de dessin.

En règle générale, une solution logicielle combine l’utilisation d’un programme personnalisé et d’applications. Plutôt que de développer intégralement une fonctionnalité, le développeur de solutions utilise celles d’un logiciel du commerce.

Une solution Visio utilise des formes programmables (fournies dans Visio ou développées spécialement) et un modèle permettant de créer des dessins sur la base de ces formes. Certaines solutions Visio utilisent également Automation pour contrôler les formes et les dessins. Les programmes personnalisés d’une solution Visio peuvent être écrits dans tout langage de programmation prenant en charge Automation en tant que contrôleur, par exemple Microsoft® Visual Basic® pour Applications (VBA), Microsoft® Visual Basic® ou C++. Pour simplifier le développement de projets VBA, l’application Visio fournit un environnement de développement intégré.

Ce chapitre présente les fonctions essentielles de Visio, ainsi que certains concepts permettant de choisir leur mode d’utilisation. Pour tirer le meilleur parti de ce chapitre et de ce guide, il est préférable de connaître les commandes et les outils Visio. Il est recommandé de créer quelques dessins avant de poursuivre la lecture de ce guide. Localisez l’aide en ligne de Visio et celle de ShapeSheet, fournies avec Visio (sélectionnez ? (Aide) > Référence du développeur, puis choisissez l’option de référence de ShapeSheet). Cette aide fournit plus de détails concernant les informations de base et répond aux questions que vous pouvez vous poser lors de la lecture de ce guide.

A propos des solutions Visio................................................................................... 8

Utilisation de formes Visio pour créer des solutions ............................................ 15

Développement de formes à l’aide de la technologie SmartShapes................... 18

Recours à Automation dans une solution Visio .................................................... 20

Planification d’une solution Visio ........................................................................... 25

Page 22: MS Visio 2003 Guide du Développeur

8 C H A P I T R E 1

Si votre solution est conçue pour contrôler le moteur Visio avec Automation, vous devez bien connaître le langage de programmation que vous allez utiliser. L’aide en ligne de VBA est fournie avec l’application Visio. Si vous utilisez d’autres langages de programmation, reportez-vous à la documentation fournie par le revendeur.

A propos des solutions Visio

Une solution Visio est un ensemble de formes et de programmes Visio qui donnent une représentation fidèle de la réalité et permettent de résoudre certains problèmes de dessin. En règle générale, une solution Visio comporte des gabarits de formes de base que l’utilisateur peut insérer dans une page de dessin par glisser-déplacer. Il peut ainsi créer un dessin sans avoir à accomplir d’opération manuelle. Une solution peut également comprendre des modèles de dessin qui fournissent des dessins avec des formes, telles que des blocs de titre, des logos ou des cadres, et qui prédéfinissent l’échelle, la taille du dessin et, dans certains cas, le format de papier à utiliser pour l’impression. Les programmes (qui apparaissent sous la forme d’un code Microsoft Visual Basic pour Applications directement dans les documents Visio de la solution ou en tant que programmes autonomes, externes aux documents Visio) vous aident à créer le dessin, à l’analyser ou à transférer des données entre le dessin et les sources de données externes. Pour optimiser l’utilisation des formes, l’utilisateur peut consulter l’aide en ligne.

Modélisation au moyen de formes VisioUn modèle conceptuel permet d’analyser et de résoudre un problème grâce à des objets qui ressemblent aux éléments du domaine du modèle étudié (par exemple, organigramme d’un service, organisation des bureaux et des chaises dans un plan d’aménagement, réseau de distribution ou diagramme d’un circuit intégré). Comme ces modèles sont très fidèles à la réalité, vous pouvez concevoir et développer une solution en utilisant des termes évocateurs pour les utilisateurs.

Dans l’idéal, les formes d’une solution Visio doivent correspondre aux objets du domaine modélisé. La création d’un dessin donne lieu à l’élaboration d’un modèle. Le comportement de la forme garantit une modélisation et une représentation graphique correctes, tout en laissant à l’utilisateur la possibilité de ne pas prendre en compte certains attributs afin de créer une représentation lisible.

Page 23: MS Visio 2003 Guide du Développeur

P R E S E N T A T I O N D U M A N U E L D E V E L O P I N G V I S I O S O L U T I O N S 9

Par exemple, si vous planifiez l’organisation d’un service, le domaine du modèle est le service. Les objets du domaine sont les employés. Les dessins représentant ce modèle sont des organigrammes simples dont les différentes cases sont reliées entre elles par des traits de connexion indiquant les rapports hiérarchiques.

Pour réorganiser un service, il suffitde modifier les connexions entre

les employés.

Vous pouvez également créer un plan afin de préparer l’emménagement de votre société dans de nouveaux locaux. Le domaine modélisé est le bâtiment. Les objets de ce domaine sont les employés mais vous pouvez également faire figurer le mobilier, l’équipement informatique, etc. Le dessin de ce modèle est un diagramme d’agencement d’espaces indiquant l’emplacement de chaque employé, ainsi que le matériel (mobilier et équipement informatique) nécessaire pour son bureau.

Pour créer un plan d’agencement,l’utilisateur déplace les formes

représentant les employés, lemobilier et les équipements

informatiques.

Page 24: MS Visio 2003 Guide du Développeur

10 C H A P I T R E 1

Vous pouvez concevoir des formes Visio pour que d’autres puissent les réutiliser dans leurs dessins sans faire appel aux outils de dessin. L’application Visio constitue l’outil idéal de modélisation. En effet, non seulement les formes ressemblent aux objets du domaine modélisé, mais elles peuvent également participer à l’amélioration du modèle.

Par exemple :

• Pour réorganiser un service, il suffit de déplacer les connexions entre les employés dans un organigramme. Les formes permettent d’obtenir un organigramme précis car elles fournissent à l’utilisateur des points de connexion prédéfinis. L’utilisateur sait ainsi où placer les connexions (cela diminue les risques de mauvaise organisation, où, par exemple, un employé aurait deux supérieurs).

• Pour créer un plan d’agencement, il suffit de déplacer les formes correspondant aux employés, au mobilier et à l’équipement informatique dans un diagramme d’agencement d’espace. Les formes permettent d’obtenir un agencement correct grâce à des poignées de contrôle que les utilisateurs peuvent faire glisser afin de vérifier le dégagement des portes et des tiroirs. Les formes peuvent être verrouillées de manière à empêcher leur redimensionnement. Ainsi, les utilisateurs ne risquent pas de réduire par accident le mobilier standard qui ne tiendrait plus dans un bureau réel.

Page 25: MS Visio 2003 Guide du Développeur

P R E S E N T A T I O N D U M A N U E L D E V E L O P I N G V I S I O S O L U T I O N S 11

Extraction des données d’un modèle conceptuelEn règle générale, un dessin Visio ne correspond qu’à une vue partielle d’un modèle, et rarement au produit final. Pour tirer le meilleur parti des solutions Visio, il est préférable que les dessins représentent un modèle dont les données peuvent être extraites automatiquement. Par exemple, dans une solution de modélisation de processus, le dessin indique les étapes du processus. Il peut être utile également de connaître le coût par transaction de chaque processus.

Données extraitesd’un dessin de processus

Lorsque les données ajoutées au dessin Visio sont suffisantes, le modèle complet est stocké dans le dessin. En revanche, si différents dessins doivent être cohérents, vous pouvez stocker dans une base de données unique et partagée une partie du modèle, par exemple les spécifications techniques des cuisines, des plans de travail et des appareils, ou les tableaux représentant les entrées et sorties de processus.

Validation d’un modèleLes modèles présentent des règles qui déterminent le comportement des objets. Les dessins doivent suivre certaines règles afin d’être lisibles. Par exemple, un organigramme dont les liens et les cases se chevauchent est plus difficilement exploitable qu’un organigramme où les cases sont espacées régulièrement et dont les liens contournent les formes.

Page 26: MS Visio 2003 Guide du Développeur

12 C H A P I T R E 1

Toutefois, il ne suffit pas de créer un dessin dont l’apparence est correcte. Les formes et le dessin doivent avant tout permettre de vérifier l’exactitude des donnéesqu’ils représentent. Par exemple, dans un plan d’agencement, chaque employé doit avoir un bureau. Il est rare que plusieurs employés partagent un même bureau. A l’inverse, un même employé n’utilise que rarement plusieurs bureaux.

Une solution Visio permet d’analyser les données extraites des dessins et de savoir si elles suivent les règles du modèle. Supposons qu’une réorganisation globale de votre société entraîne le remaniement de plusieurs services. Les structures hiérarchiques figurant sur l’organigramme de chaque service peuvent être extraites automatiquement, pour être ensuite fusionnées dans une hiérarchie globale qui vous permettra de vérifier la cohérence de l’ensemble. Par exemple, la solution permet de faire en sorte qu’aucun employé n’ait deux supérieurs, et que les employés qui ne figurent pas dans la réorganisation proposée aient bien été supprimés sciemment de l’organisation, etc.

Une solution Visio peut analyser lesdessins afin de valider le modèle.

Page 27: MS Visio 2003 Guide du Développeur

P R E S E N T A T I O N D U M A N U E L D E V E L O P I N G V I S I O S O L U T I O N S 13

Exemple de solution Visio d’automatisation des ventes sur le terrainL’exemple suivant illustre la manière dont une solution Visio peut modéliser la réalité, extraire les données du modèle et les valider. Dans cet exemple, la solution concerne les ventes sur le terrain d’une société qui fabrique et commercialise des systèmes de sécurité.

D’ordinaire, un commercial contacte un client potentiel afin de connaître ses besoins en sécurité, conçoit un système à partir des composants d’un catalogue (qui peut indiquer les prix en vigueur) et propose une esquisse sur papier du système proposé. Le commercial fait également un devis approximatif, puis retourne au bureau pour formaliser ce devis. Il recrée l’esquisse sur ordinateur. Les prix sont étudiés et calculés sur la base de la demande et le devis est élaboré. Si le client l’accepte, la société prépare un contrat à lui faire signer et un ordre d’exécution pour l’installation.

L’approche standard fonctionne bien... lorsque tout se passe comme prévu. Malheureusement, les risques d’erreur sont nombreux : un composant essentiel peut avoir été oublié dans l’esquisse d’origine, les connexions peuvent être incorrectes ou certaines peuvent manquer. Le dessin formel peut ne pas correspondre à l’esquisse. Le catalogue du commercial peut être obsolète : le système proposé comprend alors des composants qui ne sont plus disponibles ou qui sont plus coûteux. La création manuelle de chaque document augmente le risque d’erreur à chaque étape du processus, y compris au dernier stade qui concerne l’installation proprement dite sur le site du client. Même si tout se passe bien, chaque étape prend du temps. En effet, chaque document doit être préparé, vérifié et éventuellement corrigé.

Grâce aux solutions Visio, ce processus peut être automatisé de la manière suivante : le commercial, muni d’un ordinateur portable avec Visio et la solution d’automatisation des ventes, rencontre un client potentiel. Lorsqu’ils évaluent ensemble les besoins du client en matière de sécurité, le commercial élabore un diagramme représentant le système proposé. Pour ce faire, il insère dans un dessin Visio illustrant le site d’installation des formes issues d’un gabarit personnalisé. Les formes du système de sécurité sont pourvues de points de connexion et de poignées de contrôle qui facilitent leur organisation. Le gabarit étant mis à jour régulièrement, les composants ne risquent pas d’être obsolètes.

Page 28: MS Visio 2003 Guide du Développeur

14 C H A P I T R E 1

Système de sécuritéconçu à l’aide d’une solution Visio

Les formes du système de sécurité possèdent des propriétés personnalisées qui stockent certaines données, telles que les numéros de référence. La solution comporte une base de données qui indique les prix en vigueur, et d’autres informations sur les composants et les programmes qui synchronisent les formes avec la base de données. Le commercial peut ainsi effectuer les opérations suivantes :

• Valider la proposition de système de sécurité en vérifiant que tous les composants du dessin sont en place et que leurs connexions sont correctes. Le commercial peut ainsi corriger les éventuelles erreurs alors qu’il se trouve encore chez le client.

• Rechercher les prix en vigueur dans la base de données pour générer la liste des pièces concernant le matériel et fournir au client une évaluation précise du coût de l’installation.

Grâce à la solution Visio, le commercial peut utiliser son dessin, directement sur le terrain ou de retour au bureau, pour générer le devis, le contrat, l’ordre d’exécution de l’installation et la facture. La solution Visio crée des documents plus précis dans un temps réduit. Le temps gagné par le commercial lui permet de contacter davantage de clients.

Page 29: MS Visio 2003 Guide du Développeur

P R E S E N T A T I O N D U M A N U E L D E V E L O P I N G V I S I O S O L U T I O N S 15

Utilisation de formes Visio pour créer des solutions

Une solution Visio comprend le plus souvent des formes. L’application Visio permet au développeur de solutions d’accéder facilement à des fonctions graphiques perfectionnées grâce à ses outils de dessin. Les formes peuvent être programmées à l’aide de formules dans la fenêtre ShapeSheet®.

Chaque forme Visio comporte un ensemble de formules correspondant à ses attributs, tels que sa largeur et sa hauteur. Ces formules déterminent également son comportement, notamment lorsqu’un utilisateur double-clique dessus. Etant donné que les formes Visio peuvent être programmées à l’aide de formules, vous pouvez leur faire adopter un comportement proche de celui des objets réels qu’elles représentent. Vous pouvez par exemple associer des données importantes (numéro de référence, nom ou fabricant) aux formes représentant l’équipement d’un bureau. Ces formes, dont le comportement unique est dicté par les formules que vous rédigez, peuvent alors devenir des composants essentiels.

Assemblage d’objets dans des dessinsSi un graphique n’est pour vous qu’un ensemble de vecteurs, les graphiques Visio vont vous offrir une toute nouvelle perspective. Les formes Visio sont paramétriques : la géométrie et les autres attributs d’une forme Visio varient en fonction des valeurs de certains paramètres, définis soit par le moteur Visio, soit par le développeur des formes. Une géométrie est fixe lorsqu’elle repose simplement sur des coordonnées x, y. En revanche, la géométrie des formes repose sur des formules qui recalculent les coordonnées de manière dynamique à mesure que l’utilisateur modifie la forme. Au lieu de tirer des traits, vous créez le dessin en assemblant des objets intelligents.

Les formes Visio sontparamétriques.

Dans cette forme, la longueur et le diamètre du boulon, ainsi que la longueur du filetage, sont des paramètres contrôlés par des formules. Le diamètre et l’épaisseur de la tête sont directement liés à ces paramètres.

A Diamètre de la têteB Longueur du boulonC Longueur du filetage

D Diamètre du boulonE Epaisseur de la tête

A

BC

D

E

Page 30: MS Visio 2003 Guide du Développeur

16 C H A P I T R E 1

Ces paramètres sont indépendants les uns des autres, dans la limite des possibilités physiques. Pour modifier la longueur ou le diamètre du boulon, l’utilisateur déplace les poignées de sélection. Pour modifier la longueur du filetage, il déplace la poignée de contrôle. Ces paramètres peuvent également être configurés à partir des données numériques provenant de la base de données d’un fabricant et indiquant les tailles disponibles.

Utilisation de formes comme composantsDans un programme, une procédure est associée à une fonctionnalité pour faciliter sa réutilisation. De même, les formes Visio sont associées à un comportement sur la page de dessin. Elles doivent être considérées comme des composants dont le comportement par défaut est déterminé par le moteur Visio, mais que vous pouvez ensuite personnaliser à l’aide de formules.

Une solution est généralement composée de plusieurs formes. En règle générale, vous êtes amené à concevoir un ensemble de formes prenant en charge un type de dessin particulier. Ces formes, une fois assemblées, constituent les formes de base d’un gabarit Visio. Une forme de base est une forme figurant dans un gabarit et qui sert à créer des occurrences ou des formes. Les occurrences héritent de la plupart des caractéristiques de la forme de base.

Les utilisateurs (ou les programmes) peuvent insérer les formes de base d’un gabarit en les faisant glisser sur la page de dessin. Le gabarit permet de réutiliser des formes personnalisées. Une même forme peut avoir diverses applications : un ingénieur l’utilisera pour simuler la configuration d’un produit, un commercial pour présenter un produit à un client, ou un dessinateur pour créer un catalogue de produits.

Lorsqu’un utilisateur insère pour la première fois une forme de base dans la page de dessin, une occurrence de cette forme est créée, et une copie, appelée forme de base de document, est ajoutée au gabarit de document du dessin. Le gabarit de document est stocké dans le fichier de dessin lui-même. Ce principe présente deux avantages :

• Le dessin est entièrement autonome et transportable. Une fois le dessin créé, le gabarit devient inutile.

• Les occurrences d’une forme de base héritent des attributs de la forme de base stockée dans le gabarit de document. Un utilisateur peut modifier la forme de base dans le gabarit de document afin de changer les caractéristiques de toutes les occurrences figurant dans le dessin.

Page 31: MS Visio 2003 Guide du Développeur

P R E S E N T A T I O N D U M A N U E L D E V E L O P I N G V I S I O S O L U T I O N S 17

Comme chaque occurrence d’une forme de base hérite des propriétés de la forme de base de document, elle peut prendre en charge de nombreux comportements complexes tout en conservant une taille modeste. Une formule peut ne pas être prise en compte au niveau de l’occurrence. En revanche, il est possible de modifier toutes les occurrences en modifiant la forme de base de document. Le dessin peut être diffusé sans problème car il contient des copies des formes de base. Le ou les gabarits ayant servi à l’élaboration des formes de base ne sont plus nécessaires. Pour afficher le dessin, il vous suffit de disposer d’une copie de Visio.

Les formes d’équipement réseau sont conçues pour pouvoir être alignées et connectées aux formes de racks. Un ingénieur réseau peut ainsi créer un modèle précis représentant une salle des serveurs. Chaque forme répond aux spécifications du fabricant, et le concepteur des formes a personnalisé leur zone d’alignement et ajouté des points de connexion pour faciliter leur utilisation.

Formes d’équipement réseaualignées et connectées

avec les formes de racks.

A Rack structuré de 7 po. x 19 po.B Hub GalacticaC ONline 506-CD Tableau de connexions à 32 ports

E Lattis Sys. 5005NF NetServer LCG Etagère à double face

Page 32: MS Visio 2003 Guide du Développeur

18 C H A P I T R E 1

Pour aider l’utilisateur à créer un dessin à partir de vos formes de base, fournissez-lui un modèle de dessin. Ce dernier peut comporter des formes se trouvant déjà sur la page de dessin. Mais il permet surtout de configurer la page de dessin grâce à une grille et à une échelle uniformes, et de créer des styles et des calques spécifiques. Un modèle peut également ouvrir un ou plusieurs gabarits. Lorsque l’utilisateur crée un dessin à partir du modèle, Visio ouvre les gabarits et crée un fichier de dessin. Il y copie les styles et les propriétés du modèle. Tout comme le gabarit, le modèle devient inutile une fois le dessin créé.

Pour plus d’informations sur les principes de création de formes Visio, reportez-vous au chapitre 2, « Création de formes Visio ». Pour plus d’informations sur le regroupement de formes dans des gabarits et sur la mise à disposition de modèles avec une solution, reportez-vous au chapitre 3, « Formes de base, gabarits, modèles et documents Visio ».

Développement de formes à l’aide de la technologie SmartShapes

La technologie SmartShapes® de Visio permet de développer des formes qui se comportent comme les objets qu’elles représentent en modélisant les caractéristiques pertinentes pour les types de dessin ou de diagramme que vous créez. Pour ce faire, définissez des formules qui donnent aux formes un comportement conforme aux règles, codes et principes des objets qui leur correspondent.

Chaque forme Visio a sa propre feuille de calcul ShapeSheet® qui définit son comportement et ses capacités. La feuille de calcul ShapeSheet est, en quelque sorte, la feuille de propriétés d’une forme, chaque propriété étant définie par une valeur ou par une formule recalculée dynamiquement à mesure que l’utilisateur modifie la forme. Vous pouvez afficher et modifier les formules d’une forme dans la fenêtre ShapeSheet.

La plupart des fonctions susceptibles de nécessiter une programmation externe peuvent être contrôlées via la fenêtre ShapeSheet. Par exemple, vous pouvez ajouter des options au menu contextuel d’une forme en définissant des formules adéquates. Les formules peuvent contrôler divers attributs d’une forme, par exemple :

• la géométrie (retournement, rotation, chemins visibles ou masqués) ;

• la couleur, le motif et l’épaisseur de trait ;

• le texte (notamment la police, le format du paragraphe et l’orientation) ;

• les poignées de contrôle permettant aux utilisateurs de modifier la forme ;

• les points de connexion auxquels les formes peuvent être collées ;

• les propriétés personnalisées pouvant contenir des données définies par l’utilisateur.

Page 33: MS Visio 2003 Guide du Développeur

P R E S E N T A T I O N D U M A N U E L D E V E L O P I N G V I S I O S O L U T I O N S 19

L’interface en feuille de calcul facilite l’utilisation de références de cellule pour lier entre elles les propriétés d’une forme. Ces propriétés peuvent s’influencer entre elles de manière simple et claire. Par exemple, dans le cas d’une pièce dans un dessin mécanique, vous pouvez lier la couleur de la forme à ses dimensions afin d’indiquer si elles restent dans les tolérances définies.

Cette flèche est un exemple typique de contrôle d’une forme Visio par les formules. Les formules remplacent le comportement par défaut des formes dans Visio, selon lequel l’ensemble de la forme est redimensionné proportionnellement lorsque vous l’étirez. Les formules personnalisées permettent, dans cet exemple, d’étirer ou de réduire le fût de la flèche sans modifier la pointe.

La forme de la flèche est contrôléepar des formules Visio.

A La base de la pointe de la flèche est définie comme une fraction de la hauteur.B Tous les points de la base de la pointe de la flèche ont la même abscisse (coordonnée x) :

Largeur - Hauteur * 0,5C HauteurD Hauteur * 0,75E Hauteur * 0,5F Hauteur * 0,25G Largeur

Pour plus d’informations sur l’utilisation de la fenêtre ShapeSheet et sur le contrôle des formes par le biais de formules, reportez-vous au chapitre 4, « Formules Visio »��Pour plus d’informations sur l’exemple de la pointe de flèche, reportez-vous au chapitre 5, « Contrôle de l’étirement et de la réduction des formes ».

Page 34: MS Visio 2003 Guide du Développeur

20 C H A P I T R E 1

Recours à Automation dans une solution Visio

Pour certaines solutions, les formes, les gabarits et les modèles ne suffisent pas. Il peut être judicieux de recourir à Automation si vous créez des dessins à partir de données en constante évolution, ou si vous effectuez régulièrement des tâches répétitives de développement de formes, pour aider les utilisateurs à créer des dessins sans être des experts de Visio ou encore pour utiliser des dessins comme source de données d’un autre travail. Automation permet d’automatiser ces tâches en intégrant la fonctionnalité du moteur Visio dans une solution grâce à l’utilisation de ses objets.

Si vous utilisez souvent Microsoft Visual Basic pour Applications (VBA), les objets suivants vous sont familiers : contrôles du type bouton de commande, formulaire utilisateur, base de données et champ. Grâce à Automation, vous pouvez également utiliser les objets d’autres applications. Les dessins, les formes de base, les formes, et même les menus et les outils Visio peuvent devenir des composants d’un programme. Le programme peut être exécuté dans une occurrence de Visio, ou il peut lancer Visio pour y rechercher les objets nécessaires.

Etant donné que les produits Visio intègrent VBA, nul n’est besoin pour vous d’utiliser un autre environnement de développement pour écrire vos programmes. Toutefois, vous pouvez écrire des programmes contrôlant le moteur Visio dans n’importe quel langage prenant en charge l’utilisation d’Automation en tant que contrôleur. La plupart des exemples fournis dans ce guide sont écrits en langage VBA, mais les principes décrits s’appliquent à n’importe quel langage de programmation.

Automation et objets VisioAutomation permet à un programme écrit en langage VBA, Microsoft Visual Basic, C/C++ ou dans n’importe quel autre langage de programmation prenant en charge Automation, d’intégrer la fonctionnalité d’une application (par exemple, l’application Visio) en utilisant ses objets.

Dans Automation, l’application qui fournit les objets (parfois appelée « application fournisseur » ou « serveur Automation ») les met à la disposition des autres applications, et procure les propriétés et méthodes permettant de les contrôler. (Cette opération est parfois nommée « mise à disposition des objets ».)

L’application qui utilise les objets (par exemple, votre programme, parfois appelé contrôleur ou client Automation) crée des occurrences des objets, puis définit leurs propriétés, ou appelle leurs méthodes afin que les objets puissent être utilisés par l’application. Le fournisseur et le contrôleur collaborent en faisant appel à des fonctions via les bibliothèques OLE, qui sont installées sur tout système muni d’une application prenant en charge OLE (Visio, Visual Basic ou Microsoft® Windows®).

Page 35: MS Visio 2003 Guide du Développeur

P R E S E N T A T I O N D U M A N U E L D E V E L O P I N G V I S I O S O L U T I O N S 21

Contrairement à un langage de script qui automatise simplement les actions que vous effectuez dans l’interface utilisateur d’une application (sélection d’une commande, choix d’une touche, saisie, etc.), Automation accède aux objets de l’application. Un objet intègre des données, un comportement, des événements et une interface qui vous donne accès à ces éléments. Chaque objet Visio présente des propriétés (données), des méthodes (comportements) et des événements grâce auxquels vous pouvez intégrer dans vos programmes les différentes fonctionnalités de cet objet.

Les objets Visio se trouvent dans une occurrence de Visio. Un programme VBA (Microsoft Visual Basic pour Applications) s’exécute dans une occurrence de Visio, puis accède aux objets nécessaires. Un programme externe fonctionne indépendamment de toute occurrence de Visio. Il lance donc l’application ou accède à une occurrence de Visio déjà en cours. Il accède ensuite aux objets Visio nécessaires. La plupart des objets du modèle conceptuel Visio correspondent aux éléments que vous pouvez afficher et sélectionner dans une occurrence de Visio. Par exemple, un objet Page représente une page de dessin et un objet Shape, une forme dans un dessin. Les formules d’une forme sont représentées par les objets Cell.

De nombreux chapitres de ce guide sont consacrés à l’intégration d’Automation dans une solution Visio. Pour plus d’informations, reportez-vous au chapitre 14, « Automation et le modèle d’objet de Visio ».

Page 36: MS Visio 2003 Guide du Développeur

22 C H A P I T R E 1

Exemple de surveillance des événements et de calcul d’un total Pour voir comment une solution accède aux objets Visio à l’aide d’Automation, prenez l’exemple d’une solution qui surveille les événements déclenchés lors de l’ajout ou de la suppression de formes dans un dessin. La solution calcule en permanence la consommation électrique totale des éléments représentés par les formes afin de vérifier qu’elle ne dépasse pas la limite fixée.

Solution surveillant laconsommation électrique deséléments représentés par les

formes d’un dessin

L’exemple commence par une procédure d’initialisation qui vérifie toutes les formes d’un dessin. La consommation maximale autorisée est définie par le texte d’une forme, appelée Limite, que l’utilisateur peut saisir dans cette forme dans le dessin. La fonction VBA Val convertit le texte en un nombre au format Double qui sera utilisé dans les calculs suivants. La solution calcule en permanence le total dans la cellule PC d’une forme du nom de Courant.

Valeurs cumulées

Valeur

Valeur

Valeur

Valeur

Valeur

Valeur

Consommationélectrique maximale

7,0Valeur actuelle : 7,20

Page 37: MS Visio 2003 Guide du Développeur

P R E S E N T A T I O N D U M A N U E L D E V E L O P I N G V I S I O S O L U T I O N S 23

Pour chaque forme représentant un périphérique consommateur d’énergie, la valeur correspondant à cette consommation est enregistrée dans une propriété personnalisée appelée ConsommationEnergie. Le programme peut y accéder via la propriété Cells d’un objet Shape. Le programme effectue une itération de la collection Shapes de l’objet Page transmis à la procédure InitWith et vérifie la consommation de chaque forme présentant une propriété ConsommationEnergie. Si la consommation totale excède la limite définie pour le dessin, la solution en informe l’utilisateur en donnant la valeur 2 à la cellule Couleur de la section relative au format des caractères de la forme Limite (Car.Couleur). Le texte de la forme apparaît ainsi en rouge.

������ ������

����������� ��������������������

�������������������������

�����������������������

����������������������������������

���������������

����������� ������

��������� �!��������"������#������#�"$����

������������� ������"������#������#�"������#%���"��#�

��������"&������%� �'(

)���� �*�$�������"�����"�����

����������"��������

�+�"���� ������#��"������������ �����#,�)������$���

��������"&������##�� ���������"&������##��-�.

"������#�"������������ �����#�"&������##�

�+���������"&������##��/����������$���

�����"������#������#�"������#��"������#�"&������##�� �0

�1��+

�1��+

�1�����

2�����

�1����

Page 38: MS Visio 2003 Guide du Développeur

24 C H A P I T R E 1

Supposons que l’utilisateur ajoute une forme au dessin. Cette action déclenche un événement ShapeAdded géré par la procédure décrite ci-dessous. Tout comme la procédure d’initialisation de page, elle ajoute au total la valeur indiquant la consommation de la dernière forme ajoutée et vérifie si ce total dépasse la limite du dessin.

La suppression d’une forme déclenche un événement BeforeShapeDelete. Une solution ne peut pas annuler la suppression, mais peut néanmoins effectuer les opérations nécessitant la présence de la forme avant que cette dernière ne soit supprimée du dessin. La procédure d’événement suivante soustrait du total la valeur de consommation de la forme supprimée afin que le total indiqué soit juste. Si la suppression de la forme fait repasser le total au-dessous de la limite, le texte de la forme Limite apparaît de nouveau en noir (0).

Pour plus d’informations sur l’accès aux formules d’une forme via Automation, reportez-vous au chapitre 17, « Automatisation des formules ». Pour plus d’informations sur la gestion des événements Visio dans une solution, reportez-vous au chapitre 21, « Gestion des événements dans Visio ».

������������������.�����11�1�34!�����������!����"�!�����

�+�����"���� ������#��"������������ �����#,�)������$���

��������"&������##�� ���������"&������##��-�.

����"������#�"������������ �����#�"&������##�

�+���������"&������##��/����������$���

������"������#������#�"������#��"������#�"&������##�� �0

�1��+

�1��+

�1����

������������������.3�+�������������34!�����������!����"�!�����

�+�����"���� ������#��"������������ �����#,�)������$���

��������"&������##�� ���������"&������##��5�.

����"������#�"������������ �����#�"&������##�

�+���������"&������##��6 ����������$���

������"������#������#�"������#��"������#�"&������##�� �'

�1��+

�1��+

�1����

Page 39: MS Visio 2003 Guide du Développeur

P R E S E N T A T I O N D U M A N U E L D E V E L O P I N G V I S I O S O L U T I O N S 25

Planification d’une solution Visio

Une solution est plus facile à intégrer lorsqu’il s’agit d’un dessin normalisé qui utilise les éléments fournis avec un produit Visio, ainsi que vos formes, gabarits et modèles personnalisés. Les solutions qui comportent des Assistants de dessin (parfois appelés programmes complémentaires) sont également programmées pour aider l’utilisateur à créer des dessins. Si les dessins à créer suivent un ensemble strict de règles, la solution peut comporter une application utilisant des données issues d’une autre source pour générer des dessins modifiables par l’utilisateur. Si la solution est conçue pour fournir plus que des dessins, elle doit également permettre une intégration avec une base de données externe et d’autres applications externes (du commerce ou propriétaires).

Planification du processus de développementUn seul développeur peut souvent créer une solution Visio simple, comportant des formes personnalisées, un modèle et du code. Pour les solutions plus complexes, toutefois, il est parfois nécessaire de recourir à une équipe de développeurs, présentant chacun des compétences particulières. Par exemple, une équipe de développeurs peut se composer des personnes suivantes :

• Un ingénieur système rompu à la conception de logiciels, connaissant bien l’application Visio, son architecture et ses principales fonctions. L’ingénieur système est responsable des aspects techniques et de la conception d’une solution Visio.

• Des développeurs de formes conscients du rôle que doit jouer chaque forme dans la solution, connaissant bien les outils de dessin de Visio et la fenêtre ShapeSheet®. Les développeurs de formes doivent avoir de solides connaissances en mathématiques et en géométrie, car la majeure partie de leur travail est consacrée à la création de formules permettant de contrôler le comportement des formes.

• Des développeurs Automation, spécialistes du langage de programmation utilisé pour développer la solution (Microsoft VBA, Visual Basic ou C++, selon le type d’intégration nécessaire). Ces développeurs doivent posséder des connaissances de base concernant les formes et les formules de Visio, et doivent connaître parfaitement le modèle d’objet Visio.

• Des experts du domaine concerné par la solution. Ces experts conseilleront l’équipe concernant les normes en vigueur dans le domaine, les processus, l’usage et les exceptions.

Page 40: MS Visio 2003 Guide du Développeur

26 C H A P I T R E 1

Une fois l’équipe formée, le processus de développement peut se dérouler de la manière suivante :

• Rencontrez les utilisateurs afin de connaître leurs besoins et d’identifier les objets nécessaires au domaine de la solution.

Après concertation avec les utilisateurs, choisissez la procédure à suivre pour effectuer chaque tâche. Collectez des exemples de dessins pouvant être automatisés ou améliorés par la solution. Si le projet est important, vous pouvez envisager de créer un document recensant ces informations de sorte que d’autres utilisateurs et développeurs puissent les passer en revue et les comprendre.

• Développez progressivement la solution et consultez les utilisateurs à chaque étape.

Le développement et l’intégration progressifs des fonctions Visio dans une solution donnent souvent de meilleurs résultats. En effet, la solution est plus rapidement mise à la disposition de l’utilisateur, qui peut faire des commentaires qui aideront à améliorer la solution au cours du développement.

• Commencez par développer des formes et par les mettre à la disposition des utilisateurs. Corrigez ces formes en fonction des commentaires des utilisateurs.

L’efficacité d’une solution repose sur l’utilité et la pertinence des formes. Par exemple, vous pouvez choisir entre fournir à l’utilisateur un nombre important de formes ou prévoir le temps nécessaire à la création de formes multiples. Certains utilisateurs trouveront plus pratique d’utiliser des formes versatiles dans plusieurs configurations plutôt que d’avoir à choisir les formes dans un gabarit en comportant un certain nombre.

• Une fois que les utilisateurs sont satisfaits de l’ensemble initial de formes, développez éventuellement des Assistants de dessin ou des programmes complémentaires pouvant être utiles à l’élaboration des dessins. Au besoin, améliorez les formes afin de les rendre plus facilement utilisables.

Un ensemble de dessins normalisés peut suffire aux besoins des utilisateurs. Veillez à ne pas rendre une solution plus complexe que nécessaire. Le fait que l’application Visio soit programmable ne vous oblige pas à créer des programmes pour vos solutions.

• Enfin, si les formes et les programmes complémentaires de la solution sont conçus pour être utilisés avec une base de données ou avec d’autres applications, prenez cet élément en compte dès le début du processus de développement.

La procédure à suivre pour cette étape dépend du type de solution que vous développez. Pour plus d’informations, reportez-vous aux sections « Intégration d’une solution Visio et d’une base de données », page 29 et « Choix concernant la mise en oeuvre d’Automation », page 30.

Page 41: MS Visio 2003 Guide du Développeur

P R E S E N T A T I O N D U M A N U E L D E V E L O P I N G V I S I O S O L U T I O N S 27

Planification des formes et des gabaritsLe développement d’une solution commence par la création des formes nécessaires. Les fonctionnalités des formes doivent être, dans la mesure du possible, définies par des formules. Deux points justifient de commencer par les formes :

• Les formes peuvent être intelligentes. Vous pouvez utiliser les capacités intrinsèques des formes Visio afin de gérer une grande partie des fonctionnalités graphiques sans écrire de code.

• Les formes sont indépendantes du code qui les contrôle. Une fois que vous avez développé les formes de base utilisées par la solution, vous pouvez les modifier sans avoir à recompiler le code, et inversement.

Si le comportement à attribuer à la forme est prévisible et peut être défini à l’aide de formules (par exemple, un redimensionnement ou une mise à l’échelle automatique), intégrez-le dans la forme. Si ce comportement doit pouvoir changer dynamiquement (par exemple, le texte d’une forme ou l’organisation des formes d’un dessin peut varier), gérez cet élément dans le programme. Vous pouvez contrôler très précisément l’apparence et le comportement des formes en définissant des formules de forme. Si vous joignez à votre solution un gabarit de formes de base, les utilisateurs peuvent dans certains cas se passer des outils de dessin de Visio.

Lorsque vous créez des formes de base pour un programme, testez-les dans une occurrence de Visio en créant manuellement les types de dessin que le programme sera amené à automatiser. Vous vous rendrez ainsi mieux compte de la programmation à faire et des données à fournir. Vous saurez également si votre forme fonctionne comme prévu.

Enfin, n’oubliez pas que le gabarit qui contient les formes de base constitue l’élément principal de l’interface utilisateur de la solution :

• Veillez à ce que les formes de base soient faciles à trouver dans le gabarit.

• Répartissez éventuellement les formes de base connexes dans plusieurs gabarits, surtout si vous les utilisez dans plusieurs solutions.

Pour plus d’informations sur la création de formes de base et de gabarits, reportez-vous au chapitre 3, « Formes de base, gabarits, modèles et documents Visio ». Pour plus d’informations sur la diffusion de gabarits dans une solution Visio, reportez-vous au chapitre 13, « Diffusion de gabarits et de modèles ».

Page 42: MS Visio 2003 Guide du Développeur

28 C H A P I T R E 1

Planification de modèles de dessin Un modèle de dessin fournit aux utilisateurs un espace de travail commun. Il facilite la normalisation en permettant à l’utilisateur de créer facilement des dessins normalisés à l’aide de jeux de formes prédéfinies.

Un modèle de dessin peut comporter des styles, et configurer les pages de dessin à l’aide d’une grille et d’un système de mesure uniformes. Un modèle peut créer des pages de dessin comportant des formes, ou ouvrir un ou plusieurs gabarits pour que l’utilisateur puisse ajouter d’autres formes. Un modèle peut également fournir des dessins comportant leur propre interface utilisateur en incluant des contrôles Microsoft® ActiveX®, tels que des boutons de commande et des zones de texte, des contrôles personnalisés chargés d’effectuer des tâches particulières et un code VBA permettant à un utilisateur d’intervenir dans le dessin via les contrôles. L’ajout de modèles à une solution Visio présente les avantages suivants :

• Si la solution est conçue pour créer des dessins Visio, vous pouvez gagner du temps au développement et à l’utilisation en stockant le programme sous forme de macros VBA dans un modèle Visio, ou en joignant au programme Visual Basic ou C/C++ un modèle sous forme de fichier autonome.

• Lorsqu’un modèle sert à créer un document, les styles, les propriétés de document, les macros VBA, les modules et les formulaires utilisateur du modèle sont copiés dans le nouveau document. Il n’est pas nécessaire de définir les propriétés de document ou les styles à l’aide d’Automation, à moins que vous ne souhaitiez qu’ils diffèrent de ceux du modèle. Il n’est pas non plus utile de diffuser un programme VBA séparément, à moins que le code ne soit complexe ou que vous ne soyez amené à le mettre à jour ultérieurement.

• Si la solution permet de personnaliser l’interface utilisateur de Visio, apportez les modifications nécessaires dans le document du modèle plutôt que dans l’application Visio elle-même. Ainsi, l’interface utilisateur de la solution n’apparaît que lorsque l’utilisateur s’en sert, et non lorsqu’il a recours à l’application Visio pour d’autres tâches.

• L’utilisation d’un modèle permet d’éviter les problèmes de conversion lorsqu’un programme fait référence à des styles et qu’il est utilisé dans plusieurs langages.

REMARQUE : le fait de fournir un code VBA dans un modèle simplifie les fichiers à diffuser avec une solution. En revanche, la tâche de débogage ou d’amélioration du code est compliquée car chaque document créé à partir du modèle reçoit une copie du code. Pour plus de flexibilité, vous pouvez être amené à placer le code VBA dans un gabarit ou dans un autre document joint à la solution. Ainsi, les mises à jour peuvent être diffusées plus facilement. Pour plus d’informations sur la création de modèles, reportez-vous au chapitre 3, « Formes de base, gabarits, modèles et documents Visio ». Pour plus d’informations sur la diffusion de modèles dans une solution Visio, reportez-vous au chapitre 13, « Diffusion de gabarits et de modèles ».

Page 43: MS Visio 2003 Guide du Développeur

P R E S E N T A T I O N D U M A N U E L D E V E L O P I N G V I S I O S O L U T I O N S 29

Utilisation d’Automation dans les formes et les modèlesUne fois que vous avez développé les formes de base et les éventuels modèles de la solution, vous pouvez utiliser Automation pour mettre en oeuvre le reste de la solution. Les opérations que cela implique dépendent de la fonction de la solution et de son contexte d’exécution. En règle générale, Automation permet d’effectuer les opérations suivantes :

• Mettre en oeuvre l’interface utilisateur de la solution.

Dans la plupart des programmes autonomes, une boîte de dialogue ou un écran d’Assistant informe l’utilisateur de la procédure à suivre et lui demande de saisir les informations nécessaires à l’exécution.

• Stocker et récupérer les données.

Les formes peuvent posséder des propriétés personnalisées. Elles peuvent éventuellement être configurées pour inviter l’utilisateur à saisir des données ou à définir des propriétés de forme lorsque, par exemple, une forme de base est insérée dans une page de dessin. Toutefois, afin d’éviter toute modification fortuite des types de données et des données, la solution peut stocker les données dans une base de données externe et les récupérer lorsque cela s’avère nécessaire.

• Positionner les formes, les connecter ou définir leurs propriétés.

Si la solution crée un dessin, elle doit pouvoir déterminer les formes de base nécessaires et l’emplacement où celles-ci doivent être insérées. Elle définit également le texte des formes, applique les styles et relie les formes. Si la solution est conçue pour lire des dessins ou pour utiliser des formes existantes, elle doit rechercher les formes, vérifier qu’elles sont adaptées au programme, et définir leurs propriétés et leurs formules.

N’oubliez pas qu’une forme peut posséder des formules qui la redimensionnent ou la réorientent lorsque le programme change son emplacement ou sa taille. Cela vous évite d’avoir à modifier la forme vous-même avec la souris dans la fenêtre de dessin de Visio. Si vous êtes amené à écrire du code complexe qui modifie les formes, demandez-vous d’abord si ce traitement ne pourrait pas être effectué par une formule.

Pour plus d’informations sur la diffusion d’une solution Visio utilisant Automation, reportez-vous au chapitre 25, « Distribution d’une solution Visio Automation »�

Intégration d’une solution Visio et d’une base de donnéesL’intégration d’une solution Visio et d’une base de données doit être planifiée afin que les dessins puissent être synchronisés avec la base de données. Le choix de la base de données est essentiel. Vous devez ensuite déterminer les modifications à apporter, ainsi que le mode et le moment de leur application.

Page 44: MS Visio 2003 Guide du Développeur

30 C H A P I T R E 1

Par exemple, dans la solution de système de sécurité décrite plus haut dans ce chapitre, chaque composant (caméra, capteur, unité de contrôle, etc.) correspond à une pièce référencée dans le catalogue du fabricant. Stockez cette référence dans les propriétés personnalisées de chaque forme de base afin de faciliter la recherche d’informations dans le catalogue stocké sous forme de base de données.

Une fois que les relations unissant la solution à la base de données sont définies, la solution peut apporter des modifications de l’une des manières suivantes :

• En gérant les événements Visio qui indiquent le moment où la base de données doit être mise à jour ou synchronisée avec le dessin.

• En créant un programme externe qui interroge le dessin Visio pour en extraire les données lorsque cela est nécessaire (par exemple, sur demande de l’utilisateur).

• En stockant toutes les données d’une solution dans une base de données externe et en utilisant les données associées aux formes Visio, telles qu’une propriété personnalisée, afin d’accéder aux enregistrements de la base de données externe.

L’Assistant Base de données fourni avec Visio peut définir des cellules personnalisées et lier ces cellules aux champs de base de données pour les solutions simples ou pour la mise au point des solutions plus complexes. Vous pouvez utiliser le moteur Jet ou la bibliothèque DAO (data access objects - objets d’accès aux données) fournie par Microsoft pour accéder aux bases de données via ODBC (Open Database Connectivity). Votre solution Visio peut également appeler un serveur Automation qui met à jour et synchronise la base de données, et permet de mieux contrôler son intégrité.

Pour plus d’informations sur les solutions et les bases de données Visio, reportez-vous au chapitre 20, « Intégration de données et d’une solution Visio ».

Choix concernant la mise en oeuvre d’AutomationLe type de programme à créer dépend de ce que vous souhaitez faire. Vous pouvez écrire une macro VBA dans un document Visio ou une autre application de contrôleur Automation, ou dans un programme autonome en Visual Basicou C/C++. Vous pouvez créer un type spécifique de DLL (dynamic-link library) fonctionnant avec l’application Visio, appelée bibliothèque Visio (VSL). Les utilisateurs peuvent exécuter ce programme depuis le bureau Windows ou l’Explorateur Windows, ou directement depuis l’application Visio, en choisissant une commande ajoutée à un menu Visio, en cliquant sur un bouton ajouté à la barre d’outils, ou même en double-cliquant ou en cliquant avec le bouton droit sur une forme du dessin. Vous pouvez également concevoir le programme pour qu’il soit exécuté automatiquement lors d’un événement particulier, par exemple à l’ouverture ou à la création d’un fichier.

Page 45: MS Visio 2003 Guide du Développeur

P R E S E N T A T I O N D U M A N U E L D E V E L O P I N G V I S I O S O L U T I O N S 31

Il existe quatre principales méthodes pour intégrer Automation dans une solution Visio. Vous pouvez intégrer les éléments suivants :

• Un exécutable autonome, ou fichier EXE, généralement écrit en langage Visual Basic ou C++, mais qui peut également utiliser n’importe quel langage prenant en charge la création d’un contrôleur Automation ActiveX.

Un fichier EXE est facile à créer. Il peut être écrit dans de nombreux langages et est garant de fiabilité. Toutefois, un fichier EXE doit être exécuté dans un autre processus de l’occurrence de Visio qu’il contrôle et doit être chargé à chaque exécution, ce qui peut avoir une incidence sur les performances.

• Une bibliothèque Visio (VSL). Il s’agit d’une DLL Windows standard munie d’un point d’entrée Visio obligatoire et d’une extension de nom de fichier .vsl.

Une VSL est beaucoup plus rapide qu’un fichier EXE car elle est exécutée dans le même processus qu’une occurrence de Visio. En outre, elle n’est chargée qu’une fois, puis est exécutée depuis la mémoire. Vous pouvez également déterminer, dans le contexte, les cas dans lesquels la VSL est visible. Toutefois, une VSL n’est pas aussi fiable qu’un fichier EXE. En cas de blocage, l’occurrence de Visio se bloque également. La VSL doit être écrite en langage C++. Elle n’est plus rapide qu’un fichier EXE que si son temps de traitement concerne principalement le contrôle de l’occurrence de Visio ; si la VSL consacre plus de la moitié de son temps au contrôle d’une autre application, il peut être judicieux de choisir un programme exécuté dans le processus de cette autre application.

• Macro(s) VBA. VBA est fourni avec les produits Visio et permet d’écrire des macros, et de créer des boîtes de dialogue ou des modules de classe. D’autres contrôleurs VBA, tels que Microsoft® Word et Microsoft® Excel, permettent également de contrôler l’application Visio.

Tout comme les VSL, les macros VBA sont exécutées dans le même processus que l’occurrence de Visio. Leur écriture étant plus simple, les programmeurs les mettent au point plus rapidement. Les macros VBA sont faciles à diffuser, ce qui peut constituer un avantage mais aussi un inconvénient. Chaque dessin contient une copie du code VBA : les tâches de débogage et d’ajout de fonctions sont donc plus difficiles à réaliser.

• Une approche mixte consiste à utiliser VBA dans une occurrence de Visio afin de charger et d’exécuter des serveurs Automation (fichiers DLL ou EXE) créés dans d’autres langages.

Cette approche prend en charge l’exécution en cours de processus si le serveur Automation est créé en tant que DLL et prend en charge toute une gamme d’architectures. Toutefois, cette approche mixte implique une conception plus soignée du système.

Page 46: MS Visio 2003 Guide du Développeur

32 C H A P I T R E 1

Pour plus d’informations sur la programmation de l’application Visio avec VBA, reportez-vous aux chapitres 14 à 25 de ce guide. Pour plus d’informations sur l’utilisation de Visual Basic avec l’application Visio, reportez-vous au chapitre 26, « Programmation de Visio avec Microsoft Visual Basic »�Pour plus d’informations sur la programmation de Visio avec C++ et l’écriture de VSL, reportez-vous au chapitre 27, « Programmation de Visio avec C++ ».

Page 47: MS Visio 2003 Guide du Développeur

Sommaire

2

Création de formes Visio

Les meilleures solutions Microsoft® Visio® commencent souvent sur la page de dessin, dans laquelle vous concevez des formes. Vous pouvez définir en grande partie le comportement personnalisé nécessaire à une solution grâce à la programmation ; cependant, vous obtenez plus rapidement de meilleurs résultats si vous utilisez la fonctionnalité intégrée des formes Visio. Si vous concevez des formes intelligentes, vous pouvez établir une solution plus souple nécessitant à long terme un codage et une maintenance moins importants.

Considérez les formes commme des composants que l’utilisateur peut employer pour élaborer un diagramme sans effort supplémentaire ou presque de sa part. Chacune des formes doit, si possible, représenter un objet du monde réel ; la principale tâche de l’utilisateur consiste à choisir la forme à partir du gabarit et, pour qu’il puisse effectuer un choix correct, cette forme doit représenter quelque chose de familier. Prévoyez autant de fonctions que possible pour la forme (dans la mesure du raisonnable). Une forme qui a plusieurs fonctions peut être plus trompeuse et plus difficile à utiliser que plusieurs formes ayant chacune une fonction définie. Par ailleurs, les formes simplifiées fonctionnent mieux dans le produit Visio.

Ce chapitre présente les différents moyens d’acquisition de formes pour vos solutions. Vous avez la possibilité de les dessiner vous-même, mais vous pouvez également importer des graphiques issus d’autres programmes, convertir des métafichiers en formes, analyser les images à utiliser comme formes et adapter les formes existantes à vos besoins. Les chapitres suivants décrivent plus en détail le contrôle des formes par le biais des formules et d’autres techniques.

Anatomie des formes Visio ..................................................................................... 34

Conception de formes.............................................................................................. 39

Importation de formes issues d’autres programmes............................................ 44

Ajustement de formes Visio existantes.................................................................. 47

Page 48: MS Visio 2003 Guide du Développeur

34 C H A P I T R E 2

Anatomie des formes Visio

L’anatomie des formes désigne de manière approximative la géométrie et l’interface utilisateur grâce auxquelles une forme apparaît et se comporte d’une certaine manière sur une page de dessin. Le terme de forme peut faire référence à une ligne, un arc ou une spline, à une série de segments, à plusieurs formes regroupées ou à un objet issu d’une autre application. Vous devez savoir si la géométrie de ces formes diffère légèrement ou de manière importante car ces différences peuvent intervenir sur la façon dont les utilisateurs travaillent sur les formes. Les quatre éléments essentiels à connaître sur l’anatomie des formes sont les suivants :

• Le type de forme (fermée ou ouverte) car il intervient en premier chef sur son mode de remplissage.

• Le nombre de dimensions (1D ou 2D) car cette indication a un impact de première importance sur l’aspect et le comportement de cette forme.

• Le type des poignées, qui sont des éléments de l’interface utilisateur liés à la géométrie des formes et qui montrent à l’utilisateur comment agir sur une forme.

• La constitution de la forme en tant que groupe car cette information détermine, entre autres, la procédure de modification que doivent suivre les utilisateurs du groupe et des formes qu’il contient.

Lorsque vous créez des formes pour une solution, vous devez définir leur anatomie pour fournir aux utilisateurs les indications visuelles dont ils ont besoin pour interagir avec ces formes. Par exemple, vous pouvez verrouiller le redimensionnement des formes pour les portes, les fenêtres et les bureaux (tous les éléments de taille standard) afin que les utilisateurs ne les étirent pas malencontreusement lorsqu’ils travaillent dessus.

Une seule ligne est une forme, toutcomme la forme de base Visio

représentant la table et les chaisesqui regroupe plusieurs formes

simples.

Cette section définit les éléments des formes qui constituent le point de départ de la conception de vos propres formes et de la modification des formes existantes.

Page 49: MS Visio 2003 Guide du Développeur

C R É A T I O N D E F O R M E S V I S I O 35

Formes ouvertes et ferméesUne forme peut être constituée de plusieurs segments de trait, d’arc ou de spline appelés chemins, chacun de ces chemins pouvant être ouvert ou fermé. Seul un chemin fermé peut être rempli avec une couleur ou un motif, et seul un chemin ouvert peut être formaté avec des extrémités de trait.

Le rectangle représente quatresegments de trait dans un chemin

fermé contenant un motif. Les traitsreprésentent des chemins ouverts

auxquels ont été appliquées desextrémités de trait.

Les formes peuvent également avoir plusieurs chemins. En conséquence, vous pouvez concevoir une forme à plusieurs chemins, les uns ouverts et les autres fermés, pour créer un découpage de zones. Prenons en guise d’exemple un anneau, dont vous ne pouvez pas remplir l’orifice avec une couleur ou un motif. Vous pouvez également créer une forme, comme le symbole de recyclage ci-dessous, qui se compose de plusieurs chemins.

Le symbole de recyclage estconstitué de quatre chemins : A, B,

C et D. Seul le quatrième chemin, D,est fermé, comme l’indique la

manière dont la couleur remplit lesformes. Vous pouvez créer des

formes similaires en combinant lagéométrie (Forme > Opérations >

Combinaison).

Si vous avez déjà essayé sans succès d’appliquer un motif de remplissage à une forme, vous avez sans doute été confronté à une autre conséquence de la géométrie des chemins : le premier et le dernier sommets d’un chemin ouvert peuvent être un même point. Si tel est le cas, la forme semble fermée, mais vous ne pouvez pas lui appliquer un motif de remplissage ou une couleur. Cependant, vous pouvez fermer ce chemin en insérant le dernier sommet sur le premier à l’aide de l’outil Crayon. Pour plus d’informations, reportez-vous à la section « Utilisation des outils de dessin lors de la création de formes », page 39.

Pour plus d’informations sur la création de formes à plusieurs chemins, reportez-vous à la section « Création et contrôle des groupes », page 115.

B

C

A

D

Page 50: MS Visio 2003 Guide du Développeur

36 C H A P I T R E 2

Formes 1D ou 2DUne forme peut être en une dimension (1D) ou en deux dimensions (2D).

Une forme 1D se comporte comme un trait et affiche des points de fin ; pour redimensionner la forme, sélectionnez-la avec l’outil Pointeur, puis déplacez ces points de fin. Vous pouvez coller les points de fin des formes 1D sur les côtés des formes 2D pour créer des traits de connexion qui restent fixes lorsque les formes sont déplacées.

Une forme 1D comporte deux pointsde fin. Certaines formes 1D

comportent également d’autrespoignées, comme la poignée de

contrôle de cet arc.

Une forme 2D possède les mêmes propriétés qu’un rectangle et affiche des poignées de sélection ; pour redimensionner la forme, sélectionnez-la à l’aide de l’outil Pointeur et faites glisser ces poignées.

Une forme 2D comporte plus dedeux poignées et peut être fermée

(comme l’ellipse) ou ouverte(comme le zigzag).

Vous pouvez transformer les formes 1D en formes 2D et vice-versa. Pour plus d’informations, reportez-vous à la section « Conversion des formes 1D et 2D », page 159. Pour plus d’informations sur les procédures de contrôle de la géométrie des formes 2D, reportez-vous au chapitre 5, « Contrôle de la géométrie des formes à l’aide de formules ».

Poignées des formesLes formes peuvent être dotées de différentes poignées, qui vous permettent de modifier leur aspect. Une poignée est un contrôle qui apparaît sur une forme sélectionnée. Les poignées diffèrent en fonction du type de forme et de l’outil utilisé pour la sélectionner. Par exemple, si vous sélectionnez une forme à l’aide de l’outil Rotation, vous affichez les poignées de rotation et pouvez faire pivoter la forme. Le tableau suivant illustre les poignées les plus courantes qui vous permettent de modifier les formes.

Page 51: MS Visio 2003 Guide du Développeur

C R É A T I O N D E F O R M E S V I S I O 37

Poignées des formes - Présentation

Nom des poignées Aspect Comportement

Poignées de sélection

Elles apparaissent lorsque vous sélectionnez une forme 2D à l’aide de l’outil Pointeur ( �. Utilisez les poignées de sélection d’angle pour redimensionner proportionnellement les formes. Utilisez les poignées de sélection latérales pour redimensionner les côtés de la forme.

Points de fin Ils apparaissent lorsque vous sélectionnez une forme 1D à l’aide de l’outil Pointeur ( �� La direction de la forme est représentée, pour des raisons de routage, par un point de début (A) et un point de fin (B). Certaines formes 1D comportent également des poignées de sélection (C). (Pour plus d’informations, reportez-vous à la section « Présentation des formes 1D et 2D », page 158 du présent chapitre.)

Poignées de rotation

Ces poignées d’angle arrondies (A) apparaissent lorsque vous sélectionnez une forme à l’aide de l’outil Rotation ( ). L’axe (B) indique le centre de la rotation. Pour faire pivoter une forme, utilisez une poignée d’angle. Pour modifier le centre de rotation, faites glisser l’axe de rotation vers un nouvel emplacement.

Sommets Ces poignées en forme de losange (A) apparaissent lorsque vous sélectionnez une forme à l’aide de l’outil Crayon ( ), Trait ( ), Arc ( ) ou Dessin à main levée ( ). Pour modifier la forme, faites glisser l’un de ses sommets à l’aide de l’outil utilisé lors de sa création. Le sommet apparaît en magenta pour indiquer qu’il est sélectionné. Pour ajouter ou supprimer des segments, ajoutez ou supprimez des sommets à l’aide de l’un des outils décrits ci-dessus.

Points de contrôle

Ces points apparaissent sur les courbes, les arcs et les traits dessinés à main levée que vous sélectionnez à l’aide de l’outil Crayon. Utilisez les points de contrôle (A) pour modifier la courbure ou la symétrie d’un segment.

Poignées d’excentricité

Elles permettent d’ajuster l’angle et l’ampleur de l’excentricité d’un arc d’ellipse. Pour afficher les poignées d’excentricité (A), choisissez un arc. Sélectionnez ensuite l’outil Crayon et cliquez sur le point de contrôle au centre.

A B

C

A

B

A

A

A

A

Page 52: MS Visio 2003 Guide du Développeur

38 C H A P I T R E 2

Vous pouvez ajouter certaines poignées aux formes pour fournir des fonctionnalités supplémentaires et programmer d’autres comportements pour certaines poignées, comme l’indique le tableau suivant.

Formes en groupesBeaucoup de formes de base Visio sont des groupes. A première vue, un groupe ne semble pas forcément très différent d’une autre forme. Cependant, les groupes ont des comportements uniques que vous devez connaître pour pouvoir en créer et anticiper la manière dont les utilisateurs interagissent avec ces groupes. L’un des avantages-clés du groupement est que vous pouvez considérer un groupe en tant qu’objet unique, tout en formatant séparément les formes qui le composent.

Vous pouvez regrouper toute combinaison de formes. Les groupes peuvent également inclure des repères, d’autres groupes et des objets issus d’autres programmes.

Certaines formes Visio sont desgroupes (c’est-à-dire des

ensembles de formes regroupéespour constituer des formes

uniques).

Pour déterminer si un objet est un groupe :

• Sélectionnez un objet, puis choisissez Format > Spécial. Si l’objet est un groupe, la boîte de dialogue indique « Type : Grouper » en dessous du nom de la forme de base.

Pour plus d’informations sur la gestion des groupes Visio existants, reportez-vous à la section « Modification des groupes », page 48��Pour plus d’informations sur les formules de groupe, reportez-vous à la section « Création et contrôle des groupes », page 115.

Informations sur... Section à consulter

Comportement de connexion et points de connexion

« Présentation des formes 1D et 2D », page 158.

Contrôle de la rotation par le biais des formules

« Contrôle du retournement et de la rotation des formes », page 98.

Formules utilisées pour programmer les poignées de contrôle

« Flexibilité des formes grâce aux poignées de contrôle », page 132.

Poignées de verrouillage et méthodes de protection des formes

« Limitation du comportement d’une forme à l’aide de verrouillages », page 111.

Page 53: MS Visio 2003 Guide du Développeur

C R É A T I O N D E F O R M E S V I S I O 39

Conception de formes

Pour représenter des objets personnalisés propres à votre activité ou appliquer vos propres droits d’auteur, vous devez élaborer des formes de toutes pièces. Vous pouvez bien sûr dessiner ces formes trait par trait ; cependant, pour gagner du temps, vous pouvez utiliser les techniques développées par les concepteurs de formes de Visio.

L’une des méthodes pour créer des formes personnalisées consiste à utiliser les outils de dessin Visio. En outre, Visio inclut des commandes et outils exceptionnels qui simplifient le processus de création de formes géométriques plus complexes. Par exemple, les commandes Union et Combinaison permettent de créer une forme à partir de plusieurs autres formes, et la commande Fragmentation permet de diviser les formes en plusieurs petites parties que vous pouvez réorganiser, modifier ou supprimer.

Cette section répertorie les outils de dessin et les techniques de développement de formes de base Visio.

Utilisation des outils de dessin lors de la création de formesPour commencer un dessin, utilisez les outils de dessin Visio dans la barre d’outils Standard. Ces outils ressemblent aux autres outils que vous connaissez, mais ils comportent de nouvelles fonctionnalités. L’outil Crayon est particulièrement puissant car il vous permet de dessiner aussi bien des traits que des arcs. Dès que vous déplacez la souris, le moteur Visio calcule rapidement le chemin suivi par le pointeur. Si ce chemin est droit, l’outil Crayon dessine un segment de trait droit. S’il est courbé, il dessine un arc. Au fur et à mesure de votre dessin, vous pouvez observer la manière dont le moteur Visio interprète les mouvements de l’outil.

Pour dessiner une forme, utilisez unou plusieurs des outils de dessin de

la barre d’outils Standard.

CONSEIL : que vous utilisiez l’outil Crayon, Trait ou Arc pour créer un trait ou un arc, le résultat est le même. Pour modifier des formes dessinées à l’aide de l’un de ces outils, sélectionnez un point de fin, un point de contrôle ou un sommet, puis faites-le glisser.

Page 54: MS Visio 2003 Guide du Développeur

40 C H A P I T R E 2

Outils de dessin - Présentation

Forme à dessiner Outil Description

L’outil Crayon permet de dessiner aussi bien des traits que des arcs. Si vous déplacez le crayon en ligne droite, il dessine un trait. Si vous décrivez une courbe, il dessine un arc. Chaque arc est une partie d’un cercle ; sa taille est fonction de la distance sur laquelle vous déplacez la souris.

L’outil Trait est le meilleur outil pour dessiner des formes qui se composent uniquement de lignes droites. Pour limiter un trait à un angle de 45 degrés, appuyez sur la touche Maj, puis faites glisser ce trait tout en maintenant cette touche enfoncée.

L’outil Arc permet de dessiner des arcs, qui représentent toujours le quart d’une ellipse. La direction dans laquelle vous déplacez la souris détermine le sens de la courbure. Pour dessiner un quart de cercle, appuyez sur la touche Maj, puis faites glisser l’arc tout en maintenant cette touche enfoncée.

L’outil Dessin à main levée fonctionne comme un crayon sur du papier. Sélectionnez-le et faites-le glisser pour dessiner des splines et des courbes à main levée. Pour obtenir des courbes moins marquées, désactivez l’option de magnétisme avant de dessiner. (Sélectionnez Outils > Magnétisme et collage, puis désactivez Magnétisme. Pour afficher les autres options pour les splines, choisissez Outils > Options, puis cliquez sur l’onglet Dessin.)

L’outil Rectangle permet de dessiner des rectangles et des carrés. Pour dessiner un carré, appuyez sur la touche Maj, puis faites glisser le pointeur tout en maintenant cette touche enfoncée.

L’outil Ellipse permet de dessiner des ellipses et des cercles. Pour dessiner un cercle, appuyez sur la touche Maj, puis faites glisser le pointeur tout en maintenant cette touche enfoncée.

Page 55: MS Visio 2003 Guide du Développeur

C R É A T I O N D E F O R M E S V I S I O 41

Création de formes ferméesAvant d’être remplie avec une couleur ou un motif, une forme doit être fermée.

Pour fermer une forme :

• Déplacez le point de fin du dernier segment créé sur le sommet au début du premier segment, puis relâchez le bouton de la souris.

Il est sans doute plus simple de relier le sommet de fermeture si l’option de magnétisme est activée ( Outils > Magnétisme et collage, puis activez Magnétisme).

Pour plus d’nformations sur l’utilisation des formules pour la fermeture des formes, reportez-vous à la section « Masquage de la géométrie d’une forme », page 129.

Création de formes avec des éléments récurrentsSi vous avez besoin d’une même série de traits ou de formes avec un espacement identique, vous pouvez utiliser la technique suivante.

Pour reproduire rapidement des éléments de forme :

1 Sélectionnez une forme puis, tout en maintenant la touche Ctrl enfoncée, faites glisser le curseur pour créer la première copie et la placer à l’emplacement voulu.

2 Appuyez sur la touche F4 pour créer de nouvelles copies de la forme avec la même valeur de décalage.

Cette technique fonctionne également pour un groupe de formes sélectionnées.

Création de groupesLorsque vous devez créer des formes possédant une géométrie complexe ou incluant plusieurs styles et formats, vous pouvez créer un groupe. Un groupe combine plusieurs formes ou autres groupes en une nouvelle forme Visio dont les composants peuvent néanmoins être modifiés et formatés séparément. Créez un groupe si vous souhaitez déplacer et dimensionner simultanément plusieurs formes, tout en conservant les attributs de formatage de chacune d’entre elles.

Pour créer un groupe :

1 Sélectionnez les formes à regrouper.

2 Choisissez Forme > Groupes > Grouper.

REMARQUE : si vous voulez créer une forme de base constituée de plusieurs formes, il est recommandé de regrouper les formes au préalable. Si vous ne créez pas de groupe, le moteur Visio regroupe les formes lorsqu’un utilisateur insère la forme de base dans un dessin. Cette étape supplémentaire peut augmenter le temps nécessaire à la création d’une occurrence de la forme de base.

Pour plus d’informations sur le comportement des groupes et les formules, reportez-vous au chapitre 6, « Regroupement et fusion de formes ».

Page 56: MS Visio 2003 Guide du Développeur

42 C H A P I T R E 2

Création de formes par fusionVous pouvez appliquer la technique de création de formes simples, puis utiliser l’une des commandes d’opération sur les formes pour fusionner ces formes en une forme unique. A l’aide des commandes Forme > Opérations, vous pouvez créer des formes comportant un découpage de zones ou des régions que vous pouvez formater et remplir. En général, il est également beaucoup plus efficace d’utiliser des formes entières comme point de départ plutôt que d’essayer d’esquisser une forme avec plusieurs traits et arcs.

Le tableau suivant décrit les commandes d’opération sur les formes et donne des exemples de leurs résultats. Pour plus d’informations sur ces opérations, et connaître les différences entre la fusion et le regroupement, reportez-vous à la section « Différences entre formes regroupées et formes fusionnées », page 114.

Utilisation de différentes opérations sur les formes - Résultats

Commande Résultat Exemple

Fragmentation Permet de diviser une forme en fragments plus petits, ou de créer des formes à partir des lignes d’intersection ou des formes 2D superposées.

Combinaison Permet de créer une forme à partir de celles sélectionnées. Si les formes sélectionnées sont superposées, la zone de superposition est découpée (supprimée), ce qui produit un effet d’emporte-pièce.

Union Permet de créer une forme à partir du périmètre de deux ou plusieurs formes superposées.

Soustraction Permet de créer une forme en ôtant la zone de superposition des sélections de la sélection principale.

Page 57: MS Visio 2003 Guide du Développeur

C R É A T I O N D E F O R M E S V I S I O 43

Intersection Permet de créer une forme à partir de la zone de superposition des formes sélectionnées, en éliminant les zones de non-superposition.

Jonction Permet de créer une forme à partir de segments 1D reliés à leur extrémité. Cette commande permet d’assembler chacun de ces segments en un ou plusieurs chemins continus, le nombre de chemins dépendant de la configuration des formes sélectionnées.

Coupure Permet de fractionner les objets sélectionnés à leur intersection. Cette commande permet de créer une forme pour chacune des pièces. Si, lorsque vous les fractionnez, les formes deviennent ouvertes, elles perdent leur remplissage.

Décaler Permet de créer un ensemble de lignes parallèles ou de courbes à droite et à gauche de la forme d’origine.

Utilisation de différentes opérations sur les formes - Résultats (suite)

Commande Résultat Exemple

Page 58: MS Visio 2003 Guide du Développeur

44 C H A P I T R E 2

Importation de formes issues d’autres programmes

Si vous souhaitez simplement créer une forme à partir des fichiers graphiques, images clipart ou croquis sur papier existants, collez une image compatible, importez un fichier, ou analysez une image et importez le fichier analysé. Lorsque vous importez une image, vous créez un objet graphique Visio. Lorsque vous liez ou incorporez une image, vous créez un objet OLE (Object Linking and Embedding - Liaison et incorporation d’objets). Sur la page de dessin, les objets graphiques et OLE fonctionnent dans l’ensemble de la même manière que les autres formes Visio, et vous pouvez les utiliser pour créer des formes de base.

De nombreux fichiers importés dans les dessins Visio en tant qu’objets graphiques ou OLE sont stockés sous la forme de métafichiers Windows®, qui est le format d’échange utilisé pour stocker des graphiques vectoriels. Les graphiques tramés issus des fichiers BMP et DIB sont stockés sous la forme de bitmaps. Vous pouvez modifier les métafichiers et les bitmaps sur la page de dessin Visio pratiquement de la même manière que les autres formes. Pour ce faire, déplacez, faites pivoter, redimensionnez ou ajoutez du texte, des formes géométriques ou des propriétés personnalisées. En outre, vous pouvez créer une forme de base à partir d’un métafichier ou d’un bitmap. Cependant, seuls les métafichiers (pas les bitmaps) peuvent être convertis en formes Visio, pour fournir des fonctions de modification supplémentaires.

Importation d’images graphiquesLa méthode la plus simple pour ajouter des images graphiques à un dessin Visio est de les insérer ou de les importer. Cette opération permet d’obtenir un objet graphique au format métafichier ou bitmap, en fonction du format de l’image d’origine.

Pour importer une image graphique :

• Sélectionnez Insertion > Image.

L’image est importée en tant que nouvel objet graphique au format métafichier (si le graphique d’origine était un graphique vectoriel) ou au format bitmap (si le graphique d’origine était stocké dans un fichier BMP ou DIB).

Vous pouvez également ouvrir les fichiers graphiques directement en utilisant la commande Fichier > Ouvrir et en choisissant le format approprié dans la liste déroulante Type de fichier.

Pour la plupart des fichiers que vous importez, une boîte de dialogue de paramètres d’importation apparaît ; vous pouvez y indiquer la manière dont le fichier importé doit apparaître dans un dessin. Par exemple, si vous importez un fichier au format PCT, vous pouvez préciser si les dégradés et l’arrière-plan doivent être conservés, et la manière dont les couleurs doivent se traduire.

Page 59: MS Visio 2003 Guide du Développeur

C R É A T I O N D E F O R M E S V I S I O 45

Pour déterminer si un objet graphique importé est un métafichier ou un bitmap :

• Sélectionnez l’objet, puis choisissez Format > Spécial. La boîte de dialogue indique « Type : Métafichier » ou « Type : Bitmap ».

REMARQUE : un métafichier peut être composé, entre autres ou uniquement, d’un bitmap. Par exemple, si vous importez un fichier au format JPG, GIF ou TIF dans un dessin Visio, vous créez un métafichier contenant un bitmap.

Comme les données peuvent subir jusqu’à deux conversions avant d’apparaître dans le dessin Visio (une lorsque vous les exportez du programme d’origine et une autre lorsque vous les importez dans le dessin Visio), l’image peut être légèrement différente de celle du programme d’origine.

Les traits de certains graphiques vectoriels, tels que ceux inclus dans les fichiers Adobe Illustrator (.ai), CorelDRAW! (.cdr), Encapsulated PostScript (.eps) et Micrografx Designer (.drw) peuvent apparaître irréguliers dans le dessin Visio. Vous pouvez obtenir de meilleurs résultats avec ces formats de fichier si vous les convertissez en formes Visio. Pour plus d’informations, reportez-vous à la section « Conversion de métafichiers importés en formes », page 46.

CONSEIL : vous pouvez importer des fichiers dans plus de 20 formats. Pour obtenir la liste complète des formats, sélectionnez Fichier > Ouvrir ou Insertion > Image, puis déroulez la liste Type de fichier.

Modification de métafichiers et de bitmaps importésVous pouvez travailler avec des métafichiers et bitmaps importés, ainsi qu’avec des objets OLE, pratiquement de la même manière qu’avec des formes Visio. Vous pouvez notamment ajouter du texte en le saisissant, ou utiliser les outils de dessin pour faire pivoter et redimensionner les objets. Vous pouvez appliquer un style de trait pour modifier l’aspect du contour d’un objet. Si cet objet contient des espaces vides, par exemple un arrière-plan, vous pouvez également leur appliquer un style, une couleur ou un motif de remplissage.

Vous pouvez définir des propriétés supplémentaires pour les bitmaps via la fenêtre ShapeSheet® pour contrôler la luminosité, le contraste et d’autres attributs. Pour accéder à ces propriétés, sélectionnez un bitmap importé, choisissez Fenêtre > Afficher la feuille ShapeSheet, puis recherchez la section Propriétés d'image. Pour plus d’informations sur chacune des cellules, sélectionnez une cellule, puis appuyez sur la touche F1.

Page 60: MS Visio 2003 Guide du Développeur

46 C H A P I T R E 2

Conversion de métafichiers importés en formesVous pouvez convertir un objet graphique au format métafichier en une forme ou en un groupe de formes Visio que vous pouvez formater. Convertissez un métafichier lorsque vous voulez modifier les objets qui le composent (des formes par exemple), appliquer une couleur et des motifs de remplissage, ou créer des dépendances entre les formes à l’aide de formules. En principe, vous convertissez un métafichier en groupe pour pouvoir le déplacer en tant qu’unité ; cependant, si vous souhaitez effectuer une autre opération, convertissez-le directement en formes.

REMARQUE : si un métafichier a pour composant un bitmap, vous ne pouvez pas le convertir. Les bitmaps ne peuvent pas être convertis en formes géométriques Visio car le moteur Visio ne peut pas différencier, dans un bitmap, les traits, le texte et les autres éléments.

Pour convertir un métafichier en groupe Visio :

• Sélectionnez un métafichier, puis choisissez Forme > Groupes > Convertir en groupe.

Pour convertir un métafichier en formes Visio :

• Sélectionnez un métafichier, puis choisissez Forme > Groupes > Dissocier.

Pour reconvertir une forme en métafichier :

1 Sélectionnez une forme, puis appuyez sur la séquence de touches Ctrl+C pour la copier.

2 Cliquez sur Edition > Collage spécial, puis choisissez Image (Métafichier amélioré).

Conversion de bibliothèques de symboles CAO en formesSelon le produit Visio dont vous disposez, vous pouvez convertir des bibliothèques de symboles des dessins CAO en formes de base Visio stockées dans un gabarit. Une bibliothèque de symboles est constituée de plusieurs fichiers de symbole (en général des fichiers DWG). Les produits Visio incluant la commande de conversion des bibliothèques CAO peuvent convertir chaque fichier de symbole en une seule forme de base. Lorsque vous convertissez simultanément plusieurs fichiers de symboles, toutes les formes de base sont placées sur le même gabarit.

Pour convertir une bibliothèque de symboles au format Visio :

1 Sélectionnez Fichier > Ouvrir, puis choisissez le modèle de convertisseur CAO (_dwgcnvt.vst) dans le dossier Visio\Solutions\Visio Extras.

Ce modèle est livré avec Microsoft® Visio® 2000, Technical Edition, et Microsoft® Visio® 2000, Enterprise Edition.

2 Choisissez Outils > Macros > ThisDocument > Convertir les bibliothèques CAO.

Page 61: MS Visio 2003 Guide du Développeur

C R É A T I O N D E F O R M E S V I S I O 47

3 Dans la boîte de dialogue de conversion de bibliothèque CAO, appuyez sur la touche Ctrl, puis, tout en la maintenant enfoncée, sélectionnez les fichiers DWG à convertir.

4 Cliquez sur Ouvrir.

Le bloc dans chacun des fichiers DWG sélectionnés est converti en une seule forme de base et placé sur un nouveau gabarit. Chaque forme de base porte le nom du fichier DWG correspondant.

5 Pour enregistrer le gabarit, cliquez avec le bouton droit sur sa barre de titre, puis sélectionnez Enregistrer sous. Dans la boîte de dialogue Enregistrer le fichier sous, attribuez un nom au fichier du gabarit, puis cliquez sur Enregistrer.

Ajustement de formes Visio existantes

Vous n’avez pas besoin de créer des formes de toutes pièces. En réalité, il est souvent plus simple et plus rapide de rechercher une forme Visio existante qui vous convient, puis de la modifier.

La modification des formes et groupes existants est tout un art. Cette section vous donne des conseils sur la modification des objets. Pour plus d’informations sur l’utilisation des outils mentionnés, consultez l’aide en ligne fournie avec Visio. Pour plus d’informations sur la procédure de comparaison de la représentation d’une forme sur une page de dessin avec la représentation ShapeSheet®, reportez-vous à la section « Examen d’une forme dans la fenêtre ShapeSheet », page 70.

Modification des formesPour modifier la structure géométrique de la plupart des formes, sélectionnez-les à l’aide de l’outil Crayon ( ), puis faites glisser le pointeur, ajoutez ou supprimez des sommets. Pour modifier les courbures, faites glisser un point de contrôle ou les poignées d’excentricité d’un point.

L’une des méthodes demodification d’une forme consiste àfaire glisser un sommet (A) à l’aide

de l’outil Crayon.

Pour ajouter un segment, cliquezavec l’outil Crayon (A) sur l’endroit

où vous souhaitez ajouter lesegment, tout en maintenant la

touche Ctrl enfoncée. Insérezensuite, avec ce même outil, le

nouveau sommet à l’emplacementchoisi.

A

A

Page 62: MS Visio 2003 Guide du Développeur

48 C H A P I T R E 2

Pour qu’une forme comporte moins de segments, supprimez les segments inutiles.

Pour supprimer un segment,sélectionnez un sommet à l’aide del’outil Crayon (A), puis appuyez sur

la touche Suppr. Le segment auquelest associé le sommet est alors

supprimé. La forme des autressegments est modifiée en

conséquence.La manière dont le moteur Visio redessine la forme après la suppression d’un sommet dépend de la position du sommet (au début ou à la fin d’une forme ouverte), de l’ordre de création des segments et de la nature du segment suivant le sommet à supprimer (trait ou arc). Après la suppression de segments, vous devrez peut-être ajuster la forme ; pour ce faire, faites glisser les sommets et points de contrôle en fonction des besoins.

Pour modifier la courbure d’un arcou d’une courbe dessinée à main

levée, faites glisser un point decontrôle (A) jusqu’à ce que lesegment ait l’aspect souhaité.

Modification des groupesVous pouvez examiner les groupes individuellement pour observer leur fonctionnement et savoir comment les modifier. Bien qu’un groupe soit considéré comme une forme, il n’est techniquement pas stocké de la même manière que les autres formes. Un groupe peut inclure des repères et des objets issus d’autres applications, ainsi que des formes.

Un groupe peut contenir du texte et des formes géométriques, indépendamment des formes qui le composent. Un ensemble de formules spécifique est appliqué à chacun des objets d’un groupe, et au groupe lui-même ; par conséquent, lorsque vous dissociez des formes, les formules appliquées au groupe sont perdues. Cependant, si vous dissociez un groupe contenant du texte ou des formes géométriques, le moteur Visio convertit ce texte ou ces formes en une nouvelle forme.

REMARQUE : si vous convertissez un dessin Visio 2000 contenant des groupes dans un format d’une version Visio précédente, le texte ou les formes géométriques associés aux groupes (et non les formes qu’ils contiennent) sont perdus.

Vous pouvez modifier un groupe et les formes qu’il contient directement sur la page de dessin. Cependant, pour éviter de modifier un comportement de groupe particulier, ouvrez le groupe dans la fenêtre de groupe.

A A

A

Page 63: MS Visio 2003 Guide du Développeur

C R É A T I O N D E F O R M E S V I S I O 49

Pour ouvrir un groupe dans la fenêtre de groupe :

• Sélectionnez un groupe, puis choisissez Edition > Ouvrir Grouper. (Si vous avez attribué un nom au groupe à l’aide de la commande Format > Spécial, le nom du groupe suit la commande Ouvrir ; sinon, la commande indique Ouvrir Grouper.)

Vous pouvez modifier un groupedans la fenêtre de groupe pour

pouvoir travailler sur chacune desformes qui le composent. Les

modifications effectuées danscette fenêtre sont

automatiquement répercutées dansla fenêtre de dessin.

A Ouvrez un groupe dans la fenêtre de groupe pour modifier les formes qu’il contient tout en conservant les dépendances de formules entre ces formes.

B Les formes apparaissent dans la fenêtre de groupe comme si elles étaient indépendantes, et non regroupées.

C Si vous déplacez une forme en dehors de la page dans la fenêtre de groupe, elle est placée en dehors du rectangle de sélection du groupe.

CONSEIL : une fois les modifications effectuées dans la fenêtre de groupe, vous devrez peut-être réajuster la largeur et la hauteur du groupe de telle sorte que son rectangle de sélection englobe précisément toutes les formes du groupe. Pour ce faire, sélectionnez un groupe, puis choisissez Forme > Opérations > M. à jour rect. sélection. Pour plus d’informations, reportez-vous à la section « Accrochage de formes à une grille à l’aide des rectangles de sélection », page 240.

Pour plus d’informations sur les options de comportement des groupes, notamment sur la possibilité de placer des formes sur un groupe pour les y ajouter (le transformant ainsi en « cible de déplacement »), reportez-vous à la section « Modification d’un groupe », page 116.

Page 64: MS Visio 2003 Guide du Développeur

50 C H A P I T R E 2

Dissociation des groupesDissociez un groupe pour annuler l’association entre les formes qu’il contient et travailler sur chacune de ces formes. Le processus de dissociation supprime la feuille de calcul ShapeSheet du groupe. Si vous dissociez une occurrence d’une forme de base, la forme n’hérite pas des caractéristiques de la forme de base stockées dans le gabarit du fichier de dessin.

Pour dissocier les formes :

1 Choisissez un groupe.

2 Sélectionnez Forme > Groupes > Dissocier.

Droits d’auteur sur les formesToute forme créée à la suite d’une modification d’une forme Visio conserve le copyright Visio. Si vous diffusez une forme de base protégée par ce copyright, les destinataires doivent disposer d’une licence pour pouvoir utiliser un gabarit contenant la forme de base d’origine.

Si vous souhaitez diffuser une forme sans restriction de copyright, vous devez créer intégralement la forme. Lorsque vous créez des formes de cette manière, vous pouvez leur appliquer votre propre copyright, avant ou après avoir créé une forme de base à partir de la forme.

Pour ajouter des droits d’auteur à une forme (ou déterminer si une forme existante est protégée par un copyright) :

• Sélectionnez une forme, puis choisissez Format > Spécial.

IMPORTANT : le champ relatif au copyright ne peut être complété qu’une seule fois. Avant d’ajouter un copyright, effectuez une copie de sauvegarde de la forme en cas d’éventuelles erreurs de frappe.

Page 65: MS Visio 2003 Guide du Développeur

Sommaire

3Formes de base, gabarits, modèles et documents Visio

Si vous envisagez d’élaborer une solution de dessin normalisé comportant des formes que vous avez vous-même créées ou une application personnalisée intégrant la fonction Microsoft® Visio® dans un système plus vaste, vous constaterez que les formes de base, les gabarits, les modèles et les documents sont les composants essentiels de la plupart des solutions Visio. Lorsque vous créez une solution, vous devez savoir comment utiliser au mieux ces composants en fonction de vos besoins.

Vous pouvez diffuser les formes que vous développez en tant que formes de base réutilisables dans un gabarit. Un gabarit fonctionne comme une bibliothèque logicielle dans laquelle vous regroupez les formes que vous souhaitez réutiliser ultérieurement. Vous pouvez également créer un modèle qui ouvre certains gabarits et détermine les paramètres de page, les informations de calque, les styles, les formes, les éléments prédéfinis, tels que les blocs de titre, et les macros. Grâce aux modèles, il est plus facile de transmettre des solutions personnalisées aux utilisateurs. Les documents Visio que vous créez contiennent tous les mêmes informations. Leur affichage dépend de l’extension que vous utilisez.

Ce chapitre présente ces éléments et donne des conseils qui vous permettront de rendre vos solutions aussi efficaces que possible.

Création de formes de base et de gabarits ............................................................ 52

Création de modèles ................................................................................................ 56

Ouverture et enregistrement de documents Visio ................................................ 60

Page 66: MS Visio 2003 Guide du Développeur

52 C H A P I T R E 3

Création de formes de base et de gabarits

Une forme de base est une forme, un groupe ou un objet d’une autre application, enregistré dans un gabarit pouvant être ouvert dans d’autres dessins. Créez une forme sur la page de dessin, puis faites-la glisser dans un gabarit pour créer une forme de base, ou utilisez les commandes de la fenêtre de gabarit. Les formes de base sont créées afin de permettre à l’utilisateur de créer des dessins sans le moindre tracé manuel.

Pour réutiliser ces formes de base, enregistrez-les dans un gabarit autonome sous la forme d’un fichier .vss. Tout fichier Visio peut être enregistré sous ce format. Par défaut, un gabarit autonome est ouvert en lecture seule dans l’application Visio. Pour que le gabarit ou ses formes de base puissent être utilisés, le gabarit doit être modifiable. Sauf indication contraire, le terme gabarit dans ce guide désigne un gabarit autonome. Le gabarit contient les formes nécessaires à la création d’un dessin : il constitue l’un des éléments principaux de l’interface utilisateur. Son efficacité dépend de l’organisation, du comportement et des performances des formes.

Lorsqu’un utilisateur insère dans la page de dessin une forme de base d’un gabarit, le moteur Visio crée une copie de cette forme dans le gabarit de document du dessin et crée une occurrence de la forme sur la page de dessin. Un fichier de dessin comporte toujours un gabarit de document contenant des copies des formes de base utilisées dans le dessin, même si les formes correspondantes sont ensuite supprimées de la page de dessin. Une occurrence est liée à la copie de la forme de base dans le gabarit du document et hérite du comportement et de l’apparence de la forme de base.

Gabarits d’un fichier de dessin Visio

A Lorsque vous ouvrez un modèle, le fichier du gabarit autonome est généralement ouvert en lecture seule dans une fenêtre ancrée.

B Pour afficher le gabarit de document d’une page de dessin, sélectionnez Fenêtre > Afficher le gabarit de document.

��

Page 67: MS Visio 2003 Guide du Développeur

F O R M E S D E B A S E , G A B A R I T S , M O D È L E S E T D O C U M E N T S V I S I O 53

Création d’un gabaritPour créer un gabarit, vous pouvez ouvrir un nouveau fichier vide en tant que gabarit. Comme la page de dessin du nouveau fichier est vide, sa taille reste peu importante. Tant que vous n’avez pas ajouté de formes de base au gabarit, le fichier contient uniquement les styles par défaut.

Pour créer un fichier de gabarit vide avec accès en écriture :

• Sélectionnez Fichier > Ouvrir un gabarit > Nouveau gabarit.

Pour créer un gabarit à partir d’un gabarit existant, vous pouvez ajouter de nouvelles formes de base à un gabarit existant ou modifier celles qui s’y trouvent, puis enregistrer dans un nouveau fichier le gabarit ainsi corrigé.

Pour ouvrir un gabarit avec accès en écriture :

1 Sélectionnez Fichier > Ouvrir un gabarit > Ouvrir un gabarit.

2 Sélectionnez le fichier de gabarit à modifier.

3 Dans la boîte de dialogue Ouvrir un gabarit, sélectionnez Original dans la zone Ouvrir, puis cliquez sur Ouvrir. Vous pouvez également cliquer avec le bouton droit sur la barre de titre d’un gabarit ouvert, puis choisir Modifier dans le menu contextuel.

Lorsqu’un gabarit est modifiable, un astérisque rouge apparaît dans le coin supérieur gauche de l’icône dans la barre de titre.

REMARQUE : les gabarits, les formes de base, les modèles et le code source fournis avec Visio sont protégés par un copyright détenu par Visio Corporation. Ils sont protégés par la loi sur les copyrights des Etats-Unis, ainsi que par diverses législations internationales. Toute diffusion d’une forme de base faisant l’objet d’un copyright et fournie avec Visio est interdite, sauf si le destinataire détient déjà une copie avec licence d’un produit Visio comportant cette forme de base. Cette interdiction s’applique aux formes que vous créez à partir de formes de base faisant l’objet d’un copyright.

Pour protéger par un copyright vos propres formes, choisissez Format > Spécial, puis saisissez les informations de copyright dans le champ Copyright.

Vous pouvez créer rapidement un gabarit avec des formes de base en enregistrant le gabarit de document d’un fichier de dessin en tant que fichier de gabarit avec l’extension .vss. Le gabarit ainsi obtenu contient toutes les formes de base utilisées lors de la session de dessin, y compris celles dont les occurrences ont depuis été supprimées de la page de dessin. Vous pouvez être amené à modifier le gabarit de document et à supprimer le contenu de la page de dessin avant de l’enregistrer en tant que nouveau fichier de gabarit.

Page 68: MS Visio 2003 Guide du Développeur

54 C H A P I T R E 3

Pour créer un gabarit à partir du gabarit de document d’un dessin :

1 Choisissez Fenêtre > Afficher le gabarit de document pour afficher ou modifier les formes de base avant de les enregistrer.

2 Choisissez Fichier > Enregistrer sous.

3 Dans la zone Type de, choisissez Gabarit (*.vss). Entrez le nom et l’emplacement du fichier, puis cliquez sur Enregistrer.

Création de formes de base dans des gabaritsTout comme vous créez une forme en insérant une forme de base dans un dessin, vous pouvez créer une forme de base en insérant une forme ou un groupe dans un gabarit. Avant tout, le gabarit doit être modifiable (un astérisque rouge doit apparaître sur l’icône dans sa barre de titre). Pour qu’un gabarit soit modifiable, ouvrez-le en tant qu’original ou cliquez avec le bouton droit sur la barre de titre du gabarit, puis choisissez Modifier.

Vous pouvez créer une forme de base à partir d’un objet collé ou importé depuis un autre programme vers l’application Visio. Vous pouvez également créer des formes de base en ajoutant à un gabarit des formes de base vierges.

Pour créer une forme de base à partir d’une forme d’un dessin :

1 Dans la fenêtre de dessin, affichez la page contenant la forme à utiliser en tant que forme de base.

2 Vérifiez que la fenêtre de dessin est active, puis faites glisser la forme de cette fenêtre vers la fenêtre de gabarit. Vous pouvez également maintenir la touche Ctrl enfoncée et faire glisser une copie de la forme. Si le gabarit est ouvert en lecture seule, un message apparaît : vous pouvez paramétrer dynamiquement le gabarit sur l’état Lire/Ecrire.

Dans la fenêtre de gabarit apparaissent le nom et l’icône par défaut de la forme de base.

3 Pour enregistrer les modifications apportées au fichier de gabarit, cliquez avec le bouton droit sur la barre de titre du gabarit et choisissez Enregistrer.

Si vous créez un gabarit, entrez son nom. Dans la zone Type de fichier, sélectionnez Gabarit. Pour empêcher toute modification fortuite du gabarit lors de sa prochaine ouverture, sélectionnez Lecture seule dans la zone Enregistrer. Cliquez sur OK.

Pour créer une forme de base vierge :

1 Si le gabarit auquel vous souhaitez ajouter la forme de base n’est pas modifiable, cliquez avec le bouton droit sur la barre de titre du gabarit, puis choisissez Modifier.

2 Cliquez avec le bouton droit dans la fenêtre de gabarit, puis choisissez Nouvelle forme de base.

Page 69: MS Visio 2003 Guide du Développeur

F O R M E S D E B A S E , G A B A R I T S , M O D È L E S E T D O C U M E N T S V I S I O 55

3 Dans la boîte de dialogue Nouvelle forme de base, complétez le champ Nom en saisissant le nom de la forme de base, puis en cliquant sur OK.

Une forme de base vierge est créée au bas du gabarit et indiquée par une icône barrée. Modifiez la forme de base et son icône à l’aide des commandes du menu Forme de base ou du menu contextuel de cette forme.

Pour plus d’informations sur les autres options de la boîte de dialogue Nouvelle forme de base, cliquez sur le bouton ? dans la boîte de dialogue.

Modification des formes de base dans les gabaritsLorsque vous ouvrez un gabarit avec accès en écriture, vous pouvez modifier les formes de base en ouvrant la fenêtre de dessin de la forme comme l’indique la figure suivante. Pour qu’un gabarit soit modifiable, vous pouvez également cliquer avec le bouton droit sur la barre de titre du gabarit et choisir Modifier. Pour définir les attributs des formes de base et des icônes, cliquez sur la forme avec le bouton droit et choisissez une commande dans le menu contextuel.

La fenêtre de dessin de la forme debase affiche la page de dessin

d’une forme de base.

A L’astérisque rouge de l’icône dans la barre de titre du gabarit indique que le gabarit est modifiable.

B Vous pouvez ajouter à un gabarit une forme de base vierge, puis modifier cette dernière et son icône.

C Vous pouvez faire un dessin sur la page de dessin d’une forme de base et la modifier comme s’il s’agissait de la page de dessin d’un document.

D Vous pouvez renommer rapidement une forme de base en cliquant deux fois sur son texte.

��

Page 70: MS Visio 2003 Guide du Développeur

56 C H A P I T R E 3

Pour modifier une forme de base :

1 Dans la fenêtre de gabarit, cliquez avec le bouton droit sur la forme de base à modifier, puis choisissez Modifier la forme de base dans le menu contextuel.

La fenêtre de dessin de la forme de base qui apparaît contient la page de dessin associée à la forme de base.

2 Lorsque vous avez fini de modifier la forme de base, fermez sa fenêtre de dessin.

Un message apparaît et vous invite à mettre à jour la forme de base. Cliquez sur Oui. Les modifications que vous avez apportées sont également répercutées sur l’icône de la forme de base, à moins que l’option de mise à jour manuelle ne soit cochée dans la boîte de dialogue Propriétés de la forme de base de la forme de base.

Création de modèles

En règle générale, pour créer un modèle, vous ouvrez un nouveau fichier de dessin ou un fichier existant, vous définissez les options souhaitées, vous ouvrez les gabarits nécessaires, puis vous enregistrez le fichier en tant que modèle. La page de dessin d’un fichier de modèle Visio est généralement vierge, mais vous pouvez choisir d’insérer des formes dans la page de dessin, telles qu’un bloc de titre ou le logo d’une société. Le modèle peut également comporter plusieurs pages de dessin.

Création d’un modèleVous pouvez enregistrer un fichier Visio en tant que modèle. Les modèles peuvent comporter les éléments suivants :

• La liste d’espaces de travail identifiant un ou plusieurs gabarits, ouverte lorsque vous ouvrez un nouveau fichier de dessin avec le modèle.

• Une ou plusieurs pages de dessin avec des arrière-plans. Chaque page contient un dessin que vous pouvez redimensionner.

• Des macros Microsoft® Visual Basic® pour Applications (VBA).

• Des paramètres d’impression.

• Des styles de ligne, de texte et de remplissage.

• Des options de magnétisme, de collage et de calque.

• Une palette de couleurs.

• La taille et la position des fenêtres.

Page 71: MS Visio 2003 Guide du Développeur

F O R M E S D E B A S E , G A B A R I T S , M O D È L E S E T D O C U M E N T S V I S I O 57

Pour créer un modèle :

1 Ouvrez le fichier de dessin qui doit servir de référence au modèle. Vous pouvez également ouvrir un nouveau fichier de dessin.

2 Ouvrez le ou les fichiers de gabarit à ouvrir avec le modèle.

Ouvrez chaque fichier de gabarit en lecture seule. Si vous ouvrez le fichier de gabarit en tant qu’original, il est enregistré sous cette forme dans la liste des espaces de travail du modèle.

3 Activez la fenêtre de dessin, puis modifiez ou définissez les options et les paramètres à inclure dans le modèle.

Par exemple, vous pouvez définir les styles à inclure, indiquer les options d’affichage de page et sélectionner une échelle de dessin.

4 Si une page de dessin doit contenir des éléments standard, choisissez son apparence. Vous pouvez insérer d’autres pages en tant que pages de premier plan ou d’arrière-plan.

5 Choisissez Fichier > Propriétés. Dans la boîte de dialogue Propriétés, saisissez des informations sur le modèle et cliquez sur OK.

Le texte saisi dans la zone Description apparaît lorsque vous sélectionnez le modèle dans la boîte de dialogue Ouvrir ou Parcourir les modèles (choisissez Fichier > Nouveau > Choisir le type de dessin, puis cliquez sur le bouton Parcourir les modèles).

6 Choisissez Fichier > Enregistrer sous.

Dans la zone Enregistrer, cochez la case Espace de travail. Dans la liste Type de fichier, sélectionnez Modèle (*.vst). Dans la zone Nom du fichier, saisissez le nom du modèle, puis cliquez sur OK.

En règle générale, le moteur Visio ouvre les gabarits d’un modèle dans des fenêtres ancrées en lecture seule. Toutefois, un modèle peut ouvrir certains fichiers de gabarit ancrés et d’autres flottants, certains en lecture seule et d’autres en tant qu’original. La liste des espaces de travail d’un modèle stocke le nom des fichiers de gabarit à ouvrir, ainsi que le type, la taille et la position de la fenêtre dans laquelle ils doivent apparaître. Ces paramètres d’affichage correspondent à leur apparence au moment de l’enregistrement du modèle.

REMARQUE : si vous créez un modèle pour des dessins mis à l’échelle, l’échelle de la page est définie par la page de dessin du modèle. L’échelle de la forme de base est déterminée par celle de la forme. Pour éviter tout comportement inattendu, il est préférable d’utiliser une même échelle ou une échelle proche pour les formes de base et les pages de dessin. Pour plus d’informations, reportez-vous au chapitre 12, « Formes mises à l’échelle et dessins cotés ».

Page 72: MS Visio 2003 Guide du Développeur

58 C H A P I T R E 3

En règle générale, lorsque vousouvrez un fichier en tant que

modèle (.vst), vous ouvrez au moinsdeux documents, un fichier degabarit et un fichier de dessin

contenant les éléments indiqués.

A Un ou plusieurs gabarits autonomes selon les indications de la liste d’espaces de travail du modèle

B Les définitions de style et les couleurs utilisées dans le fichier de gabarit qui doivent correspondre à celles du dessin

C La liste des espaces de travail du modèle qui répertorie tous les fichiers et toutes les fenêtres à ouvrir

D Le dessin d’une ou de plusieurs pages, contenant les définitions de style, la palette de couleurs et le gabarit de document

A propos des pages, des arrière-plans et des calquesLorsque vous créez un modèle Visio, vous devez décider de la manière dont les informations que vous allez fournir vont être organisées. L’application Visio fournit des outils d’affichage et d’organisation, tels que des pages, des arrière-plans et des calques pour organiser l’affichage des éléments ; vous pouvez utiliser ces outils afin que vos solutions soient plus efficaces.

Page 73: MS Visio 2003 Guide du Développeur

F O R M E S D E B A S E , G A B A R I T S , M O D È L E S E T D O C U M E N T S V I S I O 59

A propos des pages et des arrière-plansLes modèles et les documents peuvent contenir plusieurs pages de dessin. Chaque page peut être associée à une ou à plusieurs pages d’arrière-plan. Les pages d’arrière-plan se trouvent à l’arrière des pages de dessin. Elles contiennent généralement les formes devant apparaître sur plusieurs pages de dessin. Vous pouvez utiliser les arrière-plans pour créer des calques d’informations visuels. Lorsque vous associez un arrière-plan à un autre arrière-plan, il figure derrière l’arrière-plan d’origine et derrière la page de dessin.

Les formes figurant sur les pages d’arrière-plan ne peuvent pas être modifiées à partir de la page de premier plan. Pour modifier les éléments de la page d’arrière-plan, vous devez d’abord atteindre cette dernière. Lorsque vous développez une solution, vous devez sélectionner les formes à placer à la fois sur les pages de premier plan et d’arrière-plan, et choisir si vos modèles de document doivent contenir des arrière-plans.

Les arrière-plans et les pagesfonctionnent à la manière de

feuilles de papier transparentempilées les unes sur les autres.

Lorsque vous associez unarrière-plan (C) à un autre

arrière-plan (B), il apparaît derrièrel’arrière-plan d’origine et derrière la

page de dessin (A) ; la page dedessin apparaît toujours sur le

dessus.

A propos des calquesVous pouvez utiliser des calques pour organiser les formes de base et les formes en catégories nommées dans les modèles et les dessins.

Dans d’autres programmes graphiques, le terme calques désigne souvent l’ordre d’empilement (du premier plan à l’arrière-plan) des objets sur la page. Dans Visio, les calques organisent les formes apparentées en catégories nommées. L’appartenance d’une forme à un calque n’a aucune incidence sur sa position dans l’ordre d’empilement.

Vous pouvez masquer ou afficher les calques, les imprimer ou non, ou protéger les calques contre toute modification. Les formes peuvent être associées à plusieurs calques. Les informations de calque d’une forme sont indépendantes de l’ordre d’empilement et même de son appartenance au groupe. En outre, chaque page d’un document peut posséder son propre ensemble de calques. Lorsque vous créez des formes de base, vous pouvez les associer à des calques. Lorsque les utilisateurs créent des occurrences de ces formes, elles sont automatiquement associées à ces calques.

�����

B

C

A

Page 74: MS Visio 2003 Guide du Développeur

60 C H A P I T R E 3

Les formes peuvent appartenir àplusieurs calques. Dans cet

exemple, les formes lac et boussoleappartiennent aux calques de rues(A), d’éléments géographiques (B)

et de routes (C).

Ouverture et enregistrement de documents Visio

Tous les fichiers Visio présentent le même format. Toutefois, l’extension de fichier du document Visio détermine le mode d’ouverture et d’enregistrement des modifications. Un document Visio peut être un dessin (.vsd), un gabarit (.vss), un modèle (.vst) ou un espace de travail (.vsw). Le moteur Visio utilise l’extension du nom de fichier afin de déterminer les éléments à afficher lors de l’ouverture du document. Par exemple, vous pouvez enregistrer un fichier de dessin (.vsd) en tant que modèle (.vst) que vous pourrez ensuite ouvrir et utiliser en tant que modèle.

Composants d’un document VisioChaque document Visio contient les éléments suivants :

• Au moins une page de dessin.

• Un gabarit de document contenant des copies des formes de base utilisées sur la page de dessin (ou dans le cas d’un fichier .vss, un gabarit nommé affichant la forme de base).

• La liste des espaces de travail qui identifie toutes les fenêtres et tous les fichiers à ouvrir avec le fichier en cours.

• La liste des styles définis dans le document, comprenant au moins les quatre styles Visio par défaut (Sans style, Aucun, Normal et Txt. seulmt).

• Une palette de couleurs comportant 24 pastilles de couleur modifiables par l’utilisateur et jusqu’à 232 couleurs supplémentaires définies par les formules RVB (rouge, vert, bleu) ou TSL (teinte, saturation, luminosité) dans le document.

• Un projet VBA (Microsoft Visual Basic pour Applications) muni du module de classe par défaut (vide) appelé ThisDocument.

• Une feuille de document pouvant stocker les données personnalisées.

Page 75: MS Visio 2003 Guide du Développeur

F O R M E S D E B A S E , G A B A R I T S , M O D È L E S E T D O C U M E N T S V I S I O 61

La page de dessin d’un document peut également contenir des formes, dont les styles et les couleurs dépendent des éléments stockés dans le document, ainsi que d’autres projets VBA comprenant des modules, des modules de classe et des formes utilisateur.

Pour plus d’informations sur l’utilisation de VBA dans l’application Visio, reportez-vous au chapitre 15, « Programmation dans Visio avec Microsoft VBA ».

Ouverture d’un fichier VisioVous pouvez ouvrir un fichier Visio en tant que document original avec accès en lecture/écriture, en tant que document original avec accès en lecture seule ou en tant que copie du document original. Lorsque vous choisissez Fichier > Ouvrir, ces options apparaissent dans la boîte de dialogue d’ouverture.

Le moteur Visio utilise l’extension du nom de fichier du document pour déterminer les fenêtres à activer. Par exemple, lorsque vous ouvrez un fichier de gabarit, sa fenêtre de dessin est fermée : seul son gabarit de document apparaît. Lorsque vous ouvrez un fichier de dessin, la fenêtre du gabarit de document est fermée : seule la page de dessin apparaît. Vous pouvez afficher les fenêtres fermées par défaut pour un fichier Visio donné :

• Pour afficher la fenêtre de dessin d’un fichier de gabarit (.vss), choisissez Fenêtre > Afficher la page de dessin.

• Pour afficher le gabarit de document d’un fichier, choisissez Fenêtre > Afficher le gabarit de document.

Le tableau suivant indique le mode d’affichage par défaut des différents types de fichier en fonction de l’extension.

Ouverture des différents types de fichier

Fichier Type de document Eléments affichés par défaut

.vsd Dessin Ouvre toutes les fenêtres et tous les fichiers répertoriés dans l’espace de travail si celui-ci a été enregistré avec le fichier. Dans le cas contraire, le moteur Visio crée une fenêtre de dessin et affiche la page qui était ouverte lors du dernier enregistrement du fichier.

.vss Gabarit Ouvre le gabarit en lecture seule (dans une fenêtre ancrée si la fenêtre de dessin est active). Si aucune fenêtre de dessin n’est active, le moteur Visio crée une fenêtre de gabarit et affiche le gabarit du fichier.

.vst Modèle Ouvre une copie sans titre du dessin dans une fenêtre de dessin, et ouvre toutes les fenêtres et tous les fichiers répertoriés dans l’espace de travail.

.vsw Espace de travail Ouvre dans les fenêtres appropriées tous les fichiers répertoriés dans l’espace de travail.

Page 76: MS Visio 2003 Guide du Développeur

62 C H A P I T R E 3

Choix du type de fichier adapté à votre solutionVous pouvez sélectionner le type de fichier Visio qui vous permettra de travailler plus efficacement. Voici quelques conseils concernant l’enregistrement de votre travail :

• Enregistrez le gabarit de document d’un fichier en tant que fichier de gabarit (.vss) afin de créer un gabarit autonome regroupant les formes que vous utilisez fréquemment.

• Si vous ouvrez plusieurs fichiers de dessin (.vsd) simultanément, vous pouvez enregistrer l’agencement de toutes les fenêtres ouvertes dans un fichier d’espace de travail (.vsw). Vous pouvez ensuite ouvrir le fichier d’espace de travail afin d’ouvrir toutes les fenêtres de dessin dans le même ordre. (Lorsque vous cochez la case Espace de travail dans la boîte de dialogue Enregistrer le fichier sous, vous enregistrez uniquement les descriptions des fenêtres ouvertes dans la liste des espaces de travail du fichier en cours d’enregistrement.)

Pour enregistrer votre fichier en tant qu’espace de travail, appuyez sur Alt+F12, entrez le nom du fichier d’espace de travail, choisissez le dossier dans lequel vous souhaitez l’enregistrer, puis cliquez sur Enregistrer.

REMARQUE : avant d’enregistrer vos fichiers dans un espace de travail, enregistrez vos dessins en tant que fichiers de dessin (.vsd).

• Si vous enregistrez des fichiers de gabarit et de modèle qui doivent être utilisés conjointement, vérifiez que les paramètres de page, les styles et les couleurs de leurs pages de dessin sont compatibles. Pour plus d’informations, reportez-vous au chapitre 10, « Gestion des styles, des formats et des couleurs ».

• Pour que le document que vous créez puisse être consulté mais pas modifié par les autres utilisateurs, enregistrez le fichier en lecture seule. Pour ce faire, cochez la case Lecture seule dans la boîte de dialogue Enregistrer le fichier sous.

Les utilisateurs peuvent ouvrir et modifier une copie d’un fichier en lecture seule, mais ils ne peuvent apporter aucune modification à l’original. Une fois que vous avez enregistré un fichier en lecture seule, vous devez l’enregistrer sous un autre nom via la commande Enregistrer sous pour qu’il puisse à nouveau être modifié.

L’aide en ligne de Visio contient des procédures permettant d’enregistrer différents types de fichier et d’espace de travail. Pour plus d’informations, recherchez le terme « enregistrement » dans l’aide en ligne.

Page 77: MS Visio 2003 Guide du Développeur

Sommaire

4Formules Visio

En tant que développeur de formes, vous avez besoin d’un moyen de contrôle très précis pour l’apparence et le fonctionnement des formes créées. Vous pouvez modifier le fonctionnement par défaut d’une forme et améliorer ses possibilités en modifiant ses formules. De nombreux autres objets Microsoft® Visio® (par exemple, les pages, les documents, les formes de base, les repères et les styles) sont également dotés de formules modifiables.

Ce chapitre présente les termes et les concepts concernant les formules Visio. Tout d’abord, il décrit le mode d’affichage des formes et des autres objets Visio dans la fenêtre ShapeSheet®, ainsi que les diverses sections de cette fenêtre et les éléments sur lesquels porte leur contrôle. Il présente ensuite les composants d’une formule Visio (fonctions, opérateurs, références de cellule et unités de mesure) et indique comment modifier les formules dans la fenêtre ShapeSheet. Il fournit également des informations générales concernant la conception des formules : comment les formes héritent des formules, quand ajouter des cellules définies par l’utilisateur, comment paramétrer les formules pour empêcher les utilisateurs de les modifier dans une fenêtre de dessin et comment contrôler les calculs. Enfin, il offre des indications qui permettent de décider quand utiliser Automation pour ajouter des formules à une solution.

Fenêtre ShapeSheet................................................................................................. 64

Eléments des formules Visio................................................................................... 72

Conception de formules Visio ................................................................................. 80

Ajout de fonctionnalités aux formules Visio à l’aide d’Automation..................... 86

Page 78: MS Visio 2003 Guide du Développeur

64 C H A P I T R E 4

Fenêtre ShapeSheet

Un objet Visio est stocké en interne en tant qu’ensemble de formules. Par exemple, lorsque vous affichez une forme dans une fenêtre de dessin, vous en voyez le rendu graphique et son fonctionnement en fonction de ses formules. Lorsque vous affichez cette même forme dans la fenêtre ShapeSheet®, vous visualisez les formules sous-jacentes qui déterminent l’apparence et le fonctionnement de la forme sur la page de dessin. Ces deux fenêtres affichent chacune la même forme, mais sous un angle différent.

Dans une fenêtre de dessin, certaines des modifications effectuées sur un objet ont une incidence sur ses formules. Par exemple, lorsque vous faites glisser une forme à l’aide de l’outil Pointeur, Visio réévalue les formules qui définissent le centre de rotation, ou axe, de la forme sur la page de dessin car ces formules déterminent l’emplacement de la forme sur la page. Une fenêtre ShapeSheet permet néanmoins de contrôler avec une grande précision l’apparence et le fonctionnement de l’objet en en modifiant les formules. Que vous modifiiez un objet dans la fenêtre de dessin ou dans la fenêtre ShapeSheet, ces changements sont automatiquement sauvegardés lors de l’enregistrement du document Visio contenant l’objet.

Affichage de la fenêtre ShapeSheet La plupart des objets Visio (formes, groupes, repères, points de repère, pages, documents, styles, objets liés ou incorporés provenant d’autres applications) sont dotés de formules sous-jacentes que vous pouvez modifier pour changer le fonctionnement de l’objet. Pour changer les formules d’un objet, vous devez commencer par afficher la fenêtre ShapeSheet associée à l’objet.

Parties d’une forme dans unefenêtre ShapeSheet

A Dans la fenêtre ShapeSheet, la barre de menus comporte les commandes permettant de travailler sur les formules de l’objet.

B Vous pouvez modifier la formule dans la cellule sélectionnée ou dans la barre de formule.C Chaque section ShapeSheet représente un ensemble de formules associées.

Page 79: MS Visio 2003 Guide du Développeur

F O R M U L E S V I S I O 65

Pour afficher la fenêtre ShapeSheet associée à un objet de la page de dessin :

1 Sélectionnez un objet dans la fenêtre de dessin.

Pour sélectionner une forme dans un groupe (à condition que ses paramètres de fonctionnement le permettent), sélectionnez le groupe, puis la forme. Pour plus d’informations sur les groupes, reportez-vous au chapitre 6, « Regroupement et fusion de formes ».

2 Choisissez Fenêtre > Afficher la feuille ShapeSheet ou cliquez sur le bouton Afficher la feuille ShapeSheet ( ) de la barre d’outils Développeur.

Pour afficher la barre d’outils Développeur, choisissez Affichage > Barres d'outils, puis cochez l’option Développeur.

CONSEIL : pour ajouter la commande Afficher la feuille ShapeSheet aux menus contextuels des formes (ces menus apparaissent lorsque vous cliquez avec le bouton droit sur une forme), choisissez Outils > Options, cliquez sur l’onglet Options avancées, puis cochez l’option Exécuter sous le mode développeur. Cette option ajoute également le sous-menu Programmes complémentaires au menu Outils.

Les formules des pages de dessin, des styles, des documents Visio et des formes de base des gabarits sont également modifiables.

Pour afficher la fenêtre ShapeSheet associée à une page, à un style ou à document :

1 Choisissez Affichage > Fenêtres > Drawing Explorer.

Fenêtre Drawing Explorer

2 Cliquez sur un dossier pour l’ouvrir ou le fermer.

3 Dans la fenêtre Drawing Explorer™, cliquez avec le bouton droit sur un document, une page ou un style, puis choisissez Afficher la feuille ShapeSheet dans le menu contextuel.

Page 80: MS Visio 2003 Guide du Développeur

66 C H A P I T R E 4

CONSEIL : vous pouvez également afficher la fenêtre ShapeSheet associée à une page soit en choisissant Fenêtre > Afficher la feuille ShapeSheet lorsqu’aucun élément de cette page n’est sélectionné, soit en cliquant sur le bouton Afficher la feuille ShapeSheet ( ) de la barre d’outils Développeur.

Pour afficher la fenêtre ShapeSheet associée à une forme de base d’un gabarit :

1 Si la forme de base est dans un gabarit autonome, choisissez Fichier > Ouvrir un Gabarit > Ouvrir un gabarit et sélectionnez le fichier de gabarit contenant cette forme de base. Vérifiez que l’option Original ou Copie est sélectionnée dans la boîte de dialogue Ouvrir un gabarit.

Si la forme de base est dans le gabarit d’un document Visio ouvert, choisissez Fenêtre > Afficher le gabarit de document.

2 Dans la fenêtre des gabarits de Visio, cliquez avec le bouton droit sur la forme de base et choisissez Modifier la forme de base dans le menu contextuel.

Vous pouvez également afficher une fenêtre de dessin des formes de base en cliquant avec le bouton droit sur une forme de base dans la fenêtre Drawing Explorer et en choisissant Modifier la forme de base dans le menu contextuel.

3 Dans la fenêtre de dessin des formes de base, alors qu’aucun élément n’est sélectionné, choisissez Fenêtre > Afficher la feuille ShapeSheet.

Dans l’onglet Options avancées de la boîte de dialogue accessible via Outils > Options, si l’option mode Exécuter sous le mode développeur est cochée, vous pouvez également effectuer les opérations suivantes :

• Cliquez avec le bouton droit dans la fenêtre de dessin des formes de base et choisissez Afficher la feuille ShapeSheet dans le menu contextuel.

• Cliquez sur le bouton Afficher la feuille ShapeSheet ( ) de la barre d’outils Développeur.

Affichage des sections de la fenêtre ShapeSheetLa fenêtre ShapeSheet est composée de sections avec des cellules libellées contenant les formules qui définissent les éléments associés à l’apparence et au fonctionnement de l’objet. Visio n’affiche pas automatiquement toutes les sections possibles d’une fenêtre ShapeSheet. Certaines sont masquées pour économiser l’espace d’affichage ; d’autres sont présentes uniquement si elles sont nécessaires pour l’objet. Par exemple, pour créer une commande et l’ajouter au menu contextuel d’une forme, vous devez ajouter une section Actions à la forme à l’aide de la commande Insertion > Section de la fenêtre ShapeSheet ou via Automation. (Pour plus d’informations sur l’ajout de sections via Automation, reportez-vous au chapitre 17, « Automatisation des formules ».

Page 81: MS Visio 2003 Guide du Développeur

F O R M U L E S V I S I O 67

Pour afficher ou masquer les sections de la fenêtre ShapeSheet :

1 Cliquez sur la barre de titre de la fenêtre ShapeSheet, puis choisissez Affichage > Sections.

2 Dans la boîte de dialogue Sections, cochez les sections à afficher ou désélectionnez celles à masquer, puis cliquez sur OK.

Si une section apparaît en grisé, cela signifie qu’elle n’est pas disponible car elle n’existe pas pour l’objet.

Pour ajouter des sections dans la fenêtre ShapeSheet :

1 Choisissez Insertion > Section.

2 Dans la boîte de dialogue Insérer une section, cochez les sections à ajouter à l’objet, puis cliquez sur OK.

Les sections apparaissent dans la fenêtre ShapeSheet dans un ordre fixe (et non au-dessus ou au-dessous de la section affichée). Faites défiler la fenêtre ShapeSheet pour rechercher les sections qui viennent d’y être insérées.

Les sections Géométrie fonctionnent différemment des autres types de section : un objet peut être doté de plusieurs sections du type Géométrie, alors qu’il ne peut en posséder qu’une pour chacun des autres types. Dans la boîte de dialogue Insérer une section, sélectionnez Géométrie pour ajouter une section Géométrie « vierge » comprenant des lignes DéplacerVers et TraitVers ; sélectionnez Ellipse ou Ligne infinie pour ajouter une section Géométrie comprenant une ligne Ellipse ou Ligne Infinie, respectivement. Pour plus d’informations sur les lignes Géométrie, reportez-vous au chapitre 5, « Contrôle de la géométrie des formes à l’aide de formules ».

CONSEIL : vous pouvez agrandir ou réduire une section de la fenêtre ShapeSheet en cliquant sur le nom de cette section.

Sections ShapeSheet : présentation et objet de leur contrôleChaque section ShapeSheet contrôle un aspect d’un objet Visio. En tant que développeur de formes, vous devez savoir de quelles sections dépend un fonctionnement pour pouvoir le modifier.

Cette partie de chapitre répertorie toutes les sections ShapeSheet disponibles, accompagnées d’une brève description de leur action. Pour plus d’informations sur les cellules d’une section ShapeSheet, effectuez une recherche à l’aide des mots « sections dans des feuilles Shapesheet » dans l’aide en ligne Référence du développeur fournie avec Visio.

Page 82: MS Visio 2003 Guide du Développeur

68 C H A P I T R E 4

Sections ShapeSheet

Section Eléments définis

Actions Noms des commandes personnalisées répertoriés dans le menu contextuel de l’objet et les actions de ces commandes.

Alignement Alignement de l’objet en fonction du repère ou du point de repère auquel il est collé.

Appartenance au calque

Calques auxquels l’objet est attribué.

Calques Calques de l’objet et leurs propriétés.

Caractères Attributs de formatage pour le texte de l’objet : police, couleur, style de texte, casse, position en fonction de la ligne de base, taille en points, etc.

Cellules personnalisées

Cellules nommées permettant de saisir des formules et des constantes mentionnées dans d’autres cellules et outils complémentaires. Contrairement aux cellules Montage, les cellules définies par l’utilisateur sont « transportables ». Par exemple, si une forme faisant référence à une cellule définie par l’utilisateur dans une page est copiée sur une autre page ne comportant pas la même cellule définie par l’utilisateur, cette cellule est alors ajoutée dans la page. Si la page possède déjà cette cellule définie par l’utilisateur, la forme y fait simplement référence pour utiliser sa valeur.

Champs de texte Formules personnalisées insérées dans un texte à l’aide de la commande Insérer un champ.

Contrôles Coordonnées x et y, et comportement des poignées de contrôle de l’objet.

Divers Propriétés qui contrôlent d’autres attributs, tels que l’apparence de l’objet lorsqu’il est sélectionné ou déplacé.

Evénements Formules indiquant le déclencheur d’un événement, tel que le double-clic sur une forme.

Format de bloc de texte

Alignement et marges du texte dans un bloc de texte.

Format de remplissage

Attributs de formatage du remplissage de l’objet et de son ombre portée : motif, couleurs de premier et d’arrière-plan, etc.

Format de trait Attributs de formatage des lignes : motif, épaisseur et couleur ; ornement des extrémités de trait (par exemple, une pointe de flèche) ; format des ornements ; rayon du cercle dans lequel la ligne est inscrite, style des extrémités de ligne (rond ou carré), etc.

Géométrie Coordonnées des sommets des lignes et des arcs constituant les propriétés géométriques de l’objet. Si cet objet possède plusieurs chemins, il est doté d’une section Géométrie pour chacun d’entre eux.

Infos sur le collage Formules générées pour une forme 1D lorsque cette dernière est collée à d’autres objets.

Infos sur l'image externe

Largeur, hauteur et décalage à l’intérieur des bordures de l’objet provenant d’une autre application et inséré dans un dessin Visio.

Liens hypertexte Liens entre l’objet et une destination, telle qu’une autre page de dessin, un autre fichier ou un site Web.

Page 83: MS Visio 2003 Guide du Développeur

F O R M U L E S V I S I O 69

Mise en page Attributs de page qui contrôlent la présentation automatique des formes et le routage des liens dynamiques : apparence par défaut et fonctionnement des formes et des liens dynamiques, etc.

Mise en page des formes

Attributs de positionnement et de routage : possibilité pour un lien de traverser une forme ou style qu’un lien doit adopter lorsqu’il en croise un autre.

Montage Zone de travail réservée aux formules intermédiaires mentionnées dans d’autres cellules.

Paragraphe Attributs de formatage des paragraphes : retraits, espacement entre les lignes et alignement horizontal des paragraphes.

Points de connexion Points de connexion de l’objet.

Points de fin 1D Coordonnées x et y des points de début et de fin d’une forme 1D.

Propriétés de doc Attributs de document, tels que les paramètres d’aperçu avant impression ou le format des sorties.

Propriétés de groupe

Attributs de comportement, de sélection et d’affichage des groupes : modes de sélection et d’affichage, fonctionnement du texte, de l’attraction et du déplacement, etc.

Propriétés de la page

Attributs tels que l’échelle de dessin, le format de la page et le décalage des ombres portées.

Propriétés de style Attributs en fonction de l’élément auquel le style est appliqué (formatage de remplissage, de trait ou de texte).

Propriétés d'image Attributs de bitmap, tels que l’intensité (gamma), la luminosité et le contraste de l’image.

Propriétés personnalisées

Données associées à l’objet (éléments définis par l’utilisateur).

Protection Etat des verrouillages paramétrés à l’aide de la commande Protection et des verrouillages supplémentaires pouvant être définis uniquement dans la fenêtre ShapeSheet.

Règles et grille Paramètres de la grille et des règles de la page : densité, origine et espacement.

Tabulations Alignement et positionnement des taquets de tabulation.

Transformation de la forme

Informations de positionnement générales : largeur, hauteur, angle et centre de rotation (axe) ; retournement et fonctionnement de l’objet lorsque ce dernier est redimensionné au sein d’un groupe.

Transformation du texte

Informations de positionnement d’un bloc de texte.

Sections ShapeSheet (suite)

Section Eléments définis

Page 84: MS Visio 2003 Guide du Développeur

70 C H A P I T R E 4

Examen d’une forme dans la fenêtre ShapeSheetLa meilleure façon d’étudier les formules Visio et la fenêtre ShapeSheet est d’afficher une forme dans la fenêtre de dessin et dans la fenêtre ShapeSheet, côte à côte. Cette technique est pratique pour « isoler » des formes de base afin d’examiner l’incidence des formules personnalisées sur leur fonctionnement. Vous pouvez également essayer de modifier les formules par défaut pour observer les effets sur la forme dans la fenêtre de dessin.

Pour examiner une forme dans la fenêtre ShapeSheet :

1 Sélectionnez une forme dans la fenêtre de dessin.

2 Choisissez Fenêtre > Afficher la feuille ShapeSheet pour afficher la fenêtre ShapeSheet.

3 Choisissez Fenêtre > Mosaïque pour disposer les fenêtres ShapeSheet et de dessin côte à côte.

Examen d’une forme dans lafenêtre ShapeSheet

A Lorsque vous sélectionnez certaines lignes ou cellules de la fenêtre ShapeSheet, le sommet correspondant est mis en surbrillance dans la fenêtre de dessin.

Effectuez vos propres essais en commençant par dessiner une forme simple constituée de segments de droite, telle qu’un rectangle ou un autre polygone, et affichez la fenêtre ShapeSheet en suivant la procédure indiquée précédemment. Dans la fenêtre ShapeSheet, testez les suggestions ci-dessous et observez leur incidence sur la forme dans la fenêtre de dessin :

• Modifiez les valeurs des cellules AxeX et AxeY de la section Transformation de la forme. La forme change de place sur la page de dessin.

• Modifiez les valeurs des paramètres Largeur, Hauteur ou Angle. La forme est réduite ou agrandie, ou pivote en fonction de ces valeurs.

• Cliquez sur l’intitulé d’une ligne Géométrie pour sélectionner cette dernière. Dans la fenêtre de dessin, une poignée noire apparaît sur le sommet correspondant.

Page 85: MS Visio 2003 Guide du Développeur

F O R M U L E S V I S I O 71

• Sélectionnez une ligne Géométrie et choisissez Edition > Supprimer la ligne. Le sommet correspondant est remplacé par un segment de droite.

• Sélectionnez une ligne Géométrie et choisissez Insérer > Ligne ou Insérer > Ligne après. Saisissez vos propres valeurs dans les cellules de la ligne insérée. Un sommet apparaît sur la forme en fonction des coordonnées indiquées.

CONSEIL : si des valeurs plutôt que des formules apparaissent dans les cellules de la fenêtre ShapeSheet (ce qui est souvent le cas avec les formes de base fournies avec les produits Visio), choisissez Affichage > Formules pour afficher les formules.

Vous pouvez afficher les sections qui ne sont pas visibles ou masquer celles qui ne vous sont pas utiles. Pour plus d’informations, reportez-vous à la section « Affichage des sections de la fenêtre ShapeSheet », page 66.

Lorsque vous modifiez une forme, certaines formules sont affichées en noir et d’autres en bleu. Cela indique que la formule est héritée ou locale. Pour plus d’informations, reportez-vous à la section « Héritage des formules d’une forme », page 80.

Dans la fenêtre de dessin, vous pouvez modifier la forme à l’aide des outils de dessin et des commandes Visio pour observer l’incidence de ces changements sur les formules de la forme. Testez les suggestions ci-dessous :

• Déplacez la forme à l’aide de l’outil Pointeur. Les formules AxeX et AxeY de la forme sont modifiées pour refléter sa nouvelle position sur la page de dessin.

• Faites glisser les poignées de sélection pour redimensionner la forme. Les formules Largeur et Hauteur de la forme sont modifiées pour refléter son nouveau format.

• A l’aide de l’outil Crayon, sélectionnez un sommet et supprimez-le, ou ajoutez-en un et déplacez-le. Observez les incidences sur la section Géométrie de la forme.

• Changez le format de remplissage ou de trait de la forme. Les formules des sections Format de remplissage ou Format de trait de la forme sont modifiées.

• Choisissez Format > Protection et cochez des options de la boîte de dialogue qui apparaît. Les valeurs des cellules correspondantes dans la section Protection de la forme passent de 0 à 1. Dans la fenêtre ShapeSheet, remplacez la valeur 1 des cellules Protection par 0 et observez les effets sur les poignées de verrouillage de la forme dans la fenêtre de dessin. (Vous pouvez également saisir TRUE ou FALSE au lieu de 1 ou 0 dans les cellules Protection, mais les cellules affichent toujours 1 ou 0.)

Pour obtenir une brève présentation des outils de dessin Visio, reportez-vous au chapitre 2, « Création de formes Visio ». Pour obtenir des informations sur les sections Transformation de la forme et Géométrie, reportez-vous au chapitre 5, « Contrôle de la géométrie des formes à l’aide de formules ». Pour obtenir des informations de référence sur toutes les sections ou cellules ShapeSheet, reportez-vous à l’aide en ligne Référence du développeur (accessible via ? (Aide) > Référence du développeur) fournie avec Visio.

Page 86: MS Visio 2003 Guide du Développeur

72 C H A P I T R E 4

Eléments des formules Visio

La clé pour contrôler les actions appliquées aux formes consiste à rédiger les formules qui définissent le comportement souhaité. Une formule est une expression qui peut comporter des constantes, des fonctions, des opérateurs et des références de cellule. Visio exécute une formule pour obtenir un résultat qu’il convertit ensuite dans l’unité définie pour la cellule qui contient la formule. Certaines formules ne sont qu’une simple constante, mais toutes sont soumises à ce processus de traitement et de conversion. Dans la fenêtre ShapeSheet®, vous pouvez afficher le contenu d’une cellule, que ce soit des valeurs ou des formules, en sélectionnant la commande correspondante dans le menu Affichage.

REMARQUE : lorsque vous travaillez avec Automation, il vous suffit d’afficher les formules des formes et de les configurer. Pour plus d’informations, reportez-vous au chapitre 17, « Automatisation des formules ».

Saisie et modification des formules dans la fenêtre ShapeSheetModifiez la formule d’une cellule pour changer le mode de calcul de la valeur de cette cellule et, par conséquent, l’un des comportements de la forme. Par exemple, la cellule Hauteur de la section Transformation de la forme comporte une formule que vous pouvez modifier pour changer la hauteur de la forme. Vous pouvez saisir et modifier les formules dans la fenêtre ShapeSheet de la même manière que dans un tableur.

Visio considère tout élément de la cellule (y compris une constante numérique, une chaîne ou une référence de cellule) comme une formule. Contrairement aux cellules d’un tableur, la plupart des cellules Visio requièrent un résultat d’un type particulier tel qu’une dimension (par conséquent, tous les éléments que vous saisissez dans ces cellules impliquent une unité de mesure, telle que des pouces ou des centimètres). Le moteur Visio convertit automatiquement le résultat naturel d’une formule pour qu’il corresponde au type défini pour la cellule contenant la formule. Par exemple, la cellule RetournementX de la section Transformation de la forme requiert un résultat de type booléen (TRUE ou FALSE). C’est pourquoi toutes les formules de la cellule RetournementX ayant pour résultat un nombre positif prennent la valeur TRUE et celles qui sont égales à zéro, la valeur FALSE. Pour plus d’informations, reportez-vous à la section « Unités de mesure des formules Visio », page 78.

Page 87: MS Visio 2003 Guide du Développeur

F O R M U L E S V I S I O 73

Pour saisir une formule, sélectionnez une cellule, et saisissez les données dans celle-ci ou dans la barre de formule, illustrée dans la figure suivante.

Saisie d’une formule dans lafenêtre ShapeSheet

A Sélectionnez une cellule, saisissez ou modifiez la formule, et appuyez sur Entrée.B Cliquez sur le bouton Annuler pour annuler les modifications apportées à la formule.

Pour plus d’informations sur la saisie et l’édition des formules, ou sur l’utilisation de la barre de formule, effectuez une recherche à l’aide des mots « formules » ou « barre de formule » dans l’aide en ligne Référence du développeur (accessible via ? (Aide) > Référence du développeur) fournie avec Visio.

CONSEIL : cliquez avec le bouton droit sur une cellule ShapeSheet pour afficher le menu contextuel qui répertorie les commandes permettant de modifier cette cellule.

Fonctions et opérateurs des formules VisioSi vous avez déjà créé des formules dans un tableur, vous avez certainement été amené à utiliser des fonctions et des opérateurs similaires à ceux disponibles pour les formules Visio. Cette section présente brièvement les fonctions et les opérateurs Visio, ainsi que leur mode d’utilisation.

FonctionsUne fonction effectue une tâche bien définie. La plupart des fonctions acceptent un nombre fixe d’arguments en entrée, même si certaines n’en acceptent aucun ; d’autres acceptent un nombre variable d’arguments et d’autres encore acceptent des arguments facultatifs. Bien que le type et le nombre d’arguments dépendent de la fonction, toutes les fonctions respectent la même syntaxe générale :

FONCTION(argument1, argument2, ... argumentN)

La plupart des fonctions disponibles pour les formules Visio ressemblent à celles utilisées dans les tableurs : mathématiques (SOMME ou RACINE), trigonométriques (SIN ou COS) ou logiques (SI ou NON). De nombreuses autres fonctions sont propres à Visio, telles que PROTECTION, PESANTEUR ou RUNADDON.

Page 88: MS Visio 2003 Guide du Développeur

74 C H A P I T R E 4

Pour plus d’informations sur les fonctions, reportez-vous à l’aide en ligne Référence du développeur (accessible via ? (Aide) > Référence du développeur) fournie avec Visio.

REMARQUE : certaines fonctions apparaissent dans les formules générées par Visio, mais ne sont pas répertoriées dans la boîte de dialogue Insérer une fonction ni décrites dans l’aide en ligne Référence du développeur. Ces fonctions commencent par un caractère de soulignement (par exemple, _ELLIPSE_THETA) ; elles sont réservées à une utilisation interne et ne doivent pas être utilisées dans d’autres formules.

OpérateursUn opérateur effectue une opération en associant généralement deux opérandes pour générer un résultat.

La plupart des opérateurs sont de type arithmétique (addition, soustraction, multiplication, etc.) ou logique (supérieur à, inférieur à ou égal à). L’un d’entre eux, l’opérateur de concaténation, est à part : il combine deux chaînes pour n’en obtenir qu’une.

Un opérande peut être une constante (une valeur) ou une expression (pouvant éventuellement contenir une ou plusieurs fonctions) qui donne une valeur unique. Dans une formule Visio (comme dans tout tableur), un opérande peut également être une référence de cellule.

Lorsqu’une formule contient plusieurs opérateurs, ces derniers sont exécutés dans un ordre prédéfini (parfois appelé leur ordre de priorité). Par exemple, l’opérateur de multiplication ( * ) est calculé avant l’opérateur d’addition ( + ). Prenez l’expression ci-dessous :

4 + 5 * 6

Comme la multiplication a un ordre de priorité supérieur à celui de l’addition, 5 * 6 est calculé en premier, ce qui fait 30, puis 4 est ajouté à 30 pour obtenir un résultat égal à 34.

Vous pouvez modifier cet ordre de calcul en regroupant les expressions entre parenthèses. Par exemple :

( 4 + 5 ) * 6

Comme 4 + 5 est mis entre parenthèses, cette expression est calculée en premier pour donner 9. Ensuite, la multiplication 9 * 6 est calculée pour donner un résultat égal à 54.

Dans le cas d’expressions entre parenthèses imbriquées, Visio commence par l’expression entre parenthèses qui a le plus haut degré d’imbrication et termine par les parenthèses extérieures.

Page 89: MS Visio 2003 Guide du Développeur

F O R M U L E S V I S I O 75

Pour obtenir le tableau des opérateurs et de leur ordre de priorité dans les formules Visio, effectuez une recherche à l’aide des mots « ordre d’évaluation » dans l’aide en ligne Référence du développeur fournie avec Visio.

Références de cellule ShapeSheetVous pouvez créer des relations d’interdépendance au sein des formules Visio à l’aide de références de cellule. Les références de cellule permettent en effet de calculer une valeur pour une cellule en fonction de la valeur d’une autre cellule. Par exemple, la cellule Largeur d’une forme peut contenir une formule qui calcule la largeur de la forme à partir de la valeur de la cellule Hauteur ; de cette manière, lorsque l’utilisateur étire la forme vers le haut, la largeur de cette forme est modifiée de manière proportionnelle.

Une formule peut faire référence à toute autre cellule d’un document, même s’il est plus courant et plus pratique de faire référence aux cellules situées sur la même page (par exemple, une cellule dans la même forme ou dans une autre forme au sein du même groupe).

REMARQUE : si vous envisagez de localiser une solution pour les marchés internationaux, vous préférerez peut-être utiliser des noms universels dans les formules. Dans Microsoft® Visio® 2000, tous les objets auxquels vous pouvez attribuer un nom (par exemple, aux formes ou aux lignes dans une section Cellules personnalisées) peuvent en fait accepter deux noms : un nom local et un nom universel. L’utilisateur voit le nom local qui doit être traduit si la solution est localisée. Le nom universel est (dans la plupart des cas) transparent pour l’utilisateur ; il n’a pas besoin d’être traduit et ne peut être attribué qu’à l’aide d’Automation.

Vous pouvez saisir les noms universels dans les formules de la fenêtre ShapeSheet ou les paramétrer avec Automation, mais une fois que la formule est entrée, elle est affichée avec les noms locaux dans la fenêtre ShapeSheet. Pour obtenir des informations sur l’utilisation des noms universels dans une solution, reportez-vous au chapitre 25, « Distribution d’une solution Visio Automation » et à l’aide en ligne Référence du développeur fournie avec Visio.

Page 90: MS Visio 2003 Guide du Développeur

76 C H A P I T R E 4

Références aux cellules situées dans la même formeUne référence à une cellule située dans la même forme doit indiquer uniquement le nom de cette cellule, tel que Hauteur. Si la cellule est située dans une section avec des lignes indexées, la section et l’index de ligne font partie du nom de la cellule. Par exemple, l’expression ci-dessous fait référence à la cellule située dans la colonne X et à la ligne 5 de la section Points de connexion :

CONSEIL : pour faire rapidement référence à une autre cellule de la même forme, positionnez le point d’insertion sur la barre de formule, puis cliquez sur la cellule à laquelle vous souhaitez faire référence. Visio insère le nom de cette cellule au point d’insertion.

Références à des cellules situées dans d’autres formes ou conteneursPour créer une référence à une cellule située dans un autre conteneur (forme, page, forme de base, document ou style), vous devez insérer un préfixe qui identifie ce conteneur. Par exemple, une référence à une cellule située dans une autre forme doit inclure le nom ou l’ID de la forme conteneur, suivi d’un point d’exclamation, puis le nom de la cellule, comme l’indique l’exemple ci-dessous :

Cette référence mentionne la cellule Largeur de la section Transformation de la forme de la forme nommée Chaise de bureau.

La référence peut comprendre l’ID de la forme, si cette dernière ne comporte pas de nom, ou si vous souhaitez utiliser un autre nom. Par exemple, la référence suivante indique la cellule Largeur de la section Transformation de la forme de la forme dont l’ID est 2. Cette opération est recommandée car l’utilisation de noms limite la portée aux conteneurs (par exemple, deux groupes peuvent chacun contenir une forme portant le même nom), tandis que Feuille.ID est unique. Par exemple :

CONSEIL : un objet sur une page de dessin comporte toujours un ID, qu’il ait un nom descriptif ou non. Visio attribue cet ID à la création de l’objet. L’ID ne change pas, sauf si vous déplacez l’objet vers une autre page ou un autre document. Pour afficher l’ID d’un objet ou pour donner un nom descriptif, choisissez Format > Spécial.

�����������"78

�������1�������9�����

)������"09�����

Page 91: MS Visio 2003 Guide du Développeur

F O R M U L E S V I S I O 77

Une référence à une cellule située dans la page de dessin requiert le nom LaPage suivi d’un point d’exclamation et le nom de la cellule. (Dans une forme de base, une référence à LaPage mentionne l’objet qui définit les propriétés globales de la forme de base, telles que sa taille globale et son échelle de dessin.) Par exemple, l’expression suivante fait référence à la cellule EchellePage de la page de dessin :

Règles concernant les références de cellule dans les formulesLe tableau ci-dessous récapitule les règles relatives aux références de cellule dans les formules.

������9 ����������

Récapitulatif de la syntaxe des références de cellule

Cellule Syntaxe de la référence à la cellule Exemple

Dans le même objet

������������ �����

Dans une section Géométrie

������������������������������ �������������

Dans un autre objet nommé du même conteneur

����������������������� ������������

Dans un autre objet de même nom du même conteneur

�������������������������� ������������ �����

Dans tout objet de la page

!���������������������� !�������"�#��$�%���%��

Dans une colonne nommée avec lignes indexées

�����&�������������������'���������( �)������'*(

Dans une colonne sans nom avec lignes indexées

�����&���������������������������� +�������,

Dans une ligne nommée

�����&�������#�-��� .����%����/��/!����

Sur la feuille de la page

%���#�!��������������� %��������%��

Une cellule dans la feuille de la page d’une autre page du document

%��0'�����%��(�#�!��������������� %��0'%��1*(���)������00��

Page 92: MS Visio 2003 Guide du Développeur

78 C H A P I T R E 4

Unités de mesure des formules VisioVisio calcule les résultats d’une formule de différentes manières, en fonction de la cellule dans laquelle elle a été saisie :

• En général, les cellules représentant la position d’une forme, une dimension ou un angle requièrent une paire nombre/unité qui consiste en l’association d’un nombre et de l’unité de mesure nécessaire pour interpréter ce nombre. Par exemple, une formule dans la cellule Largeur peut donner comme résultat 5, signifiant 5 pouces ou 5 centimètres, en fonction de l’unité de mesure en vigueur dans le dessin.

• D’autres cellules ne sont pas dotées d’unité de mesure intrinsèque et donnent comme résultat une chaîne, une expression vrai ou faux, ou un index, en fonction de la nature de la cellule. Par exemple, la formule =5 dans la cellule RemplPremPlan signifie la couleur 5 de la palette des couleurs du dessin, alors que =5 dans la cellule VerrLargeur signifie TRUE (seul zéro signifie FALSE) et verrouille la largeur de la forme.

Pour optimiser les résultats, indiquez toujours une unité de mesure dans les formules, plutôt que de compter sur Visio. Si vous n’associez pas d’unité de mesure à un nom-bre, ce dernier est défini à l’aide de l’unité interne paramétrée pour la cellule, que ce soit une unité de page, de dessin ou d’angle :

• Les unités de page mesurent les dimensions sur la page d’impression, y compris les tailles de police. Les unités de page sont généralement utilisées pour l’épaisseur des traits et les tailles de police qui ne sont pas mises à l’échelle par rapport au dessin.

• Les unités de dessin indiquent les mesures réelles : une piscine de 50 mètres (unités de dessin) peut être représentée par une longueur de 10 cm (unités de page) sur le papier. Par exemple, si vous saisissez la formule =50 dans la cellule Largeur qui attend une paire nombre/unité en unité de dessin, Visio fournit l’unité de dessin par défaut définie pour la page et calcule la formule en fonction de cette unité.

• Les unités d’angle mesurent les distances angulaires, telles que la rotation d’une forme en degrés ou en radians.

Visio utilise par défaut les pouces pour mesurer les distances, les radians pour les angles et les jours pour les durées.

Dans une feuille de formes de base

+0���0'��������20�(�#�!������������� +0���0'%����(�!�������,������

Dans une feuille de style

&����0������&�����#�!��������������� &����0������������3���

Dans une feuille de document

�����#�!��������������� ����������&�����

Récapitulatif de la syntaxe des références de cellule (suite)

Cellule Syntaxe de la référence à la cellule Exemple

Page 93: MS Visio 2003 Guide du Développeur

F O R M U L E S V I S I O 79

Unités multidimensionnellesUne formule Visio qui multiplie ou divise des unités dimensionnelles génère un résultat en unités multidimensionnelles pouvant être stocké dans certaines cellules. Par exemple, si une forme fait 5 pieds de large et 10 pieds de haut en unités de dessin, la formule = Largeur * Hauteur donne comme résultat 50 pi^2 (50 pieds carrés). Les cellules pouvant stocker des résultats multidimensionnels sont les suivantes :

• La cellule Valeur de la ligne Propriété personnalisée ou Cellules personnalisées.

• Les cellules A, B, C et D de la ligne Montage.

La fonction FORMAT permet d’afficher des unités multidimensionnelles à l’aide d’abréviations telles que po.2. Pour plus d’informations, effectuez une recherche sur le mot FORMAT dans l’aide en ligne Référence du développeur fournie avec Visio.

N’oubliez pas que la plupart des multiplications visent à associer une valeur dotée d’unité à une valeur qui n’en a pas. Si un tel calcul multiplie deux valeurs avec unité, le résultat multidimensionnel peut être erroné. Par exemple, si une cellule de couleur telle que RemplPremPlan est paramétrée sur le produit de deux cellules Géométrie, le résultat est une erreur #DIM car les cellules Géométrie sont toujours dotées d’une unité, alors que la cellule RemplPremPlan ne peut pas contenir de valeur multidimensionnelle.

REMARQUE : dans les versions des produits Visio antérieures à Visio 2000, les formules dans lesquelles des valeurs dimensionnelles sont multipliées ou divisées risquaient de générer des résultats incorrects. Prenons l’exemple de la formule =1 cm * 1cm convertie en 0,394 po. * 0,394 po. En multipliant uniquement les constantes et non les unités, cette formule donnait comme résultat 0,155 po. Si vous convertissiez le résultat en centimètres en le multipliant par 2,54 cm./po., vous obteniez un résultat incorrect de 0,394 cm. au lieu de 1 cm.^2 (centimètres carrés). Pour bénéficier des unités multidimensionnelles de la version Visio 2000, vous devez donc modifier les solutions existantes que vous aviez mises en oeuvre pour pallier ce dysfonctionnement.

Indication des unités de mesureComme de nombreux dessins représentent des objets physiques, vous pouvez indiquer les unités de mesure des systèmes impérial ou métrique, exprimer les angles d’un arc en radians, en degrés décimaux, ou en degrés, minutes et secondes. Vous pouvez également utiliser des mesures typographiques standard telles que les picas, les points, les cicéros et les didots.

Page 94: MS Visio 2003 Guide du Développeur

80 C H A P I T R E 4

Pour optimiser les résultats, indiquez toujours une unité de mesure lorsque vous saisissez une formule dans une cellule qui attend une valeur dimensionnelle, comme les exemples du tableau ci-dessous l’indiquent.

L’indication explicite des unités facilite l’identification des paires nombre/unité dans les calculs ; cela permet d’éviter de diviser par mégarde une paire nombre/unité par une autre ou d’associer des unités incompatibles, telles que des angles ajoutés à des longueurs. Par ailleurs, l’indication d’une unité de mesure facilite la localisation des formules dans le cadre d’une utilisation internationale.

Pour plus d’informations sur les unités de mesure des formules Visio, reportez-vous à l’aide en ligne Référence du développeur (accessible via ? (Aide) > Référence du développeur) fournie avec Visio.

Conception de formules Visio

La conception de formules Visio adéquates va au-delà d’une syntaxe simplement correcte. Un développeur de formes doit comprendre d’où proviennent les formules par défaut d’une forme, les avantages et les inconvénients de stocker des formules dans certaines cellules, comment empêcher la modification involontaire des formules personnalisées et comment contrôler le recalcul d’une formule pour optimiser les performances.

Héritage des formules d’une formeLorsque vous ouvrez une fenêtre ShapeSheet®, la formule figurant dans une cellule peut être héritée d’une forme de base ou d’un style. Plutôt que d’effectuer une copie en local de toutes les formules d’une forme, l’occurrence d’une forme de base hérite des formules de cette forme de base et des styles qui lui sont appliqués. Ce comportement présente deux avantages : il permet, d’une part, de répercuter sur toutes les occurrences les modifications effectuées sur les formules ou sur la définition du style d’une forme de base, et, d’autre part, de réduire le volume des fichiers Visio car les formules héritées sont stockées une seule fois dans la forme de base, et non dans chaque occurrence.

Exemples de paires nombre/unité

Valide Non valide

5 po. 5

Largeur + 0,5 po. Largeur + 0,5

7 po. * 1,5 7 * 1,5

DEG(MODULE(Angle, 360 deg.)) MODULE(Angle, 360 deg.)

Page 95: MS Visio 2003 Guide du Développeur

F O R M U L E S V I S I O 81

Lorsque vous saisissez une formule dans une cellule de ce type, vous écrasez la formule héritée avec la formule locale. La cellule qui contient la formule locale n’hérite plus sa formule de la forme de base, les modifications effectuées sur la formule de la forme de base ne sont pas répercutées sur la cellule dans l’occurrence, et la forme occupe un espace de stockage plus important dans le document. Les styles sont une exception : lorsque vous appliquez un style, de nouvelles formules sont toujours inscrites dans les cellules ShapeSheet correspondantes, à moins que vous n’optiez pour la conservation des substitutions locales. Pour plus d’informations, reportez-vous au chapitre 10, « Gestion des styles, des formats et des couleurs ».

La couleur du texte d’une formule indique si cette formule est locale ou héritée. Si le texte d’une cellule est noir, la formule est héritée ; s’il est bleu, la formule est locale. Que vous modifiiez la formule dans la fenêtre ShapeSheet ou dans la forme elle-même (par exemple, en la redimensionnant dans la fenêtre de dessin), la formule change.

Pour restaurer une formule héritée dans une cellule, supprimez la formule locale. Visio la remplace par la formule correspondante de la forme de base.

REMARQUE : dans les versions précédentes du produit Visio, les formules Géométrie étaient toujours locales. Dans Visio 2000, elles sont héritées de formes de base. Cela signifie que toutes les modifications locales effectuées sur les propriétés géométriques d’une forme créent une copie de la formule héritée et supposent un espace de stockage plus important. Pour conserver des documents Visio de taille réduite, modifiez les formules héritées dans la forme de base, dans le gabarit du document, pour que les formes puissent encore hériter de la forme de base. Les solutions qui utilisent Automation pour modifier les formules Géométrie des formes doivent être reconçues pour fonctionner de la même manière.

Formules des sections Cellules personnalisées et MontageLa plupart des sections ShapeSheet ont une fonctionnalité prédéfinie : leurs cellules contrôlent des comportements ou des attributs de forme déterminés. Cependant, vous pouvez être amené à simplifier une formule avec des calculs intermédiaires, ou à stocker des valeurs utilisées par d’autres formules ou des programmes complémentaires. Vous pouvez stocker des formules et des valeurs de ce type dans la section Cellules personnalisées ou Montage d’un objet. Pour ajouter ces sections dans la fenêtre ShapeSheet, choisissez Insertion > Section, puis cochez la section à ajouter.

Page 96: MS Visio 2003 Guide du Développeur

82 C H A P I T R E 4

Les cellules des sections Cellules personnalisées et Montage ne contrôlent pas des comportements ou des attributs de forme particuliers ; de cette manière, vous pouvez indifféremment insérer des formules dans l’une et/ou l’autre de ces sections. Cependant, dans certains cas, il est plus judicieux de privilégier l’une des méthodes :

• Comme une cellule définie par l’utilisateur peut stocker un nom descriptif, elle représente l’emplacement le plus approprié pour stocker des constantes et des valeurs auxquelles d’autres formules font référence ; une référence à un nom descriptif facilite en effet la compréhension des formules.

• La section Montage comporte des cellules X et Y, conçues pour contenir une paire nombre/unité en unité de dessin. Ces cellules sont les emplacements appropriés pour stocker des formules dans lesquelles des coordonnées de forme entrent en jeu.

REMARQUE : si vous accédez aux cellules d’une forme à l’aide d’Automation, insérez les formules dans des cellules définies par l’utilisateur plutôt que dans des cellules de la section Montage. Tous les programmes peuvent écrire dans une cellule Montage, et par conséquent écraser les formules qui y sont stockées. Ce fonctionnement est plus improbable dans une cellule portant un nom unique.

Section Cellules personnaliséesVous pouvez ajouter une cellule dont vous indiquez le nom et la valeur dans la section Cellules personnalisées. Une cellule définie par l’utilisateur peut contenir tous les types de formule, tels qu’une constante mentionnée dans d’autres formules ou un calcul utilisé par un programme complémentaire. Par exemple, une forme de base peut faire référence à une cellule définie par l’utilisateur dans une page. Lorsqu’une occurrence de cette forme de base est créée, elle fait référence à la cellule définie par l’utilisateur de la page sur laquelle elle est située si cette page contient déjà cette cellule définie par l’utilisateur. Dans le cas contraire, elle est copiée de la forme de base. (Ce fonctionnement est également vrai pour les cellules définies par l’utilisateur dans des documents.) Cette fonctionnalité rend les cellules définies par l’utilisateur hautement portables car le développeur de formes n’est pas obligé de vérifier que toutes les destinations possibles comportent cette cellule définie par l’utilisateur (si la forme requiert ce type de cellule, cette dernière sera forcément présente).

Le nom que vous attribuez à une cellule définie par l’utilisateur doit être unique au sein d’une même section. Pour faire référence à la valeur d’une cellule définie par l’utilisateur située dans la même forme, utilisez la syntaxe Util.nom (par exemple, Util.Constante).

Page 97: MS Visio 2003 Guide du Développeur

F O R M U L E S V I S I O 83

Pour faire référence à une cellule définie par l’utilisateur située dans une autre forme, une autre page ou un autre document, faites précéder Util.nom de l’emplacement adéquat. Par exemple :

CONSEIL : certaines cellules, notamment Util.Message et Action.Message, ont été conçues pour contenir par défaut des chaînes. Lorsque vous saisissez des données dans ces cellules d’une fenêtre ShapeSheet, Visio met automatiquement le texte entre guillemets. Débutez la formule avec un signe égal (=) pour que Visio la traite en tant que formule. Visio ne met pas automatiquement le texte entre guillemets si vous définissez les formules de l’une de ces cellules à l’aide d’Automation.

Section MontageLa section Montage est composée de six colonnes intitulées X, Y, A, B, C et D. Les cellules des colonnes X et Y utilisent les unités de mesure du dessin : insérez des calculs incluant des dimensions ou des coordonnées de forme dans ces cellules. Les cellules des colonnes A à D ne comprenant pas d’unité intrinsèque, elles sont adaptées à tout type de résultats. Pour faire référence à des cellules de la section Montage, indiquez le nom de la section, ainsi que le libellé de la colonne et de la ligne (par exemple, Montage.A1).

Comme leur nom l’indique, les cellules Montage sont plus appropriées pour les calculs intermédiaires locaux d’une forme et non pour ceux concernés par Automation). Outre le fait que les cellules Montage ne peuvent pas être nommées de manière aussi explicite que les cellules définies par l’utilisateur, elles n’ont pas non plus un aussi fort degré de transportabilité. Si une forme fait référence à une cellule Montage sur une page ou un document, et que vous souhaitiez copier cette forme vers une autre page ou un autre document, la formule de référence échoue et indique l’erreur #REF car la formule Montage de la page ou du document source n’est pas copiée vers la destination.

)������"09%���"���������

������9%���"���������

�����9%���"���������

Page 98: MS Visio 2003 Guide du Développeur

84 C H A P I T R E 4

Protection des formulesLa fonction PROTECTION est la seule façon d’empêcher la modification des formules dans des cellules ShapeSheet. PROTECTION protège la totalité d’une formule dans une cellule ; elle ne peut pas protéger qu’une partie de formule. Les actions effectuées dans la fenêtre de dessin ne peuvent pas écraser les formules protégées par la fonction PROTECTION. La syntaxe de la fonction PROTECTION est la suivante :

expression étant la formule à protéger. Il n’existe aucune différence entre l’exécution d’une formule protégée par la fonction PROTECTION et celle d’une formule non protégée.

Lorsque vous déplacez, redimensionnez, regroupez ou dissociez des formes, Visio écrit ces modifications dans les cellules ShapeSheet et peut ainsi écraser des formules personnalisées. Les cellules le plus couramment affectées par ces actions sont Largeur, Hauteur, AxeX et AxeY de la section Transformation de la forme. Par exemple, pour empêcher le retournement d’une forme, saisissez la formule suivante :

Une même action dans la fenêtre de dessin peut avoir une incidence sur plusieurs cellules ShapeSheet. Vous devez protéger les formules dans chacune de ces cellules si vous souhaitez empêcher la modification involontaire de la forme. Bien sûr, si un utilisateur supprime une section ShapeSheet, toutes les formules qui y sont stockées, y compris celles qui sont protégées, sont supprimées.

Contrôle du recalcul des formulesPar défaut, une formule qui fait référence à une autre cellule est de nouveau calculée lorsque la cellule référencée est modifiée. Par exemple, si une formule fait référence à la cellule AxeX de la forme et que cette dernière soit déplacée sur la page, la formule est recalculée car AxeX a été modifié. Généralement, ce comportement vous conviendra parfaitement ; les formules Visio en retirent la majeure partie de leur puissance et de leur adaptabilité.

Certains recalculs peuvent sembler être la conséquence de phénomènes de cause à effet, mais de nombreux facteurs ont une incidence sur l’ordre dans lequel les formules sont recalculées. Les formules doivent être conçues pour ne pas dépendre d’un ordre de recalcul déterminé.

�&�$ �$��2����������

&����������7� ��&�$ �$��2�)��� �

&����������:� ��&�$ �$��2�)��� �

Page 99: MS Visio 2003 Guide du Développeur

F O R M U L E S V I S I O 85

Tous les recalculs ne sont pas nécessaires. Par exemple, la fonction DEFF, fonction puissante qui peut, dans une formule, définir la formule d’une autre cellule, n’a pas besoin d’être recalculée jusqu’à ce que la condition qui la déclenche se produise ; cependant, si cette formule fait référence à des cellules souvent modifiées, elle peut être fréquemment recalculée inutilement. Le recalcul prend du temps et a une incidence sur les performances des formes.

Pour éviter les recalculs inutiles et pour améliorer les performances d’une solution, insérez les références aux cellules dans l’une des fonctions suivantes :

• GETREF(référence de cellule) permet d’inclure dans une formule une référence à une autre cellule, sans recalculer cette formule en cas de modification de la valeur de la cellule.

• GETVAL(référence de cellule) permet d’utiliser dans une formule la valeur d’une autre cellule.

Le principal avantage de GETREF réside dans le fait que la référence à la cellule cible n’a pas besoin d’être mise entre guillemets. Dans les versions précédentes de Visio, la référence à une cellule cible utilisée dans une fonction DEFF devait être mise entre guillemets, ce qui impliquait la nécessité de convertir la formule pour les solutions localisées.

GETREF et GETVAL permettent toutes les deux à une formule de suivre la référence à une cellule si elle est modifiée (par exemple, si les lignes précédentes sont supprimées ou si la cellule elle-même est supprimée) ; cependant, la formule de référence n’est pas recalculée lorsque la cellule de référence est modifiée.

Par exemple, la formule suivante est recalculée lorsque la valeur de Largeur est modifiée, et non lorsque AxeX et AxeY changent de valeur :

La formule suivante est recalculée lorsque la cellule contenant la formule DEFF est déclenchée (par exemple, par un utilisateur choisissant une action dans un menu contextuel), et non lorsque AxeX est modifié :

�; $!������7��-�; $!������:��-������

�� ))�; $& )����7�<�=��

Page 100: MS Visio 2003 Guide du Développeur

86 C H A P I T R E 4

Ajout de fonctionnalités aux formules Visio à l’aide d’Automation

L’une des principales questions lorsque vous développez une solution Visio est la suivante : est-il nécessaire de faire appel à Automation ? Les formules Visio peuvent être extrêmement puissantes, mais plus les formules sont complexes, plus il est difficile de les concevoir et de les tester.

Vous pouvez être amené à ajouter des fonctionnalités à une solution à l’aide d’Automation si :

• Les formules utilisent de nombreuses expressions DEFF pour simuler un flux de contrôle (instructions if-else et switch-case, ou des boucles). DEFF est la fonction la plus adéquate pour une initialisation ou une configuration unique, et non pour définir une machine d’état.

• Les formules dépendent de l’ordre de recalcul permettant d’obtenir des résultats corrects. Mais, pour optimiser les performances, les formules sont recalculées lorsque cela est nécessaire et l’ordre n’est donc pas garanti. Les formules qui dépendent du recalcul préalable d’autres formules peuvent générer des résultats incohérents.

• Les formules génèrent des résultats incohérents sans raison apparente. En effet, les formules complexes peuvent dépendre d’effets secondaires (qui seront gérés dans les versions ultérieures de Visio) et entraîner l’arrêt du fonctionnement des formules. Par exemple, les formules ne doivent pas être fondées sur une chaîne de références circulaires pour exécuter une boucle un certain nombre de fois.

Pour obtenir une présentation du mode de séparation des fonctionnalités entre les formules Visio et Automation, reportez-vous au chapitre 1, « Présentation du manuel Developing Visio Solutions ». Pour obtenir une présentation d’Automation dans Visio, reportez-vous au chapitre 14, « Automation et le modèle d’objet de Visio ».

Page 101: MS Visio 2003 Guide du Développeur

Sommaire

5Contrôle de la géométrie des formes à l’aide de formules

Lorsque vous créez une forme, vous devez décider de son comportement après une action de l’utilisateur. Le plus souvent, cette réaction consiste en un redimensionnement ou en un repositionnement. L’application Microsoft® Visio® enregistre l’emplacement de chaque sommet dans l’espace de coordonnées de la forme. Ces sommets, ainsi que les chemins qui les connectent, définissent la géométrie de la forme. Lorsque vous écrivez des formules visant à contrôler la géométrie des formes, vous déterminez l’apparence d’une forme et son comportement face aux différentes actions de l’utilisateur.

Ce chapitre définit la géométrie des formes et indique la manière dont vous pouvez étirer, réduire, retourner et faire pivoter les formes. Il explique également la manière dont vous pouvez contrôler les courbes des formes. Vous y trouverez aussi des suggestions qui vous permettront d’optimiser la géométrie des formes et d’utiliser des verrouillages afin de limiter les types d’action applicables à une forme.

Géométrie des formes ............................................................................................. 88

Contrôle de l’étirement et de la réduction des formes ......................................... 94

Contrôle du retournement et de la rotation des formes ....................................... 98

Contrôle des courbes des formes ...........................................................................103

Optimisation de la géométrie d’une forme............................................................110

Limitation du comportement d’une forme à l’aide de verrouillages ...................111

Page 102: MS Visio 2003 Guide du Développeur

88 C H A P I T R E 5

Géométrie des formes

La plupart des logiciels de dessin reposent sur une géométrie en deux dimensions. Lorsque vous dessinez un objet, le programme l’enregistre sous la forme d’un ensemble d’emplacements horizontaux et verticaux. Ces emplacements, appelés sommets dans l’application Visio, sont mesurés à partir d’un point d’origine sur la page et sont connectés par des segments de traits, comme si vous dessiniez l’objet sur du papier millimétré.

Un chemin est un ensemble de segments de traits ou de courbes qui connectent les sommets d’une forme. Dans la plupart des cas, chaque chemin correspond à une section Géométrie que vous pouvez afficher dans une fenêtre ShapeSheet® ou à laquelle vous pouvez accéder via Automation. Chaque sommet définissant un chemin correspond à une ligne de la section Géométrie. Un chemin peut être fermé ou ouvert, et chaque forme peut posséder plusieurs chemins (et donc plusieurs sections Géométrie) ; pour plus d’informations, reportez-vous au chapitre 6, « Regroupement et fusion de formes ».

Un chemin est un ensemble desegments de traits ou de courbes

qui connectent les sommets d’uneforme.

A la différence des autres logiciels de dessin, l’application Visio permet de contrôler l’emplacement d’un sommet par le biais de formules. Au lieu d’enregistrer simplement la nouvelle position d’une forme qui vient d’être déplacée ou redimensionnée, l’application Visio permet de calculer un sommet par rapport aux autres sommets ou aux autres formes, ou au contraire de définir une position fixe sur la page. Les formules permettent en outre de faire adopter aux formes des comportements complexes.

Page 103: MS Visio 2003 Guide du Développeur

C O N T R Ô L E D E L A G É O M É T R I E D E S F O R M E S À L ’ A I D E D E F O R M U L E S 89

L’illustration suivante présente un exemple simple. Dans le rectangle situé à gauche, la largeur et la hauteur sont indépendantes l’une de l’autre. La modification de l’une n’a aucune incidence sur l’autre. En revanche, dans le rectangle situé à droite, la hauteur est calculée à l’aide d’une formule qui fait référence à la largeur. Toute modification de la largeur de la forme entraîne un nouveau calcul de la formule de la hauteur : la hauteur de la forme subit une modification.

Lorsque vous créez une formulepour une forme, l’application Visiorecalcule les sommets sur la base

de votre formule.

Description de formes dans un système de coordonnéesParmi les formules essentielles figurent celles qui permettent de contrôler la taille ou la position d’une forme. Chacun des sommets d’une forme est enregistré sous la forme d’un couple de coordonnées x, y. Lorsque vous déplacez ou redimensionnez la forme, l’application Visio enregistre les modifications apportées à ses sommets et redessine la forme en lui appliquant les nouveaux paramètres de position et de taille. Pour déplacer, retourner, faire pivoter ou redimensionner une forme Visio à l’aide de formules, vous devez décrire la forme en fournissant un système de coordonnées.

L’application Visio utilise divers systèmes de coordonnées pour décrire une forme. Selon le rôle que va jouer la forme, vous pouvez être amené à utiliser trois systèmes de coordonnées :

Coordonnées locales La largeur et la hauteur d’une forme définissent les deux axes de coordonnées locales. L’origine correspond à l’angle inférieur gauche du planlargeur/hauteur de la forme. L’angle supérieur droit présente les coordonnées (Largeur, Hauteur). La section Géométrie utilise des formules pour décrire les coordonnées locales des sommets pour les chemins qui composent une forme. En modifiant ces formules, vous pouvez contrôler l’apparence d’une forme, quel que soit son emplacement sur la page de dessin.

Coordonnées sur la page L’emplacement d’une forme ou d’un groupe sur la page de dessin est indiquée par les coordonnées sur la page dont l’origine correspond à l’angle inférieur gauche de la page. Les coordonnées de ce type apparaissent sur la règle dans l’unité de mesure indiquée dans la boîte de dialogue Mise en page.

A Largeur = 1B Hauteur = 1

C Largeur = 3D Hauteur = Largeur * 0,5

Page 104: MS Visio 2003 Guide du Développeur

90 C H A P I T R E 5

Coordonnées parent L’application Visio identifie également la position d’un objet par rapport à son parent. En ce qui concerne les formes situées sur une page de dessin, les coordonnées parent sont identiques aux coordonnées sur la page. En revanche, si une forme se trouve dans un groupe, son parent est le groupe, et non la page. Les coordonnées parent correspondent donc aux coordonnées locales du groupe. Dans ce cas, l’origine du système de coordonnées parent correspond à l’angle inférieur gauche du plan largeur/hauteur du groupe.

L’application Visio utilise différentssystèmes de coordonnées pour

identifier les sommets et la positiondes formes.

A Plan largeur/hauteurB Coordonnées localesC Coordonnées sur la page

CONSEIL : vous ne pouvez pas modifier l’origine du système de coordonnées sur la page. En revanche, vous pouvez modifier le point zéro des coordonnées affichées sur les règles en maintenant la touche Ctrl enfoncée et en faisant glisser la barre à l’intersection de deux règles. Le déplacement du point zéro n’a aucune incidence sur le système de coordonnées sur la page, mais il peut servir à mesurer la distance séparant deux formes.

Représentation de la géométrie d’une forme à l’aide de formulesL’application Visio indique la largeur, la hauteur et la position d’une forme à l’aide de formules dans la section Transformation de la forme qui utilise le système de coordonnées parent. Visio exprime la valeur de chaque sommet d’une forme sous la forme d’une fraction de la largeur/hauteur dans la section Géométrie. Lorsque vous déplacez, redimensionnez ou faites pivoter une forme, Visio écrit de nouvelles formules dans la section Transformation de la forme, puis recalcule les formules des sommets dans la section Géométrie.

Page 105: MS Visio 2003 Guide du Développeur

C O N T R Ô L E D E L A G É O M É T R I E D E S F O R M E S À L ’ A I D E D E F O R M U L E S 91

L’exemple suivant présente un rectangle accompagné de ses sections Transformation de la forme et Géométrie.

Rectangle accompagné de sessections Transformation de la

forme et Géométrie

Dans cet exemple, la cellule Largeur du rectangle contient la valeur = 3 po. et deux de ses cellules Géométrie comportent la formule = Largeur*1. Si la forme est étirée sur la page de dessin, la valeur de la cellule Largeur augmente, ce qui modifie la valeur des coordonnées locales indiquées dans la section Géométrie. La formule Géométrie, toutefois, demeure = Largeur*1. Les formules Géométrie qui représentent les sommets de la forme sont toutes des coordonnées locales, exprimées dans les « unités » de largeur et hauteur de la forme.

REMARQUE : les types de ligne de géométrie indiquent la manière dont un segment de chemin doit être dessiné. Dans l’exemple précédent, les types de ligne DéplacerVers et TraitVers correspondent à des segments de droite. Supposons que vous ayez à indiquer à une personne de tracer un rectangle sur une feuille de papier. Vous lui donneriez certainement l’explication suivante : « Placez votre stylo sur les coordonnées 0, 0, puis tirez un trait vers les coordonnées 3, 0... », etc.

Les types de ligne qui décrivent des courbes (surtout les courbes dessinées à l’aide de l’outil Dessin à main levée) sont plus complexes que ceux correspondant à des droites. Certains types de ligne peuvent représenter plusieurs sommets en une seule ligne. Pour plus d’informations sur les types de ligne Géométrie, reportez-vous à la section Géométrie de l’aide en ligne ShapeSheet (accessible via ? (Aide) > Référence du développeur, puis sélectionnez l’option de référence de ShapeSheet) de votre produit Visio.

Page 106: MS Visio 2003 Guide du Développeur

92 C H A P I T R E 5

Représentation de la position d’une forme sur une page La position d’une forme sur la page est indiquée par son axe (ou centre de rotation). L’application Visio utilise deux ensembles de coordonnées dans la section Transformation de la forme afin de stocker l’emplacement de l’axe d’une forme :

• Les cellules AxeX et AxeY stockent les données x et y de l’axe en fonction de son parent, qui peut être le groupe ou la page. Les coordonnées AxeX et AxeY sont donc exprimées dans les coordonnées parent. Elles indiquent la position de la forme par rapport à son parent. Si la forme est déplacée, les valeurs AxeX et AxeY changent.

• Les cellules AxeLocX et AxeLocY stockent les données d’x et de y par rapport à la forme. Les valeurs AxeLocX et AxeLocY sont donc exprimées dans les coordonnées locales. AxeLocX et AxeLocY représentent le point de rotation de la forme lorsque vous la faites pivoter. Tout comme les formules Géométrie de la forme, AxeLocX et AxeLocY sont des formules qui font référence à la largeur et à la hauteur de la forme. Le déplacement de la forme n’entraîne aucune modification des formules AxeLocX et AxeLocY.

L’axe décrit la position d’une formedans les coordonnées locales et les

coordonnées parent.

A Les coordonnées locales de l’axe décrivent ce point (Largeur * 0,5, Hauteur * 0,5).B Les coordonnées parent de l’axe définissent ce point.

Pour comprendre le fonctionnement de l’axe, imaginez que vous placez une fiche cartonnée de 3 x 5 po. sur une feuille de papier et que vous les perforez à l’aide d’une aiguille. Vous pouvez décrire l’emplacement de la carte sur le papier par rapport aux trous de l’aiguille.

L’axe fonctionne de cette manière dans l’application Visio. Les coordonnées locales de l’axe (le trou dans la carte) sont (AxeLocX, AxeLocY). Les coordonnées parent (le trou dans le papier) sont (AxeX, AxeY). Si vous fixez la carte à un autre endroit du papier (ce qui équivaut à déplacer une forme sur une page), le trou de la carte ne change pas de place. Cela n’entraîne donc aucune modification des coordonnées locales de l’axe. Toutefois, une nouvelle perforation apparaît sur le papier, car les coordonnées parent de l’axe ont été modifiées.

A

B

Page 107: MS Visio 2003 Guide du Développeur

C O N T R Ô L E D E L A G É O M É T R I E D E S F O R M E S À L ’ A I D E D E F O R M U L E S 93

Déplacement d’une forme à l’aide de formulesLorsque vous déplacez une forme sur une page à l’aide de la souris, l’application Visio met à jour les valeurs AxeX et AxeY en fonction de la nouvelle position de la forme sur la page. Pour déplacer une forme par le biais de formules, définissez les valeurs AxeX et AxeY. Par exemple, pour déplacer la flèche d’un pouce vers le haut dans la figure suivante, vous pouvez utiliser cette formule :

Vous pouvez également lier la position de la flèche à la largeur de la page à l’aide d’une formule du type suivant :

Par défaut, l’axe est au centre de la forme que l’application Visio exprime sous la forme de formules utilisant les coordonnées locales (Largeur*0,5, Hauteur*0,5). Vous pouvez déplacer l’axe d’une forme de l’une des manières suivantes :

• En écrivant de nouvelles formules dans les cellules AxeLocX et AxeLocY.

• En choisissant l’option Pos. axe dans la boîte de dialogue Taille et position. Vous pouvez afficher cette boîte de dialogue en choisissant Affichage > Fenêtres > Taille et position ou Affichage > Taille et position dans le menu contextuel de la forme (qui apparaît lorsque vous cliquez dessus avec le bouton droit).

• En faisant glisser l’axe avec l’outil de rotation dans la fenêtre de dessin.

Si vous déplacez l’axe avec l’outil de rotation dans la fenêtre de dessin, les valeurs AxeX et AxeY sont modifiées pour que la position de la forme sur la page ne change pas.

La section Transformation de laforme contient les coordonnées

locales et les coordonnées parentde l’axe.

A Coordonnées parent de l’axeB Coordonnées locales de l’axe

Les valeurs des cellules AxeX et AxeY correspondent aux valeurs indiquées par les options X et Y de la boîte de dialogue Taille et position. Pour modifier les valeurs AxeX et AxeY, changez les valeurs X et Y dans cette boîte de dialogue.

���:� �*,8��"

���7� �������9����������5�8��"

Page 108: MS Visio 2003 Guide du Développeur

94 C H A P I T R E 5

Mesure visant à empêcher les utilisateurs de déplacer une formeLorsqu’un utilisateur déplace ou étire une forme, l’application Visio écrit de nouvelles valeurs dans la section Transformation de la forme et écrase les formules des cellules concernées, y compris celles des cellules AxeX et AxeY.

Pour empêcher les utilisateurs de déplacer une forme, vous pouvez utiliser la fonction PROTECTION afin de protéger ses formules AxeX et AxeY. Si vous protégez les formules AxeX, les utilisateurs ne peuvent pas déplacer la forme à l’horizontale. Si vous protégez les formules AxeY, tout déplacement vertical est impossible. (Bien sûr, si vous protégez les formules AxeX et AxeY, tout déplacement est impossible.)

Par exemple, pour protéger les formules de l’illustration précédente, procédez ainsi :

CONSEIL : vous pouvez définir les cellules VerrPivoter, VerrDéplacX et VerrDéplacY de manière à empêcher les utilisateurs de faire pivoter ou de déplacer la forme, et protéger les autres formules de manière à ce qu’aucune autre action utilisateur ne soit possible. Pour plus d’informations sur les verrouillages et sur la fonction PROTECTION, reportez-vous à la section « Limitation du comportement d’une forme à l’aide de verrouillages », à la page 111 de ce chapitre.

Contrôle de l’étirement et de la réduction des formes

Vous pouvez utiliser des formules afin de contrôler la réduction ou l’agrandissement d’une forme en réaction à certaines actions des utilisateurs Visio. Généralement, les utilisateurs redimensionnent une forme en déplaçant ses poignées de sélection, mais ils peuvent également modifier les sommets d’une forme à l’aide de l’outil Crayon.

Vous pouvez créer une forme utilisant plusieurs règles d’étirement, selon que l’utilisateur fait glisser une poignée de redimensionnement de largeur ou de hauteur. L’une des méthodes possibles consiste à utiliser une formule calculée sur la base de la hauteur qui, comme son nom l’indique, conserve le rapport hauteur/largeur d’une forme en définissant sa largeur par rapport à sa hauteur. Pour que cette formule ne s’applique qu’à une partie de la forme, vous pouvez placer une formule calculée sur la base de la hauteur dans les cellules Géométrie correspondant à la partie souhaitée.

Pour plus d’informations sur l’utilisation de formules calculées sur la base de la hauteur avec une forme 1D, reportez-vous au chapitre 8, « Liaison des formes : formes 1D et collage ».

���:� ��&�$ �$��2�*,8��"�

���7� ��&�$ �$��2�������9����������5�8��"�

Page 109: MS Visio 2003 Guide du Développeur

C O N T R Ô L E D E L A G É O M É T R I E D E S F O R M E S À L ’ A I D E D E F O R M U L E S 95

Exemple de formules calculées sur la base de la hauteurDans l’exemple suivant, une flèche est dessinée à l’aide de l’outil Trait. Cet exemple illustre l’utilisation de formules pour contrôler la réduction ou l’agrandissement de la flèche. Par défaut, le programme applique à la flèche des formules qui définissent un redimensionnement proportionnel en cas d’étirement horizontal ou vertical.

Le redimensionnement de la flèched’origine modifie les proportions de

la forme.

A Flèche d’origine utilisant les formules par défautB Flèche après redimensionnement de la largeurC Flèche après redimensionnement de la hauteur

Lorsque vous utilisez les formules par défaut, les flèches de différentes longueurs présentent des pointes de différentes tailles, ce qui entraine un affichage cohérent. Au moment d’utiliser cette flèche dans un dessin, vous préférerez probablement que le corps de la flèche s’étire et se réduise horizontalement, mais que la taille de la pointe reste inchangée. En revanche, si la forme est étirée à la verticale, vous préférerez probablement que la pointe de la flèche soit redimensionnée en conséquence.

Comme la largeur de la pointe de flèche est proportionnelle à sa hauteur, une formule calculée sur base de la hauteur peut décrire la base de la pointe de flèche (trait connectant les sommets 3, 4, 6 et 7 dans la figure suivante) sous la forme d’une fraction de la hauteur de la forme.

Chaque sommet correspond à uneligne de la section Géométrie.

A Toutes les ordonnées (y) sont par défaut des multiples de la hauteur.B Toutes les abscisses (x) sont par défaut des multiples de la largeur.C Hauteur * 0,5D Hauteur * 0,5

A B C

Page 110: MS Visio 2003 Guide du Développeur

96 C H A P I T R E 5

Le sommet 5 se place exactement à égale distance du haut et du bas de la forme. Sa coordonnée y peut donc être calculée par la formule Hauteur * 0,5. Si la distance sur l’axe x séparant le sommet 5 de la base de la pointe de flèche est définie par rapport à la hauteur, la pointe de flèche est redimensionnée proportionnellement lorsque la forme est étirée à la verticale, mais ne change pas lorsque cet étirement est effectué à l’horizontale.

La formule qui produit ce comportement permet de conserver la taille de la base de la pointe de flèche, qui est égale à la largeur de la forme moins la distance séparant le sommet 5 de la base, soit :

La coordonnée x de chaque sommet de la base de la pointe de flèche (sommets 3, 4, 6 et 7) doit être calculée à l’aide de cette formule. Pour des raisons d’efficacité, la formule peut être placée uniquement dans la cellule du sommet 3 : les autres cellules font ensuite référence à cette valeur. La coordonnée y du sommet 3 correspond à la cellule X3 de la section Géométrie1.

Sommets et formules décrivant lagéométrie de la flèche

A Tous les points de la base de la pointe de flèche présentent la même coordonnée x : Largeur - Hauteur * 0,5.

B La base de la pointe de flèche est définie par une fraction de la hauteur.C HauteurD Hauteur * 0,75E Hauteur * 0,5F Hauteur * 0,25G Largeur

�������>�?������@�',8

Page 111: MS Visio 2003 Guide du Développeur

C O N T R Ô L E D E L A G É O M É T R I E D E S F O R M E S À L ’ A I D E D E F O R M U L E S 97

L’illustration suivante présente la nouvelle géométrie de la flèche après redimensionnement.

Nouvelle géométrie de la flèche

Optimisation de l’exemple de flèche Les formules calculées sur la base de la hauteur de la section « Exemple de formules calculées sur la base de la hauteur », page 95, produisent le comportement souhaité et fonctionnent correctement. Toutefois, comme la flèche est symétrique, vous pouvez ensuite affiner les formules personnalisées à l’aide de références de cellule afin de réduire le nombre de calculs. La forme est ainsi plus facile à personnaliser.

Par exemple, les cellules Géométrie1.Y1 et Géométrie1.Y7 contiennent toutes les deux la même formule :

Cette formule peut également prendre la forme suivante :

La cellule Géométrie1.Y2 contient déjà la formule = Hauteur * 0,25. Il vous suffit donc de faire référence à cette cellule dans une partie de la formule au lieu de répéter l’ensemble de la formule. La formule de Géométrie1.Y1 et de Géométrie1.Y7 devient donc :

Désormais, la flèche nécessite uniquement deux formules personnalisées (= Hauteur * 0,5 et = Hauteur * 0,25) pour calculer les sommets. Vous pouvez également modifier l’apparence de la flèche en ne changeant qu’une formule (= Hauteur * 0,25).

�?������@�',=8

�?������>�?������@�',08

�?������>�;A��A���*":0

Page 112: MS Visio 2003 Guide du Développeur

98 C H A P I T R E 5

Contrôle du retournement et de la rotation des formes

Lors de la création des formes, vous pouvez décider de laisser aux utilisateurs la possibilité de les retourner ou de les faire pivoter.

Lorsque vous créez une forme, vous devez connaître dès le départ la manière dont les utilisateurs vont la retourner ou la faire pivoter, puis créer le comportement correspondant. La section Transformation de la forme enregistre l’orientation d’une forme par rapport à son parent. Lorsqu’un utilisateur retourne ou fait pivoter une forme, sa section Transformation de la forme prend en compte la transformation qui a réellement lieu.

Conséquences du retournement d’une formeLorsqu’une forme est retournée, la valeur de la cellule RetournementX ou RetournementY devient TRUE. Les coordonnées parent de l’origine de la forme changent, mais l’emplacement de l’axe de la forme ne change pas par rapport aux coordonnées locales ou aux coordonnées parent. Dans la figure suivante, la forme est pivotée afin que vous puissiez constater l’interaction qui existe entre les cellules RetournementX et RetournementY.

Les coordonnées locales d’uneforme après retournement (valeursRetournementX et RetournementY)

ont changé.

A RetournementX = FALSE, RetournementY = FALSE, Angle = 30 deg.B RetournementX = FALSE, RetournementY = TRUE, Angle = 30 deg.C RetournementX = TRUE, RetournementY = FALSE, Angle = 30 deg.D RetournementX = TRUE, RetournementY = TRUE, Angle = 30 deg.

Page 113: MS Visio 2003 Guide du Développeur

C O N T R Ô L E D E L A G É O M É T R I E D E S F O R M E S À L ’ A I D E D E F O R M U L E S 99

Si vous créez des formes pouvant être retournées, vous devez connaître les différents comportements résultant de chaque méthode employée. Pour retourner une forme, les utilisateurs peuvent effectuer les opérations suivantes :

• Choisir la commande Retournement vertical ou Retournement horizontal dans la barre d’outils Action ou dans le menu Forme.

• Définir la valeur de la cellule RetournementX ou RetournementY dans la section Transformation de la forme.

Selon la méthode employée par l’utilisateur pour retourner une forme, deux transformations peuvent avoir lieu :

• Lorsque l’utilisateur choisit la commande Retournement horizontal de la barre d’outils Action ou du menu Forme, la forme est retournée autour d’un trait vertical sur la page qui passe par l’axe de la forme du système de coordonnées. La valeur de la cellule RetournementX bascule entre TRUE et FALSE. Si la forme subit une rotation, la valeur de la cellule Angle devient –angle, ce qui entraîne une transformation de la forme, comme le montre la figure suivante.

• Lorsque l’utilisateur modifie les valeurs de la cellule RetournementX dans la section Transformation de la forme, et que la valeur de la cellule RetournementX est paramétrée sur TRUE, la forme est retournée à l’horizontale par une inversion de la direction de l’axe de la coordonnée locale x. La valeur de la cellule Angle n’est pas modifiée.

La commande Retournementhorizontal retourne et fait pivoter la

forme.

A Forme d’origineB Conséquence de l’utilisation de la commande Retournement horizontalC Conséquence du paramétrage de RetournementX sur TRUED Système de coordonnées sur la page

L’utilisation de la commande Retournement vertical de la barre d’outils Action ou du menu Forme permet d’activer/de désactiver la valeur de la cellule RetournementY et de paramétrer la valeur de la cellule Angle sur –angle.

Page 114: MS Visio 2003 Guide du Développeur

100 C H A P I T R E 5

Conséquence de la rotation d’une forme Pour faire pivoter une forme, l’utilisateur peut faire glisser une poignée de forme avec l’outil Rotation ou utiliser la fenêtre Taille et position qui comporte un champ Angle modifiable. (Pour afficher la fenêtre Taille et position, choisissez Affichage > Fenêtres > Taille et position.) Lorsqu’une forme est pivotée, la valeur de sa cellule Angle décrit la rotation du système de coordonnées locales de la forme par rapport au système de coordonnées parent.

Une forme pivote autour de son axe : les coordonnées parent de l’origine d’une forme changent parallèlement à la rotation, mais l’emplacement de l’axe ne change pas par rapport aux coordonnées locales ou parent.

REMARQUE : si l’option de rotation de page est activée, l’utilisateur peut faire pivoter la page de dessin en faisant glisser son angle avec l’outil Rotation. Les formes existantes et les repères peuvent apparaître pivotés : en réalité, ils conservent leur position et leur angle par rapport à l’origine de la page. La rotation d’une page n’a aucune incidence sur la page lors de l’impression. Elle ne modifie pas non plus l’apparence des règles et de la grille de la fenêtre de dessin.

L’option de rotation de page est activée par défaut dans certains produits Visio. Pour activer (ou désactiver) l’option de rotation de page, choisissez Outils > Options, cliquez sur l’onglet Dessin, puis sélectionnez (ou désélectionnez) la case à cocher Activer la rotation des pages.

Une page n’affiche pas de section de transformation dans la fenêtre ShapeSheet®. Vous ne pouvez donc ni afficher, ni modifier sa cellule Angle comme vous le feriez s’il s’agissait d’une forme. Toutefois, vous pouvez y accéder à l’aide de la propriété PageSheet d’Automation. Pour plus d’informations sur l’accès aux formules par le biais d’Automation, reportez-vous au chapitre 17, « Automatisation des formules ».

Page 115: MS Visio 2003 Guide du Développeur

C O N T R Ô L E D E L A G É O M É T R I E D E S F O R M E S À L ’ A I D E D E F O R M U L E S 101

Création de formes pouvant être retournées et pivotéesPour que les utilisateurs puissent retourner et faire pivoter une forme, vous devez la concevoir de manière à ce qu’elle puisse avoir plusieurs angles et orientations. Par exemple, vous pouvez modifier la manière dont une forme est retournée ou pivotée en déplaçant son axe local. Dans la figure suivante, lorsqu’un utilisateur retourne le symbole du transistor à la verticale, la position de la broche horizontale reste identique. Lorsque la forme est retournée à l’horizontale, la position de la broche verticale reste identique. Ce comportement permet de positionner correctement les différents transistors d’un schéma électrique.

Forme de transistor sansretournement, après retournement

vertical et après retournementhorizontal

A L’axe local est aligné sur les broches verticales et horizontale.B La broche horizontale ne bouge pas. C La broche verticale ne bouge pas.

Vous pouvez utiliser l’outil Rotation pour déplacer l’axe de la forme. Les valeurs AxeX et AxeY changent. Les formules AxeLocX et AxeLocY changent également pour compenser le mouvement de l’axe de manière à ce que la forme ne bouge pas sur la page. Vous pouvez également déplacer l’axe en ne changeant que les formules des cellules AxeLocX et AxeLocY. Vous modifiez ainsi la relation existant entre l’axe local et l’axe parent, si bien que la forme est également déplacée sur la page de dessin. Par exemple, la forme de transistor décale l’axe local par le biais des formules suivantes :

������7� �������@�',=8

������:� �?������@�',8

A

BC

Page 116: MS Visio 2003 Guide du Développeur

102 C H A P I T R E 5

Certaines formes, telles que le symbole du transistor de l’illustration suivante, sont fréquemment pivotées selon un angle multiple de 90 degrés. Lorsque vous créez une forme de ce type, le rectangle de sélection coïncide avec la grille, et son axe et les points de connexion se trouvent sur les points de la grille ; la forme est alignée plus rapidement que dans le cas d’une rotation ou d’un retournement manuel.

Symbole de transistor destiné àêtre pivoté selon un angle multiple

de 90 degrés

A Le rectangle de sélection est un multiple de la grille et l’axe se trouve également sur un point de la grille.

B Lorsque vous faites pivoter la forme, les points de connexion se trouvent toujours sur les lignes de la grille.

Pour plus d’informations sur l’utilisation des rectangles de sélection et de la grille, reportez-vous au chapitre 11, « Réorganisation des formes d’un dessin ».

Mesure permettant d’empêcher tout retournement ou toute rotation des formesVous pouvez empêcher les utilisateurs de faire pivoter une forme en protégeant la formule de la cellule Angle :

La forme peut toujours être retournée, mais toute utilisation de l’outil Rotation ou des commandes Forme > Pivoter est impossible à moins que les utilisateurs ne modifient la formule Angle de la fenêtre ShapeSheet. Cette technique est simple mais elle n’est pas conseillée. Elle peut en effet prêter à confusion car les poignées de rotation continuent d’apparaître tant que l’outil Rotation est actif, de même que les commandes Pivoter restent accessibles alors qu’elles ne sont d’aucune utilité.

Il est donc préférable de verrouiller la forme afin d’empêcher toute rotation en cochant la case Rotation dans la boîte de dialogue Protection (choisissez Format > Protection) ou en paramétrant la cellule VerrPivoter (dans la section Protection) sur une valeur non nulle. Lorsque l’outil Rotation est actif, des cadenas apparaissent sur les poignées de rotation de la forme et indiquent donc clairement aux utilisateurs qu’elles ne sont pas disponibles lorsque vous protégez la valeur de la cellule Angle.

������ ��&�$ �$��2�'�1��"�

B

A

Page 117: MS Visio 2003 Guide du Développeur

C O N T R Ô L E D E L A G É O M É T R I E D E S F O R M E S À L ’ A I D E D E F O R M U L E S 103

Toutefois, malgré ce verrouillage, la forme peut toujours être pivotée par le biais des commandes Retournement vertical et Retournement horizontal. Pour empêcher tout retournement d’une forme, protégez les formules des cellules RetournementX et RetournementY :

La boîte de dialogue Protection ne fournit aucune option équivalente.

Contrôle des courbes des formes

Pour créer une forme aux angles arrondis, vous pouvez appliquer le style correspondant ou créer un arc. Ce choix détermine la manière dont la forme est redimensionnée. La figure suivante illustre les résultats obtenus avec chaque méthode.

Mode de redimensionnement desformes selon le type d’angle utilisé

A L’étirement du rectangle aux angles arrondis n’a aucune incidence sur la courbure de ses angles.

B Les arcs de cercle peuvent déformer la forme lorsque celle-ci est redimensionnée.C Les arcs d’ellipse sont redimensionnés et lissés en même temps que la forme. Cependant,

les angles obtenus risquent de ne pas répondre à vos attentes.

Si vous dessinez une forme à l’aide de l’outil Crayon, Trait, Arc ou Rectangle, vous pouvez connecter les segments de droite avec un segment d’arc d’ellipse. Lorsque vous étirez une forme, les sommets de début et de fin d’une courbe sont généralement déplacés proportionnellement. L’utilisation de segments d’arc à cet effet permet de mieux contrôler la forme, car les segments d’arc ne dépendent pas du style de trait ou d’angle, et les arcs peuvent être contrôlés par des formules.

&����������7� ��&�$ �$��2�)��� �

&����������:� ��&�$ �$��2�)��� �

A

B C

Page 118: MS Visio 2003 Guide du Développeur

104 C H A P I T R E 5

Vous pouvez modifier l’excentricité d’un arc d’ellipse afin de conserver son aspect lissé. Un arc de cercle tente d’insérer un cercle entre les sommets de début et de fin, ce qui peut entraîner l’apparition d’une déformation entre une courbe et un trait. Pour éviter ce problème, vous pouvez contrôler la courbure de l’arc par le biais de formules. Si vous utilisez cette méthode pour créer une forme à angles arrondis, la gamme prédéfinie des angles permet un redimensionnement lissé.

Utilisation des styles d’angle arrondiLorsque vous utilisez la commande Coins du menu Format, vous appliquez un style arrondi aux angles d’un trait. Vous pouvez créer la forme à partir de segments de droite plutôt que d’utiliser un ensemble de traits et d’arcs. Le style d’angle ne modifie pas la géométrie de la forme, mais uniquement son mode d’affichage à l’écran.

Polygone (A) formaté avec descoins arrondis (B), puis

redimensionné (C)

Même si le redimensionnement d’une forme présentant un style d’angle arrondi se déroule selon vos attentes, l’utilisation d’un autre style de trait spécifiant d’autres attributs d’angle (ou aucun attribut) peut néanmoins écraser le style d’angle arrondi. Vous pouvez donc être amené à protéger le formatage d’une forme en paramétrant sa cellule VerrFormat sur TRUE ou en protégeant la formule de la cellule Arrondissement dans sa section Format. Pour plus d’informations sur les styles, reportez-vous au chapitre 10, « Gestion des styles, des formats et des couleurs ».

Présentation des arcsUn arc de cercle est une partie d’un cercle. Un arc d’ellipse est une partie d’une ellipse. Un arc d’ellipse peut sembler circulaire, car un cercle n’est qu’un type spécial d’ellipse.

Les arcs dessinés à l’aide de l’outil Arc correspondent toujours à un quart d’ellipse, et ceux dessinés par le biais de l’outil Crayon sont une partie d’un cercle. Toutefois, ces deux types d’arc sont représentés dans la section Géométrie en tant qu’arcs d’ellipse, définis par les lignes ArcElliptiqueVers. Pour obtenir un véritable arc de cercle, vous devez paramétrer son type de ligne sur ArcVers dans sa section Géométrie.

A B C

Page 119: MS Visio 2003 Guide du Développeur

C O N T R Ô L E D E L A G É O M É T R I E D E S F O R M E S À L ’ A I D E D E F O R M U L E S 105

Arcs de cercleDans un arc de cercle, l’ampleur de l’arc correspond à la distance entre le point central de la corde et le point central de l’arc, comme l’indique la figure suivante.

Arc de cercle

La valeur de la courbure est positive si l’arc est dessiné dans le sens inverse des aiguilles d’une montre ; dans le cas contraire, elle est négative. Le point de contrôle d’un arc sélectionné se trouve au point central, c’est-à-dire le long de la bissectrice perpendiculaire de la corde. Si vous tentez de déplacer le point de contrôle avec l’outil Crayon, le point se déplace librement mais il reprend toujours sa position le long de la bissectrice perpendiculaire.

Lorsque vous redimensionnez un arc de cercle, vous modifiez le rayon du cercle dont fait partie l’arc. L’arc peut être plat ou bombé, ce qui correspond au comportement de redimensionnement normal d’un cercle. Cependant, ce comportement n’est peut-être pas adapté à vos souhaits. (Pour obtenir un redimensionnement proportionnel, vous devez utiliser un arc d’ellipse suivant les indications qui figurent plus loin dans cette section.)

Redimensionnement d’un arc decercle

A Lorsque le point de contrôle est déplacé, la valeur de courbure de l’arc change.

Par défaut, tous les arcs créés avec les outils de dessin Visio sont des arcs d’ellipse. Pour créer un arc de cercle, vous devez modifier le type de ligne dans la section Géométrie.

A CordesB Points de contrôle

C Courbures

AB

C

A

A

Page 120: MS Visio 2003 Guide du Développeur

106 C H A P I T R E 5

Pour créer un arc de cercle :

1 Sélectionnez une forme et choisissez Fenêtre > Afficher la feuille ShapeSheet.

2 Dans la section Géométrie, sélectionnez la ligne TraitVers ou ArcElliptiqueVers à convertir en arc de cercle.

3 Choisissez Edition > Modifier le type de ligne.

4 Sélectionnez ArcVers, puis cliquez sur OK.

Le tableau suivant indique la signification des cellules d’une ligne ArcVers.

* Les cellules X et Y de la ligne précédente dans la section Géométrie déterminent le point de départ de l’arc.

Arcs d’ellipse

Lorsqu’un arc d’ellipse est étiré, son excentricité change en fonction de l’étirement, si bien que l’arc conserve une courbe lissée. L’excentricité contrôle le niveau d’asymétrie de l’arc.

Arc d’ellipse

A Axe majeurB Axe mineurC Point de contrôleD Angle

L’excentricité d’un arc résulte de la division de son axe majeur par son axe mineur.

Représentation d’un arc de cercle dans la section Géométrie

Ligne Cellule Valeur

Ligne précédant la ligne ArcVers*

X Coordonnée x du point de départ

Y Coordonnée y du point de départ

ArcVers X Coordonnée x du point de fin

Y Coordonnée y du point de fin

A Taille de la courbure de l’arc

A

B

C

D

Page 121: MS Visio 2003 Guide du Développeur

C O N T R Ô L E D E L A G É O M É T R I E D E S F O R M E S À L ’ A I D E D E F O R M U L E S 107

Vous serez probablement plus souvent amené à utiliser un arc d’ellipse qu’un arc de cercle. En effet, la nature intrinsèque de l’arc de cercle limite ses possibilités de redimensionnement.

REMARQUE : dans les versions antérieures de Visio, une ellipse était représentée par deux lignes ArcElliptiqueVers. Dans Microsoft® Visio® 2000, une ellipse est représentée par une seule ligne Ellipse.

Pour créer un arc d’ellipse, procédez de l’une des manières suivantes :

• Dessinez un arc à l’aide de l’outil Crayon ou Arc.

• Dans la section Géométrie, paramétrez sur ArcElliptiqueVers le type de la ligne TraitVers ou ArcVers à convertir en arc d’ellipse.

• Dans la page de dessin, utilisez l’outil Crayon pour faire glisser le point de contrôle d’une droite. Le trait se transforme ainsi en un arc d’ellipse.

La géométrie d’un arc d’ellipse est décrite dans la ligne ArcElliptiqueVers, comme l’indique le tableau suivant.

* Les cellules X et Y de la ligne précédente dans la section Géométrie déterminent le point de départ de l’arc d’ellipse.

Vous pouvez déplacer le point de contrôle d’un arc d’ellipse afin de modifier son excentricité. Une excentricité de 1 correspond à un arc de cercle, tandis qu’une valeur supérieure ou inférieure à 1 correspond à un arc plus ou moins excentrique. Par exemple, dans une ellipse d’une largeur de 2 cm et d’une hauteur d’1 cm, chaque arc d’ellipse présente une excentricité de 2. Dans une ellipse d’une largeur d’1 cm et d’une hauteur de 2 cm, chaque arc d’ellipse présente une excentricité de ½.

Représentation d’un arc d’ellipse dans la section Géométrie

Ligne Cellule Valeur

Ligne précédant ArcElliptiqueVers* X Coordonnée x du point de départ

Y Coordonnée y du point de départ

ArcElliptiqueVers X Position x du point de fin

Y Position y du point de fin

A Position x du point de contrôle

B Position y du point de contrôle

C Angle de l’arc

D Excentricité de l’arc

Page 122: MS Visio 2003 Guide du Développeur

108 C H A P I T R E 5

Pour modifier l’excentricité d’un arc d’ellipse :

• Sélectionnez l’outil Crayon, puis en maintenant la touche Ctrl enfoncée, faites glisser le point de contrôle de manière à afficher les poignées d’excentricité que vous pouvez étirer ou faire pivoter.

Lorsque vous déplacez les poignées d’excentricité d’un arc, Visio génère des formules dans les cellules C et D de la ligne ArcElliptiqueVers ; ces formules enregistrent l’orientation et la forme actuelles de l’arc d’ellipse. Si vous étirez une forme présentant des arcs d’ellipse, Visio modifie au besoin l’excentricité et l’angle des arcs, de manière à ce que le redimensionnement des arcs soit cohérent avec le reste de la forme.

Conversion des segments de trait et d’arcVous pouvez convertir un trait ou un arc d’ellipse en segment d’arc de cercle en modifiant le type de la ligne correspondante dans la section Géométrie. Vous pouvez également modifier les segments de trait et d’arc à l’aide de divers outils de dessin.

Pour changer un trait ou un arc d’ellipse en un arc de cercle dans la fenêtre ShapeSheet :

• Cliquez avec le bouton droit sur la ligne TraitVers ou ArcElliptiqueVers dans la section Géométrie qui correspond au segment à modifier. Dans le menu contextuel, choisissez l’option de modification du type de ligne, puis ArcVers. Vous pouvez également sélectionner la ligne, puis choisir Edition > Modifier le type de ligne et enfin cliquer sur ArcVers.

Pour changer un trait en un arc d’ellipse sur la page de dessin :

• Sélectionnez l’outil Crayon, pointez sur le point de contrôle du segment de trait, puis faites glisser votre souris de manière à former un arc.

Pour changer un arc d’ellipse ou de cercle en une droite sur la page de dessin :

• Sélectionnez l’outil Crayon, pointez sur le point de contrôle de l’arc, puis faites glisser votre souris jusqu’à ce que l’arc se présente sous la forme d’une droite.

REMARQUE : le changement de type de ligne peut modifier le plan largeur/hauteur d’une forme et écraser les formules de conservation des proportions ou celles calculées sur la base de la hauteur. C’est pourquoi vous pouvez être amené à paramétrer VerrCalcLH sur TRUE dans la section Protection avant de modifier le type d’une ligne.

Page 123: MS Visio 2003 Guide du Développeur

C O N T R Ô L E D E L A G É O M É T R I E D E S F O R M E S À L ’ A I D E D E F O R M U L E S 109

Formules d’arc utilesVous pouvez contrôler le comportement de redimensionnement des arcs de cercle à l’aide de formules qui calculent la courbure et le rayon de l’arc.

Calcul de la courbure à partir du rayon et de l’angleSi vous connaissez le rayon d’un arc et l’angle sous-tendu par ArcVers, vous pouvez calculer la courbure à l’aide de l’équation suivante :

|Arc| = rayon * (1 - COS(angle/2))

Si la courbure est nulle, l’arc se présente sous la forme d’une droite. Vous pouvez utiliser cette équation pour n’importe quelle forme, ouverte ou fermée, afin de créer des angles arrondis présentant un angle donné, comme l’indique la figure suivante. L’utilisation d’arcs de cercle présente l’avantage de permettre un redimensionnement lissé des angles. Par exemple, si vous savez que le rayon est de 2 pouces et l’angle de 45 degrés, sur la ligne ArcVers de la section Géométrie, saisissez la formule suivante :

Utilisation d’un segment d’arc decercle pour un angle arrondi

A Angle de 90 °B Rayon

Dans une forme telle qu’un rectangle, dans laquelle la valeur de l’angle ne change pas (90 degrés), vous pouvez résumer une partie de la formule à une constante. Si l’angle est toujours de 90 degrés, (1–COS(angle/2)) = 0,2929, vous pouvez saisir la formule suivante :

L’utilisation de cette constante permet d’accélérer le traitement mais limite les possibilités si vous décidez ensuite de changer l’angle. Pour plus d’informations sur la création d’angles arrondis, reportez-vous à la section « Utilisation des styles d’angle arrondi », page 104.

;A��A����"��� �0��"�@��*�5�����B8�1��"�C0��

;A��A����"��� ��4���@�',0D0D

A

B

Page 124: MS Visio 2003 Guide du Développeur

110 C H A P I T R E 5

Calcul du rayon à partir de la courbureSi vous connaissez la courbure d’un arc, vous pouvez calculer son rayon. Pour ce faire, recherchez l’ampleur de la corde, c’est-à-dire la distance séparant le point de départ et le point de fin de l’arc. Dans la formule suivante, les coordonnées X1, Y1 représentent le point de départ de l’arc, et les coordonnées X2, Y2 le point de fin. La longueur de la corde est donc la suivante :

LongueurCorde = RACINE( (Y2 – Y1) ^2 + (X2 - X1)^2 )

Le rayon est le suivant :

rayon = (4 * Arc2 + Corde2) / (8 * Arc)

Optimisation de la géométrie d’une forme

Les formes à géométrie simple donnent de meilleurs résultats que les formes à géométrie complexe. Une forme dont la section Géométrie comporte peu de lignes permet d’obtenir un rendu plus rapide qu’une forme en comportant un grand nombre. De même, une forme comportant une seule section Géométrie permettra d’obtenir un rendu plus rapide qu’une forme en comportant plusieurs. Si vous n’avez pas besoin de contrôler les sommets d’une forme à l’aide de formules, pensez à simplifier sa géométrie. Voici quelques suggestions de simplification.

• Plutôt que de créer une forme à plusieurs chemins, ignorez certains segments dans un chemin unique en convertissant les lignes TraitVers en DéplacerVers. La section Géométrie d’une forme commence toujours par une ligne DéplacerVers, mais après le premier segment, elle peut comporter autant de lignes de ce type que nécessaire.

• Regroupez plusieurs segments de trait dans une seule ligne PolyligneVers. Les cellules X et Y de cette ligne définissent les coordonnées x,y du point de fin ; toutefois, une seule formule POLYLIGNE définit l’ensemble des sommets entre le point de départ et le point de fin de la forme.

Toute forme comportant plus de trois ou quatre segments donne de meilleurs résultats qu’une ligne PolyligneVers. Toutefois, il est plus facile de considérer la géométrie d’une forme comme une série de lignes TraitVers dans une section Géométrie plutôt que comme une série d’arguments dans une fonction. Vous pouvez convertir une ligne PolyligneVers en plusieurs lignes TraitVers en cliquant avec le bouton droit sur la ligne dans la section Géométrie et en choisissant Développer la ligne.

Page 125: MS Visio 2003 Guide du Développeur

C O N T R Ô L E D E L A G É O M É T R I E D E S F O R M E S À L ’ A I D E D E F O R M U L E S 111

Une formule POLYLIGNE peut contenir des références de cellule ou des expressions. Dès qu’un utilisateur modifie la forme à l’aide de l’outil Crayon, Visio régénère la formule, en remplaçant les références de cellule et les expressions par des constantes. Pour éviter ce remplacement, verrouillez la forme afin de la protéger contre toute modification.

Visio 2000 crée automatiquement des lignes PolyligneVers lors de l’importation de fichiers DWG. Pour plus d’informations sur les lignes PolyligneVers et sur les formules POLYLIGNE, reportez-vous à l’aide en ligne Référence du développeur (accessible via ? (Aide) > Référence du développeur) fournie avec Visio.

REMARQUE : l’outil Dessin à main levée crée désormais des NURBS (nonuniform rational B-splines). Dans les anciennes versions des produits Visio, l’outil Dessin à main levée créait des splines. Pour des raisons de compatibilité en amont, Visio 2000 prend donc en charge les lignes de type spline.

Limitation du comportement d’une forme à l’aide de verrouillages

La plupart des actions de la page de dessin modifient les formules d’une forme et peuvent ainsi avoir une incidence sur son comportement et ses formules personnalisées. Vous pouvez définir des contraintes pour le comportement d’une forme, appelées verrous, qui protègent la page de dessin contre certaines actions.

Prenez l’exemple d’un piano à queue. Il existe différents formats de pianos. Cependant, ils ont tous une caractéristique commune : les cordes les plus courtes sont toujours sur votre droite lorsque vous faites face au clavier. Pour préserver cette caractéristique, vous pouvez verrouiller la forme d’un piano à queue afin d’empêcher tout retournement horizontal. Un utilisateur peut toujours faire pivoter la forme du piano (comme s’il poussait un vrai piano à travers une pièce) mais il ne peut pas la retourner.

L’une des méthodes les plus simples de protection des formes consiste à définir les cellules de verrouillage dans la section Protection de la fenêtre ShapeSheet®. Certaines cellules de cette section correspondent aux options de la boîte de dialogue accessible via Format > Protection ; d’autres ne peuvent être définies que dans la fenêtre ShapeSheet. Pour plus d’informations sur les cellules de la section Protection, reportez-vous à l’aide en ligne Référence du développeur (choisissez ? (Aide) > Référence du développeur) fournie avec Visio.

Page 126: MS Visio 2003 Guide du Développeur

112 C H A P I T R E 5

La définition de verrouillages permet d’éviter toute modification fortuite d’une forme. Par exemple, si vos formes représentent des éléments dont les dimensions sont standard, par exemple du matériel de construction, vous pouvez verrouiller leurs poignées de redimensionnement car les utilisateurs ne doivent pas être en mesure d’étirer les formes dans toutes les directions. Lorsqu’un verrouillage est défini, un cadenas apparaît à la place de certaines poignées de sélection sur la forme, ce qui indique que la fonction correspondante ne peut pas être modifiée.

Le paramétrage de verrouillages setraduit par des informations

visuelles. Les cadenas (A) indiquentque vous ne pouvez pas

redimensionner la forme.

Pour verrouiller une fonction, paramétrez sur un nombre non nul la cellule appropriée dans la section Protection. Pour déverrouiller une fonction, saisissez 0 dans la cellule.

Le fait de définir des verrouillages n’a aucune incidence sur les commandes activées et n’empêche pas la modification des autres formules. Par exemple, si vous verrouillez la largeur et la hauteur d’une forme appartenant à un groupe, puis que vous modifiiez l’échelle du groupe, la largeur et la hauteur de la forme peuvent changer. Si vous définissez un verrouillage, ce verrouillage ne porte que sur la modification de l’échelle de la forme à l’aide de la souris. Pour plus d’informations sur le contrôle des actions autorisées sur les groupes, reportez-vous au chapitre 6, « Regroupement et fusion de formes ».

REMARQUE : vous pouvez également utiliser la fonction PROTECTION de vos formules personnalisées afin d’empêcher leur écrasement par un utilisateur ou par le programme Visio. La fonction PROTECTION et les verrouillages de protection protègent vos formes de deux manières différentes et complémentaires. La fonction PROTECTION empêche toute modification des formules mais autorise l’exécution d’actions utilisateur. En revanche, si vous définissez des verrouillages dans la section Protection, les actions utilisateur sont impossibles, mais les formules de cellule ne sont pas protégées.

Par exemple, si vous paramétrez la formule Largeur d’une forme sur = PROTECTION (5 picas), les utilisateurs peuvent faire glisser les poignées de sélection latérales de la forme afin de l’étirer, mais la forme retrouve sa largeur initiale dès que Visio recalcule sa formule Largeur. En revanche, si vous paramétrez la cellule VerrLargeur sur TRUE (1), les utilisateurs ne peuvent pas faire glisser les poignées de sélection latérales.

Pour plus d’informations sur la fonction PROTECTION, reportez-vous à la section « Conception de formules Visio », page 80.

A

Page 127: MS Visio 2003 Guide du Développeur

Sommaire

6

Regroupement et fusion de formes

Vous pouvez regrouper ou fusionner des formes afin de créer des formes à géométrie complexe, ou de contrôler le comportement de plusieurs formes. La méthode choisie détermine le mode d’utilisation des formes et les résultats obtenus.

Ce chapitre présente les principaux éléments qui distinguent les formes regroupées des formes fusionnées. Il indique également la manière dont vous pouvez créer des groupes et des formes fusionnées, ou contrôler le comportement de formes fusionnées ou de groupes par le biais de formules ShapeSheet®.

Différences entre formes regroupées et formes fusionnées .............................. 114

Création et contrôle des groupes.......................................................................... 115

Contrôle du comportement des groupes ............................................................. 118

Protection du formatage des formes figurant dans des groupes ...................... 126

Création et contrôle des formes fusionnées ........................................................ 126

Page 128: MS Visio 2003 Guide du Développeur

114 C H A P I T R E 6

Différences entre formes regroupées et formes fusionnées

Les formes regroupées et fusionnées n’ont pas le même comportement. Cette différence doit guider votre choix entre formes regroupées et formes fusionnées.

Contexte d’utilisation des groupes• Création d’une forme complexe contenant plusieurs blocs de texte, ou présentant

plusieurs styles ou formats

• Conservation des formules personnalisées pour chacune des formes composant le groupe

• Mise à la disposition des utilisateurs de fonctions de sélection et de modification des formes dans une forme complexe

Contexte d’utilisation des formes fusionnées• Regroupement de formes en une seule forme dont la fusion ne peut pas être

annulée par l’utilisateur

• Création d’une forme répondant plus rapidement qu’un groupe aux actions des utilisateurs

• Création d’une forme comportant des sections Géométrie qui peuvent être masquées ou affichées selon certains critères

• Création d’une forme dont le remplissage peut contenir des zones transparentes

Caractéristiques des groupes• Un groupe peut être dissocié. Vous obtenez ainsi de nouveau des formes

indépendantes.

• Un groupe permet de déplacer ou de redimensionner plusieurs formes simultanément, tout en conservant leurs attributs de formatage propres, y compris les formules personnalisées.

• Vous pouvez appliquer divers styles et formats de texte aux formes du groupe.

• Les formes d’un groupe peuvent être sélectionnées, puis directement déplacées ou redimensionnées.

• Chaque forme conserve sa propre feuille de calcul ShapeSheet, mais le groupe possède également sa propre feuille de calcul ShapeSheet.

Caractéristiques des formes fusionnées• Une forme fusionnée peut être représentée par une seule interface ShapeSheet

contenant plusieurs sections Géométrie.

• Une forme fusionnée écrase les formules personnalisées des formes.

• Une forme fusionnée se limite à un seul bloc de texte et à un seul jeu d’attributs de formatage.

Page 129: MS Visio 2003 Guide du Développeur

R E G R O U P E M E N T E T F U S I O N D E F O R M E S 115

Création et contrôle des groupes

Vous pouvez être amené à créer un groupe lorsque vous disposez de plusieurs formes que vous souhaitez déplacer et redimensionner simultanément, tout en conservant leurs attributs de formatage propres et leurs divers blocs de texte. Lorsque vous regroupez des éléments, une nouvelle feuille de calcul ShapeSheet® est créée pour le groupe. Chaque membre du groupe conserve sa propre feuille de calcul ShapeSheet et le groupe devient le système de coordonnées parent de chaque élément initial. En outre, les formules des formes du groupe, telles que les valeurs Point de fin 1D ou Transformation de la forme, sont modifiées afin de faire référence au groupe et non plus à la page.

Les groupes peuvent contenir desformes présentant divers attributs

de formatage.

Regroupement et dissociation de formesIl peut être judicieux de regrouper des formes avant d’ajouter des points de connexion ou de définir des formules personnalisées, car ces éléments doivent généralement faire référence au groupe pour fonctionner correctement.

• Pour créer un groupe, sélectionnez des formes, puis choisissez Forme > Groupes > Grouper pour regrouper plusieurs formes ou plusieurs groupes dans une nouvelle forme Microsoft® Visio® dont les composants peuvent néanmoins être modifiés et formatés séparément.

• Pour dissocier un groupe, sélectionnez-le, puis choisissez Forme > Groupes > Dissocier.

Page 130: MS Visio 2003 Guide du Développeur

116 C H A P I T R E 6

Modification d’un groupeLes utilisateurs peuvent ajouter des formes à un groupe ou en supprimer. Dans certains cas, il est préférable de pouvoir modifier un groupe. Dans d’autres, selon la solution que vous développez, une modification peut empêcher les formes de fonctionner correctement. Vous pouvez interdire toute modification d’un groupe en paramétrant la cellule VerrGroupe sur TRUE dans la section Protection de la feuille de calcul ShapeSheet du groupe.

Les utilisateurs peuvent ajouter des éléments aux groupes non verrouillés de deux manières :

• En désignant le groupe dans lequel les formes seront insérées et en indiquant les formes à ajouter à un groupe à l’aide de la souris, puis en faisant glisser la forme et en l’insérant dans le groupe. Pour choisir le groupe dans lequel les formes vont être insérées, sélectionnez Accepter les formes insérées dans la section Comportement des groupes de la boîte de dialogue Comportement, ou saisissez TRUE dans la cellule CibleADéposer de la section Propriétés de groupe dans la feuille du groupe. Pour identifier la forme à ajouter à un groupe à l’aide de la souris, sélectionnez Ajouter la forme aux groupes à l'insertion dans la section Divers de la boîte de dialogue Comportement, ou saisissez TRUE dans la cellule SourceDépôt de la section Divers dans la feuille de la forme.

• En choisissant Forme > Groupes > Ajouter au groupe lorsque le groupe et les formes qui vous souhaitez y ajouter sont sélectionnés.

Pour supprimer une forme d’un groupe, les utilisateurs peuvent sélectionner la forme, puis choisir Forme > Groupes > Enlever du groupe. Lorsque vous sélectionnez une forme et que vous la supprimez, elle disparaît également du groupe.

Incidence du regroupement de formes sur leurs formulesLorsque vous ajoutez une forme à un groupe, le système de coordonnées parent correspondant change et passe du système de coordonnées de la page à celui du groupe. Lorsque vous dissociez des formes ou que vous supprimez la dernière forme d’un groupe, le groupe n’est plus le parent. La feuille de calcul ShapeSheet du groupe est supprimée. Les formules faisant référence aux coordonnées parent changent lorsque vous regroupez ou dissociez la forme ; les formules personnalisées que vous définissez pour une forme risquent d’être supprimées.

Page 131: MS Visio 2003 Guide du Développeur

R E G R O U P E M E N T E T F U S I O N D E F O R M E S 117

Le tableau suivant indique les cellules auxquelles sont appliquées de nouvelles formules lorsque vous regroupez et dissociez des formes.

Lorsque vous regroupez des formes connectées à d’autres formes, les connexions sont conservées, sauf si une forme n’a pas (ou plus, à la suite du regroupement) le même parent que le repère auquel elle est connectée. Si une forme est collée à un repère et que vous ajoutiez à un groupe la forme et non le repère, la connexion de la forme au repère est interrompue. La situation inverse se vérifie également : si vous ajoutez un repère à un groupe, sans ajouter les formes collées à ce repère, les connexions reliant ces formes aux repères sont interrompues. Si vous incluez les formes et le repère auquel elles sont collées, le moteur Visio conserve les connexions.

Type de modification subie par les formules après regroupement ou dissociation d’une forme

Section Cellule Conséquence

Transformation de la forme

Largeur, Hauteur Après le regroupement, les formules font référence au groupe pour définir la taille de la forme par rapport à celle du groupe. Après la dissociation, les formules font référence à la largeur et à la hauteur du nouveau parent, ou ne changent pas si le nouveau parent est une page. Les formules protégées par la fonction PROTECTION ne subissent aucune modification.

Transformation de la forme

AxeX, AxeY Les formules calculent les coordonnées d’axe sur la base du système de coordonnées du groupe ou du nouveau parent. Après le regroupement, les formules définissent l’emplacement de l’axe par rapport à la largeur et à la hauteur du groupe.

Points de fin 1D DépartX, DépartY, FinX, FinY

Les formules calculent les coordonnées des points de départ et de fin sur la base du système de coordonnées du parent. Après le regroupement, les formules définissent la position des points de fin par rapport à la largeur et à la hauteur du groupe.

Alignement [toutes les cellules]

Après le regroupement, les formules calculent la position du repère d’alignement sur la base des coordonnées du groupe ou du nouveau parent.

Page 132: MS Visio 2003 Guide du Développeur

118 C H A P I T R E 6

Contrôle du comportement des groupes

Si vous créez des formes pour une solution personnalisée, vous pouvez contrôler avec précision les différents aspects du comportement d’un groupe. Par exemple, vous pouvez empêcher les utilisateurs de sélectionner des éléments du groupe ou de redimensionner des formes.

Lorsque vous utilisez des formules dans des formes regroupées, vous pouvez utiliser des coordonnées locales, des coordonnées parent ou des coordonnées sur la page, comme l’indique l’illustration suivante. Pour définir plusieurs comportements de redimensionnement pour une forme appartenant à un groupe, vous pouvez être amené à convertir des coordonnées d’un système à un autre.

Forme appartenant à un groupedans le système de coordonnées

Visio

A Coordonnées sur la pageB Coordonnées parentC Coordonnées locales

Contrôle du mode de sélection des groupesLe moteur Visio prend en charge trois types de comportement pour la sélection de groupes :

• Sélection du groupe uniquement (les membres du groupe ne peuvent pas être sélectionnés)

• Sélection du groupe en premier (en cliquant une seconde fois, vous sélectionnez le membre du groupe)

• Sélection du membre du groupe en premier (en cliquant une seconde fois, vous sélectionnez l’ensemble du groupe)

En outre, vous pouvez empêcher le déplacement des enfants immédiats d’un groupe en paramétrant sur TRUE la cellule PasDéplacEnfants de la section Propriétés de groupe.

Page 133: MS Visio 2003 Guide du Développeur

R E G R O U P E M E N T E T F U S I O N D E F O R M E S 119

Vous pouvez définir le comportement de sélection de vos formes regroupées en modifiant le paramétrage de la cellule ModeSélection dans la section Propriétés de groupe de la feuille du groupe. Dans le cas de groupes imbriqués, le comportement de sélection appliqué est celui du groupe sélectionné.

REMARQUE : si vous cliquez rapidement deux fois de suite sur un élément, cette opération peut être considérée comme un double-clic et risque d’ouvrir la zone de texte du groupe plutôt que de sélectionner la forme suivante selon l’ordre de sélection. Pour éviter ce problème, observez une brève pause entre les deux clics.

Définition du comportement de redimensionnement des formes regroupéesLorsque vous définissez le comportement de redimensionnement d’un groupe, vous ne devez pas oublier que la taille et la position des membres du groupe peuvent changer dans le groupe. Lorsqu’un groupe est redimensionné, les formes qui le composent sont généralement étirées et repositionnées afin de conserver les proportions du système de coordonnées du groupe. Toutefois, certaines formes représentent des objets dont les dimensions physiques sont fixes. Lorsque la taille du groupe change, vous pouvez choisir de changer la position de ces formes, sans que leur taille ou leurs proportions soient modifiées. Vous pouvez souhaiter, lors du redimensionnement d’un groupe, que certaines formes soient redimensionnées et d’autres non. Les cellules ModeRedim des sections Transformation de la forme des formes appartenant au groupe contrôlent leur comportement de redimensionnement.

Par exemple, dans la figure suivante, le groupe Ilot cuisine contient un plan de travail, une cuisinière et un évier. La cuisinière et l’évier représentent des objets physiques dont les dimensions sont standard. Ils ne peuvent donc pas être redimensionnés avec l’îlot. En revanche, un plan de travail peut présenter n’importe quel format et doit être redimensionné en même temps que l’îlot.

Paramètres ModeSélection de la section Propriétés de groupe

Valeur Description

0 Cliquez dessus pour sélectionner uniquement le groupe. Cliquez de nouveau dessus pour le désélectionner.

1 Cliquez dessus pour sélectionner le groupe en premier. Cliquez de nouveau dessus pour sélectionner les membres du groupe. Pour resélectionner le groupe, vous devez d’abord le désélectionner. (Paramètre par défaut).

2 Cliquez dessus pour sélectionner un membre du groupe en premier. Cliquez de nouveau dessus pour sélectionner le groupe. Si le groupe comporte plusieurs formes empilées, cliquez de nouveau dessus pour sélectionner la forme suivante dans l’ordre de la pile, puis pour sélectionner le groupe.

Page 134: MS Visio 2003 Guide du Développeur

120 C H A P I T R E 6

A Groupe d’origineB Par défaut, les formes sont toutes redimensionnées en même temps que le groupe. Dans le cas

de formes aux dimensions fixes (par exemple, un évier ou une cuisinière), ce comportement pose problème.

C Pour repositionner l’évier et la cuisinière plutôt que de les redimensionner, saisissez la valeur 1 dans la cellule ModeRedim dans les feuilles de ces formes.

Vous pouvez contrôler le comportement de redimensionnement d’une forme ou d’un groupe à l’aide de la cellule ModeRedim (section Transformation de la forme). Pour contrôler le comportement d’une forme en cas de redimensionnement du groupe, définissez la valeur ModeRedim de la forme. Pour contrôler le mode de redimensionnement d’un groupe imbriqué dans un autre, définissez la valeur ModeRedim du groupe. Dans l’exemple précédent, paramétrez la valeur ModeRedim sur 1 pour l’évier, puis regroupez l’évier et le plan de travail. Le tableau suivant présente les options de redimensionnement disponibles.

Pour changer de comportement de redimensionnement, vous devez modifier la forme du plus haut niveau. Par exemple, définissez le comportement de redimensionnement de la cuisinière plutôt que de définir celui de chaque brûleur. Pour empêcher les utilisateurs de redimensionner malencontreusement une forme appartenant à un groupe, paramétrez la valeur ModeRedim sur 1. Paramétrez également VerrLargeur et VerrHauteur sur 1 dans la section Protection. Si vous verrouillez la largeur, la hauteur ou le rapport hauteur/largeur d’une forme, puis que vous ajoutiez la forme à un groupe, le comportement de redimensionnement de la forme est prioritaire par rapport aux éventuels verrouillages définis pour le groupe.

Paramètres ModeRedim de la section Transformation de la forme

Valeur Description

0 La forme est redimensionnée en fonction du paramètre ModeRedim du groupe. Correspond à l’option Utiliser les paramètres du groupe de la boîte de dialogue Comportement. (Paramètre par défaut)

1 La forme conserve sa taille lorsque le groupe est étiré ; seul son emplacement dans le groupe change. Correspond à l’option Repositionner seulement de la boîte de dialogue Comportement.

2 La forme est redimensionnée proportionnellement lorsque le groupe est étiré. Correspond à l’option Mettre à l'échelle avec le groupe de la boîte de dialogue Comportement.

A

B C

Page 135: MS Visio 2003 Guide du Développeur

R E G R O U P E M E N T E T F U S I O N D E F O R M E S 121

Redimensionnement des formes dans un seul sensLorsque vous voulez contrôler le mode de redimensionnement d’un groupe, vous pouvez personnaliser le comportement de redimensionnement des formes à l’aide de formules. Par exemple, le cube de la figure suivante est un groupe composé de trois formes : la première correspond à l’avant du cube, la deuxième au dessus et la dernière au côté. Chacune d’elles présente un comportement de redimensionnement différent. Lorsque vous redimensionnez l’avant, sa largeur et sa hauteur sont étirées proportionnellement. En revanche, seules la hauteur du dessus et la hauteur du côté s’étirent. Ainsi, la forme conserve son aspect 3D lors de l’étirement.

Le dessus et le côté du cubes’étirent uniquement dans un sens

lors du redimensionnement.

Deux techniques principales permettent d’obtenir ce type de comportement de redimensionnement dans un groupe :

• Attribuez une valeur constante aux dimensions de la forme non redimensionnable, et donnez à la forme redimensionnable ses dimensions au sein du groupe.

• Déplacez l’axe d’une forme vers l’origine dans son système de coordonnées locales (c’est-à-dire vers l’angle inférieur gauche des axes x et y locaux). Définissez ensuite l’axe parent de la forme par rapport à la largeur ou à la hauteur du groupe, de manière à ce que l’emplacement de la forme soit toujours fixe par rapport au groupe. Sinon, la forme est déplacée sur la base du système de coordonnées parent lorsque le groupe est redimensionné.

Dans le cas du cube, la hauteur du dessus et la largeur du côté sont des valeurs constantes, car elles ne doivent pas être modifiées par le redimensionnement du groupe. La largeur du dessus est définie par rapport à la largeur du groupe : le dessus peut donc être redimensionné dans le sens de la largeur. De même, la hauteur du côté est définie par rapport à la hauteur du groupe : le côté peut donc être redimensionné dans le sens de la hauteur.

La forme de l’avant définit le rectangle de sélection du groupe car sa taille et sa position déterminent celles du dessus et du côté. L’axe parent définit la position de chaque forme sur le côté correspondant du rectangle de sélection du groupe. Pour le dessus, la coordonnée x de l’axe parent est de 0 po. et la coordonnée y est identique à la hauteur du groupe. Pour le côté, la coordonnée x de l’axe parent est égale à la largeur du groupe et sa coordonnée y est de 0 po.

Page 136: MS Visio 2003 Guide du Développeur

122 C H A P I T R E 6

La relation existant entre la largeur et la hauteur des formes, et entre la hauteur et la largeur du groupe est on ne peut plus évidente si vous dessinez la forme sans sommet avec angle, comme dans la figure suivante.

Vue éclatée de la forme du cube

A AxeB <ID la feuille du groupe>!HauteurC <ID la feuille du groupe>!Largeur

Exemple de création d’un cubeA l’aide des techniques décrites dans la section précédente, vous pouvez attribuer à une forme le comportement de redimensionnement du cube. Une forme définit le rectangle de sélection du groupe, et la position de chacune des formes est fixe par rapport à ce rectangle. En outre, les formes ne sont redimensionnées que dans un sens lors du redimensionnement du groupe.

Pour dessiner le groupe cube, procédez comme suit :

• Définissez le rectangle de sélection personnalisé du groupe : dessinez d’abord l’avant du cube, regroupez-le, puis verrouillez le rectangle de sélection.

• Esquissez les formes du dessus et du côté sous la forme de simples rectangles, puis ajoutez-les au groupe.

• Modifiez les sommets du dessus et du côté pour leur donner un aspect 3D.

• Personnalisez les formules Largeur, Hauteur et Axe des formes du dessus et du côté afin de contrôler leur comportement de redimensionnement.

Page 137: MS Visio 2003 Guide du Développeur

R E G R O U P E M E N T E T F U S I O N D E F O R M E S 123

Comme l’indique la figure suivante, le sommet 2 du dessus et le sommet 3 du côté sont inclinés. La position y du sommet 2 du dessus correspond à la hauteur de cette forme. La position x du sommet 3 du côté correspond à la largeur de cette forme. La hauteur du dessus et la largeur des côtés sont définies par une valeur constante de 0,125 po. En ajoutant cette constante aux formules de sommet appropriées, les formes sont inclinées.

Coordonnées localesdes formes du cube

A Coordonnées locales du groupeB Hauteur = 0,125 po.C Largeur + 0,125 po.D Hauteur + 0,125 po.E Largeur = 0,125 po.

Pour dessiner le cube en tant que groupe :

1 Utilisez l’outil Rectangle pour dessiner et mettre en place des cases rectangulaires représentant l’avant, le dessus et le côté. A ce stade, vous n’avez pas à vous soucier de donner au dessus et au côté un aspect 3D.

2 Sélectionnez uniquement l’avant, puis regroupez-le.

3 Sélectionnez le groupe, choisissez Fenêtre > Afficher la feuille ShapeSheet, puis paramétrez sur 1 la formule de la cellule VerrCalcLH dans la section Protection.

Le rectangle de sélection de l’avant est protégé. Sinon, le rectangle de sélection du groupe s’agrandit lorsque vous ajoutez les formes du dessus et du côté.

Page 138: MS Visio 2003 Guide du Développeur

124 C H A P I T R E 6

4 Sélectionnez le groupe. Choisissez Edition > Ouvrir Grouper pour ouvrir la fenêtre de groupe. Sélectionnez ensuite le dessus et le côté sur la page de dessin, puis faites-les glisser dans la fenêtre de groupe afin de les ajouter au groupe.

5 Dans la fenêtre ShapeSheet® du groupe, choisissez Insertion > Section, puis ajoutez une section Montage. Dans la section Montage, saisissez les formules suivantes :

Montage.X1 définit une constante qui détermine la largeur du côté. Montage.Y1 définit une constante qui détermine la profondeur du dessus.

6 Définissez les formes du dessus et du côté de manière à ce qu’elles fassent référence aux constantes définies dans la fenêtre ShapeSheet du groupe.

Pour ce faire, dans la fenêtre de groupe, sélectionnez la forme du dessus, choisissez Fenêtre > Afficher la feuille ShapeSheet, puis ajoutez une section Montage. Procédez de même pour la forme du côté. Dans les sections Montage du dessus et du côté, saisissez les formules suivantes :

Vous devez indiquer dans ces formules l’ID du groupe. Par exemple, si l’ID du groupe est Feuille.4, la formule de la cellule X1 est la suivante : Feuille.4!Montage.X1.

7 Définissez l’inclinaison des sommets des formes du dessus et du côté.

Pour ce faire, personnalisez les formules dans la section Géométrie, comme l’indiquent les tableaux suivants.

E������"7*� �',8��"

E������":*� �',8��"

E������"7*� �6���1��+�������1������/9E������"7*

E������":*� �6���1��+�������1������/9E������":*

Formules personnalisées dans la section Géométrie de la forme du dessus

Ligne (DéplacerVers) X Y

*���A��� �'��" �'��"

0��$���!��� �E������"7* �?�����

F��$���!��� �������-�E������"7* �?�����

B��$���!��� ������ �'��"

8��$���!��� �;A��A���*"7* �;A��A���*":*

Page 139: MS Visio 2003 Guide du Développeur

R E G R O U P E M E N T E T F U S I O N D E F O R M E S 125

8 Définissez le comportement de redimensionnement des formes du dessus et du côté.

Pour ce faire, personnalisez les formules Largeur, Hauteur et Axe dans la section Transformation de la forme. Pour le dessus, utilisez ces formules :

Dans la section Transformation de la forme du côté, utilisez ces formules :

9 Pour empêcher les utilisateurs de sélectionner les formes séparément, saisissez 0 dans la cellule ModeSélection de la section Propriétés de groupe de la feuille du cube.

Formules personnalisées dans la section Géométrie de la forme du côté

Ligne (DéplacerVers) X Y

*���A��� �'��" �'��"

0��$���!��� �'��" �?�����

F��$���!��� ������ �?������-�E������":*

B��$���!��� ������ �E������":*

8��$���!��� �;A��A���*"7* �;A��A���*":*

����� �6���1��+�������1������/9�����

?������ �E������":*

���7 �'��"

���: �6���1��+�������1������/9?�����

������7 ��&�$ �$��2�' �"�

������: ��&�$ �$��2�'��"�

����� �E������"7*

?����� �6���1��+�������1������/9?�����

���7 �6���1��+�������1������/9�����

���: ��&�$ �$��2�'��"�

������7 ��&�$ �$��2�'��"�

������: �'��"

Page 140: MS Visio 2003 Guide du Développeur

126 C H A P I T R E 6

Protection du formatage des formes figurant dans des groupes

Lorsque vous appliquez un formatage local à un groupe en choisissant une commande dans le menu Format, ce même format est appliqué à l’ensemble des formes du groupe. Le formatage appliqué au groupe remplace tout formatage local des formes du groupe ; si vous utilisez des formules pour modifier le formatage des formes, ces formules sont également écrasées. Pour éviter cette suppression, vous pouvez effectuer les opérations suivantes :

• Protéger certaines cellules de formatage à l’aide de la fonction PROTECTION.

• Verrouiller un groupe afin d’empêcher toute modification de formatage.

• Interdire ou autoriser l’application de styles aux formes d’une forme de base.

Pour interdire toute modification de certaines formules lorsqu’un utilisateur définit le format local d’une forme, utilisez la fonction PROTECTION.

Vous pouvez verrouiller un groupe afin d’empêcher tout formatage à l’aide de la cellule VerrFormat dans la section Protection de la feuille du groupe. Ce verrouillage empêche tout utilisateur d’appliquer un style ou un format local au groupe. S’il fait une tentative, le message qui apparaît indique que l’action n’est pas autorisée.

Lorsque vous verrouillez un groupe afin d’empêcher tout formatage, vous pouvez néanmoins sélectionner les formes qu’il contient et changer chaque format à moins que vous n’ayez défini la cellule VerrFormat pour chacune des formes du groupe. Vous pouvez également verrouiller les formes au cas par cas afin que seules certaines d’entre elles puissent être reformatées par les utilisateurs.

Création et contrôle des formes fusionnées

Une forme fusionnée présente toutes les sections ShapeSheet® standard d’une forme classique. En revanche, la forme fusionnée contient plusieurs sections Géométrie (une par chemin) au lieu d’une seule. Comme vous n’utilisez qu’une feuille de calcul ShapeSheet, la définition d’attributs dans une forme fusionnée comportant plusieurs géométries est donc beaucoup plus efficace que dans des formes regroupées, où chaque forme possède sa propre feuille de calcul ShapeSheet.

Lorsqu’une forme possède plusieurs sections Géométrie, vous pouvez décider de masquer ou d’afficher chacune d’elles sur la base de certains critères. Par exemple, vous pouvez masquer un chemin de la forme lorsqu’un autre est vide, puis le rendre visible une fois que le second chemin est plein.

Page 141: MS Visio 2003 Guide du Développeur

R E G R O U P E M E N T E T F U S I O N D E F O R M E S 127

Une forme fusionnée ne comporte qu’un bloc de texte et un jeu d’attributs de formatage, comme l’indique la figure suivante. Si vous fusionnez plusieurs formes contenant du texte ou un formatage spécial, la forme fusionnée utilise le texte et le formatage de la première forme sélectionnée.

Lorsque vous fusionnez des formesprésentant divers formats et

libellés, la forme que vous obtenezutilise le libellé et les attributs de la

première forme sélectionnée. Lespoignées de sélection du premier

objet sélectionné sont vertes, alorsque celles des objets sélectionnés

par la suite sont bleues.

Fusion de formesPour créer une forme unique à plusieurs sections Géométrie, fusionnez des formes à l’aide des commandes Union, Combinaison ou Jonction du sous-menu Opérations du menu Forme. Contrairement à la commande Grouper, ces commandes fusionnent plusieurs formes et créent une forme unique à plusieurs chemins.

Pour combiner plusieurs formes sélectionnées en une seule :

• Choisissez Forme > Opérations > Union, Combinaison ou Jonction. La forme que vous obtenez comporte plusieurs sections Géométrie qui correspondent aux chemins des formes d’origine.

Lorsque vous fusionnez des formes, les formes d’origine, ainsi que leurs éventuelles formules personnalisées, ne sont pas conservées. Par ailleurs, contrairement aux formes regroupées, aucune action de dissociation ne permet de les récupérer.

REMARQUE : vous pouvez annuler une action Union, Combinaison ou Jonction uniquement s’il s’agit de la dernière opération effectuée sur le document.

A Formes avant fusionB La commande Union fusionne les formes qui se chevauchent en une seule géométrie.C La commande Combinaison fusionne les formes sélectionnées en éliminant le chevauchement et

en conservant la géométrie de chaque forme d’origine.D La commande Jonction fusionne les formes sélectionnées en une seule forme vide et conserve la

géométrie de chaque forme d’origine.

A B C D

Page 142: MS Visio 2003 Guide du Développeur

128 C H A P I T R E 6

Remplissage des formes fusionnéesUne section Géométrie comprend une cellule NoFill qui détermine si le chemin associé peut être rempli, ainsi qu’une cellule NoLine qui détermine si le tracé associé au chemin doit apparaître. Si la cellule NoFill est paramétrée sur TRUE, la forme est vide. Comme un seul jeu d’attributs de formatage peut être appliqué aux formes fusionnées, vous pouvez utiliser ce paramètre pour contrôler au cas par cas l’apparence de chaque section Géométrie dans les formes fusionnées.

Par exemple, vous pouvez fusionner deux formes pleines avec, entre les deux, une flèche vide représentant la relation qui les unit. Une fois que vous avez dessiné les formes et choisi Forme > Opérations > Combinaison pour les fusionner, les trois formes sont remplies, car les formes fusionnées ne peuvent présenter qu’un seul attribut de formatage. Pour que la flèche apparaisse vide, vous pouvez ouvrir la fenêtre ShapeSheet de la forme, identifier la section Géométrie de la flèche et paramétrer sa cellule NoFill sur TRUE.

Lorsque vous paramétrez sur TRUEla cellule NoFill dans la section

Géométrie de la forme, vous pouvezmodifier l’apparence des formes

fusionnées. Dans cet exemple, lacellule NoFill de la sectionGéométrie de la forme est

paramétrée sur TRUE.

Lorsque les géométries pleines d’une forme fusionnée se chevauchent, les chevauchements occasionnés par les chemins fusionnés sont considérés comme se trouvant à l’extérieur des chemins pleins. Ils ne sont donc pas remplis, comme le montre l’exemple ci-après, à gauche. Si un chemin se trouve entièrement à l’intérieur d’un autre, comme dans l’exemple ci-après, à droite, il n’est pas rempli, même si sa cellule NoFill est paramétrée sur FALSE. Pour remplir la forme, définissez la cellule NoFill de cette forme sur TRUE.

A Lorsque des formes fusionnées remplies se chevauchent, le moteur Visio considère les zones de chevauchement comme se trouvant à l’extérieur des formes. Elles ne sont donc pas remplies.

B Ce même principe s’applique lorsque les formes se trouvent à l’intérieur d’une autre forme. Lorsque vous paramétrez sur TRUE la cellule NoFill de la forme de taille inférieure, cette forme est remplie. Si elle contient une autre forme, celle-ci est vide.

A B

Page 143: MS Visio 2003 Guide du Développeur

R E G R O U P E M E N T E T F U S I O N D E F O R M E S 129

Masquage de la géométrie d’une formeUne section Géométrie comporte une cellule AucunAff qui détermine si la géométrie d’une forme est visible. Pour masquer une forme décrite dans une section Géométrie, paramétrez sa cellule AucunAff sur TRUE. Vous pouvez utiliser cette cellule pour créer des formes dont la géométrie n’est pas visible ou visible uniquement dans certains cas.

Par exemple, vous pouvez créer une forme fusionnée représentant un sous-système comportant plusieurs sections Géométrie pour chacun des composants. Selon l’état du sous-système, vous pouvez masquer des formes en paramétrant leur cellule AucunAff sur TRUE dans la feuille de calcul ShapeSheet. Si vous préférez, vous pouvez apporter vos modifications directement dans la fenêtre ShapeSheet. Vous pouvez également ajouter des commandes contextuelles permettant aux utilisateurs de masquer ou d’afficher les différentes parties de la forme. Pour plus d’informations sur l’ajout d’une commande contextuelle déterminant l’affichage de la géométrie d’une forme, reportez-vous à la section « Commandes du menu contextuel », page 138.

Cette forme fusionnée représenteune forme qui peut présenter deuxétats ; lorsque les formes en étoile

sont masquées, seuls les pointsrestent visibles.

Page 144: MS Visio 2003 Guide du Développeur
Page 145: MS Visio 2003 Guide du Développeur

Sommaire

7

Amélioration du comportement des formes

Vous pouvez écrire autant de formules Microsoft® Visio® que vous le souhaitez afin de contrôler l’apparence ou la position d’une forme sur une page. Le comportement d’une forme ne se limite pas à sa géométrie et à son emplacement. Une forme peut fournir des informations aux utilisateurs sous forme visuelle, comme des poignées de contrôle munies d’info-bulles ou des commandes personnalisées dans un menu contextuel. En outre, les utilisateurs peuvent associer à une forme des informations sous la forme de données de propriétés personnalisées ou d’associations de calques. Ces améliorations du comportement permettent à une forme d’être plus réaliste.

Flexibilité des formes grâce aux poignées de contrôle ...................................... 132

Commandes du menu contextuel......................................................................... 138

Propriétés personnalisées ..................................................................................... 146

Formules d’événements ........................................................................................ 152

Page 146: MS Visio 2003 Guide du Développeur

132 C H A P I T R E 7

Flexibilité des formes grâce aux poignées de contrôle

Le comportement de la forme peut notamment être contrôlé en ajoutant des poignées de contrôle à une forme. En outre, cette opération fournit aux utilisateurs une plus grande amplitude d’action. A l’instar des poignées de sélection, les poignées de contrôle se présentent sous la forme de petits carrés verts que les utilisateurs peuvent sélectionner et déplacer. Les déplacements des poignées de contrôle sont répercutés sur la forme par le biais de vos formules. L’avantage essentiel des poignées de contrôle réside dans le fait qu’elles vous permettent de créer une forme en tirant le meilleur parti des entrées utilisateur.

Pour en savoir plus sur l’utilisation des poignées de contrôle, servez-vous des formes fournies avec Visio. Chaque forme munie d’une poignée de contrôle comporte une info-bulle décrivant le comportement de la poignée. La figure suivante illustre les différentes fonctions des poignées de contrôle d’une forme.

Formes de base Visio munies depoignées de contrôle

A Les utilisateurs peuvent faire glisser les traits de dimension et ajuster leur hauteur.B Les utilisateurs peuvent faire glisser les traits de n’importe quelle longueur afin de connecter

l’anneau à jeton.C Les utilisateurs peuvent orienter le fauteuil en fonction d’une autre forme.

CONSEIL : lorsque vous faites glisser une poignée de contrôle, la barre d’état indique les coordonnées locales de la poignée.

Ajout d’une section Points de contrôle à une formePour ajouter une poignée de contrôle à une forme, ajoutez une section Points de contrôle à la feuille de calcul ShapeSheet®, puis modifiez les formules de la ligne appropriée dans la section Points de contrôle. Cette dernière définit les attributs des poignées de contrôle. Chaque ligne de la section Points de contrôle d’une forme correspond à une poignée de contrôle. Les cellules de chaque ligne déterminent les différents aspects du comportement de la poignée de contrôle. Par exemple, la cellule Collage admis détermine si une poignée de contrôle peut être collée à d’autres formes.

Page 147: MS Visio 2003 Guide du Développeur

A M É L I O R A T I O N D U C O M P O R T E M E N T D E S F O R M E S 133

Vous pouvez utiliser la cellule Conseil afin de définir une info-bulle de description qui apparaît lorsqu’un utilisateur place le pointeur sur une poignée de contrôle. Une fois que vous avez ajouté la section Points de contrôle, vous pouvez écrire des formules dans d’autres cellules ShapeSheet faisant référence à une ligne de la section Points de contrôle afin de définir le comportement de cette poignée.

Pour plus d’informations sur la poignée de contrôle d’un bloc de texte, reportez-vous à la section « Contrôle de la position du bloc de texte », page 182.

Définition d’une poignée de contrôleUtilisez les cellules de la section Points de contrôle afin de définir l’emplacement et le comportement des poignées de contrôle d’une forme. Par exemple, vous pouvez créer une bulle de texte dont vous pouvez repositionner la pointe en ajoutant une poignée qui contrôle un sommet de la forme, comme le montre la figure suivante. Dans cet exemple, vous souhaitez que la bulle de texte soit une forme 2D dans laquelle le rectangle de sélection entoure uniquement la partie rectangulaire de manière à ce que la position de la poignée de contrôle n’ait aucune incidence sur le reste de la forme.

Poignée de contrôle (A) définiepour un sommet d’une bulle de

texte. Utilisez une poignée decontrôle pour redimensionner la

pointe.

L’emplacement de la poignée decontrôle est défini par la formule

d’une cellule Géométrie. Pourassocier le sixième sommet à unepoignée de contrôle (A), saisissez

la référence de la poignée decontrôle dans cette cellule

Géométrie (B).

A

1

2

4

3

578

6

B

A

Page 148: MS Visio 2003 Guide du Développeur

134 C H A P I T R E 7

Pour dessiner la forme de la bulle de texte :

1 Utilisez l’outil Trait afin de dessiner le rectangle en inversant sa pointe, comme dans l’illustration suivante.

2 Interdisez toute modification de la largeur/hauteur de la forme en paramétrant la cellule VerrCalcLH sur TRUE dans la section Protection de la feuille de la forme. Vous conservez ainsi le rectangle de sélection du rectangle d’origine lorsque la pointe de la bulle est déplacée à l’aide de la poignée de contrôle.

Dans la procédure suivante, ajoutez une section Points de contrôle et des formules permettant d’associer la poignée de contrôle au sommet de la pointe.

Pour ajouter une poignée de contrôle à la forme de la bulle de texte :

1 Ouvrez la fenêtre ShapeSheet de la forme de bulle de texte, choisissez Insertion > Section, cochez Points de contrôle, puis cliquez sur OK.

REMARQUE : pour ajouter une poignée de contrôle à une forme qui comporte déjà une section Points de contrôle, sélectionnez une ligne Points de contrôle, cliquez dessus avec le bouton droit, puis choisissez Insérer une ligne dans le menu contextuel.

Lorsque vous ajoutez la section Points de contrôle à une forme, une poignée de contrôle présentant les coordonnées Largeur*0, Hauteur*0 est créée et ajoutée à la forme sur la page de dessin. Vous pouvez déplacer la poignée de contrôle à l’aide de la souris, mais cette opération n’a aucun effet tant que vous ne lui avez pas associé la géométrie de la forme. En règle générale, vous l’associez au sommet que la poignée va contrôler.

2 Placez les références à la position de la poignée de contrôle (cellules Points de contrôle.Xn et Points de contrôle.Yn) dans les cellules Géométrie correspondant au sommet que la poignée va contrôler.

1

2

4

3

578

6

Page 149: MS Visio 2003 Guide du Développeur

A M É L I O R A T I O N D U C O M P O R T E M E N T D E S F O R M E S 135

En règle générale, vous saisissez une formule faisant référence à la coordonnée x de la poignée de contrôle dans une cellule X de la section Géométrie et une formule faisant référence à sa coordonnée y dans une cellule Y. Si vous dessinez les segments de bulles de texte dans l’ordre indiqué dans la figure précédente, le sommet de la pointe est contrôlé par la ligne 6 de la section Géométrie. Dans cet exemple, vous saisissez les formules suivantes :

La pointe semble disparaître car vous avez attribué temporairement son sommet aux coordonnées locales 0,0 (résultant des formules par défaut de la poignée de contrôle, Largeur*0, Hauteur*0).

3 Faites glisser la poignée de contrôle dans la fenêtre de dessin afin de faire réapparaître la pointe.

Vous pouvez également déplacer la pointe en modifiant les formules par défaut de la poignée de contrôle (par exemple, en les transformant en Largeur*0,75, Hauteur*-0,5).

4 Les cellules DynamiqueX et DynamiqueY décrivent le point d’ancrage qui est connecté à la poignée de contrôle par un trait noir dynamique lorsque les effets dynamiques sont désactivés. Pour plus d’informations, reportez-vous à la section « Définition du point d’ancrage d’une poignée de contrôle », page 136. Dans cet exemple, utilisez les valeurs par défaut.

5 Dans les cellules ComportementX et ComportementY, saisissez une constante comprise entre 0 et 9 afin de déterminer la manière dont la poignée de contrôle doit être repositionnée lors du redimensionnement de la forme. Dans cet exemple, saisissez les constantes suivantes :

Pour plus d’informations, reportez-vous à la section « Définition du comportement d’une poignée de contrôle », à la page 137 de ce chapitre. Pour obtenir la liste des constantes, recherchez « points de contrôle, section » dans l’aide en ligne Référence du développeur (accessible via ? (Aide) > Référence du développeur) fournie avec Visio.

6 La cellule CollageAdmis d’une poignée de contrôle détermine si une poignée de contrôle peut être collée à d’autres formes. Dans cet exemple, utilisez la valeur par défaut.

;A��A���*"7G ��������1������H��"7*

;A��A���*":G ��������1������H��":*

����������7 �B

����������: �0

Page 150: MS Visio 2003 Guide du Développeur

136 C H A P I T R E 7

7 Dans la cellule Conseil, saisissez une chaîne pour la bulle d’aide de la poignée de contrôle.

La chaîne est automatiquement mise entre guillemets. Dans cet exemple, vous devez saisir la chaîne suivante :

Définition du point d’ancrage d’une poignée de contrôleChaque poignée de contrôle définie est dessinée sur la forme par rapport à un point d’ancrage. Le point d’ancrage est défini par les formules des cellules DynamiqueX et DynamiqueY du point de contrôle. Dans Microsoft® Visio® 2000, une nouvelle fonction appelée Activer les effets dynamiques met à jour la géométrie de la forme lorsque l’utilisateur déplace une poignée de contrôle. Lorsque les effets dynamiques sont désactivés, un trait « élastique » s’étire entre le point d’ancrage et la poignée de contrôle lorsque l’utilisateur fait glisser la poignée. Ce trait fournit une aide visuelle grâce à laquelle les utilisateurs déterminent l’emplacement de destination de la poignée de contrôle et le résultat obtenu au niveau de la forme. L’emplacement du point d’ancrage n’a aucune incidence sur l’apparence de la forme sur la page. Il détermine uniquement l’apparence du trait élastique en cas de déplacement de la poignée de contrôle. Lorsque les effets dynamiques sont activés, le point d’ancrage n’a aucun effet visible. Pour désactiver les effets dynamiques d’un dessin (ils sont activés par défaut), choisissez Outils > Options, cliquez sur l’onglet Dessin, puis désélectionnez l’option Activer les effets dynamiques.

Lorsque l’option Activer les effets dynamiques est désélectionnée dans l’onglet Options avancées de la boîte de dialogue Options (Outils > Options) et qu’un utilisateur déplace une poignée de contrôle, un trait noir apparaît entre le point d’ancrage et la poignée de contrôle. Ce trait s’étire lorsque l’utilisateur fait glisser la poignée.

Vous pouvez définir le point d’ancrage à n’importe quel emplacement par rapport à la forme à l’aide des cellules DynamiqueX et DynamiqueY. Par défaut, le point d’ancrage apparaît à l’emplacement de la poignée de contrôle. Toutefois, vous pouvez positionner le point d’ancrage à un emplacement fixe par rapport à la forme. Par exemple, pour placer le point d’ancrage d’une poignée de contrôle au bas d’une forme, saisissez la formule suivante :

Pour placer le point d’ancrage au centre d’une forme, saisissez les formules suivantes :

������� �#&����������I���������#

�4����J��: �?������@�'

�4����J��7 ������C0

�4����J��: �?�����C0

Page 151: MS Visio 2003 Guide du Développeur

A M É L I O R A T I O N D U C O M P O R T E M E N T D E S F O R M E S 137

Définition du comportement d’une poignée de contrôleLorsqu’un utilisateur étire une forme munie d’une poignée de contrôle, vous pouvez définir le comportement de la poignée en cas d’étirement de la forme (soit elle se déplace dans les mêmes proportions que la forme, soit elle ne bouge pas). Pour que la position d’une poignée de contrôle ne change pas, vous pouvez masquer la poignée de manière à ce qu’aucun utilisateur ne puisse la faire glisser.

Pour modifier les propriétés d’affichage des poignées de contrôle, vous pouvez définir ces valeurs dans la feuille de la forme :

• Paramétrez sur TRUE la cellule PasPoignCtl dans la section Divers afin que les poignées de contrôle n’apparaissent pas lorsqu’un utilisateur sélectionne une forme. Vous obtenez le même résultat que lorsque vous utilisez la cellule ComportementX ou ComportementY pour masquer une poignée. En revanche, vous annulez l’action des paramètres ComportementX et ComportementY qui rendent les poignées visibles. Pour plus d’informations, reportez-vous aux cellules ComportementX et ComportementY du tableau des paramètres suivant.

• Paramétrez sur TRUE la cellule MseAJourRectSél dans la section Protection afin de recalculer le rectangle de sélection d’une forme lorsqu’un utilisateur déplace un sommet. Lorsqu’un sommet est associé à une poignée de contrôle, le rectangle de sélection est mis à jour quand les points de contrôle sont déplacés. Tant que la cellule VerrCalcLH est paramétrée sur TRUE, la cellule MseAJourRectSél n’a aucun effet.

Vous pouvez également utiliser les valeurs des cellules ComportementX et ComportementY dans la section Points de contrôle afin de définir la position et le comportement d’une poignée de contrôle, comme l’indique le tableau suivant. Les cellules ComportementX et ComportementY fonctionnent indépendamment l’une de l’autre.

Paramètres des cellules ComportementX et ComportementY

Visible MasquéeComportement de la poignée de contrôle en cas d’étirement de la forme

0 5 Se déplace dans les mêmes proportions que la forme lorsque celle-ci est étirée.

1 6 Se déplace dans les mêmes proportions que la forme, mais uniquement à l’horizontale (ComportementX) ou à la verticale (ComportementY).

2 7 Se décale d’une distance constante à partir du côté gauche (ComportementX) ou du bas (ComportementY) de la forme.

3 8 Se décale d’une distance constante à partir du centre de la forme.

4 9 Se décale d’une distance constante à partir du côté droit (ComportementX) ou du haut (ComportementY) de la forme.

Page 152: MS Visio 2003 Guide du Développeur

138 C H A P I T R E 7

Par exemple, la figure suivante présente une bulle de texte dotée d’une poignée de contrôle dont la valeur ComportementX est 4 et dont la valeur ComportementY est 2.

Les cellules ComportementX etComportementY déterminent la

position de la poignée de contrôlepar rapport au contour de la forme.

A La poignée de contrôle est décalée d’une distance constante à partir du côté droit et du bas de la forme.

B Si la forme est étirée vers la gauche ou vers le haut à l’aide des poignées, la poignée de contrôle reste ancrée.

C Si la forme est étirée à l’aide des poignées du bas et de droite, la poignée de contrôle est déplacée de manière à conserver le décalage de départ.

Commandes du menu contextuel

Lorsqu’un utilisateur clique avec le bouton droit sur la page de dessin, le menu contextuel qui apparaît présente les commandes qui s’appliquent à la sélection. Vous pouvez définir les commandes qui apparaissent dans le menu contextuel d’une forme et dans le sous-menu Actions du menu Forme. Les lignes de la section Actions d’une forme ou d’une page définissent le nom de la commande et l’action fournie par cette forme ou par cette page.

Par exemple, vous pouvez définir une action appelée Exécuter Programme pour une forme qui calcule la formule suivante lors de son exécution :

Lorsqu’un utilisateur clique avec le bouton droit sur la forme, l’action Exécuter Programme apparaît dans le menu contextuel. Si vous la sélectionnez, le moteur Visio évalue la formule. Dans ce cas, le programme mon_prog.exe est lancé.

REMARQUE : tout comme les cellules Evénements, les cellules Action ne sont calculées que lorsque l’action se produit et non au moment où vous saisissez la formule.

A B C

������ �&%2����2�#���.��"���#�

Page 153: MS Visio 2003 Guide du Développeur

A M É L I O R A T I O N D U C O M P O R T E M E N T D E S F O R M E S 139

Cette partie décrit l’utilisation de formules avec des commandes de menu contextuel. Vous pouvez également personnaliser l’interface utilisateur, notamment les menus contextuels, à l’aide d’Automation. Pour plus d’informations, reportez-vous au chapitre 22, « Personnalisation de l’interface utilisateur Visio »�

Définition d’une commande de menu contextuelVous pouvez créer des commandes de menu contextuel pour la plupart des comportements de formes contrôlés par une cellule ShapeSheet®. Par exemple, vous pouvez créer des commandes de menu contextuel afin d’activer ou de désactiver certaines cellules de la section Protection d’une forme. Vous pouvez également définir des commandes qui modifient les cellules de formatage d’une forme.

Pour définir une commande de menu contextuel pour une forme ou une page :

1 Sélectionnez une forme, puis choisissez Fenêtre > Afficher la feuille ShapeSheet.

Pour afficher la feuille de la page, vérifiez qu’aucun élément n’est sélectionné, puis choisissez Fenêtre > Afficher la feuille ShapeSheet.

2 Si la section Actions n’existe pas, choisissez Insertion > Section. Dans la boîte de dialogue Insérer une section, sélectionnez Actions, puis cliquez sur OK.

Si la section Actions existe mais qu’elle n’apparaît pas, choisissez Affichage > Sections. Dans la boîte de dialogue Afficher les sections, choisissez Actions, puis cliquez sur OK.

Pour ajouter d’autres actions, sélectionnez une cellule dans la section Actions, cliquez avec le bouton droit et choisissez Insérer une ligne dans le menu contextuel.

3 Dans la cellule Action, saisissez la formule devant être calculée lorsque l’utilisateur choisit la commande Action.

Par exemple, vous pouvez créer deux actions parallèles utilisant la fonction DEFF pour verrouiller et déverrouiller le texte de la forme à l’aide des formules suivantes :

4 Dans la cellule Menu, saisissez le nom de la commande à afficher dans le menu contextuel.

Par exemple, saisissez le texte « Verrouiller le texte » pour l’action 1 de manière à ce que la commande Verrouiller le texte apparaisse dans le menu contextuel, et le texte « Déverrouiller le texte » pour l’action 2 de manière à ce que la commande Déverrouiller le texte apparaisse au-dessous.

�������* �� ))�;��&�+�!�E�1�+$�����<�����

�������0 �� ))�;��&�+�!�E�1�+$�����<�+�����

Page 154: MS Visio 2003 Guide du Développeur

140 C H A P I T R E 7

Vous pouvez utiliser la cellule Coché afin d’ajouter une coche à la commande sélectionnée. La cellule Désactivé permet de faire apparaître une commande en grisé. Pour plus d’informations sur l’utilisation de ces cellules, reportez-vous à la section « Contrôle de l’apparence d’une commande de menu contextuel », page 140.�

5 Facultatif : dans la cellule Message, saisissez le message descriptif qui apparaît dans la barre d’état lorsque la commande Action est sélectionnée dans le menu.

Pour tester la nouvelle commande, cliquez avec le bouton droit sur la forme ou sur la page pour afficher le menu contextuel correspondant, puis choisissez la commande Action définie.

CONSEIL : une fois que vous avez ajouté une section Actions à une forme ou à une page, vous pouvez définir rapidement les actions standard à l’aide de la commande Action du menu Edition dans la fenêtre ShapeSheet. La commande apparaît en grisé jusqu’à ce que vous sélectionniez une cellule dans une section Actions. Dans la boîte de dialogue Action, définissez les options Menu et Message, sélectionnez une action, puis cliquez sur OK. Les cellules correspondantes de la section Actions sont mises à jour. Si vous choisissez une action dans la boîte de dialogue, par exemple Aller à la page, la cellule Action contient la formule correspondante.

Contrôle de l’apparence d’une commande de menu contextuelLes actions ajoutées apparaissent par défaut en haut du menu contextuel dans l’ordre dans lequel elles sont répertoriées dans la section Actions. Pour contrôler l’apparence et la position de votre commande Action dans le menu contextuel, vous pouvez placer un préfixe avant le nom dans la cellule Menu. Pour afficher votre commande au bas du menu contextuel, utilisez la syntaxe suivante :

Pour faire apparaître une barre de séparation au-dessus de la commande, utilisez la syntaxe suivante :

Pour associer la commande à un raccourci clavier, placez une esperluette (&) avant la lettre souhaitée, comme dans l’exemple suivant :

�#K ��A��1������#

�#. ��A��1������#

�#L ��A��1������#

Page 155: MS Visio 2003 Guide du Développeur

A M É L I O R A T I O N D U C O M P O R T E M E N T D E S F O R M E S 141

En outre, vous pouvez écrire des formules qui apposent des coches aux commandes sélectionnées, ou qui affichent en grisé les options non applicables. Dans le cas de deux commandes qui s’excluent l’une l’autre, vous passez de l’une à l’autre en masquant et en affichant la commande appropriée.

Commandes cochées dans le menu contextuelLorsque vous définissez plusieurs commandes de menu contextuel pour une forme, vous pouvez indiquer celle qui s’applique à la forme en lui apposant une coche dans le menu. Pour ce faire, paramétrez sur TRUE la cellule Coché de la ligne Actions sélectionnée. Vous pouvez également utiliser une expression logique afin de sélectionner et de désélectionner la commande en faisant référence à une cellule définie par l’utilisateur.

Par exemple, vous pouvez sélectionner les commandes Verrouiller le texte ou Déverrouiller le texte ajoutées à l’exemple précédent. Pour ce faire, saisissez la formule suivante dans la cellule Coché de l’action de verrouillage du texte :

Dans ce cas, lorsque la cellule VerrModifTexte est paramétrée sur la valeur TRUE, la cellule Coché calcule la formule comme étant TRUE. Une coche apparaît à côté du nom de la commande afin d’indiquer que le texte est verrouillé. Vous pouvez également saisir une formule identique pour la seconde action afin de sélectionner la commande Déverrouiller le texte :

Dans cet exemple, la commande Déverrouiller le texte est sélectionnée lorsque la cellule VerrModifTexte est FALSE.

Vous pouvez placer une coche àcôté des commandes définies dans

la section Actions.

����A�* �!�E�1�+$���� ���

����A�0 �!�E�1�+$���� +����

Page 156: MS Visio 2003 Guide du Développeur

142 C H A P I T R E 7

Commandes de menu contextuel en griséPour peaufiner la forme, vous pouvez faire apparaître en grisé les commandes qui ne lui sont pas applicables. Par exemple, lorsqu’un utilisateur choisit la commande Verrouiller le texte, le texte est verrouillé de manière à ce que la commande Déverrouiller le texte soit la seule à être disponible dans le menu. Pour ce faire, dans l’exemple Verrouiller le texte, saisissez la formule suivante dans la cellule Désactivé de la section Actions pour l’action Verrouiller le texte :

Vous pouvez saisir une formule identique dans la cellule Désactivé de l’action Déverrouiller le texte :

Le résultat de la formule de la cellule Désactivé est calculé comme étant TRUE ou FALSE. Lorsque vous sélectionnez la commande Verrouiller le texte, la valeur de la cellule VerrModifTexte est TRUE. L’expression de la cellule Désactivé est calculée comme étant TRUE et la commande Verrouiller le texte apparaît en grisé. Si vous sélectionnez la commande Déverrouiller le texte, la cellule VerrModifTexte est paramétrée sur FALSE. L’expression de la cellule Désactivé 2 est calculée comme étant TRUE et la commande Déverrouiller le texte apparaît en grisé.

Masquage et affichage de commandes dans le menu contextuelLorsqu’une forme ne présente que deux états ou deux attributs dans une situation conditionnelle, comme dans l’exemple Verrouiller le texte et Déverrouiller le texte utilisé précédemment, vous pouvez faire en sorte que les noms de commande soient masqués ou affichés alternativement en modifiant, à l’aide de conditions, le texte qui apparaît sur le menu. Par exemple, pour rendre votre interface utilisateur plus lisible, affichez uniquement une commande de menu à la fois : si le texte est verrouillé, la commande du menu contextuel est Déverrouiller le texte. Si le texte est déverrouillé, la commande est Verrouiller le texte.

Pour créer une commande variable dans le menu contextuel, il vous suffit d’ajouter une ligne dans la section Actions. Ecrivez deux expressions logiques : la première, dans la cellule Action, active ou désactive la valeur VerrModifTexte, la seconde, dans la cellule Menu, détermine la commande à afficher sur la base de la valeur VerrModifTexte :

�A������A�* �!�E�1�+$���� ���

�A������A�0 �!�E�1�+$���� +����

������ �� ))�;��&�+�!�E�1�+$�����<2�$�!�E�1�+$������

E��� ����!�E�1�+$����<#$�����1A�������A#<#$������������A#�

Page 157: MS Visio 2003 Guide du Développeur

A M É L I O R A T I O N D U C O M P O R T E M E N T D E S F O R M E S 143

Si la valeur VerrModifTexte est TRUE, DEFF la paramètre sur FALSE ; dans le cas contraire, si la valeur VerrModifTexte est FALSE, DEFF la paramètre sur TRUE. La formule de la cellule Menu fait également référence à la cellule VerrModifTexte : si elle est TRUE, l’option Déverrouiller le texte apparaît. Si elle est FALSE, la commande Verrouiller le texte est affichée.

Si la forme présente plus de deux états ou commandes de menu, il est préférable, pour des raisons de clarté, d’utiliser la cellule Coché ou Désactivé afin d’identifier les commandes disponibles.

CONSEIL : vous pouvez utiliser la fonction DEFF d’une cellule Evénement ou Action afin de paramétrer la valeur d’une autre cellule sur l’une ou sur l’autre de ses options, ou pour incrémenter les valeurs d’une autre cellule. Comme la formule d’une cellule Evénement ou Action n’est calculée que lorsque l’événement se produit, vous pouvez écrire une formule faisant référence à elle-même à l’aide de la fonction DEFF qui ne lance pas de boucle. Par exemple, pour activer ou désactiver la valeur de la cellule A en fonction de la cellule B, utilisez la syntaxe suivante dans une cellule Evénement ou Action :

� ))�;��&�+����������,�����������3 +����,����,�+�������

Pour incrémenter de 1 la valeur de la cellule, utilisez la syntaxe suivante :

� ))�;��&�+���������,���������-�*��

Pour plus d’informations sur la syntaxe de la fonction DEFF, recherchez « DEFF, fonction » dans l’aide en ligne Référence du développeur (accessible via ? (Aide) > Référence du développeur) fournie avec Visio.

Exemple d’utilisation de commandes de menu contextuel afin de modifier la géométrie d’une formeLes commandes de menu contextuel permettent de contrôler la géométrie d’une forme et, par conséquent, de modifier l’apparence de la forme. Par exemple, vous pouvez créer une forme unique représentant deux états : activé ou désactivé, ouvert ou fermé, embrayé ou désembrayé. Pour ce faire, créez à l’aide de la commande Combinaison une forme fusionnée contenant plusieurs sections Géométrie dans la feuille de calcul ShapeSheet. Dans la section Actions de la forme fusionnée, définissez les commandes de menu contextuel contrôlant l’affichage de la section Géométrie qui représente un état. A titre d’exemple, la figure suivante indique la manière dont vous pouvez afficher ou masquer les accoudoirs d’une chaise de bureau.

Page 158: MS Visio 2003 Guide du Développeur

144 C H A P I T R E 7

Vous pouvez définir les commandesde menu contextuel qui

apparaissent lorsque vous cliquezavec le bouton droit sur la formefusionnée. Dans cet exemple, le

choix de la commande (A) masquela géométrie de l’une des formes

composant la forme fusionnée.

Pour combiner des formes dans une forme fusionnée :

1 Créez les formes à utiliser dans votre forme fusionnée.

Par exemple, pour créer un fauteuil, dessinez un rectangle ou un ovale pour le siège, un pour le dossier et un pour chaque accoudoir.

2 Sélectionnez les formes du fauteuil. Choisissez Forme > Opérations > Combinaison.

Vous créez ainsi une forme regroupant les sections Géométrie de chacune des formes d’origine. Les sections Géométrie sont numérotées selon l’ordre de sélection des formes.

Pour plus d’informations sur la fusion des formes, reportez-vous à la section « Création et contrôle des formes fusionnées », page 126.

Pour ajouter une section Actions à la forme fusionnée et définir des commandes de menu contextuel :

1 Choisissez Fenêtre > Afficher la feuille ShapeSheet.

2 Choisissez Insertion > Section. Sélectionnez Cellules personnalisées et Actions, puis cliquez sur OK.

3 Attribuez un nom à la cellule personnalisée, par exemple Util.Etat, puis saisissez la valeur 1.

La valeur initiale TRUE est activée : les accoudoirs du fauteuil sont visibles.

4 Sélectionnez la première ligne de la section Actions, puis choisissez Insérer > Ligne. La section Actions compte ainsi deux lignes.

5 Pour définir les noms de commande et les actions correspondantes, saisissez les formules suivantes :

������M*N �� ))�;��&�+�%���" ����<����

E���M*N �#�++��������������1���#

������M0N �� ))�;��&�+�%���" ����<+�����

E���M0N �#E��J������������1���#

A

Page 159: MS Visio 2003 Guide du Développeur

A M É L I O R A T I O N D U C O M P O R T E M E N T D E S F O R M E S 145

6 Dans les deux sections Géométrie correspondant aux accoudoirs du fauteuil, saisissez la formule suivante :

Par exemple, si les accoudoirs du fauteuil correspondent aux sections Géométrie3 et Géométrie4, saisissez les formules suivantes :

Mode de fonctionnement des formulesLa formule de la cellule Action utilise la fonction DEFF pour paramétrer la valeur Util.Etat sur TRUE lorsque vous sélectionnez la commande Afficher les accoudoirs ou sur FALSE lorsque vous sélectionnez la commande Masquer les accoudoirs. La cellule Menu définit ces noms de commande.

Pour masquer ou afficher les chemins, saisissez les formules dans la cellule AucunAff de la section Géométrie faisant référence à la valeur de la cellule Util.Etat. La cellule AucunAff détermine si le chemin défini par cette section Géométrie est affiché ou masqué. Dans ce cas, les accoudoirs sont tous deux affichés ou masqués. La même formule est donc utilisée dans les cellules AucunAff des deux sections Géométrie.

La fonction NON renvoie la valeur TRUE si une expression est FALSE et inversement. Lorsqu’un utilisateur choisit Masquer les accoudoirs, Util.Etat est paramétré sur FALSE. La fonction NON retourne alors TRUE de manière à ce que la valeur de la cellule AucunAff soit TRUE. Le chemin et le remplissage du composant correspondant sont ainsi masqués.

;A��A����"2����O �2�$�%���" ����

;A��A���F"2����O �2�$�%���" ����

;A��A���B"2����O �2�$�%���" ����

Page 160: MS Visio 2003 Guide du Développeur

146 C H A P I T R E 7

Propriétés personnalisées

Une forme, quel que soit son degré de complexité, ne représente jamais complètement la réalité. L’objet réel représenté par la forme est souvent associé à des données essentielles : numéros de série, prix, quantité commandée ou quantité en stock, noms, dates, adresses, numéros de téléphone, fabricants, fournisseurs, clients, dimensions, matériaux, résistance à la tension. Pour améliorer les opérations d’analyse et de communication, il peut être judicieux de faire figurer ces informations sur le dessin.

Vous pouvez associer des données à une forme Visio en définissant des propriétés personnalisées dans la feuille de calcul ShapeSheet®, ou en utilisant la fenêtre Propriétés personnalisées ou la boîte de dialogue Définir des propriétés personnalisées. Attribuez à chaque propriété personnalisée un nom unique et définissez au besoin d’autres caractéristiques, telles que le type de données, le format et la valeur par défaut.

Cette section traite de l’utilisation de formules ShapeSheet pour la définition et la modification de propriétés personnalisées. Vous pouvez également utiliser Automation pour intégrer des informations provenant d’autres sources dans vos dessins Visio. Pour plus d’informations, reportez-vous au chapitre 20, « Intégration de données et d’une solution Visio ».

Utilisation de propriétés personnaliséesLes propriétés personnalisées vous offrent toute une gamme de possibilités vous permettant de rendre vos solutions plus élaborées et plus réalistes. En associant des données à votre forme, vous pouvez notamment :

• Ajouter des données lorsque vous créez une forme. Par exemple, vous pouvez définir des propriétés personnalisées de résistance, de tension et d’intensité, et saisir les données correspondantes dans des formes de base qui représentent les composants électroniques. Lorsque l’utilisateur insère l’une des formes dans un dessin, les données sont également insérées.

• Collecter des données auprès d’un utilisateur. L’application Visio peut inviter l’utilisateur à définir les propriétés personnalisées d’une forme de base à chaque insertion dans un dessin. L’utilisateur fournit ainsi les données nécessaires à votre solution. Il peut également afficher et modifier les propriétés personnalisées d’une forme à partir du menu contextuel.

• Afficher des données dans le texte d’une forme. Vous pouvez insérer un champ de texte dans le texte d’une forme afin d’afficher le résultat d’une formule de propriété personnalisée. Un champ de texte peut indiquer une valeur, le résultat d’une formule ou toute valeur globale fournie par le moteur Visio, par exemple le récapitulatif du fichier, ou la date et l’heure actuelles.

Page 161: MS Visio 2003 Guide du Développeur

A M É L I O R A T I O N D U C O M P O R T E M E N T D E S F O R M E S 147

Parfois les données ne sont pas visibles, mais vous préférerez certainement les afficher dans un dessin ou modifier le dessin lorsqu’elles changent. Vous pouvez utiliser les propriétés personnalisées d’une forme afin d’effectuer les opérations suivantes :

• Contrôler le comportement d’une forme. Les propriétés personnalisées sont stockées dans des cellules ShapeSheet et peuvent donc entrer en ligne de compte dans d’autres formules. Ainsi, la géométrie d’une forme peut être liée à ses propriétés personnalisées, et évolue alors selon des données saisies par l’utilisateur.

• Extraire des données d’un dessin. Vous pouvez extraire des données des propriétés personnalisées d’une forme et les transmettre vers une destination externe, par exemple vers une feuille de calcul ou vers une base de données. Pour plus d’informations, reportez-vous au chapitre 20, « Intégration de données et d’une solution Visio ».

• Transférer des données depuis une source externe. Vous pouvez définir des propriétés personnalisées afin d’utiliser les données fournies par une source externe, par exemple par une feuille de calcul ou par une base de données. Pour ce faire, écrivez un programme utilisant Automation pour transmettre le flux de données. Pour plus d’informations, reportez-vous au chapitre 20, « Intégration de données et d’une solution Visio ».

Les propriétés personnalisées peuvent servir de conteneurs pour les données qui proviennent d’une source externe. Elles peuvent aussi fournir une interface de saisie de données pour les formes d’un dessin. Vous pouvez décider de placer simplement les données des propriétés dans la forme ou de les faire interagir avec une source externe.

Par exemple, vous pouvez utiliser les propriétés personnalisées pour mettre à jour une liste de contrôle de stock. Vous pouvez créer un gabarit contenant les formes de base qui représentent les pièces en stock. Pour chaque forme de base, vous pouvez définir les propriétés personnalisées Nom, Coût unitaire et Quantité. Vous avez également la possibilité d’indiquer la valeur de ces propriétés lorsque vous créez les formes. Vous pouvez également laisser les utilisateurs saisir le nom, le coût et la quantité des pièces, et éventuellement définir des messages les invitant à le faire.

Propriétés personnalisées d’uneliste de contrôle de stock

A Forme munie de propriétés personnaliséesB La valeur saisie dans ce champ est la valeur de la cellule Prop.Coût.

A B

Page 162: MS Visio 2003 Guide du Développeur

148 C H A P I T R E 7

Définition des propriétés personnaliséesVous pouvez définir une propriété personnalisée afin de stocker des données (chaîne, données numériques, booléennes, date/heure, durée, devise, liste fixe ou liste variable) avec un objet représenté par une feuille, par exemple une forme, un groupe, une forme de base, un repère, une page ou un document. Une propriété personnalisée est stockée sous la forme d’une ligne ShapeSheet, dont vous pouvez définir le nom et les cellules. Vous pouvez afficher et modifier les propriétés à l’aide des commandes de menu Visio, créer des rapports à partir de ces informations ou faire référence aux valeurs des autres cellules ShapeSheet. Les propriétés personnalisées permettent d’associer des champs de type base de données à une forme ou à une page.

Pour créer une propriété personnalisée contenant les données, sans que ces données n’apparaissent dans la fenêtre Propriétés personnalisées, vous pouvez créer une propriété personnalisée qui n’apparaîtra pas dans la boîte de dialogue Propriétés personnalisées en paramétrant la cellule Invisible sur TRUE. La fonction PROTECTION ne protège pas les données de la cellule Valeur d’une ligne de propriété personnalisée.

Vous pouvez définir les propriétés personnalisées d’une seule forme ou d’une page en ajoutant une section Propriétés personnalisées à sa feuille ou en utilisant la fenêtre Propriétés personnalisées. Lorsque vous modifiez un gabarit, la méthode la plus efficace consiste à définir les propriétés personnalisées de la forme de base du gabarit de manière à ce que chaque occurrence contienne les mêmes propriétés. L’éditeur de propriétés personnalisées permet de définir des propriétés pour un gabarit de base, un gabarit local ou un gabarit autonome.

La fenêtre Propriétés personnalisées permet de connaître en un clin d’oeil les propriétés associées à une page ou à la forme sélectionnée, et fournit une interface permettant de saisir les nouvelles valeurs de ces propriétés.

Vous pouvez attribuer de nouvellesvaleurs aux propriétés

personnalisées dans la fenêtrePropriétés personnalisées.

Page 163: MS Visio 2003 Guide du Développeur

A M É L I O R A T I O N D U C O M P O R T E M E N T D E S F O R M E S 149

Pour ajouter des propriétés personnalisées à une forme ou à une page à l’aide de la fenêtre Propriétés personnalisées :

1 Choisissez Affichage > Fenêtres > Propriétés personnalisées afin d’ouvrir la fenêtre Propriétés personnalisées.

2 Sélectionnez la forme ou cliquez sur la page à laquelle vous souhaitez ajouter des propriétés personnalisées. Cliquez ensuite avec le bouton droit dans la fenêtre Propriétés personnalisées et choisissez Définir les propriétés dans le menu contextuel.

3 Dans la boîte de dialogue Propriétés, saisissez les valeurs des champs Libellé, Nom (correspondant au nom de la ligne dans la fenêtre ShapeSheet), Type, Format, Valeur, Message d'aide et Clé de tri.

4 Cliquez sur Créer pour ajouter des propriétés personnalisées, ou sur OK pour fermer la boîte de dialogue et ajouter les propriétés personnalisées à la forme ou à la page.

Pour ajouter des propriétés à une forme ou à une page à l’aide de la fenêtre ShapeSheet :

1 Sélectionnez une forme ou cliquez dans la page de dessin, puis choisissez Fenêtre > Afficher la feuille ShapeSheet.

2 Si la section Propriétés personnalisées n’existe pas, choisissez Insertion > Section. Dans la boîte de dialogue Insérer une section, sélectionnez Propriétés personnalisées, puis cliquez sur OK.

3 Dans la section Propriétés personnalisées de la fenêtre ShapeSheet, sélectionnez le libellé de ligne Prop.Ligne_1 qui apparaît en rouge. Dans la barre de formule, saisissez un nom évocateur.

Par exemple, saisissez Coût_Unitaire pour créer la propriété personnalisée Prop.Coût_Unitaire. Le libellé de la ligne correspond au nom de la cellule Valeur de cette ligne. Utilisez ce nom (par exemple, Prop.Coût_Unitaire) dans les références de cellule.

4 Dans la cellule Libellé, saisissez le libellé qui apparaît dans la boîte de dialogue Propriétés personnalisées pour cette propriété.

Par exemple, saisissez Coût par unité. Le moteur Visio place automatiquement cette chaîne entre guillemets.

5 Dans la cellule Message, saisissez le texte évocateur ou explicatif qui apparaît dans la boîte de dialogue Propriétés personnalisées lorsque la propriété est sélectionnée.

Par exemple, saisissez Entrez le coût unitaire de cette pièce. Le moteur Visio place automatiquement cette chaîne entre guillemets.

Page 164: MS Visio 2003 Guide du Développeur

150 C H A P I T R E 7

6 Dans les cellules Type et Format, saisissez le type et le format de données pour la valeur de votre propriété personnalisée.

Pour plus d’informations, reportez-vous au tableau suivant.

7 Facultatif : paramétrez la cellule Invisible sur un nombre non nul (TRUE) afin d’empêcher l’apparition de la propriété personnalisée dans la boîte de dialogue Propriétés personnalisées. Paramétrez la cellule Demande sur un nombre non nul (TRUE) afin d’afficher la boîte de dialogue Propriétés personnalisées dès qu’une occurrence de la forme est créée.

Pour afficher la propriété personnalisée définie, sélectionnez la forme dans la page de propriétés ou annulez toutes les sélections pour afficher les propriétés personnalisées de la page. Choisissez ensuite Forme > Propriétés personnalisées.

Types et formats de propriétés personnalisées

TypeFormule de la cellule ShapeSheet Description

Chaîne ����������� ������������

Paramètre par défaut. Utilisez un format image* valide dans la cellule Format (chaînes telles que les paires nombre/unité, les dates, les heures, etc.).

Liste fixe ����������� ������ ����� ���

Affiche dans l’ordre alphabétique les éléments de liste dans une zone de liste déroulante de la boîte de dialogue Propriétés personnalisées. Indiquez les éléments de liste dans la cellule Format. Les utilisateurs ne peuvent sélectionner qu’un élément dans cette liste.

Numérique ����������� ������������

Utilisez un format image* dans la cellule Format afin d’indiquer l’unité de mesure et les autres formats numériques.

Booléen �������� Affiche les éléments FALSE et TRUE que les utilisateurs peuvent sélectionner dans une zone de liste déroulante modifiable de la boîte de dialogue Propriétés personnalisées.

Liste de variables

����������� ������ ����� ���

Affiche les éléments de liste dans une zone de liste déroulante modifiable de la boîte de dialogue Propriétés personnalisées. Indiquez les éléments de liste dans la cellule Format. Les utilisateurs peuvent sélectionner un élément de liste ou saisir un nouvel élément ; les nouveaux éléments sont ajoutés à la liste.

Date/heure ����������� ������������

Utilisez un format image* dans la cellule Format afin d’indiquer les jours, les mois, les années, les heures, les minutes, les secondes, ou tout autre format de date et/ou d’heure.

Durée ����������� ������������

Utilisez un format image* dans la cellule Format afin d’indiquer le temps écoulé en heures, jours, semaines, mois, ou dans d’autres formats de durée.

Page 165: MS Visio 2003 Guide du Développeur

A M É L I O R A T I O N D U C O M P O R T E M E N T D E S F O R M E S 151

* Par exemple, Format = "# #/10 UU" définit le format du nombre 10,92 cm sous la forme "10 9/10 CENTIMETRES" ("10" est le dénominateur et l’unité apparaît sous sa forme développée, en majuscules). Pour plus de détails sur les images présentant un format valide, reportez-vous à la section « Formatage des chaînes et sortie du texte », page 200. Vous pouvez également rechercher « format, fonction » dans l’aide en ligne Référence du développeur fournie avec Visio.

Ajout de propriétés personnalisées à une forme de baseVous pouvez ajouter des propriétés personnalisées à des formes de base comme vous le feriez pour une autre forme. Toutefois, pour modifier simultanément les propriétés personnalisées de plusieurs formes, vous pouvez utiliser l’interface fournie par l’Assistant de l’éditeur de propriétés personnalisées. Vous pouvez choisir de modifier une partie ou l’ensemble des formes de base d’un gabarit donné, les formes de base de document du dessin en cours ou celles d’un autre dessin.

Pour ajouter des propriétés personnalisées à une forme de base :

1 Choisissez Outils > Macros > Editeur de propriétés personnalisées.

2 Suivez les instructions à l’écran afin d’identifier les formes de base à modifier.

L’éditeur ajoute la section Propriétés personnalisées à la forme de base sélectionnée et utilise les données sélectionnées comme valeurs des cellules Libellé, Message, etc.

Pour afficher la propriété personnalisée définie, sélectionnez la forme de base dans le gabarit, puis choisissez Forme > Propriétés personnalisées.

Etablissement d’une liaison entre les propriétés personnalisées et une base de donnéesUne fois que vous avez défini les propriétés personnalisées d’une forme, vous pouvez établir une liaison entre ces données et une base de données. En établissant des liens entre des formes et des enregistrements de base de données, vous pouvez créer des dessins Visio qui donnent une représentation visuelle des données.

Par exemple :

• La base de données du personnel peut vous permettre de créer des cartes de visite pour chacun de vos employés.

• La base de données des spécifications techniques d’une pièce permet de créer des formes de base que vos employés pourront utiliser dans leurs dessins.

• Vous pouvez lier une base de données d’inventaire à un plan d’aménagement de bureau afin d’effectuer le suivi du mobilier et des équipements. Si vous supprimez un fauteuil du plan du bureau, vous supprimez l’enregistrement correspondant de la base de données.

Devise ����������� ������������

Utilisez un format image* dans la cellule Format afin d’indiquer des formats de devise.

Types et formats de propriétés personnalisées (suite)

TypeFormule de la cellule ShapeSheet Description

Page 166: MS Visio 2003 Guide du Développeur

152 C H A P I T R E 7

L’Assistant Base de données permet d’automatiser ce processus. Dans la section Propriétés personnalisées, il lie les valeurs des cellules ShapeSheet à une base de données créée dans une application compatible ODBC (Open Database Connectivity) standard, comme Microsoft® Access 7.0 (ou une version ultérieure), Microsoft® SQL Server ou Oracle SQL Server. Si vous modifiez la base de données, vous pouvez rafraîchir les valeurs des cellules ShapeSheet afin qu’elles prennent en compte ces révisions. Une fois que vous avez lié la forme à l’enregistrement, les informations peuvent circuler entre votre dessin Visio et la base de données. Les deux versions des données sont ainsi synchronisées en permanence.

Lorsque l’Assistant Base de données lie une forme à une base de données, il ajoute les sections Propriétés personnalisées et Cellules personnalisées à la feuille de la forme. L’Assistant stocke des informations sur la clé primaire de la base de données, les champs de la base de données qui sont liés aux cellules ShapeSheet et les dernières données valides extraites de la base de données et utilisées dans les cellules personnalisées.

Pour exécuter cet Assistant, choisissez Outils > Macros > Supplements Visio > Assistant Bases de données. Pour plus d’informations sur les options, cliquez sur le bouton Plus d'infos dans l’Assistant. Vous pouvez également rechercher « Base de données, Assistant » dans l’aide en ligne Référence du développeur (accessible via ? (Aide) > Référence du développeur) fournie avec Visio.

Formules d’événements

De nombreuses méthodes permettent au moteur Visio de déclencher des événements ou de répondre à des événements. Vous pouvez insérer dans les cellules ShapeSheet® des formules qui effectuent une action, par exemple qui exécutent une macro ou qui accèdent à une autre page de dessin en réponse à un événement. Ces formules peuvent être utilisées dans la section Evénements qui gère un groupe d’événements sélectionné, ou dans d’autres cellules. Vous pouvez également utiliser la fonction DEPENDDE afin de simuler d’autres événements dans une section personnalisée. Outre la fonction DEPENDDE, le produit comporte de nombreuses fonctions intégrées de gestion des événements qui déclenchent des actions.

Le moteur Visio prend également en charge l’utilisation d’Automation pour écrire du code permettant de gérer les événements. A l’aide d’Automation, vous pouvez développer des solutions puissantes utilisant des programmes VBA (Microsoft® Visual Basic® pour Applications), des programmes autonomes, ainsi que d’autres approches de gestion des événements plus avancées. Pour plus d’informations, reportez-vous au chapitre 21, « Gestion des événements dans Visio ».

Page 167: MS Visio 2003 Guide du Développeur

A M É L I O R A T I O N D U C O M P O R T E M E N T D E S F O R M E S 153

Utilisation des cellules dans la section Evénements Vous pouvez définir le mode de réponse d’une forme à une action utilisateur en écrivant des formules Visio de gestion des événements. Dès que l’utilisateur effectue l’une des quatre actions décrites dans le tableau ci-dessous, la formule de la cellule ShapeSheet correspondante est calculée et l’action est effectuée. La section Evénements d’une fenêtre ShapeSheet contient les cellules suivantes ; lorsqu’un utilisateur effectue l’une de ces actions, la formule de la cellule est calculée.

Lorsque vous saisissez des formules dans les cellules de la section Evénements, vous déterminez la manière dont la forme répond à chaque événement. Contrairement à la plupart des formules ShapeSheet, les formules d’événement sont calculées au moment où l’événement intervient, et non lorsque vous saisissez la formule ou que les cellules auxquelles la formule fait référence changent. Par conséquent, les cellules Evénements se comportent quelque peu différemment des autres cellules ShapeSheet :

• La valeur affichée dans une cellule Evénements risque de ne pas être à jour ou de ne pas correspondre à la formule de la cellule. Par exemple, supposons que vous saisissiez la formule suivante dans la cellule EvénDblClic :

Cette formule renvoie TRUE ou FALSE. Toutefois, la formule est évaluée lorsque l’utilisateur double-clique sur la forme, et non au moment où la forme est redimensionnée. La valeur TRUE de la cellule concerne donc les éléments qui présentaient cet état la dernière fois qu’un utilisateur a double-cliqué sur la forme.

• L’ordre et le nombre des évaluations d’un événement sont imprévisibles. Par exemple, si une forme est redimensionnée, les valeurs LeTexte et EvénXFMod sont calculées, mais l’ordre dans lequel ces événements déclenchent un calcul n’est pas défini. Toutefois, le moteur Visio calcule chaque cellule au moins une fois dans l’ordre de son choix.

Cellules de la section Evénements

Cellule Evénements Evénement déclenchant la formule

LeTexte Le texte ou le formatage de la forme a changé, ou le texte doit être recréé.

EvénXFMod La position, la taille ou l’orientation de la forme sur la page a changé.

EvénDblClic Vous avez double-cliqué sur la forme.

CréationEvén Une nouvelle occurrence est créée par collage, duplication ou glisser-déplacer d’une forme, ou par insertion d’une forme de base.

LesDonnées Réservé par Visio pour une utilisation ultérieure.

�������/�*��"

Page 168: MS Visio 2003 Guide du Développeur

154 C H A P I T R E 7

Simulation d’événements avec la fonction DEPENDDELa fonction DEPENDDE permet de simuler des événements dans d’autres sections ShapeSheet, par exemple dans la section Montage. Grâce à elle, vous pouvez répondre à des événements qui ne sont pas mentionnés dans la section Evénements. Cette fonc-tion permet également de mieux contrôler la gestion de vos événements.

Par exemple, si vous insérez la formule suivante dans une cellule Montage, le moteur Visio ouvre le bloc de texte de la forme dès que la forme est déplacée :

Dans cet autre exemple, si vous indiquez la formule suivante dans une cellule Montage, le programme complémentaire Mon_prog.exe est lancé dès que la forme est retournée :

REMARQUE : la fonction DEPENDDE n’a aucune incidence lorsqu’elle est utilisée dans une cellule Evénements ou Action. Pour plus d’informations, recherchez « dependde » dans l’aide en ligne Référence du développeur (accessible via ? (Aide) > Référence du développeur) fournie avec Visio.

Fonctions exécutant des actionsLe moteur Visio comporte des fonctions intégrées qui exécutent des actions au lieu de créer une valeur. Ces fonctions sont particulièrement utiles dans les formules d’événements. La liste de fonctions suivante est incomplète. Pour obtenir la liste exhaustive des fonctions, ainsi que des détails sur chacune d’elles, recherchez « fonctions » dans l’aide en ligne Référence du développeur (accessible via ? (Aide) > Référence du développeur) fournie avec Visio.

�%!&�&) 2$ 7$ ���-�� � 2�� ����7<����:�

&%2����2�#���.��"���#��-�� � 2�� �&����������7<�&����������:�

Fonctions à utiliser dans les formules d’événements

Nom de la fonction Description

��� � &.� �#��A1��#,M#�P��#N,M��*,��0,QN�

Appelle une procédure dans un projet VBA et transmet à cette procédure une référence à l’objet Forme qui contient la formule APPELER_CE en cours de calcul, ainsi que les éventuels arguments définis dans cette formule. Par exemple :

��� � &.� �#$�����������"�����#,,?�����,

������

Vous pouvez également insérer un code dans la chaîne de fonction APPELER_CE. Toutes les instructions que vous pouvez saisir dans la fenêtre Exécution de VBA peuvent être indiquées en tant qu’argument APPELER_CE.

Page 169: MS Visio 2003 Guide du Développeur

A M É L I O R A T I O N D U C O M P O R T E M E N T D E S F O R M E S 155

�$$ �2�& ��; �#2��������#� Affiche la page indiquée dans la fenêtre active. Vous pouvez également utiliser une URL :

�$$ �2�& ��; �#����50#��

� ))�;��&�+���������,�

+������ Lors du calcul, le résultat de l’expression dans la formule devient la nouvelle formule de la cellule indiquée. Si la formule est entre guillemets, l’expression est transmise à la cellule. Par exemple :

� ))��;��&�+�E������"�*�,�E������"�*-*�

calcule la formule =Montage.A1+1 et paramètre la formule de la cellule Montage.A1 sur le résultat (valeur précédente incrémentée de 1).

E $$& ��2�#2��)���#R#�����#,����.�����,���,��4����

Si vous utilisez un système doté d’une carte son, vous pouvez lire le son enregistré dans NomDuFichier ou lire l’alias système d’un son si est_alias est un nombre non nul. Si le son ne peut pas être exécuté, l’application Visio émet un bip signalant une erreur. Les sons peuvent être lus de manière synchronisée ou non synchronisée. Par exemple :

���:��%2���#���1"O��#,�',�',�'�

lit le fichier audio CHORD.wav en mode synchrone sans bip d’avertissement.

�%!&�&) 2) %��� Ouvre et affiche une fenêtre ShapeSheet identifiant la forme qui contient cette formule.

�%!&�&) 2$ 7$ �� Ouvre le bloc de test de la forme contenant cette formule. Il s’agit de la formule par défaut de la cellule EvénDblClic des formes.

�%!&�&)��?� &�#2����)�����#� Ouvre un fichier dans une nouvelle fenêtre. Si vous indiquez plusieurs fichiers, les requêtes sont mises en file d’attente et exécutées selon l’ordre de calcul. Le document actif est le dernier à avoir été nommé. Si le document Visio actuel est activé en vue d’une modification visuelle, une nouvelle occurrence de Visio est lancée et affiche le fichier demandé.

���11���#���S��#� Lance la macro indiquée ou le programme complémentaire.

���11����&;��#2���������A�������#,�#�������#�

Lance un programme complémentaire auquel elle transmet la chaîne d’argument indiquée.

Fonctions à utiliser dans les formules d’événements (suite)

Nom de la fonction Description

Page 170: MS Visio 2003 Guide du Développeur

156 C H A P I T R E 7

Remarques concernant les performances des formules d’événementComme les formules d’événements sont calculées chaque fois que l’événement se produit, elles ont une incidence sur l’utilisation et les performances de vos formes. Suivez les instructions générales ci-dessous.

• Utilisez les formules d’événement avec parcimonie. Evitez d’utiliser des formules pour les événements fréquents, tels que le déplacement ou le redimensionnement de la forme (EvénXFMod), ou la modification de son texte (LeTexte). La gestion de ces événements risque d’interrompre le travail de l’utilisateur et de rendre les formes difficilement utilisables.

• Faites en sorte que vos formules d’événement soient aussi simples que possible.

Le calcul d’une formule complexe est long, ce qui diminue les performances de la forme.

• N’oubliez pas que certaines actions peuvent durer plus longtemps que d’autres.

Même une formule d’événement simple peut déclencher une action longue. Par exemple, le lancement d’un programme complémentaire autonome peut prendre plus de temps que l’exécution d’une macro ou que l’accès à une page Web ou à une autre page du même document Visio.

Page 171: MS Visio 2003 Guide du Développeur

Sommaire

8Liaison des formes :formes 1D et collage

Une forme doit-elle se comporter comme une boîte ou comme un trait ? Cette question est l’une des premières que vous devez vous poser lorsque vous concevez une forme. Une forme se comportant comme une boîte (c’est-à-dire une forme 2D) peut subir un étirement vertical ou horizontal. Vous pouvez étirer et faire pivoter en une seule opération une forme qui se comporte comme un trait (c’est-à-dire une forme 1D). Une forme 1D permet en outre de joindre plusieurs formes (elle porte alors généralement le nom de lien). L’attribut collage permet au lien de rester connecté à une autre forme. Dans Microsoft® Visio® 2000, vous pouvez coller les formes 1D et 2D à d’autres formes.

Ce chapitre explique la différence entre les formes 1D et 2D, et décrit le mode de création des différents types de forme 1D. Il explique également le mode d’utilisation du collage pour maintenir les formes jointes les unes aux autres.

Présentation des formes 1D et 2D ........................................................................ 158

Création de liens 1D repositionnables et d’autres types de lien ........................ 161

Contrôle du mode de connexion des formes ...................................................... 169

Page 172: MS Visio 2003 Guide du Développeur

158 C H A P I T R E 8

Présentation des formes 1D et 2D

Préférez une forme 1D si la taille ou la longueur du trait est moins importante que la liaison opérée par la forme. Les formes 1D sont souvent utilisées pour lier d’autres formes et sont alors appelées liens. Dans un diagramme de flux, un schéma électronique ou une illustration de mécanique, par exemple, les formes 1D servent souvent à lier d’autres composants. Elles ne constituent cependant pas toutes des liens. Certaines, comme les légendes ou les traits de dimension, tiennent lieu de lignes ou, dans le cas des secteurs d’un graphique à secteurs, elles sont tout simplement plus faciles à utiliser.

La plupart des formes que vous créez sont initialement en deux dimensions. Leur cadre largeur/hauteur comporte huit poignées de redimensionnement. Toutefois, lorsque vous tracez un arc de cercle ou une ligne, vous obtenez une forme 1D dont les points de départ et de fin sont représentés par des poignées permettant d’ajuster la hauteur. Les formes 1D et 2D diffèrent non seulement par leur apparence, mais aussi par leur comportement sur la page de dessin.

Poignées de sélection sur lesformes 1D et 2D

Lorsqu’un utilisateur insère une forme 1D dans la page de dessin, le rectangle de sélection correspondant apparaît sous la forme d’une ligne droite et non d’une boîte comme dans le cas des formes 2D. L’alignement des formes, par exemple, une forme de mur 1D dans un plan d’aménagement, est ainsi facilité.

Deux des poignées associées aux formes 1D ont une fonction spéciale. Le sommet de début correspond au point de départ et la poignée associée à l’extrémité du trait correspond au point de fin.

Vous pouvez coller le point de départ ou de fin d’une forme 1D à un repère, à un point de repère, à un point de connexion, à un sommet ou à une poignée. Lorsque vous collez une extrémité, l’autre reste ancrée sur la page et la forme 1D s’étire lorsque l’extrémité collée suit le déplacement de la forme à laquelle elle est liée.

A Forme 1DB Point de départC Point de fin

D Forme 2D convertie 1D E Forme 2D

B C

A D E

Page 173: MS Visio 2003 Guide du Développeur

L I A I S O N D E S F O R M E S : F O R M E S 1 D E T C O L L A G E 159

Conversion des formes 1D et 2DIl est possible de convertir une forme 2D en forme 1D et vice versa : une forme ayant l’apparence d’une boîte peut donc se comporter comme un trait. Une telle conversion a des répercussions importantes sur l’affichage des sections dans la fenêtre Feuille ShapeSheet® de la forme.

Pour créer une forme 1D, il est souvent plus simple de tracer une forme 2D approximativement, de la convertir en forme 1D, puis d’ajuster les sommets et de définir des formules personnalisées. Pour gagner du temps et limiter les efforts, tracez la forme initiale horizontalement (c’est-à-dire en faisant glisser le curseur de gauche à droite ou de droite à gauche, selon la direction que la ligne doit suivre). Microsoft® Visio® place les points de fin 1D sur les côtés gauche et droit de la forme tracée. Une forme tracée sur un plan horizontal est plus proche du résultat recherché après la conversion en forme 1D.

La section Points de fin 1D de la fenêtre Feuille ShapeSheet constitue une différence essentielle qui caractérise les formes 1D. Une forme 2D ne comporte pas cette section. La conversion d’une forme 2D en forme 1D ajoute cette section à la fenêtre Feuille ShapeSheet, ainsi que des formules par défaut. En revanche, la conversion d’une forme 1D en forme 2D provoque la suppression de cette section, quelle que soit la protection définie (y compris les fonctions PROTECTION).

Lorsque vous convertissez une forme 2D en forme 1D, la section Alignement est supprimée, et les formules des cellules Largeur, Angle, AxeX et AxeY de la section Transformation de la forme sont remplacées par des formules 1D par défaut. Bien que la conversion d’une forme n’ait aucune incidence sur les points de connexion, les liaisons avec d’autres formes ou repères sont supprimées.

Pour convertir une forme 1D en forme 2D :

1 Sélectionnez une forme.

2 Choisissez Format > Comportement.

3 Dans la zone Style d'interaction, sélectionnez Trait (1D) pour définir une forme 1D ou Boîte (2D) pour définir une forme 2D.

4 Cliquez sur OK.

Visio modifie la forme et ajuste le rectangle de sélection en fonction du comportement sélectionné.

Page 174: MS Visio 2003 Guide du Développeur

160 C H A P I T R E 8

Galerie de formes 1DDes formules personnalisées permettant de générer un comportement intelligent sont associées aux formes 1D illustrées à la figure suivante.

Exemples de formes 1D

Par exemple :

• Les formules du lien S permettent de garantir la position du lien. Lors du déplacement des points de fin de la forme, celle-ci est redimensionnée par étirement des segments horizontaux et verticaux de façon à rester dans la même position.

• Les formules de la forme de vanne déformable permettent de la redimensionner en fonction de la hauteur. Lorsqu’un utilisateur déplace un point de fin, le trait est étiré alors que les détails au centre conservent la même taille. En revanche, si un utilisateur augmente la hauteur de la forme, les détails du milieu sont redimensionnés de façon proportionnelle alors que le trait reste inchangé.

La forme Flèche de la figure précédente peut aussi correspondre à une forme 2D. Pour déterminer si cette forme doit se comporter comme un trait ou une boîte, vous devez définir son utilisation : si la flèche a été conçue pour pointer vers la gauche ou vers la droite, ou vers le haut ou vers le bas uniquement, il est plus facile de positionner la forme 2D verticalement ou horizontalement. Par ailleurs, il est impossible de faire pivoter les formes 2D sans avoir recours à l’outil Rotation, alors que l’angle d’une forme 1D peut facilement être modifié par inadvertance en déplaçant l’un des points de fin. Toutefois, seules les flèches 1D ou celles comportant un point de connexion vers l’extérieur peuvent être liées à d’autres formes par le biais de l’interface utilisateur de Visio (et non à la phase de développement). Pour plus d’informations sur les points de connexion vers l’extérieur, reportez-vous à « Présentation des points de connexion », page 171. Pour plus d’informations sur la liaison de formes lors du développement, reportez-vous au chapitre 19, « Automatisation des connexions d’une solution Visio ».

A Trait de dimension verticalB Lien SC FlècheD Goutte-à-goutte

E Vanne déformableF MurG SecteurH Bus

25%

A B

C

D

E

F G

����

� H

Page 175: MS Visio 2003 Guide du Développeur

L I A I S O N D E S F O R M E S : F O R M E S 1 D E T C O L L A G E 161

Les formes 1D ne nécessitent pas toutes des formules spéciales. Pendant son déplacement, une forme 1D prend l’apparence d’un trait, ce qui rend son positionnement plus rapide dans un dessin. Pensez à utiliser des formes 1D toutes les fois que vous souhaitez créer des formes de base que les utilisateurs seront amenés à aligner avec précision dans un dessin. Par exemple, le positionnement précis d’une légende ou d’une annotation sera facilité si l’utilisateur peut visualiser avec exactitude où pointe le trait.

Création de liens 1D repositionnables et d’autres types de lien

Lors de la conception de solutions de diagrammes comportant des liaisons, vous pouvez soit utiliser les outils Lien intégrés dans Visio, soit créer vos propres liens.

L’outil Lien dynamique, la commande Lier les formes et la forme Lien dynamique génèrent des liens repositionnables entre des formes positionnables. Un lien repositionnable est une forme 1D qui contourne d’autres formes sur la page de dessin au lieu de les traverser. Une forme positionnable est une forme 2D avec laquelle fonctionne le lien repositionnable. La façon dont réagit Visio aux changements tels que l’ajout, la suppression, le redimensionnement et le repositionnement des formes varie selon que les formes du dessin sont positionnables ou repositionnables. Pour répondre à ces modifications, Visio repositionne automatiquement les formes positionnables et repositionnables.

Les liens repositionnables permettent aux utilisateurs de réaliser un important gain de temps lors de la révision de diagrammes avec liaisons complexes. Dans certains cas, vous pouvez cependant préférer un lien au comportement plus prévisible, qui ne se repositionne pas de façon automatique. Par exemple, si un type de dessin nécessite des liens formant toujours un angle de 90 degrés, ou raccordant des formes à l’aide d’un arc de cercle ou d’une courbe spline, vous pouvez créer votre propre lien 1D non repositionnable.

Page 176: MS Visio 2003 Guide du Développeur

162 C H A P I T R E 8

Création de liens repositionnables Vous pouvez créer un lien repositionnable à partir de tous les traits 1D en paramétrant sur 2 la valeur de la cellule TypObj de la section Divers. Le tableau suivant répertorie les valeurs possibles de la cellule TypeObj.

Par défaut, lorsque vous créez une forme 2D, Visio paramètre TypeObj sur Pas de formule, ce qui revient à 0 et signifie que l’application détermine si la forme peut être positionnable en fonction de son contexte. Par exemple, si vous tracez un rectangle simple, la valeur par défaut de la cellule TypeObj est 0. Si vous raccordez ensuite ce rectangle à une autre forme à l’aide de la commande Lier les formes ou de l’outil Lien dynamique, Visio décide que ce rectangle peut être positionnable et attribue la valeur 1 (positionnable) à la cellule TypeObj correspondante. Vous pouvez également créer une forme 1D positionnable (via la fenêtre ShapeSheet® uniquement), utile lorsqu’une forme ne constituant pas un lien est utilisée dans un dessin avec mise en page automatique. Le paramétrage d’une forme 2D en tant que forme repositionnable n’a toutefois aucune incidence sur son comportement.

Si vous créez des formes qui ne doivent pas fonctionner avec des liens repositionnables, paramétrez la cellule TypeObj sur 4. Les liens peuvent être collés aux points de connexion de la forme, mais la forme non positionnable est ignorée dans un diagramme contenant des liens positionnables et repositionnables (c’est-à-dire que ces derniers se comportent comme si la forme n’existait pas).

Pour contrôler le chemin emprunté par un lien repositionnable, définissez son comportement (correspondant à la valeur de la cellule StylePositionForme de la section Mise en page des formes). Par défaut, la valeur de cette cellule est Pas de formule, ce qui revient à 0 et signifie que le lien utilise le comportement défini pour la page.

La commande Outils > Mettre en page les formes permet de définir plusieurs types de comportement pour les formes sélectionnées ou pour la page par combinaison de plusieurs styles de lien avec des directions diverses. Vous pouvez également déterminer le comportement d’une forme ou de la page en paramétrant les cellules Feuille ShapeSheet suivantes :

Valeurs de la cellule TypeObj d’une forme

Valeur Signification

0 Visio décide si la forme est positionnable ou repositionnable en fonction du contexte du dessin.

1 Positionnable

2 Repositionnable

4 Non positionnable, ni repositionnable

Page 177: MS Visio 2003 Guide du Développeur

L I A I S O N D E S F O R M E S : F O R M E S 1 D E T C O L L A G E 163

• Par exemple, en paramétrant la valeur de la cellule StylePositionForme d’un lien sur 7, vous créez un lien repositionnable qui génère toujours une arborescence avec une orientation haut-bas (comme si vous sélectionniez Diagramme de flux/arborescence dans la liste Style et De haut en bas dans la liste Direction, dans la zone Placement de la boîte de dialogue Mettre en page les formes).

• Pour que ce comportement soit celui par défaut de la page, attribuez la valeur 7 à la cellule StylePosition de la section Mise en page de la page (ou sélectionnez Page en cours dans la zone Appliquer à de la boîte de dialogue Mettre en page les formes).

Pour plus d’informations sur les autres paramètres des cellules StylePositionForme et StylePosition, recherchez les noms à l’aide de ces cellules dans l’aide en ligne Référence du développeur (accessible via ? (Aide) > Référence du développeur) fournie avec Visio.

Lorsque vous créez un modèle de diagramme à liens repositionnables et formes positionnables, vous pouvez personnaliser les valeurs par défaut que Visio utilise pour router et positionner les formes. La commande Outils > Mettre en page les formes permet de définir les valeurs par défaut de la page. Les utilisateurs peuvent ne pas prendre en compte les paramètres de la page et modifier les formes qui s’y trouvent ; toutefois, lorsqu’ils créent ou ajoutent des formes positionnables, les paramètres de la page sont utilisés par défaut.

Pour plus d’informations sur la création de diagrammes qui utilisent les liens repositionnables et des formes positionnables, effectuez une recherche à l’aide des mots « mise en page automatique » dans l’aide en ligne fournie avec Visio.

Autres exemples de création de liens 1DLorsqu’une solution requiert un lien dont le comportement puisse être contrôlé à l’aide d’un programme, vous pouvez créer un lien qui n’est pas affecté par le routage automatique. Des formules permettent de contrôler le mode d’étirement d’un lien entre son point de départ et celui de fin.

Page 178: MS Visio 2003 Guide du Développeur

164 C H A P I T R E 8

Création d’un lien avec angleLa figure suivante illustre un lien avec angle comportant deux angles droits (pratique pour créer des diagrammes hiérarchiques tels que des organigrammes). Les formules personnalisées pour ce lien sont présentées ici pour démontrer le type de formule nécessaire au contrôle des formes 1D. D’autres liens 1D sont disponibles dans le gabarit Liens (accessible via Fichier > Ouvrir un gabarit > Suppléments Visio > Liens).

Les quatre types de courbure d’unlien avec angle en cas de

déplacement

A DépartY <= FinYB DépartX > FinXC DépartX <= FinXD DépartY > FinYE Le lien suit toujours une courbure (verticale) de 0,25 po. par rapport au point de départ.

Avec deux coudes placés en son milieu, le lien avec angle dispose de deux sommets nécessitant des formules personnalisées. Pour calculer les coordonnées du premier sommet après le point de départ, n’oubliez pas que la coordonnée x est identique à la valeur du point de départ. La coordonnée y est égale à 0,25 po. si la forme est tracée de bas en haut. Si, en revanche, elle est tracée à partir du haut, y se calcule de la manière suivante :

La valeur x du sommet suivant est identique à celle de la dernière ligne TraitVers qui définit le point de fin de la forme, et, par conséquent, qui correspond toujours à la valeur Largeur ou 0. Sa valeur y est identique à celle du sommet précédent.

�?������5�',08��"

A B

C D

E

Page 179: MS Visio 2003 Guide du Développeur

L I A I S O N D E S F O R M E S : F O R M E S 1 D E T C O L L A G E 165

Pour créer un lien avec angle :

1 Sélectionnez l’outil Trait et tracez une ligne droite 1D de la gauche vers la droite.

2 Choisissez Fenêtre > Afficher la feuille ShapeSheet.

3 Saisissez les formules suivantes dans la section Transformation de la forme :

4 Choisissez Insertion > Section, puis cochez Cellules personnalisées.

5 Dans la section Cellules personnalisées, saisissez le nom de la cellule, tel que Dépl_y, puis saisissez 0,25 po. dans la cellule Valeur.

6 Sélectionnez la dernière ligne de la section Géométrie, puis choisissez Insertion > Ligne après. Répétez cette opération pour ajouter deux lignes.

Chaque ligne correspond à un sommet de la forme.

7 Dans la section Géométrie, saisissez les formules répertoriées dans le tableau suivant.

8 Dans la section Protection, paramétrez sur 1 les cellules VerrHauteur et VerrModifVtx.

Le paramétrage de la cellule VerrModifVtx permet de protéger les formules de géométrie en empêchant les utilisateurs de modifier les sommets de la forme. Le paramétrage de la cellule VerrHauteur permet de protéger la formule relative à la hauteur et supprime les poignées superflues en haut et en bas des liens.

9 Faites glisser le point de départ ou de fin du lien sur la page de dessin pour voir l’angle et le décalage.

Pour permettre aux utilisateurs de modifier la position du coude du lien avec angle en déplaçant une poignée de contrôle, associez Util.Dépl_y à la poignée et verrouillez sa position x de sorte qu’elle puisse uniquement être déplacée dans la direction y.

������ ��&�$ �$��2��3��)��7�>��A��7��

?������ ��&�$ �$��2��3��)��:�>��A��:��

������ ��&�$ �$��2�'�1��"�

Formules personnalisées pour un lien avec angle

Ligne X Y

Départ ����������� ��������������� ����������� ���������������

TraitVers �������������� ����������� ��������� ���� !"�

������#���� ���� !"�

TraitVers �������������$ �������������%

TraitVers ����������� ��������������� ����������� ���������������

Page 180: MS Visio 2003 Guide du Développeur

166 C H A P I T R E 8

CONSEIL : l’Assistant SmartShape permet d’ajouter un lien à une forme. Vous obtenez ainsi un groupe composé de la forme d’origine et d’un trait comportant une poignée de contrôle que vous pouvez coller à une autre forme. Par exemple, vous pouvez ajouter un lien à une forme ne comportant que du texte, puis le coller à une pièce que vous souhaitez annoter dans un dessin.

L’utilisation de cet Assistant permet de créer des liens intégrés qui se connectent de différentes façons, par exemple, du haut vers le bas, côté vers côté, etc. Pour lancer l’Assistant, choisissez Outils > Macros > Suppléments Visio > Assistant SmartShape.

L’Assistant SmartShape n’est pas automatiquement installé avec Visio. S’il n’est pas répertorié dans le chemin Outils > Macros > Suppléments Visio, installez-le à partir du CD-ROM Visio. Pour installer l’Assistant, exécutez de nouveau le programme d’installation de Visio en vous assurant que vous avez sélectionné l’option d’installation de cet Assistant.

Création d’une forme 1D en fonction de la hauteurCertaines formes, telles que la forme 1D de canalisation et vanne illustrée à la figure suivante, peuvent être étirées entre deux points de façon à lier d’autres formes. Vous pouvez créer ce type de forme 1D en tant que forme unique composée de plusieurs éléments de géométrie ayant des comportements de redimensionnement différents. Les points de fin d’une forme 1D contrôlent sa largeur. Lorsqu’un utilisateur fait glisser un point de fin d’une forme de canalisation et vanne, l’étirement porte uniquement sur le composant trait. Lorsqu’il fait glisser une poignée supérieure ou inférieure, seule la vanne est redimensionnée, mais elle conserve ses proportions.

Formules par défaut et formules enfonction de la hauteur pour uneforme de canalisation et vanne

A CanalisationB VanneC Si vous utilisez les formules par défaut, la forme de vanne est déformée, quelle que soit la

direction de l’étirement.D Si vous utilisez les formules en fonction de la hauteur, l’étirement horizontal porte uniquement sur

la longueur de la canalisation.E Si vous utilisez les formules en fonction de la hauteur, la taille de la vanne change de façon

proportionnelle en cas d’étirement vertical.

A

B

C D

E

Page 181: MS Visio 2003 Guide du Développeur

L I A I S O N D E S F O R M E S : F O R M E S 1 D E T C O L L A G E 167

Pour étirer ou réduire une forme de vanne, définissez sa largeur par rapport à sa hauteur à l’aide d’une formule reposant sur la hauteur. Pour créer ce lien en tant que forme unique, dessinez deux segments de droite à chaque extrémité de la forme Vanne, puis sélectionnez Forme > Opérations > Combinaison.

Pour conserver les proportions de la vanne lors du redimensionnement de la forme, définissez les coordonnées x de ses sommets en fonction du centre et de la hauteur de la forme, comme l’indique la figure suivante. Cela permet en outre à la vanne de rester centrée dans le cadre largeur/hauteur. Cette approche nécessite la définition de formules dans la cellule X de la section Géométrie.

Formule reposant sur la hauteurpour une forme 1D composée deplusieurs éléments de géométrie

A Largeur * 0,5 - Hauteur * 1B Largeur * 0,5C Largeur * 0,5 + Hauteur * 1D HauteurE Largeur

Pour créer cette forme de sorte que les lignes Géométrie correspondent toujours aux chiffres et aux tableaux suivants :

1 Sélectionnez l’outil Trait et tracez un trait de gauche à droite pour former le segment gauche de la canalisation.

2 Avec l’outil Trait, tracez la vanne, en commençant au point 1 de la figure précédente.

3 Avec l’outil Trait, tracez le segment droit de la canalisation, de gauche à droite.

4 Sélectionnez les formes dans l’ordre suivant : vanne, trait de gauche et segment de droite.

5 Choisissez Forme > Opérations > Combinaison.

6 Choisissez Format > Comportement.

7 Cochez l’option Trait (1D), puis cliquez sur OK.

Page 182: MS Visio 2003 Guide du Développeur

168 C H A P I T R E 8

Pour contrôler le composant vanne de la forme, ouvrez la fenêtre Feuille ShapeSheet associée à la forme combinée et saisissez les formules répertoriées ci-dessous dans la section Géométrie1.

Pour contrôler le point de jonction du segment gauche de la canalisation et de la vanne (point 6 de la figure précédente), saisissez la formule suivante :

Pour contrôler le point de jonction du segment droit de la canalisation et de la vanne (point 7 de la figure précédente), saisissez la formule suivante :

CONSEIL : lorsque vous tracez des formes 1D telles que la forme de canalisation et vanne, il est souvent nécessaire de dessiner plusieurs formes que, par la suite, vous regroupez ou combinez. La commande Combinaison permet d’obtenir de meilleurs résultats. Si aucun des composants ne doit être sélectionné indépendamment, il est inutile de grouper les éléments, ce qui génère une feuille de groupe. Vous devez toutefois vous assurer que les points de fin de la forme 1D créée sont positionnés correctement.

Visio place toujours le point de départ à gauche de la forme 1D et son point de fin à droite. Si vous dessinez une forme du haut vers le bas et que vous la convertissiez ensuite en forme 1D, les points de fin risquent de ne pas être correctement positionnés. Tracez donc les différents composants de la gauche vers la droite.

Il est déconseillé d’ajouter des formules personnalisées aux formes des composants avant de combiner ces formes car la commande Combinaison les supprime.

Formules personnalisées dans la section Géométrie1 de la forme canalisation et vanne

Ligne X Y

�A����!�� �������@�',8�>�?������@�* �?������@�*

$���!�� �;A��A���*"7* �?������@�'

$���!�� �������@�',8�-�?������@�* �?������@�*

$���!�� �;A��A���*"7F �?������@�'

$���!�� �;A��A���*"7* �;A��A���*":*

;A��A���0"70 �;A��A���*"7*

;A��A���F"7* �;A��A���*"7F

Page 183: MS Visio 2003 Guide du Développeur

L I A I S O N D E S F O R M E S : F O R M E S 1 D E T C O L L A G E 169

Contrôle du mode de connexion des formes

Le comportement qui permet la connexion d’une partie d’une forme à une autre forme est appelée collage. La définition d’un point de connexion permet d’indiquer la partie d’une forme à laquelle une autre forme peut être collée.

Vous pouvez coller les points de fin d’une forme 1D ou un point de connexion vers l’extérieur sur une forme 2D, un repère, un point de repère, un sommet de forme, une poignée de sélection ou un point de connexion (vers l’intérieur ou vers l’intérieur/l’extérieur). Visio crée automatiquement un point de connexion vers l’intérieur sur une forme lorsqu’une autre forme est collée à ses sommets ou à ses poignées.

Lorsqu’un point de fin d’une forme 1D est collé à une autre forme, il reste attaché lorsque vous déplacez cette dernière ; parallèlement, la forme 1D dont le point de fin non collé est ancré sur la page est étirée. Lorsqu’une forme 2D est collée à une autre forme et que vous déplacez cette dernière, la forme 2D suit son mouvement.

Définition du comportement de collage d’un lienVous pouvez associer un comportement de collage point à point ou forme à forme à un lien 1D :

• Lorsque le point de fin d’une forme 1D est fixé à un point de connexion donné, il s’agit d’un collage point à point : la liaison s’opère toujours entre les deux mêmes points, indépendamment du déplacement de la forme. Par défaut, les formes tracées ou toutes les formes non positionnables ou repositionnables ont un comportement de collage point à point.

• En revanche, si le point de fin de la forme 1D passe d’un point de connexion à l’autre pour optimiser la visibilité de la liaison lors du déplacement de la dernière forme, il s’agit de collage forme à forme. Ce dernier est utilisé par les liens repositionnables collés aux formes positionnables : il permet de lier deux formes par la voie la plus courte, ce qui simplifie le dessin.

Lorsque vous créez un lien, vous pouvez faire en sorte qu’il utilise le collage forme à forme pour permettre aux points de fin de se déplacer d’un point de connexion à l’autre lorsqu’un utilisateur déplace les formes auxquelles il est collé. Visio redessine le lien pour qu’il lie les formes au niveau des deux points de connexion les plus rapprochés. Toutefois, pour activer le collage forme à forme, les utilisateurs doivent

Page 184: MS Visio 2003 Guide du Développeur

170 C H A P I T R E 8

appuyer sur la touche Ctrl lorsqu’ils font glisser le lien vers une forme non positionnable. Sinon, le lien utilise le collage point à point. Dans ce dernier cas, les symboles de point de départ ( ) ou de fin ( ) par défaut associés à la poignée de sélection du lien apparaissent en rouge foncé. Si le point de fin utilise le collage forme à forme, sa poignée de sélection est rouge uni.

Un lien défini pour le collage formeà forme permet d’établir une

connexion par collage point à pointou forme à forme.

Pour définir un collage forme à forme ou point à point pour un lien :

1 Sélectionnez une forme, puis choisissez Fenêtre > Afficher la feuille ShapeSheet.

2 Si la section Infos sur le collage n’apparaît pas, choisissez Affichage > Sections. Dans la boîte de dialogue Sections, cochez l’option Infos sur le collage, puis cliquez sur OK.

3 Dans la section Infos sur le collage, saisissez 0 dans la cellule AttacheType pour choisir le collage point à point, ou 3 pour sélectionner le collage forme à forme.

Par défaut, le collage forme à forme établit la connexion suivant la voie la plus courte entre deux points de connexion ou poignées de sélection du milieu de la forme. Vous pouvez indiquer si vous préférez qu’une forme utilisant le collage forme à forme passe par le point de connexion situé en haut, en bas ou sur un côté lorsque le point de fin collé est déplacé. Pour ce faire, paramétrez la cellule LienInsécable de la section Infos sur le collage. Les liens repositionnables passent outre au paramétrage de la cellule LienInsécable ; leur comportement de routage est contrôlé par la valeur de la cellule StylePositionForme. Pour plus d’informations sur les paramètres de la cellule LienInsécable, recherchez « WalkPreference » dans l’aide en ligne Référence du développeur (accessible via ? (Aide) > Référence du développeur) fournie avec Visio.

REMARQUE : lorsqu’un utilisateur colle un lien 1D à une autre forme à l’aide du collage forme à forme, Visio génère une formule qui fait référence à la cellule EvénXFMod de l’autre forme. Lorsque cette dernière est modifiée, Visio recalcule toutes les formules qui font référence à la cellule EvénXFMod, notamment celles des cellules DébAction et FinAction. Ces deux cellules contiennent des formules générées par Visio pour une forme 1D collée à d’autres formes. D’autres formules associées au lien 1D font référence aux cellules DébAction et FinAction, et déplacent les points de départ ou de fin du lien ou en changent la forme selon les besoins.

A Faites glisser un point de fin pour établir une connexion avec collage point à point.

B Appuyez sur la touche Ctrl et faites glisser un point de fin pour établir une connexion avec collage forme à forme.

A B

Page 185: MS Visio 2003 Guide du Développeur

L I A I S O N D E S F O R M E S : F O R M E S 1 D E T C O L L A G E 171

Précision des éléments pouvant être collésLa boîte de dialogue Magnétisme et collage permet de définir les emplacements d’une forme auxquels une autre forme peut être collée sur une page. Par exemple, la plupart des modèles Visio permettent aux utilisateurs de coller les formes 1D aux repères, aux points de repère et aux points de connexion uniquement. Choisissez Outils > Magnétisme et collage et cochez les options Coller à supplémentaires correspondant au dessin ou modèle.

Les formes 2D sont généralement liées entre elles par des formes 1D, mais elles peuvent également être liées par les éléments suivants :

• l’intégralité d’un côté d’une forme à un repère ou à un point de repère ;

• un bord du rectangle de sélection à un repère ;

• une poignée de sélection à un point de repère ;

• une poignée de contrôle à un point de connexion ;

• un point de connexion vers l’extérieur ou vers l’intérieur/l’extérieur à un point de connexion vers l’intérieur ou vers l’intérieur/l’extérieur d’une autre forme.

Présentation des points de connexionLors de la conception d’une forme, vous devez lui associer des points de connexion pour définir les emplacements permettant le collage. Lorsque vous créez des formes de base, pensez aux points dont les utilisateurs auront vraisemblablement le plus besoin pour le collage. Evitez par ailleurs de créer des points supplémentaires qui pourraient nuire à l’efficacité du comportement de la forme.

Le type d’un point de connexion a une incidence sur le collage d’autres formes à ce point ou sur le collage de la forme dotée de ce point de connexion à d’autres formes :

• D’autres formes peuvent être collées à un point de connexion vers l’intérieur. Les points de connexion vers l’intérieur se comportent comme les points de connexion des versions Visio antérieures à Visio 2000. Un point de connexion vers l’intérieur attire, d’une part, les points de fin des formes 1D et, d’autre part, les points de connexion vers l’extérieur ou vers l’intérieur/l’extérieur des autres formes. Les diagrammes tels que les diagrammes de flux et les organigrammes, composés de formes 2D et de liens 1D, nécessitent uniquement des points de connexion vers l’intérieur associés aux formes 2D.

• Une forme dotée d’un point de connexion vers l’extérieur peut être collée à une autre forme. Un point de connexion vers l’extérieur est attiré par les points de connexion vers l’intérieur et vers l’intérieur/l’extérieur d’autres formes. Les diagrammes d’agencement d’espace et les diagrammes CAO composés essentiellement de formes 2D peuvent bénéficier des avantages des points de connexion vers l’extérieur.

Page 186: MS Visio 2003 Guide du Développeur

172 C H A P I T R E 8

• Un point de connexion vers l’intérieur/l’extérieur se comporte comme un point de connexion vers l’intérieur lorsque vous lui collez le point de fin d’une forme 1D ou une forme avec un point de connexion vers l’extérieur. Il se comporte comme un point de connexion vers l’extérieur lorsque vous le collez à une autre forme. Les points de connexion vers l’intérieur/l’extérieur sont pratiques pour les formes qui peuvent être collées ensemble sans contrainte d’ordre. Par exemple, si les formes de segment de mur possèdent un point de connexion vers l’intérieur/l’extérieur à chaque extrémité, l’une ou l’autre des extrémités d’une des formes de segment peut être collée à l’une ou l’autre extrémité d’une autre forme de segment de mur, l’ordre n’ayant aucune importance. Si une forme de ce type possède un point de connexion vers l’extérieur à une extrémité et un point de connexion vers l’intérieur à l’autre, vous êtes tenu de coller une extrémité vers l’extérieur à une extrémité vers l’intérieur, ce qui réduit les possibilités.

REMARQUE : Visio 2000 importe les points de connexion créés dans des versions précédentes des programmes Visio en tant que points de connexion vers l’intérieur sans direction préétablie. Toutes les formules Montage figurant dans les cellules A, B, C et D de ces lignes sont importées sans subir de modification.

La figure suivante illustre une forme de carreau de carrelage dotée de trois points de connexion.

Forme de carreau de carrelagedotée de points de connexion vers

l’intérieur, vers l’extérieur et versl’intérieur/l’extérieur

A Point de connexion vers l’extérieurB Point de connexion vers l’intérieur/l’extérieurC Point de connexion vers l’intérieurD Un point de connexion vers l’intérieur/l’extérieur est attiré par le point de connexion vers

l’intérieur ou vers l’intérieur/l’extérieur le plus proche.

Pour coller un point de connexion vers l’extérieur à un point de connexion vers l’intérieur/l’extérieur, cochez l’option Points de connexion dans la section Coller à de la boîte de dialogue Magnétisme et collage sur le système de l’utilisateur. Lorsqu’un utilisateur fait glisser une forme dotée de points de connexion vers l’extérieur ou vers l’intérieur/l’extérieur, la forme est attirée par le point de connexion vers l’intérieur ou vers l’intérieur/l’extérieur le plus proche. Si une forme comporte plusieurs points de connexion vers l’extérieur, Visio attire le point de connexion le plus proche du pointeur de la souris.

A C

B

D

Page 187: MS Visio 2003 Guide du Développeur

L I A I S O N D E S F O R M E S : F O R M E S 1 D E T C O L L A G E 173

Un point de connexion peut posséder une direction, ou vecteur, qui détermine si les formes pivotent lorsqu’elles sont collées ensemble. A l’origine, si un point de connexion est placé sur les éléments de géométrie d’une forme, son vecteur est perpendiculaire au segment sur lequel le point de connexion est placé. Sinon, le point de connexion est doté d’un vecteur égal à 0 (c’est-à-dire aucune direction). Lorsqu’un point de connexion vers l’extérieur est collé à un point de connexion vers l’intérieur (ou vers l’intérieur/l’extérieur) et que les deux points de connexion sont dotés d’un vecteur différent de zéro, Visio aligne ces deux vecteurs et fait pivoter la forme selon les besoins. Si l’un ou l’autre des points de connexion a un vecteur égal à 0, les formes ne sont pas pivotées.

Le vecteur d’un point de connexiondétermine le mode de rotation

d’une forme lorsqu’elle est collée.

A Vecteur perpendiculaire (par défaut)B Vecteur angulaireC Pour modifier le vecteur d’un point de connexion, sélectionnez ce point de connexion, et faites

glisser la poignée de direction verte et arrondie jusqu’à ce que vous obteniez l’angle souhaité.D Aucun vecteurE Pour éviter qu’une forme pivote lorsqu’elle est collée, faites glisser la poignée de direction sur le

point de connexion. Cette poignée devient grise, ce qui signifie que le point de connexion n’a pas de vecteur.

A BC

D

E

Page 188: MS Visio 2003 Guide du Développeur

174 C H A P I T R E 8

Lorsqu’une forme dotée d’un point de connexion vers l’extérieur est collée, Visio génère des formules dans ses cellules AxeX, AxeY et Angle représentant la liaison de cette forme avec la forme à laquelle elle est collée. Par exemple, les formules suivantes sont celles générées pour l’une des formes collées le long du vecteur perpendiculaire. Cercle1 est le nom de la forme à laquelle elle est collée ; les références à la cellule EvénXFMod de la forme de cercle et la page garantissent que la forme collée sera déplacée ou pivotée selon les besoins pour conserver la liaison. Les formules LOCVERSPAR et ANGLEVERSPAR convertissent les coordonnées locales de la forme collée en système de coordonnées de la forme à laquelle elle est collée (Cercle1).

Comparez les formules AxeX et AxeY d’une forme dotée d’un vecteur égal à 0. Comme la forme n’a fait l’objet d’aucune rotation, Visio ne génère pas de formule Angle.

Ajout de points de connexion à une formeVisio crée automatiquement un point de connexion vers l’intérieur au niveau du sommet ou de la poignée de sélection d’une forme lorsqu’un lien est collé à cet emplacement ; n’ajoutez des points de connexion manuellement que lorsque vous avez besoin d’un point de connexion vers l’intérieur à un emplacement inhabituel, ou d’un point de connexion vers l’extérieur ou vers l’intérieur/l’extérieur.

Pour ajouter un point de connexion à une forme, utilisez l’outil Point de connexion de la barre d’outils. Pour ajouter des points de connexion vers l’extérieur ou changer le type d’un point de connexion, choisissez Outils > Options, cliquez sur l’onglet Options avancées, puis vérifiez que l’option Exécuter sous le mode développeur de la section Paramètres développeurs est cochée.

���7� ����! &���&��2$������*9�����������"70-5',F8FG��"<�

�����*9�����������":0-',F8FG��"�<�

�����*9 �A�7)E�1<������9 �A�7)E�1�

���:� ����! &���&��2$������*9�����������"70-5',F8FG��"<�

�����*9�����������":0-',F8FG��"�<�

�����*9 �A�7)E�1<������9 �A�7)E�1

������ ��2;� ! &���&�5B8�1��<�����*9 �A�7)E�1, �A�7)E�1�

���7� �

�2$7����! &���&��2$������F9�����������"70<�����F9�����������":0�<

�����F9 �A�7)E�1<������9 �A�7)E�1��-5',8��"

���:� �

�2$:����! &���&��2$������F9�����������"70<�����F9�����������":0�<�

�����F9 �A�7)E�1<������9 �A�7)E�1��-'��"

Page 189: MS Visio 2003 Guide du Développeur

L I A I S O N D E S F O R M E S : F O R M E S 1 D E T C O L L A G E 175

Pour créer un point de connexion :

1 Sélectionnez une forme.

2 Sélectionnez l’outil Point de connexion.

REMARQUE : l’outil Point de connexion permet d’ajouter un point de connexion à la forme sélectionnée. Vous devez donc toujours sélectionner la forme à laquelle vous souhaitez ajouter le point de connexion avant d’utiliser cet outil.

3 Effectuez l’une des opérations ci-dessous :

• Pour créer un point de connexion vers l’intérieur, maintenez la touche Ctrl enfoncée, puis cliquez sur l’emplacement où vous souhaitez ajouter ce point.

• Pour créer un point de connexion vers l’extérieur, maintenez les touches Ctrl+Alt enfoncées, puis cliquez sur l’emplacement où vous souhaitez ajouter ce point.

• Pour créer un point de connexion vers l’intérieur/l’extérieur, sélectionnez un point de connexion, cliquez dessus avec le bouton droit et choisissez Vers l'intérieur et l'extérieur dans le menu contextuel.

Lorsque vous ajoutez un point de connexion, Visio ajoute la section Points de connexion dans la fenêtre Feuille ShapeSheet. Cette section contient une ligne qui décrit les coordonnées locales x et y du point, les coordonnées x et y de sa direction, et son type (vers l’intérieur, vers l’extérieur ou vers l’intérieur/l’extérieur). Vous pouvez contrôler le comportement d’un point de connexion lors du redimensionnement de la forme en modifiant les formules de ses coordonnées.

Si vous ajoutez un point de connexion à la géométrie de la forme, Visio oriente le vecteur de direction perpendiculairement au segment sur lequel le point de connexion a été ajouté (vers l’intérieur pour un point de connexion vers l’intérieur, vers l’extérieur pour un point de connexion vers l’extérieur, ou vers l’intérieur et vers l’extérieur pour un point de connexion vers l’intérieur/l’extérieur).

Page 190: MS Visio 2003 Guide du Développeur

176 C H A P I T R E 8

CONSEIL : si l’option Coller sur Géométrie des formes est activée et que l’utilisateur fasse glisser une forme dotée d’un point de connexion vers l’extérieur vers une autre forme, Visio crée automatiquement un point de connexion vers l’intérieur avec le vecteur approprié et colle les formes. Si les formes sont séparées, rompant ainsi le collage, Visio supprime automatiquement le point de connexion créé.

Pour empêcher d’autres formes d’être collées aux éléments de géométrie d’une forme, paramétrez sur TRUE la cellule NoSnap de la section Géométrie de la forme. Cette opération désactive les fonctionnalités de collage et d’attraction des formes 2D, et des éléments de géométrie, de décalage des formes 1D par rapport à ces éléments, et d’attraction des extensions de forme. Par exemple, effectuez ce paramétrage pour empêcher une forme de fenêtre de se connecter à un appareil électrique, ou une chaise d’être connectée à une autre chaise. Le paramétrage de NoSnap implique que les utilisateurs ne peuvent faire pivoter les formes que d’une façon très limitée lorsqu’ils les approchent d’éventuels points d’attraction, et filtre les extensions géométriques superflues.

Attribution d’un nom aux points de connexion Vous pouvez renommer la ligne Points de connexion et faire référence de façon plus explicite aux valeurs contenues dans les cellules X ou Y qu’elle contient. Le nom de cellule que vous saisissez doit être unique au sein de la section. Lorsque vous créez un nom pour une cellule de cette section, Visio attribue le nom par défaut Connections.Ligne_n aux autres cellules de cette section. Si aucune ligne de la section n’est nommée, la cellule du nom est vierge.

Par exemple, pour renommer la cellule de la première ligne, saisissez Personnalisée dans la barre de formule afin de créer le nom de cellule Connections.Personnalisée. Visio attribue le nom Connections.Ligne_2 à la cellule de la deuxième ligne. Pour faire référence à la cellule X de la première ligne, utilisez Connections.Personnalisée.X ou Connections.X1. Pour faire référence à la cellule Y de la première ligne, utilisez Connections.Personnalisée.Y1 ou Connections.Y1. Pour faire référence à la cellule X de la deuxième ligne, utilisez Connections.Ligne_2.X ou Connections.X2, et Connections.Ligne_2.Y ou Connections.Y2 pour faire référence à la cellule Y.

Page 191: MS Visio 2003 Guide du Développeur

L I A I S O N D E S F O R M E S : F O R M E S 1 D E T C O L L A G E 177

Conception de formes de lien dynamiqueDans Visio 2000, un lien dynamique peut être étiré à l’intérieur de la zone délimitant une forme et couper la géométrie de la forme. (La zone délimitant une forme est le plus petit rectangle impossible à faire pivoter entourant le rectangle de sélection de la forme.)

Intersection dynamique avec lagéométrie de la forme

Un lien dynamique peut également être étiré dans des groupes et couper la géométrie d’une forme au sein du groupe. Dans les programmes Visio antérieurs à Visio 2000, le lien dynamique ne pouvait pas être étiré dans la zone délimitant la forme ou au sein des groupes.

Intersection dynamique avec desformes incluses dans des groupes

L’intersection dynamique est activée par défaut pour les formes. Elle implique toutefois que le moteur Visio effectue des calculs complexes qui peuvent avoir une incidence sur les performances de la forme lorsqu’un lien est collé dynamiquement, notamment dans les formes complexes ou composées de plusieurs éléments, ou dans les groupes contenant plusieurs formes.

A Intersection dynamique activée

B Intersection dynamique désactivée

C Intersection dynamique activée pour une forme partiellement en dehors de son rectangle d’alignement. Le lien dynamique « recherche » la géométrie la plus à l’extérieur sur la bordure à laquelle elle est collée.

A B C

A Intersection dynamique activée B Intersection dynamique désactivée

A B

Page 192: MS Visio 2003 Guide du Développeur

178 C H A P I T R E 8

La cellule CodeFixeForme de la section Mise en page des formes permet de contrôler l’intersection dynamique d’une forme. CodeFixeForme contient un nombre entier de huit bits, chaque bit contrôlant un comportement de liaison dynamique. Pour désactiver l’intersection dynamique d’une forme, paramétrez la valeur de sa cellule CodeFixeForme sur sa valeur actuelle à laquelle vous ajoutez 128. Pour activer de nouveau l’intersection dynamique pour cette forme, ôtez 128 de la valeur actuelle de sa cellule CodeFixeForme. Pour plus d’informations sur l’attribution d’autres valeurs à CodeFixeForme sur d’autres valeurs, reportez-vous à l’aide en ligne Référence du développeur (accessible via ? (Aide) > Référence du développeur) fournie avec Visio.

Pour développer des formes ayant de bonnes performances lorsqu’elles sont utilisées avec un lien dynamique, prenez en compte les suggestions suivantes :

• Concevez la forme en veillant à ce que tous ses éléments de géométrie soient à l’intérieur du rectangle de sélection. Vous obtenez ainsi les meilleurs résultats lorsqu’un lien dynamique est collé à la forme.

• Créez des points de connexion sur la forme si vous souhaitez que le lien dynamique soit collé à des emplacements particuliers. Si une forme est dotée d’un point de connexion sur le côté vers lequel le lien dynamique pointe, ce lien sera collé au point de connexion plutôt qu’aux éléments de géométrie de la forme ; les longs calculs provoqués par une intersection dynamique sont ainsi évités.

• Si vous souhaitez empêcher systématiquement le lien dynamique de couper les éléments de géométrie d’une forme, désactivez l’intersection dynamique en paramétrant la cellule CodeFixeForme de la forme. Cette désactivation est tout spécialement recommandée pour les formes incluses dans d’autres formes, comme dans le cas des groupes.

Page 193: MS Visio 2003 Guide du Développeur

Sommaire

9

Création d’un comportement de texte

Par défaut, l’utilisateur peut ajouter du texte à n’importe quelle forme Microsoft® Visio®. Lorsque vous créez des formes, il est important de considérer la position et l’aspect du bloc de texte associé à cette forme. Le texte doit-il pivoter avec la forme ? Doit-il être redimensionné avec la forme ? La forme peut-elle recevoir du texte ?

La variété des comportements possibles d’un texte est infinie, mais, en pratique, quelques comportements seulement s’avèrent utiles. Après tout, l’objectif est de créer du texte lisible ayant un bel aspect. Etant donné qu’un comportement de texte très intelligent implique généralement des formules très longues, très lentes et très complexes, vous devez équilibrer la sophistication du bloc de texte par les utilisations prévues de la forme. Il n’y a pas qu’une réponse simple, mais la cohérence est importante : des formes semblables doivent avoir un comportement de texte semblable.

A propos du texte contenu dans les formes et dans les formes de base.......... 180

Redimensionnement de formes contenant du texte........................................... 185

Contrôle de la rotation du texte ............................................................................ 191

Utilisation des formules de texte .......................................................................... 198

Page 194: MS Visio 2003 Guide du Développeur

180 C H A P I T R E 9

A propos du texte contenu dans les formes et dans les formes de base

Le texte d’une forme ou d’une forme de base dispose d’un système de coordonnées défini par une origine et par des axes relatifs au système de coordonnées locales de la forme. Ce système de coordonnées est appelé bloc de texte. Lorsque vous créez une forme ou une forme de base, le bloc de texte correspondant est, par défaut, exactement de la même taille, en largeur et en hauteur, que la case de la forme ou de la forme de base : il possède la même largeur et la même hauteur, et sa rotation par rapport à la forme est nulle. Par défaut, son axe correspond à son centre.

Les systèmes de coordonnéeslocales d’une forme et son bloc

de texte

A Coordonnées locales de la forme non pivotéeB Bloc de texte pivoté par rapport au système de coordonnées locales de la forme

Le tableau suivant répertorie certains facteurs à considérer lors de la création d’un comportement de texte pour une forme ou une forme de base.

Facteurs à considérer lors de la création d’un comportement de texte

Elément Questions à se poser

Position du bloc de texte

• Quel est son emplacement dans la forme ou dans la forme de base ?

• La forme ou la forme de base doit-elle avoir plusieurs blocs de texte ?

Taille du bloc de texte • Y a-t-il une taille minimale ou maximale ?

• Le bloc de texte doit-il s’agrandir si du texte est ajouté ?

• Le texte doit-il déterminer la taille de la forme ?

• La taille du texte est-elle modifiée par le redimensionnement, la rotation ou le retournement de la forme ?

Apparence du bloc de texte

• Le texte doit-il utiliser un arrière-plan opaque ?

Interaction utilisateur • L’utilisateur peut-il ajouter ou modifier le texte dans une forme ?

• L’utilisateur peut-il déplacer le bloc de texte par rapport à la forme ?

Page 195: MS Visio 2003 Guide du Développeur

C R É A T I O N D ’ U N C O M P O R T E M E N T D E T E X T E 181

Affichage des attributs de texte dans la fenêtre ShapeSheetLa section Transformation du texte de la forme permet de définir la taille, l’emplacement et la rotation du bloc de texte dans le système de coordonnées locales de la forme, tandis que la section Transformation de la forme positionne une forme dans son groupe ou dans la page. Pour afficher la section Transformation du texte, ouvrez la fenêtre ShapeSheet® de la forme ou de la forme de base, puis choisissez Insertion > Section, sélectionnez Transformation du texte, puis cliquez sur OK. Par défaut, la section Transformation du texte contient les valeurs affichées dans le tableau suivant.

Les options de la boîte de dialogue Texte correspondent aux cellules des sections Caractères, Paragraphe, Tabulations et Format de bloc de texte de la forme. Lorsqu’un utilisateur applique une commande de formatage du menu Format, le moteur Visio met à jour les cellules contenues dans ces sections de la feuille de la forme.

Les numéros de ligne affichés dans ces sections reflètent le nombre de caractères (plus spécialement, le nombre d’octets) qui, comme le montre la figure suivante, utilisent le formatage défini dans cette ligne. Par exemple, dans une section Caractères avec les numéros de ligne 18, 16 et 13, le format des 18 premiers caractères du bloc de texte est celui de la première ligne. Le format des 16 caractères suivants est celui de la seconde ligne, et ainsi de suite.

Section Caractères d’une formeavec plusieurs formats de police

Valeurs par défaut de la section Transformation du texte pour une nouvelle forme

Cellule Formule

AngleTexte �'�1��

HauteurTxt �?������@�*

AxeLocXTexte ������$���@�',8

AxeLocYTexte �?�����$���@�',8

AxeXTexte �������@�',8

AxeYTexte �?������@�',8

LargeurTxt �������@�*

Page 196: MS Visio 2003 Guide du Développeur

182 C H A P I T R E 9

En général, si vous écrivez des formules personnalisées dans les sections Caractères, Paragraphe, Tabulations ou Format de bloc de texte, pensez à prendre en compte les actions utilisateur qui pourraient remplacer votre travail. Par exemple, si un utilisateur formate localement des caractères dans un bloc de texte, une nouvelle ligne est ajoutée pour décrire le formatage de ces caractères. Lorsqu’un utilisateur coupe du texte, les lignes concernées sont supprimées. Si vous souhaitez écrire une formule personnalisée dans une cellule de la section Caractères, copiez la formule dans cette cellule sur chaque ligne de la section. Ainsi, si des lignes sont ajoutées ou supprimées, la formule reste intacte.

REMARQUE : si la forme est un groupe, les formules qui renvoient aux cellules Largeur et Hauteur pourraient avoir besoin d’être modifiées afin que vous puissiez accéder aux valeurs du groupe plutôt qu’à celles d’une forme de composant.

Contrôle de la position du bloc de texteLorsque vous développez une forme, il est souvent préférable de déplacer le bloc de texte de son emplacement par défaut pour que le texte s’adapte plus facilement. Par exemple, le bloc de texte de nombreuses formes Visio apparaît, par défaut, au-dessous des formes ; ainsi, lorsque vous saisissez du texte dans le bloc, vous n’obscurcissez pas la forme. Vous pouvez facilement déplacer manuellement le bloc de texte en sélectionnant la forme à laquelle il correspond à l’aide de l’outil Bloc de texte ( )��

Pour déplacer le bloc de textemanuellement, sélectionnez la

forme avec l’outil Bloc de texte,puis faites-la glisser. L’outil Bloc de

texte se transforme alors en unecase double.

Lorsque vous sélectionnez le bloc de texte d’une forme à l’aide de l’outil Bloc de texte, vous pouvez rapidement le redimensionner en faisant glisser une poignée de sélection latérale, ou le faire pivoter en faisant glisser une poignée de rotation. Si vous créez des formes pour les transmettre à d’autres utilisateurs, assurez-vous que le bloc de texte est assez grand pour que ces utilisateurs puissent facilement effectuer des sélections et des ajustements. Il arrive, par exemple, que la taille par défaut du bloc de texte d’une forme 1D soit trop petite pour que l’utilisateur puisse effectuer des sélections et des ajustements à l’aide de l’outil Bloc de texte.

Page 197: MS Visio 2003 Guide du Développeur

C R É A T I O N D ’ U N C O M P O R T E M E N T D E T E X T E 183

Ajout de poignées de contrôle permettant de manipuler un bloc de texteSi vous souhaitez fournir aux utilisateurs de vos formes une méthode plus pratique pour ajuster la position du texte, vous pouvez ajouter une poignée de contrôle permettant de déplacer le bloc de texte.

L’ajout d’une poignée de contrôleau bloc de texte d’une forme facilite

son repositionnement.

Bien que vous puissiez écrire manuellement des formules qui exécutent la même opération, il existe un moyen rapide d’ajouter une poignée de contrôle pour déplacer le bloc de texte : il s’agit de l’Assistant SmartShape. Cet Assistant contient les options qui permettent de paramétrer la position du bloc de texte, puis de définir une poignée de contrôle pour l’axe du bloc.

Pour ajouter une poignée de contrôle à l’aide de l’Assistant SmartShape :

1 Sélectionnez une forme, puis choisissez Outils > Macros > Suppléments Visio > Assistant SmartShape.

2 Dans les options SmartShape, choisissez Personnaliser le texte de la forme, puis cliquez sur Modifier les options.

3 Dans l’écran de positionnement du texte, choisissez la position initiale souhaitée pour le bloc de texte, puis cliquez sur Suivant.

La case Ajouter une poignée de contrôle à la forme est déjà cochée.

4 Suivez les instructions à l’écran pour mettre fin à l’Assistant.

Apparence des poignées de contrôle du texte dans la fenêtre ShapeSheetEn ajoutant une section Points de Contrôle à la forme et en saisissant des formules sur cette ligne, l’Assistant SmartShape permet de définir la poignée de contrôle de l’axe du texte ; si vous ajoutez une poignée de contrôle manuellement, vous devez saisir des formules semblables.

Page 198: MS Visio 2003 Guide du Développeur

184 C H A P I T R E 9

Sur la ligne de la poignée de contrôle, les formules peuvent varier en fonction de la position du bloc de texte choisie. Par exemple, si vous avez centré le bloc de texte au-dessous de la forme, ces formules sont ajoutées à la section Points de Contrôle :

En outre, ces formules sont ajoutées à la section Transformation du texte :

S’il s’agit de la première poignée de contrôle définie pour la forme, n est égal à 1. Si la forme contient des poignées de contrôle prédéfinies, une ligne est ajoutée à la section Points de Contrôle, et n est égal au numéro de cette ligne. Les cellules Xn et Yn indiquent la position de la poignée de contrôle par rapport aux coordonnées locales de la forme. La poignée de contrôle apparaît au centre du bloc de texte.

Les formules contenues dans les cellules DynamiqueX et DynamiqueY définissent la position du point d’ancrage de la poignée de contrôle au centre de la forme. Pour plus d’informations sur les points d’ancrage d’une poignée de contrôle, reportez-vous à la section « Définition du point d’ancrage d’une poignée de contrôle », page 136. Les cellules Comportement X et ComportementY permettent de définir le comportement de la poignée de contrôle une fois qu’elle a été déplacée ou que la forme a été redimensionnée.

Contrôle du texte dans un groupeLorsque vous groupez des formes, un bloc de texte est créé pour le groupe ; vous pouvez aussi exploiter les blocs de texte de chacune des formes constituant le groupe. Par défaut, le bloc de texte du groupe s’ouvre lorsque l’utilisateur appuie sur la touche F2, sélectionne l’outil Texte ( ) ou commence à saisir des caractères. Pour ajouter du texte dans toute autre forme du groupe, l’utilisateur doit tout d’abord sélectionner la forme.

7� �������@�',8�-������$���@�'

:� �?������@�'�-�?�����$���@�5',8

�4����J��7� �� ������C0�

�4����J��:� �� �?�����C0

����������7 �� ���������1������H��"7��/������C0��@�0�-�0

����������: �� ���������1������H��":��/�?�����C0��@�0�-�0

���7$���� ��������1������H��"7�

���:$���� ��������1������H��":�

Page 199: MS Visio 2003 Guide du Développeur

C R É A T I O N D ’ U N C O M P O R T E M E N T D E T E X T E 185

Pour afficher du texte modifiable qui correspond à une forme de base représentant un groupe, il est préférable d’utiliser le bloc de texte du groupe. Par exemple, vous pouvez créer la forme de base d’un panneau de signalisation routière indiquant une limitation de vitesse. Pour permettre à l’utilisateur de modifier facilement la valeur de la limitation de vitesse, vous pouvez utiliser le bloc de texte du groupe qui contient le nombre correspondant à la limitation, tandis que la forme contenue dans le groupe peut contenir le libellé « Vitesse limitée ».

L’utilisation du bloc de texte d’ungroupe facilite la modification du

texte dans les formes de basecréées. Lorsque la forme de baseest un groupe (A), le bloc de textede ce groupe (B) peut contenir letexte que l’utilisateur souhaitera

vraisemblablement modifier.

Vous pouvez empêcher la modification du bloc de texte d’un groupe en désélectionnant l’option Modifier le texte du groupe dans la boîte de dialogue Comportement du groupe (choisissez Format > Comportement) ou en changeant la valeur TRUE de la cellule CibleModifTexte du groupe en FALSE.

Si le bloc de texte du groupe ne peut pas être modifié, le bloc de texte qui s’ouvre lorsque l’utilisateur appuie sur la touche F2, sélectionne l’outil Texte ( ) ou commence à saisir des caractères est celui de la forme de plus haut niveau. Si le bloc de texte d’un groupe ne peut pas être modifié et si la forme de plus haut niveau est elle-même un groupe, les paramètres du bloc de texte de ce groupe permettent de déterminer si le bloc de texte du groupe ou de la forme de plus haut niveau est ouvert.

Pour plus d’informations sur le groupement des formes, reportez-vous au chapitre 6, « Regroupement et fusion de formes ».

Redimensionnement de formes contenant du texte

Une fois le texte modifié ou la forme redimensionnée, le texte associé aux formes doit apparaître correctement. Vous pouvez contrôler le comportement et l’apparence du texte avec des formules qui mettent en corrélation la géométrie de la forme et le texte. Le moyen le plus rapide d’ajouter des formules de texte communes consiste à utiliser l’Assistant SmartShape ; vous pouvez par ailleurs ajouter des formules plus avancées en modifiant les cellules de la fenêtre ShapeSheet®.

Page 200: MS Visio 2003 Guide du Développeur

186 C H A P I T R E 9

Cette section décrit le contrôle de la taille d’un bloc de texte au fur et à mesure que l’utilisateur saisit des informations, le redimensionnement d’une forme en fonction de la quantité ou de la valeur de son texte, les modifications proportionnelles de la police de caractères d’une forme au fur et à mesure du redimensionnement de la forme.

Contrôle de la taille du bloc de texteLorsque vous utilisez l’Assistant SmartShape pour personnaliser le comportement du bloc de texte, l’Assistant suppose que vous souhaitez que le bloc de texte s’agrandisse au fur et à mesure que l’utilisateur y ajoute du texte ; c’est pourquoi il ajoute des formules pour contrôler la taille du bloc de texte. Ces formules permettent de définir les limites initiales du bloc de texte, puis de s’assurer que le bloc de texte peut être redimensionné pour accueillir l’intégralité du texte ajouté. Vous pouvez modifier ces formules ou en créer d’autres qui définissent un comportement différent.

Pour contrôler la taille du bloc de texte, l’Assistant utilise la fonction MAX pour définir la taille maximale permise, et les fonctions HAUTEURTEXTE et LARGEURTEXTE, qui permettent de calculer la largeur et la hauteur du texte composé (leTexte) dans une forme. L’Assistant ajoute ces formules à la section Transformation du texte de la forme :

Contrôle de la largeur du bloc de textePar défaut, la largeur du bloc de texte est paramétrée sur la valeur la plus grande : soit la valeur de la plus longue ligne de texte terminée par un retour chariot, soit la valeur de huit fois la taille de police (ce qui garantit que le bloc de texte est au moins assez large pour contenir un mot ou deux). Si le bloc de texte contient du texte formaté avec plusieurs tailles de police, cette formule utilise la taille de la première police employée dans le bloc de texte lors de la création de la formule.

Pour associer la largeur d’un bloc de texte à une variable : vous pouvez saisir des formules qui associent la largeur d’un bloc de texte à une variable différente, comme la largeur de la forme ou la taille de police du texte ; vous pouvez également définir une largeur fixe pour le bloc de texte. Par défaut, la largeur du bloc de texte est identique à la largeur de la forme. Si vous voulez que le bloc de texte corresponde à la moitié de la largeur de la forme, vous devez entrer la formule suivante dans la section Transformation du texte de la feuille de la forme :

�����$�� �E�7�?�%$ %&$ 7$ ���$�����<�T�@���"$������

?�����$�� ���&; %&$ 7$ ���$����<������$���

�����$�� ������C0

Page 201: MS Visio 2003 Guide du Développeur

C R É A T I O N D ’ U N C O M P O R T E M E N T D E T E X T E 187

Si vous voulez que le bloc de texte corresponde à 20 fois la largeur de la taille de la police, vous devez saisir la formule suivante :

Pour paramétrer la largeur minimale d’un bloc de texte : vous pouvez aussi paramétrer la largeur minimale d’un bloc de texte en utilisant la fonction MIN. Par exemple, cette formule garantit que, lorsqu’une forme est redimensionnée, son bloc de texte ne s’étire pas sur une largeur supérieure à 4 pouces ou n’est pas réduit à une largeur inférieure à 0,5 pouce :

Dans ce cas, la valeur de la largeur minimale du bloc de texte est supérieure soit à 0,5 pouce, soit à la largeur de la forme. La valeur attribué à la largeur minimale est la plus faible valeur de la comparaison valeur maximale/4 pouces.

Pour empêcher le redimensionnement d’un bloc de texte : si vous voulez empêcher le redimensionnement du bloc de texte en cas de redimensionnement de la forme, vous pouvez saisir une largeur fixe pour le bloc de texte. Par exemple, pour paramétrer la largeur d’un bloc de texte sur 2 pouces, vous devez saisir la formule suivante :

Contrôle de la hauteur d’un bloc de texteNormalement, vous voulez que la hauteur d’un bloc s’agrandisse lorsque l’utilisateur y ajoute du texte. Lorsque vous créez le comportement des blocs de texte, vous souhaitez qu’il soit aussi souple que possible de manière à ce que l’utilisateur puisse ajouter tout le texte nécessaire. Par défaut, HauteurTxt est égal à la hauteur de la forme. Lorsque vous utilisez l’Assistant SmartShape, la formule HauteurTxt qu’il saisit renvoie la hauteur du texte composé de la forme, aucune ligne de texte ne dépassant LargeurTxt :

Cette formule renvoie une valeur qui représente la hauteur du texte dans la forme, y compris l’interligne et l’espace avant et après chaque paragraphe du bloc, l’hypothèse étant qu’aucune ligne du bloc n’est plus longue que la valeur maximale de LargeurTxt. Cette formule donne de bons résultats dans la plupart des cas, car elle permet au bloc de texte de s’agrandir en hauteur lorsque l’utilisateur ajoute du texte.

�����$�� �0'�@���"$�����

�����$�� �E�2�B��"<�E�7�',8��"<��������

�����$�� �0��"

?�����$�� ���&; %&$ 7$ ���$����<������$���

Page 202: MS Visio 2003 Guide du Développeur

188 C H A P I T R E 9

Choix de la taille de la forme d’après la quantité de texteVous pouvez créer une forme dont la taille dépend de la quantité de texte qu’elle contient. Si vous souhaitez une forme juste assez grande pour accueillir le texte saisi, comme une bulle ou une légende de texte, utilisez les fonctions HAUTEURTEXTE et LARGEURTEXTE dans les formules de largeur et de hauteur de la forme.

Par exemple, la formule suivante de la section Transformation de la forme limite la largeur d’une forme à la longueur des lignes de texte qu’elle contient, augmentée d’une petite marge :

La fonction renvoie la largeur de tout le texte de la forme (leTexte). La largeur de la forme est limitée à cette valeur plus 0,5 pouce ; lorsque le bloc de texte est vide, la largeur de la forme est de 0,5 pouce. La fonction PROTECTION empêche l’utilisateur d’étirer la forme en largeur avec les poignées de sélection, ce qui provoquerait l’écrasement des valeurs de la cellule Largeur. Pour que l’utilisateur comprenne rapidement que l’étirement manuel de la forme est impossible, vous pouvez aussi paramétrer la cellule VerrLargeur dans la section Protection.

Cette formule associée limite la hauteur d’une forme au nombre de lignes de texte qu’elle contient :

CONSEIL : les fonctions HAUTEURTEXTE et LARGEURTEXTE déclenchent la recomposition par le moteur Visio du texte de la forme à chaque sélection de touche. Pour maximiser les performances, vous pouvez inclure dans la formule un test de taille minimale de manière à ce que le texte s’agrandisse seulement une fois qu’il atteint une largeur ou une hauteur donnée. Au-delà de cette largeur ou de cette hauteur, le moteur Visio doit recomposer le texte à chaque sélection de touche. Par exemple, vous pouvez créer une zone de 2 pouces par 0,5 pouce qui augmente en hauteur pour s’adapter au texte supplémentaire. Pour décaler les problèmes de performances éventuels, la zone ne se redimensionne pas tant que la hauteur du texte n’atteint pas 0,5 pouce. Pour créer ce comportement, ajoutez ces formules dans la section Transformation de la forme :

������ �0��"?������ ��&�$ �$��2�E�7�',8��"<���&; %&$ 7$ ���$����<���������

����� ��&�$ �$��2�?�%$ %&$ 7$ ���$������-�',8��"��

?����� ��&�$ �$��2���&; %&$ 7$ ���$����<�������

Page 203: MS Visio 2003 Guide du Développeur

C R É A T I O N D ’ U N C O M P O R T E M E N T D E T E X T E 189

Choix de la taille de la forme d’après la valeur du texteVous pouvez créer une forme dont la taille est contrôlée par la valeur du texte qu’elle contient. Par exemple, dans un histogramme, vous pouvez faire en sorte que la taille d’une barre dépend de la valeur qu’elle représente. Avec la fonction EVALTEXT, vous pouvez créer des formes d’organigramme simples, ou d’autres formes dans lesquelles l’utilisateur saisit une valeur qui détermine la largeur ou la hauteur de la forme. Par exemple, pour associer la largeur d’une forme à sa valeur de texte, placez la formule suivante dans la section Transformation de la forme :

La fonction EVALTEXT calcule le texte présent dans le bloc de texte de la forme comme s’il s’agissait d’une formule et renvoie le résultat. Par exemple, si vous saisissez 10 cm, la largeur de la forme passe à 10 cm. S’il n’y a pas de texte ou si le texte ne peut pas être calculé, en cas, par exemple, de saisie d’une valeur non numérique, la largeur de la forme est égale à zéro. Vous pouvez affiner davantage la forme en la redimensionnant seulement dans la direction du redimensionnement, dans le cas par exemple d’une barre qui est redimensionnée du côté droit. Pour ce faire, utilisez l’outil de rotation pour déplacer l’axe de la forme vers l’extrémité stationnaire.

Modification de la taille de la police lors du redimensionnement d’une formePar défaut, lorsqu’un utilisateur redimensionne une forme, sa géométrie et le bloc de texte associé sont modifiés, mais pas la taille de la police. Vous pouvez définir la taille de police comme étant une fonction de la géométrie de la forme en utilisant l’Assistant SmartShape ou en écrivant vos propres formules. Les formules traitées dans cette section ajustent uniquement la taille des caractères. Si vous souhaitez modifier les retraits de texte ou l’interligne, vous devez utiliser des formules semblables dans les cellules qui contrôlent ces attributs.

REMARQUE : si une forme doit être utilisée dans des dessins à l’échelle, prenez en compte l’échelle du dessin lorsque vous définissez la taille de la police en tant que fonction de la hauteur de la forme.

Création de formules de redimensionnement du texte à l’aide de l’Assistant SmartShape Vous pouvez utiliser l’Assistant SmartShape pour définir la taille de la police comme étant une fonction de la taille de la forme. Lorsqu’un utilisateur redimensionne la forme, son texte augmente par rapport à la valeur de sa hauteur.

����� ��&�$ �$��2� !��$ 7$���$������

Page 204: MS Visio 2003 Guide du Développeur

190 C H A P I T R E 9

Pour redimensionner le texte à l’aide de l’Assistant SmartShape :

1 Sélectionnez une forme, puis choisissez Outils > Macros > Suppléments Visio > Assistant SmartShape.

2 Dans la zone des options SmartShape, choisissez Personnaliser le texte de la forme, puis cliquez sur Modifier les options.

3 Cliquez sur Suivant jusqu’à ce que l’écran Taille du texte apparaisse, puis choisissez Taille de police proportionnelle.

4 Suivez les instructions à l’écran pour mettre fin à l’Assistant.

L’Assistant paramètre la taille de la police proportionnellement à la hauteur de la forme en ajoutant la formule suivante dans la section Caractères :

La troisième valeur de la formule est un ratio dérivé de la division de la taille d’origine du texte par la hauteur de la forme. Par exemple, si vous utilisez la forme Triangle du gabarit Formes de base sans changer sa taille par défaut, cette valeur peut être comprise entre 0,037 pour le texte qui était à l’origine de 4 points et 1,1852 pour celui qui était à l’origine de 128 points.

Ecriture de formules de redimensionnement personnaliséesSi vous souhaitez que la taille d’une forme et que sa taille de police associée soient redimensionnées proportionnellement, vous pouvez utiliser cette formule générale dans la section Caractères :

Pour améliorer les performances des formes, vous pouvez stocker la formule proportionnelle dans une cellule définie par l’utilisateur. Par exemple, supposons que la hauteur d’origine de la forme soit de 3 cm et que la taille d’origine de la police soit de 10 pt. Insérez la section Cellules personnalisées dans la fenêtre ShapeSheet, puis ajoutez ces formules :

$������ �*�@�?������@�','=B*

$����� ��?�����C6���������������/��@��6�������1�����������

��������/�

%���"$������������ �?�����CF���@�*'�

��"$����� � �%���"$�����������

Page 205: MS Visio 2003 Guide du Développeur

C R É A T I O N D ’ U N C O M P O R T E M E N T D E T E X T E 191

Pour que la taille de la police soit toujours lisible, vous pouvez limiter l’intervalle des tailles acceptables. Par exemple, pour limiter la taille de la police aux valeurs comprises entre 4 et 128 points, vous utilisez les fonctions MIN et MAX, et la formule proportionnelle précédente pour obtenir la formule suivante :

Pour plus d’informations sur la syntaxe de la formule MIN et MAX, reportez-vous à l’aide en ligne Référence du développeur (accessible via ? (Aide) > Référence du développeur) fournie avec Visio.

Veillez à utiliser des tailles de police minimales et maximales prises en charge par les imprimantes et les pilotes du système. Pour garantir la cohérence lorsque la section Caractères d’une forme contient plus d’une ligne, les cellules Taille des lignes associées doivent utiliser les mêmes formules.

Contrôle de la rotation du texte

Pour que l’utilisateur n’ait pas à lire le texte à l’envers, vous pouvez contrôler l’apparence du texte faisant l’objet d’une rotation. Par défaut, lorsqu’une forme est pivotée, le bloc de texte pivote également, ce qui provoque des problèmes de lisibilité dans le cas d’une rotation de 90 à 270 degrés. Si vous créez des formes destinées à être utilisées dans des dessins où la lisibilité est importante, vous pouvez personnaliser le comportement de rotation du texte en utilisant l’une des méthodes suivantes :

• Pour empêcher que le texte soit à l’envers lorsqu’une forme fait l’objet d’une rotation, utilisez la fonction PESANTEUR, qui oriente la ligne de base des lettres vers le côté inférieur ou droit de la page.

• Pour empêcher systématiquement le texte de pivoter, utilisez une formule de rotation inverse pour que le bloc de texte reste droit par rapport au bas de la page lors de la rotation d’une forme.

%���"$������������ �E�2�*0T�<�E�7�B�<�?�����CF���@�*'���

Page 206: MS Visio 2003 Guide du Développeur

192 C H A P I T R E 9

Contrôle de la rotation du texte à l’aide de l’Assistant SmartShapePour accéder à la fonction PESANTEUR et éviter d’afficher du texte à l’envers, ou pour garantir que les blocs de texte sont toujours droits par rapport au bas de la page à l’aide d’une formule de rotation à l’envers, vous pouvez utiliser l’Assistant SmartShape. Par ailleurs, vous pouvez choisir de centrer ou de décaler la pesanteur ou le bloc de texte droit par rapport à la forme. Par exemple, un pointeur de texte comme ceux présentés dans les figures suivantes est formaté avec un arrière-plan de couleur unie tout en restant centré sur la forme. En revanche, si vous créez les formes des rues d’un plan, vous avez la possibilité de décaler les noms des rues par rapport aux lignes qui représentent ces rues.

Le texte peut pivoter ou ne paspivoter avec la forme. Le

comportement par défaut risqued’afficher le texte à l’envers (A). Les

formules de pesanteur ajustentl’orientation du bloc de texte pourplus de lisibilité (B), tandis que les

formules de texte droit font pivoterle bloc de texte à l’envers pour le

maintenir à l’endroit (C).

La rotation est cumulative. Si vous faites pivoter le bloc de texte d’une forme, puis la forme elle-même, le pourcentage de rotation de la forme est ajouté à celui du bloc de texte.

Création d’un texte droit ou application d’une pesanteur à une forme à l’aide de l’Assistant SmartShape :

1 Sélectionnez une forme, puis choisissez Outils > Macros > Suppléments Visio > Assistant SmartShape.

2 Dans la zone Options SmartShape, choisissez Personnaliser le texte de la forme, puis cliquez sur Modifier les options.

3 Cliquez sur Suivant jusqu’à ce que l’écran Rotation de texte apparaisse, puis choisissez Texte droit ou Pesanteur du texte.

4 Suivez les instructions à l’écran pour mettre fin à l’Assistant.

Page 207: MS Visio 2003 Guide du Développeur

C R É A T I O N D ’ U N C O M P O R T E M E N T D E T E X T E 193

Formules de pesanteurLorsque vous choisissez le comportement de pesanteur, l’Assistant SmartShape ajoute cette formule à la section Transformation du texte :

La formule PESANTEUR calcule la rotation du bloc de texte pour la rotation de la forme indiquée. La variable Angle représente la rotation courante de la forme. Si la valeur d’Angle figure dans l’intervalle défini par les deux angles suivants, dans ce cas 60 degrés et 120 degrés, la formule renvoie une valeur de 180 degrés et le bloc de texte fait l’objet d’une rotation de 180 degrés pour une lecture correcte. Si la valeur Angle ne tombe pas dans cet intervalle, la formule renvoie une valeur de 0 degré et le bloc de texte ne fait l’objet d’aucune rotation. Par cette formule, le texte reste droit pour la plupart des angles de rotation. Pour plus d’informations sur la syntaxe de la formule PESANTEUR, reportez-vous à l’aide en ligne Référence du développeur (accessible via ? (Aide) > Référence du développeur) fournie avec Visio.

Sans comportement PESANTEUR,le texte ayant fait l’objet d’une

rotation de 120 à 300(ou –60) degrés (A) apparaît à

l’envers.

Si vous décalez également le bloc de texte de la forme, l’Assistant ajoute des formules aux cellules AxeXTexte et AxeYTexte pour décaler l’axe du bloc de texte en fonction de la taille de la forme et de la quantité de texte qu’elle contient.

Formules de rotation inverse du texte droitSi vous avez utilisé l’Assistant SmartShape pour créer du texte droit, la formule suivante s’ajoute à la section Transformation du texte pour faire pivoter dans le sens inverse le bloc de texte lorsque la forme fait l’objet d’une rotation :

�����$���� �� ��2$ %&������<�5G'1��"<�*0'1��"�

�����$����� ����3�$7�&�&����������7<�&����������:�<������<�>������

Page 208: MS Visio 2003 Guide du Développeur

194 C H A P I T R E 9

Cette formule permet de vérifier si la forme a été retournée, et détermine l’angle à utiliser en fonction de ces informations. Si la forme a été retournée dans les deux dimensions ou n’a pas été retournée du tout (si RetournementX et RetournementY sont soit tous les deux TRUE, soit tous les deux FALSE), la formule BITXOR renvoie la valeur FALSE et la formule SI renvoie la valeur Angle. L’angle d’origine est conservé si la forme a été retournée dans une dimension seulement (si RetournementX ou RetournementY est TRUE). Le moteur Visio écrit seulement les valeurs FALSE (0) ou TRUE (1) dans les cellules RetournementX et RetournementY, pour que vous puissiez partir du principe que ce sont les seules valeurs présentes.

Si la forme ne doit jamais être retournée, vous pouvez utiliser une formule plus simple pour faire pivoter le bloc de texte à l’envers :

Si vous faites pivoter le bloc de texte d’une forme (de manière à ce qu’AngleTexte > 0 degré), puis faites pivoter la forme, l’angle de texte apparent correspond alors à la somme des valeurs d’AngleTexte et d’Angle.

Exemples de contrainte de taille du bloc de texte Avec l’Assistant SmartShape, vous pouvez créer un comportement de texte droit pour une variété de cas fréquents, mais vous pouvez avoir besoin d’un contrôle supplémentaire. Lorsque vous créez du texte droit pour une petite forme, la forme peut être obscurcie par le texte s’il est volumineux ou si la forme est pivotée. A l’aide des formules décrites ci-dessous, vous pouvez contraindre la largeur du bloc de texte pour l’adapter aux formes.

Lorsque vous créez lecomportement de texte d’une

forme, vous pouvez empêcher letexte d’obscurcir cette forme.

�����$����� �5�����

A Un texte droit centré peut obscurcir la forme lorsqu’il fait l’objet d’une rotation, et par défaut, contraint la largeur du bloc de texte.

B Des formules intelligentes élargissent le bloc de texte si la forme fait l’objet d’une rotation.

Page 209: MS Visio 2003 Guide du Développeur

C R É A T I O N D ’ U N C O M P O R T E M E N T D E T E X T E 195

Contrainte de largeur d’un bloc de texte droitAvec certaines formes, comme les flèches 1D ou les formes courtes, il ne suffit pas de faire pivoter le texte à l’envers pour le maintenir droit. Au fur et à mesure que la forme pivote, le texte droit peut obscurcir des parties de la forme, comme dans la figure précédente, notamment lorsque le bloc à l’arrière-plan opaque est centré horizontalement et verticalement sur la forme. Vous pouvez écrire des formules qui maintiennent le bloc de texte droit et ajustent sa largeur lorsqu’un utilisateur fait pivoter la forme ou ajoute du texte.

Lorsque vous utilisez la formule de rotation inverse décrite dans la section « Formules de rotation inverse du texte droit », page 193, le bloc de texte reste droit tandis que la forme pivote. Les formules Transformation du texte par défaut adaptent la largeur du bloc de texte à la largeur de la forme, ce qui peut s’avérer inutile ou non esthétique si la forme est étirée lors de sa rotation. Pour adapter la largeur du bloc de texte à la largeur de la forme seulement si la forme est pivotée jusqu’à 15 degrés par rapport à l’horizontale, utilisez les formules suivantes :

Pour plus de lisibilité, la formule de la cellule LargeurTxt ci-dessus conserve au bloc de texte une largeur d’au moins 0,5 pouce. Si la forme fait l’objet d’une rotation au-delà de la limite définie dans la cellule B1 de la section Montage, la largeur du bloc de texte est paramétrée sur 2,5 pouces ; sinon, pour empêcher le texte d’obscurcir la forme, elle est paramétrée sur la largeur de la forme moins 0,25 pouce. La formule contenue dans la cellule Montage.B1 effectue le test de rotation, et renvoie FALSE si le bloc de texte est limité par la largeur de la forme ou TRUE si la largeur du texte n’est pas limitée. La formule contenue dans la cellule A1 génère un angle de forme normalisé d’une valeur comprise entre 0 et 180 degrés pour déterminer la déflection par rapport à l’horizontale.

Ces formules fonctionnent, mais elles échouent pour les formes courtes qui sont proches de la limite horizontale et qui ont du texte large. Une solution plus élaborée doit prendre en compte la largeur de la forme ainsi que la largeur et la profondeur composées du texte. Vous devez néanmoins noter que ce comportement amélioré peut être contrebalancé par des performances moindres.

E������"�* �� ;�E��%�%�������<�*T'�1��"��

E������"3* ��2��E������"�*�/ �*8�1��"<�E������"�*�6 �*G8�1��"�

�����$�� �E�7�',8��"<����E������"3*<�0,8��"<�������>�',08��"��

?�����$�� �',08��"

�����$���� ����3�$7�&�&����������7<�&����������:�<������<�>������

Page 210: MS Visio 2003 Guide du Développeur

196 C H A P I T R E 9

Contrôle de la largeur d’un bloc de texte droit décaléVous pouvez utiliser l’Assistant SmartShape pour personnaliser le bloc de texte d’une forme afin qu’il reste droit tout en étant décalé par rapport à la forme. Par exemple, dans un plan d’aménagement de l’espace, vous pouvez, comme le montre la figure suivante, déplacer et faire pivoter les meubles tout en conservant les libellés au même endroit. Pourtant, en fonction de l’alignement du bloc de texte, de la rotation de la forme et de la quantité de texte, le bloc peut obscurcir la forme. Vous pouvez écrire des formules de manière à ce que le bloc de texte reste toujours décalé par rapport à la limite imaginaire qui définit les côtés de la forme.

Décalage du texte droit par rapportà une forme

Les formules permettant de créer ce comportement sont les suivantes :

A L’angle le plus proche du bloc de texte est décalé par rapport au côté de la forme.

B Au fur et à mesure de l’ajout du texte, le décalage change pour que le bloc de texte n’écrase pas la forme.

�����$�� �E�7�T�@���"$�����<�?�%$ %&$ 7$ ���$������

?�����$�� ���&; %&$ 7$ ���$����<������$���

�����$���� ����3�$7�&�&����������7<�&����������:�<������<�>������

���7$���� �������-�������$��C0�@��3���������������

-�?�����$��C0�@��3����2���������

���:$���� �?�����C0

Page 211: MS Visio 2003 Guide du Développeur

C R É A T I O N D ’ U N C O M P O R T E M E N T D E T E X T E 197

Les cellules LargeurTxt et HauteurTxt permettent au bloc de texte de s’agrandir au fur et à mesure de l’ajout du texte. Dans la cellule AngleTexte, la formule de rotation inverse permet de conserver le texte droit. Le décalage de l’axe du bloc de texte (AxeXTexte) est calculé à partir de l’hypothèse selon laquelle, dans le système de coordonnées locales de la forme, le côté du bloc de texte se trouve à l’extérieur du bord de la forme. La figure suivante montre que le décalage correspond à la somme des lignes 1 et 2.

Calcul du décalage du bloc de texte

La ligne 1 correspond au côté d’un triangle rectangle dont l’hypoténuse est égale à HauteurTxt/2 ; sa longueur est calculée à l’aide de la cellule Angle de la section Transformation de la forme dans la formule suivante :

La ligne 2 correspond au côté d’un triangle rectangle dont l’hypoténuse est égale à LargeurTxt/2 ; sa longueur est calculée à l’aide de la formule suivante :

A Bord de la formeB LargeurTxt/2

C HauteurTxt/2D Décalage AxeXTexte = 1 + 2

������*� ��?�����$��C0��@��3����2��������

������0� �������$��C0��@��3�������������

A

B

C

D

12

Page 212: MS Visio 2003 Guide du Développeur

198 C H A P I T R E 9

Le décalage est toujours une valeur positive, même lorsque la forme fait l’objet d’une rotation ayant une valeur d’angle négative, car la fonction ABS est toujours utilisée pour renvoyer la valeur absolue des lignes 1 et 2. Ce type de calcul du décalage ne nécessite pas de formules supplémentaires pour empêcher le bloc de texte d’écraser la forme au moment de sa rotation.

Utilisation des formules de texte

La modification des formules de texte d’une forme permet de définir, dans les solutions que vous développez, un comportement des formes très élaboré. Vous pouvez afficher les valeurs des formules que vous saisissez et formater ces valeurs pour qu’elles reflètent davantage le rôle de la forme. Cette section traite de certaines des approches les plus avancées que vous pouvez utiliser lors de la modification des formules de texte d’une forme ; elle fournit par ailleurs des informations sur la protection des formules que vous créez et sur le test des formes permettant de garantir que leur comportement correspond à vos attentes.

Affichage et formatage des résultats d’une formule Vous pouvez afficher les résultats d’une formule et formater ses résultats. Lorsque vous sélectionnez le bloc de texte, puis choisissez Insertion > Champ, le champ de texte créé correspond réellement à la valeur issue de la formule calculée dans une cellule ShapeSheet® convertie en texte. Vous pouvez utiliser les mêmes techniques pour développer des champs de texte personnalisés comme ceux que vous utilisez dans la fenêtre ShapeSheet tout en affichant les résultats formatés dans la forme même.

Lorsque vous créez une formule pour un champ de texte, la formule apparaît dans la section Champs de texte de la fenêtre ShapeSheet de la forme. Les formules apparaissent dans leur ordre d’insertion dans le texte, pas nécessairement dans leur ordre d’affichage.

Affichage de la largeur d’une forme dans différentes unitésVous pouvez utiliser des champs de texte pour indiquer la largeur d’une forme en pouces, en centimètres, en points, etc. Pour ce faire, vous pouvez utiliser la fonction FORMATEX pour indiquer les unités que vous souhaitez afficher pour le résultat.

La fonction FORMATEX utilise la syntaxe suivante :

)�&E�$ 7���������<�#�����#<�M#����A5���A�#N<�M#����A5�����#N�

Page 213: MS Visio 2003 Guide du Développeur

C R É A T I O N D ’ U N C O M P O R T E M E N T D E T E X T E 199

Cette fonction renvoie le résultat de l’expression calculé en unité-entrée sous la forme d’une chaîne de formatage en fonction de l’image exprimée en unité-sortie. Le format image est un code qui indique la manière dont le résultat doit être formaté. Si vous indiquez une unité-entrée et une unité-sortie, utilisez une valeur numérique ou une unité de mesure correctement orthographiée ou abrégée (po, po., pouce, etc.). Si vous ne précisez pas d’unité-entrée, les unités de l’expression ne seront pas converties. Si vous ne spécifiez pas d’unité-sortie, c’est l’unité d’entrée qui sera utilisée.

Pour afficher la largeur de la forme dans un champ de texte à l’aide de la fonction FORMATEX :

1 Sélectionnez une forme.

2 Choisissez Insertion > Champ.

3 Dans la section Catégorie de la boîte de dialogue Champ, choisissez Formule Personnalisée.

4 Dans la zone Formule Personnalisée, saisissez une expression utilisant la fonction FORMATEX, en spécifiant l’image du format souhaité ainsi que les unités d’entrée et de sortie.

Par exemple, si la largeur est en pouces et si vous souhaitez l’afficher en centimètres, saisissez :

5 Cliquez sur OK.

Le moteur Visio formate la valeur de largeur en utilisant deux décimales, abrège les unités et convertit les pouces en centimètres. Par exemple, si la largeur est de 1,875 pouces, le moteur Visio affiche 4,76 cm.

Pour plus d’informations sur les images de format correctes, recherchez « correctes, images de format » dans l’aide en ligne Référence du développeur (accessible via ? (Aide) > Référence du développeur) fournie avec Visio.

Affichage des valeurs d’angle normaliséesVous pouvez créer une forme qui affiche son angle de rotation dans le texte qui lui est associé. Par exemple, les formes qui représentent des lignes de roulement sur une carte maritime ou des indicateurs de pente dans un diagramme de cadastre affichent l’angle courant. Par défaut, le moteur Visio renvoie des valeurs d’angle de -180 à +180 degrés. Vous pouvez utiliser la fonction ANG360( ) pour convertir la valeur de l’angle de la forme en une valeur de 0 à 360 degrés (ou de 0 à 2πradians), puis afficher la valeur dans la forme.

�)�&E�$ 7������<#',''��#<�#�"#<�#��"#�

Page 214: MS Visio 2003 Guide du Développeur

200 C H A P I T R E 9

Pour afficher la valeur d’un angle normalisé dans un champ de texte :

1 Sélectionnez une forme.

2 Choisissez Insertion > Champ.

3 Dans la section Catégorie, choisissez Formule Personnalisée.

4 Dans la zone Formule Personnalisée, saisissez :

5 Dans la section Format, choisissez Degrés.

6 Cliquez sur OK.

Formatage des chaînes et sortie du texteLorsque vous affichez des chaînes, comme les résultats d’une formule dans un champ de texte ou des valeurs de propriété personnalisée, sachez qu’il est possible de définir un format pour la sortie. La sortie de texte peut être formatée sous la forme d’une paire nombre/unité, d’une chaîne, d’une date, d’une durée ou d’une devise. Le moteur Visio reconnaît une série d’images de format qui formatent le texte tel que vous souhaitez qu’il apparaisse. Par exemple, l’image de format « 0 #/10 uu » formate la paire nombre/unité 10,9 cm sous la forme « 10 8/9 centimètres ».

Les images de format apparaissent dans la liste des formats lorsque vous choisissez Insertion > Champ, comme arguments pour les fonctions FORMAT et FORMATEX et comme formules utilisables dans la cellule Format de la section Propriétés personnalisées. Pour plus d’informations sur toutes les images de format que vous pouvez utiliser comme la date, l’heure, la durée, la devise et les notations scientifiques, recherchez « correctes, images de format » dans l’aide en ligne Référence du développeur (accessible via ? (Aide) > Référence du développeur) fournie avec Visio.

Utilisation de la fonction FORMAT Dans toute formule qui se réduit à une chaîne, comme les formules des champs de texte personnalisés, vous pouvez utiliser la fonction FORMAT pour formater la sortie. La fonction FORMAT utilise la syntaxe suivante :

Le résultat de l’expression est formaté en fonction du style spécifié par l’image. La fonction renvoie une chaîne de la sortie formatée. L’image de format doit être compatible avec le type d’expression utilisé ; par ailleurs, vous ne pouvez pas mélanger les types d’expression. Par exemple, si vous combinez le formatage d’une date et d’un nombre en utilisant conjointement les images de format nombre et date (#,## jjmmaa), le moteur Visio ignore la partie jjmmaa et essaie de calculer l’expression en utilisant la première partie (#,##) de l’image de format.

��2;FG'�������

)�&E�$���������<�#�����#�

Page 215: MS Visio 2003 Guide du Développeur

C R É A T I O N D ’ U N C O M P O R T E M E N T D E T E X T E 201

Pour utiliser la fonction FORMAT dans un champ de texte, indiquez une formule personnalisée comme le décrit la section « Affichage et formatage des résultats d’une formule », page 198. Dans la zone Formule Personnalisée, intégrez la fonction FORMAT dans votre formule (pour saisir une formule dans la zone Formule Personnalisée, ouvrez le bloc de texte de la forme, choisissez Insertion > Champ, sélectionnez Formule Personnalisée dans la liste Catégorie, puis saisissez la formule dans le champ de texte Formule Personnalisée).

Le tableau suivant contient des exemples de formatage des paires nombre/unité standard.

Affichage des propriétés personnalisées formatéesVous pouvez formater la valeur affichée d’une propriété personnalisée pour que son affichage corresponde au paramétrage effectué dans la boîte de dialogue Propriétés personnalisées. Pour ce faire, utilisez une image de format dans la cellule Format de la section Propriétés personnalisées située dans la fenêtre ShapeSheet de la forme. Par exemple, une forme de planning peut avoir une propriété personnalisée appelée Coût qui mesure le coût d’un procédé. Pour formater 1 200 en devise, vous pouvez spécifier l’image de format suivant dans la cellule Format de la section Propriétés personnalisées de la forme :

Le moteur Visio utilise les Paramètres régionaux du Panneau de configuration Windows pour déterminer le symbole de la devise, le séparateur décimal et le séparateur des milliers à afficher. Dans la version anglaise (Etats-Unis) de Microsoft® Windows®, la valeur est affichée dans la boîte de dialogue Propriétés personnalisées sous la forme « $1,200.00 ». Dans la version française de Windows, elle apparaît sous la forme « 1 200,00 F ».

Formats de texte personnalisés pour les paires nombre/unité

Syntaxe Affichage en sortie

)�&E�$��'��"�**,8F��"<�#',((�%#� '��"�**,8F��"

)�&E�$��0G',GF0���<�#',((��#� 0G',GF���"

)�&E�$��'��"�**,8F��"�<�#(�(C(��#� **�8CD��"

)�&E�$��0G',GF0���<�#'�(C(���#� 0G'�8CT�������U���

)�&E�$��0G',GF0���<�#'�(C8���#� 0G'�FC8�������U���

)�&E�$��'�"�**,8F��"<�#','''��#� '��"�**,8F'��"

)����� �#V(((,((("''#�

Page 216: MS Visio 2003 Guide du Développeur

202 C H A P I T R E 9

Par ailleurs, vous pouvez afficher la valeur d’une propriété personnalisée dans un champ de texte. En choisissant Insertion > Champ lorsque la forme est sélectionnée, vous pouvez indiquer une propriété personnalisée et une image de format pour la valeur de cette propriété. Dans la boîte de dialogue Champ, vous pouvez spécifier une propriété personnalisée dans Catégorie. Le moteur Visio affiche la liste des images de format appropriées en fonction du type de données de la propriété personnalisée. La valeur d’une propriété personnalisée est alors affichée dans le bloc de texte de la forme à l’aide de l’image de format que vous avez attribuée.

Si vous avez l’intention d’effectuer des calculs avec des propriétés personnalisées, vous pouvez définir un type de données différent de la chaîne pour la valeur de propriété, comme un nombre, une devise, la date et l’heure et la durée. Pour plus d’informations, reportez-vous à la section « Propriétés personnalisées », page 146.

Protection des formules de texteIl est possible de protéger des formules de texte personnalisées que vous avez créées pour une forme de façon à ce que les actions utilisateur ne puissent pas les écraser. De nombreuses actions utilisateur communes pour une page de dessin, comme l’application d’une police, la définition des marges, l’application d’un style de texte, ont une incidence sur les valeurs des sections Transformation du texte, Format de bloc de texte, Caractères, Paragraphe et Tabulations. Si vous écrivez des formules pour personnaliser ces attributs de texte, vous pouvez effectuer les opérations suivantes :

• Protéger la formule à l’aide de la fonction PROTECTION.

• Empêcher les utilisateurs d’apporter des modifications à l’aide d’un verrou de protection.

Utilisez la fonction PROTECTION pour protéger les formules contenues dans les cellules qui contrôlent la position ou l’emplacement du bloc de texte. Par exemple, protégez les formules qui personnalisent la largeur et la hauteur du texte de manière à ce que le redimensionnement d’une forme n’écrase pas vos formules. Lorsque vous utilisez PROTECTION pour protéger une formule dans une cellule qui contrôle le formatage du texte, l’utilisateur ne peut pas formater le texte localement. Pour plus d’informations sur les conséquences de l’application des styles sur les formules de la forme, reportez-vous au chapitre 10, « Gestion des styles, des formats et des couleurs ».

Utilisez un verrou de protection pour empêcher l’utilisateur de formater une forme ou d’y saisir des informations. Paramétrez sur 1 la cellule VerrFormat de la section Protection pour empêcher l’utilisateur d’appliquer tout formatage ou style. Paramétrez sur 1 la cellule VerrModifTexte de la section Protection pour empêcher l’utilisateur d’effectuer des saisies dans une forme (mais pour lui laisser la possibilité d’appliquer un style de texte). Il est préférable d’utiliser VerrModifTexte seulement dans les cas où la saisie de texte provoquerait des comportements inattendus de la forme (comme cela peut arriver avec les très petites formes).

Page 217: MS Visio 2003 Guide du Développeur

C R É A T I O N D ’ U N C O M P O R T E M E N T D E T E X T E 203

Vous pouvez cacher complètement le texte en paramétrant la cellule MasquerTexte sur TRUE dans la section Divers. Vous pouvez toujours effectuer une saisie dans la forme : le texte reste visible au fur et à mesure que vous le saisissez, mais il n’apparaît pas dans la forme une fois que l’opération de saisie est terminée.

Bien entendu, plus vous utiliserez de protections, moins vos utilisateurs pourront modifier les formes. Vous devez donc chercher à préserver les formules de forme personnalisées tout en permettant aux utilisateurs d’exécuter correctement leurs tâches.

Test des formules de bloc de texteVoici des procédures que vous pouvez utiliser pour tester le positionnement et le redimensionnement du bloc de texte d’une forme. Pour que la position du bloc de texte reste correcte pendant qu’un utilisateur manipule la forme, vous devez tester toutes les combinaisons de retournement, de rotation et d’inversion des extrémités.

Pour tester le positionnement du bloc de texte d’une forme :

1 Créez une occurrence de la forme de base à tester, puis saisissez-y du texte.

2 Reproduisez l’occurrence sept fois. Faites pivoter chaque occurrence par incréments de 45 degrés. Disposez les huit occurrences dans un médaillon. Groupez-les pour les manipuler plus facilement.

Il s’agit d’une série de tests quiillustre le comportement normal de

la forme dans des rotationsdiverses.

3 Reproduisez la série de tests deux fois (pour les objets 2D) ou cinq fois (pour les objets 1D), et disposez les occurrences du test sous forme de lignes avec trois colonnes.

4 S’il s’agit du test d’une forme 1D, sélectionnez les trois groupes de la ligne inférieure, puis choisissez Forme > Opérations > Inverser les extrémités.

Page 218: MS Visio 2003 Guide du Développeur

204 C H A P I T R E 9

5 Sélectionnez le ou les groupes de la colonne centrale, puis choisissez Forme > Retournement vertical.

6 Sélectionnez le ou les groupes de la colonne de droite, puis choisissez Forme > Retournement horizontal.

7 Imprimez les résultats et examinez-les en détail. Réglez tous les problèmes et testez de nouveau si nécessaire.

Vous devez ensuite tester les capacités de votre forme à manipuler le texte. Pour ce faire, remplacez dans chaque forme le texte de test, puis vérifiez les résultats.

Pour tester le mode de redimensionnement d’une forme au fur et à mesure que du texte est ajouté :

1 Sélectionnez l’une des formes, puis saisissez le nouveau texte.

Tapez suffisamment de caractères pour étirer le bloc de texte de manière à provoquer un comportement correspondant à vos attentes.

2 Cliquez à l’extérieur de la forme, puis appuyez sur Ctrl+A pour sélectionner toutes les formes.

3 Appuyez sur F4 pour répéter le nouveau texte dans toutes les formes sélectionnées.

4 Imprimez les résultats et examinez-les. Réparez tous les problèmes et effectuez le test jusqu’à ce que vous obteniez les résultats souhaités.

5 En guise de test final, redimensionnez chaque groupe. Essayez à la fois des tailles raisonnables, et des tailles très petites ou très grandes.

Les formes se comportent-elles comme vous l’espériez ? Le texte apparaît-il correctement ? Pouvez-vous au moins le lire ? Sinon, vous devez définir une largeur de texte minimale. Pour plus d’informations, reportez-vous à la section « Exemples de contrainte de taille du bloc de texte », page 194.

Page 219: MS Visio 2003 Guide du Développeur

Sommaire

10Gestion des styles, des formats et des couleurs

Lorsque vous créez des formes, vous appliquez des styles aux formes que vous dessinez pour garantir une certaine cohérence. Vous définissez également des styles et des options personnalisées, comme les motifs de remplissage qui apparaîtront dans les modèles que vous créez pour les utilisateurs. Dans Microsoft® Visio®, les styles fonctionnent un peu différemment de ceux des autres logiciels, tels que les programmes de traitement de texte ou les tableurs. En effet, dans Visio, vous pouvez définir des styles qui appliquent simultanément des attributs de formatage au texte, aux traits et aux remplissages. De même, vous pouvez définir des styles qui appliquent un formatage au texte seulement, aux traits seulement, aux remplissages seulement ou à une combinaison des trois.

Ce chapitre explique comment appliquer et créer des styles lorsque vous travaillez avec des formes ; il contient des instructions permettant de créer les styles qui apparaissent dans vos modèles ; il explique comment modifier les attributs de formatage des formes de base et comment protéger les styles de celles que vous créez ; enfin, il indique comment créer des motifs de trait, de remplissage et des extrémités de trait que l’utilisateur peut appliquer comme dans tout format Visio.

Utilisation des styles dans la page de dessin ...................................................... 206

Instructions concernant l’application de styles aux formes ............................... 209

Utilisation de styles dans les gabarits et les modèles ........................................ 213

Protection des formats locaux des formes .......................................................... 215

Gestion de la couleur dans les styles, les formes et les fichiers ........................ 216

Motifs personnalisés.............................................................................................. 219

Page 220: MS Visio 2003 Guide du Développeur

206 C H A P I T R E 1 0

Utilisation des styles dans la page de dessin

Les styles sont des ensembles nommés d’attributs de formatage applicables à une forme. Dans Visio, un seul style peut définir des attributs de texte, de trait et de remplissage, l’application d’un style peut donc constituer un moyen efficace d’assurer la cohérence des formes.

Lorsque vous appliquez un style à une forme, vous formatez les attributs suivants :

• Pour le texte : la police, la taille, le style (par exemple, gras ou italique), la couleur et l’espacement des caractères, l’alignement du bloc de texte, les marges et la couleur d’arrière-plan, l’alignement des paragraphes, les retraits et l’espacement, l’espacement des tabulations et le formatage des puces

• Pour les traits : l’épaisseur de trait, la couleur, le motif, l’extrémité, le style de la pointe de flèche et le style de l’angle

• Pour les remplissages : le motif et les couleurs de premier plan et d’arrière-plan de l’intérieur d’une forme (son remplissage) et de son ombre, s’il en existe une.

Présentation des stylesVous pouvez appliquer un style à une forme ou bien lui appliquer un formatage local en utilisant les commandes du menu Format pour créer le même effet. Si plusieurs formes ont le même format, les styles permettent d’utiliser plus efficacement les ressources de l’ordinateur que le formatage local. Dans un document Visio, une définition de style est stockée à un endroit seulement, et plusieurs formes peuvent y faire référence. Avec le formatage local, toutes les instructions de formatage sont stockées séparément avec chaque forme. Les formes formatées à l’aide de styles répondent plus rapidement que les formes formatées localement lorsqu’elles sont créées, déplacées, mises à l’échelle et pivotées.

Les attributs de format local sontstockés avec chaque forme (A).

Lorsque vous appliquez un style àplusieurs formes, la définition dustyle stocke les informations deformatage à un seul endroit (B).

Page 221: MS Visio 2003 Guide du Développeur

G E S T I O N D E S S T Y L E S , D E S F O R M A T S E T D E S C O U L E U R S 207

Dans les documents que vous créez, vous pouvez définir séparément des styles pour les attributs de texte, de trait et de remplissage, ou bien définir des styles qui appliquent une combinaison d’attributs. Visio répertorie tous les styles qui appliquent des attributs de texte dans la liste Tous les styles de la barre d’outils Format ; les styles qui concernent uniquement les remplissages et les traits sont répertoriés au-dessous des attributs qu’ils affectent dans la boîte de dialogue Styles (Format > Style). Tous les styles d’un document sont répertoriés dans le dossier Styles de Drawing Explorer™ (Affichage > Fenêtres > Drawing Explorer).

Lorsque l’utilisateur applique un style issu de la liste Tous les styles à une forme qui présente un formatage local, les attributs définis dans le style remplacent automatiquement le formatage local correspondant. Les attributs formatés localement qui n’apparaissent pas dans le style ne sont pas modifiés. Par exemple, si le trait d’une forme est formaté localement et que vous appliquiez un style qui indique seulement un formatage de texte et de remplissage, le formatage local du trait restera intact. En cliquant avec le bouton droit sur une forme et en choisissant Format > Style dans le menu contextuel, l’utilisateur peut aussi appliquer indépendamment des styles pour chaque attribut. Par exemple, supposons qu’un formatage local ait été appliqué au texte d’une forme, mais que l’utilisateur souhaite utiliser un style qui applique normalement les trois attributs pour le remplissage et le trait. En choisissant les styles de remplissage et de trait dans la boîte de dialogue Styles, ces attributs sont appliqués, tandis que le formatage du texte n’est pas modifié. Pour plus d’informations, reportez-vous à la section « Protection des formats locaux des formes », page 215.

Paramétrage des styles par défaut d’un dessinLorsque vous dessinez plusieurs formes, vous pouvez garantir une certaine cohérence en indiquant les styles que vous utilisez le plus souvent comme styles par défaut du document. Le moteur Visio applique les styles de texte, de trait et de remplissage par défaut définis pour une page de dessin lorsque vous dessinez en utilisant l’un des outils de la barre d’outils Standard. Vous pouvez aussi définir des styles par défaut pour la page de dessin d’un modèle afin que les utilisateurs dessinent de manière cohérente ou en fonction de normes spécifiques.

Pour changer les styles par défaut d’un document :

1 Veillez à ce qu’aucun élément ne soit sélectionné et que la fenêtre de la page de dessin soit active, puis choisissez Format > Style.

2 Dans les zones Style du texte, Style de trait et Style de remplissage, sélectionnez de nouveaux styles par défaut, puis cliquez sur OK.

Les nouveaux styles par défaut ont une incidence sur toutes les formes que vous dessinez avec les outils de dessin. Les occurrences des formes de base insérées sur la page de dessin ne sont pas modifiées : elles héritent du style de la forme de base. Les nouveaux styles par défaut restent actifs dans une page de dessin jusqu’à ce que vous les changiez de nouveau.

Page 222: MS Visio 2003 Guide du Développeur

208 C H A P I T R E 1 0

Création d’un styleVous pouvez créer un style pour l’inclure dans votre modèle ou pour formater plusieurs formes rapidement et de manière cohérente. Les styles que vous définissez dans vos modèles apparaissent dans la fenêtre Drawing Explorer, dans les boîtes de dialogue Style et Définir le style, et, s’ils appliquent un formatage de texte, dans la liste Tous les styles de la barre d’outils Format.

Vous pouvez créer intégralement un style ou l’élaborer à partir d’un style existant. Par exemple, supposons que vous ayez créé un trait de 3 mm pour lequel vous avez saisi une formule dans la cellule EpaisseurTrait. Si vous dessinez plusieurs traits de 3 mm, il est plus commode de créer un style que vous pouvez réutiliser. En créant des styles basés sur des styles existants, vous pouvez développer une hiérarchie de styles, dans laquelle les modifications apportées à l’un des styles s’appliquent, comme le montre la figure suivante, à tous les styles qu’il a permis d’élaborer. Vous devez vous méfier, toutefois, de ne pas modifier par inadvertance plusieurs styles, ainsi que toutes les formes formatées avec ceux-ci, lorsque vous ne souhaitez en modifier qu’un seul.

Elaboration d’un style à partir d’unstyle de base existant

Lorsque vous créez un style, les paramètres sont hérités en fonction du mode de création du style, c’est-à-dire à partir de zéro ou à partir d’un style existant :

• Un style élaboré à partir d’un autre style hérite des attributs du style de base.

• Un style entièrement nouveau hérite des paramètres par défaut du document pour les attributs que vous cochez dans la zone Inclure de la boîte de dialogue Définir les styles. Pour définir votre style, vous pouvez modifier ces paramètres.

Pour créer un style, choisissez Format > Définir les styles. L’option Basé sur permet de savoir si le style est basé sur un autre style. Pour plus d’informations sur l’utilisation de la boîte de dialogue Définir les styles, recherchez « styles » dans l’aide en ligne fournie avec Visio.

A Définition du style de baseB Définition du style dérivéC Le style dérivé hérite du trait et du

remplissage du style de base.

D Toute modification du style de base est représentée sur le style dérivé.

Page 223: MS Visio 2003 Guide du Développeur

G E S T I O N D E S S T Y L E S , D E S F O R M A T S E T D E S C O U L E U R S 209

Si vous définissez un style pour un dessin et que vous souhaitiez l’utiliser dans un autre dessin, vous pouvez copier le style. Pour cela, faites glisser une forme formatée avec le style dans le fichier dans lequel vous voulez ajouter le style (vous pouvez aussi insérer la forme par copier-coller). Supprimez ensuite la forme. La définition du style reste dans le fichier. Si le fichier contient déjà un style portant le même nom, la définition existante est prioritaire et le style n’est pas copié dans le fichier.

Modification d’un styleVous pouvez modifier un style de deux manières :

• En choisissant Format > Définir les styles, puis en sélectionnant un style existant dans la liste Style dans la boîte de dialogue Définir les styles et en changeant les attributs Texte, Trait ou Remplissage du style.

• En apportant des modifications aux formules du style.

L’apport de modifications dans la boîte de dialogue Définir les styles est rapide et conviviale. Toutefois, les options disponibles dans la fenêtre ShapeSheet® du style ne sont pas toutes accessibles par l’intermédiaire de la boîte de dialogue Définir les styles. Par exemple, vous pouvez définir des formules associées à un style en modifiant les cellules de la feuille de style.

Pour modifier les formules d’un style :

1 Choisissez Affichage > Fenêtres > Drawing Explorer.

2 Ouvrez le dossier Styles dans la fenêtre Drawing Explorer, cliquez avec le bouton droit sur le style, puis choisissez Afficher la feuille ShapeSheet dans le menu contextuel.

3 Apportez des modifications aux formules dans la feuille de style.

Instructions concernant l’application de styles aux formes

Lorsque vous créez des formes pour vos propres gabarits ou que vous utilisez des formes de base existantes, l’utilisation des styles est un moyen efficace de formater les formes. Visio offre plusieurs techniques d’application et de modification des styles. La technique à utiliser dépend de ce que vous souhaitez faire : reformater toutes les formes qui utilisent un style particulier, reformater la forme de base elle-même et, par extension, toutes les occurrences qui lui sont associées, ou modifier les occurrences qui figurent sur la page de dessin.

• Pour modifier l’apparence de toutes les occurrences d’une forme de base sur la page de dessin et de celles que vous ajouterez par la suite, vous pouvez modifier les styles du fichier de dessin.

Page 224: MS Visio 2003 Guide du Développeur

210 C H A P I T R E 1 0

• Pour modifier l’apparence d’une forme de base dans un gabarit, vous pouvez reformater la forme en appliquant différents styles dans le gabarit autonome.

• Pour reformater rapidement les occurrences d’une forme de base sur la page de dessin, vous pouvez modifier la copie de la forme de base dans le gabarit du document.

Lorsque vous définissez un style,vous pouvez modifier chaque

paramètre de texte, de trait et deremplissage (A).

Reformatage des formes sur la page de dessinVous pouvez modifier un style pour changer l’apparence de toutes les formes d’un document qui utilisent ce style. Pour cela, utilisez la commande Définir les styles du menu Format afin de réviser les attributs de texte, de trait ou de remplissage d’un style existant. Toutes les formes formatées avec le style modifié seront transformées.

Par exemple, supposons que vous utilisiez le gabarit Formes Diagramme de flux - Elémentaire, mais que vous vouliez que le texte apparaisse en italique avec une taille de 10 points et une police Times Roman. Les formes issues de ce gabarit sont formatées avec le style de texte Flow Normal. Vous pouvez utiliser la commande Définir les styles pour modifier la définition du style Flow Normal afin de formater le texte dans la police souhaitée. La nouvelle définition affecte toutes les formes du document auxquelles le style est appliqué, ainsi que toutes les formes que vous ajoutez et qui sont formatées dans ce style.

Une nouvelle définition de style est enregistrée seulement avec le fichier de dessin actuel. Le gabarit autonome et ses formes de base ne sont pas modifiées, car le fichier de gabarit contient ses propres définitions de styles.

Page 225: MS Visio 2003 Guide du Développeur

G E S T I O N D E S S T Y L E S , D E S F O R M A T S E T D E S C O U L E U R S 211

Reformatage des formes de base dans un gabarit autonomeVous pouvez reformater des formes de base dans un gabarit autonome en choisissant de nouveaux styles et en reformatant toutes les occurrences créées par la suite à partir de ces formes de base. Contrairement à l’opération de modification d’un style pour reformater les formes qui l’utilisent, cette procédure modifie la définition de la forme de base dans un gabarit et enregistre les modifications dans le gabarit. Utilisez cette procédure pour modifier les formes de base dans les gabarits que vous utilisez dans plusieurs dessins différents.

Pour reformater une forme de base avec un autre style :

1 Ouvrez le fichier de gabarit contenant la forme de base à modifier. Pour rendre le gabarit modifiable, cliquez sur sa barre de titre avec le bouton droit, puis choisissez Modifier dans le menu contextuel. Dans la zone Ouvrir de la boîte de dialogue Ouvrir un gabarit, vous pouvez également choisir Original, puis cliquer sur Ouvrir.

Lorsqu’un gabarit est modifiable, un astérisque rouge apparaît dans l’angle supérieur gauche de l’icône sur la barre de titre du gabarit.

2 Dans la fenêtre du gabarit, cliquez avec le bouton droit sur la forme de base à modifier, puis choisissez Modifier la forme de base dans le menu contextuel pour l’ouvrir dans la fenêtre de dessin de la forme de base.

3 Choisissez la forme à modifier ou sélectionnez une forme secondaire si la forme de base est un groupe, puis reformatez la forme selon vos besoins.

Par exemple, choisissez Format > Style, choisissez un style de texte, de trait ou de remplissage à appliquer, puis cliquez sur OK.

4 Dans la fenêtre de dessin de la forme de base, cliquez sur la case Fermer.

Lorsqu’un message vous demande de mettre à jour la forme de base, cliquez sur Oui.

5 Assurez-vous que la fenêtre de gabarit est active, puis choisissez Fichier > Enregistrer. Vous pouvez également cliquer avec le bouton droit sur la barre de menus du gabarit et choisir Enregistrer dans le menu contextuel.

La forme de base modifiée est enregistrée dans le gabarit. Si vous devez rétablir la version précédente de la forme de base, vous pouvez la modifier de nouveau pour la reformater en utilisant les styles originaux. S’il s’agit d’un gabarit Visio, vous pouvez réinstaller l’original à partir du CD de Visio.

Page 226: MS Visio 2003 Guide du Développeur

212 C H A P I T R E 1 0

Reformatage de toutes les occurrences d’une forme de baseVous pouvez rapidement reformater toutes les occurrences d’une forme de base d’un document sans modifier celle-ci ni sa définition de style. Pour reformater dans un dessin toutes les occurrences d’une forme de base, vous pouvez modifier la copie de la forme de base dans le gabarit du document.

En modifiant la copie d’une formede base dans le gabarit du

document (A), vous modifiez toutesses occurrences sur la page de

dessin.

Pour reformater toutes les occurrences d’une forme de base :

1 Choisissez Fenêtre > Afficher le gabarit de document.

2 Cliquez avec le bouton droit sur la forme de base dont vous souhaitez modifier les occurrences, puis choisissez Modifier la forme de base dans le menu contextuel.

3 Dans la fenêtre de dessin de la forme de base, effectuez des modifications de reformatage.

4 Fermez la fenêtre et, lorsqu’un message vous le demande, enregistrez vos modifications pour visualiser les effets sur la page de dessin.

REMARQUE : cette technique fonctionne seulement si les occurrences de la forme de base conservent leur formatage d’origine. Les formes auxquelles vous avez appliqué un style différent ou un formatage local ne sont pas modifiées.

Page 227: MS Visio 2003 Guide du Développeur

G E S T I O N D E S S T Y L E S , D E S F O R M A T S E T D E S C O U L E U R S 213

Utilisation de styles dans les gabarits et les modèles

Lorsque vous créez des gabarits et des modèles destinés à être utilisés par d’autres, vos styles doivent être cohérents et faciles à appliquer. L’utilisateur peut croire que les styles sont les seules options de formatage disponibles. Il est donc préférable d’inclure dans vos modèles davantage de styles que nécessaire.

La liste Tous les styles de la barred’outils Format permet d’accéder

facilement aux styles qui appliquentle formatage du texte.

Maintien de la cohérence dans les fichiersLorsque vous créez un gabarit qui sera utilisé avec un modèle, les définitions de styles doivent être identiques dans les fichiers de gabarit et les fichiers de modèle. Lorsqu’un utilisateur crée une occurrence de forme de base, l’occurrence hérite des styles de la forme de base, qui sont appliqués comme suit :

• Si aucun style du même nom n’existe dans le fichier de dessin, il est copié depuis le fichier de gabarit et ajouté au fichier de dessin.

• Si un style du même nom existe déjà dans le fichier de dessin, le style existant est utilisé.

Si, dans le fichier de dessin, la définition du style diffère de celle du fichier de gabarit, la définition du dessin est utilisée, et l’apparence de la forme dans le dessin est différente de celle de la forme de base. Ce comportement est parfois appelé règle de « l’équipe qui reçoit qui l’emporte » car le style sur la page de dessin « l’emporte » sur les attributs de formatage d’un style portant le même nom dans une forme de base. En inspectant chaque définition de style, vous pouvez vérifier que les styles d’un modèle sont cohérents avec ceux d’un gabarit, mais cette opération est plutôt fastidieuse. Une technique plus simple consiste à enregistrer une copie du fichier de gabarit (.vss) sous la forme d’un fichier de modèle (.vst), à supprimer toutes les formes de base du fichier de modèle et à enregistrer le fichier d’espace de travail (.vsw) pour obtenir des styles et des couleurs identiques.

Si vous projetez d’enregistrer la page de dessin sous la forme d’un gabarit ou d’un modèle, vous enregistrerez l’espace de travail en supprimant tous les styles qui ne sont pas utilisés par vos formes. Pour cela, utilisez la commande Définir les styles du menu Format et supprimez les styles que vous n’avez pas utilisés. Une autre méthode consiste à ouvrir un nouveau fichier de dessin contenant seulement les styles par défaut, puis à faire glisser dans le nouveau fichier les formes formatées dotées des styles à copier. Pour plus d’informations sur le nettoyage des gabarits et des modèles, reportez-vous au chapitre 13, « Diffusion de gabarits et de modèles ».

Page 228: MS Visio 2003 Guide du Développeur

214 C H A P I T R E 1 0

Si une forme de la page de dessin ou du gabarit du document utilise un style que vous supprimez, vous vous trouvez dans l’une des situations suivantes :

• Si le style est basé sur un autre, la forme utilise par défaut le style de base.

• Si le style n’est basé sur aucun autre style, la forme utilise par défaut le style Visio Sans style, qui ne peut pas être supprimé.

Utilisation de conventions de dénomination pour les stylesLes styles que vous créez pour vos gabarits et vos modèles sont plus faciles à utiliser si vous suivez de manière cohérente une convention. Des noms de styles explicites comme « Trait noir quart de pouce » ou « 8pt Arial Left » sont plus évocateurs et compréhensibles que des noms abrégés comme « Ligne2 » ou « T8L ». Les styles apparaissent dans l’ordre alphabétique dans la liste de la barre d’outils, et dans les boîtes de dialogue Style et Définir les styles.

L’utilisation d’une convention de dénomination correcte permet de conserver les liens qui existent entre les divers styles dans les listes, facilitant ainsi la recherche du style désiré. Les styles de trait, de remplissage et de texte avec des attributs similaires doivent avoir des noms similaires. Par exemple, si vous nommez « Trait 1 pxl » un style de trait large de 1 pixel, vous devez nommer « Ligne 3 pxl » plutôt que « Ligne3 » un style de trait large de 3 pixels. Il est préférable de nommer les styles en fonction de la manière dont vous souhaitez qu’ils soient utilisés :

• Nommer des styles spécifiques à une forme ou à un gabarit en fonction des formes auxquelles ils sont appliqués, comme Flux - Texte lien.

• Nommer des styles de type général en fonction de leurs attributs de formatage, comme Black Line ou Arial Centered.

CONSEIL : pour faire apparaître un style au début de la liste Tous les styles, faites précéder son nom d’un caractère ayant une valeur ASCII faible, comme un tiret (-). Par exemple, « - Standard Line » ou « - Corporate Blue ».

Instructions concernant la définition des stylesLes développeurs Visio suivent ces instructions lors de la définition des styles. Elles peuvent vous être utiles pour définir des styles destinés aux solutions que vous créez.

• Les styles de texte doivent utiliser les polices TrueType livrées avec Microsoft® Windows®.

Limitez le choix des polices à celles dont disposent tous les utilisateurs de Windows 95, Windows 98 ou Windows NT®. Si vous savez que vos utilisateurs disposent d’autres polices (surtout celles conçues pour les marchés spécialisés comme les symboles cartographiques), vous pouvez utiliser en toute sécurité ces polices dans les styles que vous définissez.

Page 229: MS Visio 2003 Guide du Développeur

G E S T I O N D E S S T Y L E S , D E S F O R M A T S E T D E S C O U L E U R S 215

• Les styles de remplissage et de trait doivent utiliser des couleurs prises en charge par un moniteur VGA 256 couleurs standard .

Limitez le choix des couleurs au système graphique le plus élémentaire que vos utilisateurs peuvent avoir. En fonction du public visé par votre solution et de la configuration matérielle standard de ce public, vous pourrez offrir une sélection plus étendue.

• Basez de préférence vos styles sur le style Normal.

Lorsque vous avez une hiérarchie de styles basés les uns sur les autres, la modification d’un style modifie automatiquement tous ceux qu’il a permis d’élaborer. Ce comportement peut perturber les utilisateurs non expérimentés. Par conséquent, il convient de définir des styles qui ne sont pas basés sur d’autres styles. En revanche, pour un public plus professionnel, vous pouvez, si vous le souhaitez, tirer pleinement profit de cette puissante fonction dans vos solutions.

• Créez des styles appliquant seulement un attribut de formatage (remplissage, trait ou texte) ou les trois.

Pour les nouveaux utilisateurs, les styles avec plusieurs attributs peuvent prêter à confusion. Il se peut toutefois que vos utilisateurs emploient toujours le même style de remplissage, de trait et de texte pour une forme donnée. Si c’est le cas, vous pouvez mettre au point un style contenant les trois types de formatage.

Protection des formats locaux des formes

L’application d’un style peut modifier les formules dans les sections Format de trait, Format de remplissage, Format de bloc de texte, Caractères, Paragraphe et Tabulations d’une forme. Si elles ne sont pas protégées, les formules (personnalisées) locales risquent d’être remplacées dans les cellules ShapeSheet® correspondantes. Par exemple, vous pouvez écrire une formule personnalisée dans la cellule Taille de la section Caractères d’une forme de base pour modifier de manière dynamique la taille de la police de cette forme de base, en fonction de la hauteur de son bloc de texte. Si un utilisateur applique à la forme un style de texte différent, la formule personnalisée est écrasée.

Vous pouvez protéger les formats locaux des formes en utilisant l’option Conserver le formatage local, en activant la cellule VerrFormat ou en utilisant la fonction PROTECTION pour protéger les formules.

Page 230: MS Visio 2003 Guide du Développeur

216 C H A P I T R E 1 0

Utilisation de l’option Conserver le formatage localVous pouvez protéger le formatage local des formes en cochant l’option Conserver le formatage local dans la boîte de dialogue Style lors de l’application d’un autre style.

Lorsque vous cochez l’option Conserver le formatage local, le style est appliqué, mais le formatage local est conservé. Si la case Conserver le formatage local n’est pas cochée, le nouveau style est appliqué et tout formatage local est écrasé.

Utilisation de la cellule VerrFormat et de la fonction PROTECTIONDans la section Protection de la feuille d’une forme, vous pouvez donner à la cellule VerrFormat la valeur 1 afin de protéger la forme contre toute modification de formatage et de style. L’utilisation de la fonction PROTECTION dans une formule empêche cette cellule d’être modifiée lorsqu’un utilisateur applique un formatage ou des styles. Si vous protégez un groupe en utilisant la cellule VerrFormat, vous empêchez automatiquement les formes et les autres groupes qu’il contient d’hériter du formatage ; en revanche, l’utilisateur peut sélectionner des formes secondaires du groupe qui ne sont pas explicitement verrouillées et modifier leur formatage. Pour plus d’informations sur la protection du formatage dans un groupe, reportez-vous au chapitre 6, « Regroupement et fusion de formes ».

Utilisez la cellule VerrFormat et la fonction PROTECTION avec précaution. Lorsqu’une forme est verrouillée contre le formatage, le moteur Visio affiche automatiquement un message si un utilisateur essaie de formater la forme. Au contraire, la fonction PROTECTION fonctionne sans aucune notification ni aucun message utilisateur. Ces comportements risquent de gêner l’utilisateur qui souhaite formater une forme protégée. Lorsque vous créez des formes, il est nécessaire de trouver un équilibre convenable entre la limitation du comportement des formes et l’amélioration de la flexibilité de l’utilisateur dans votre solution.

Gestion de la couleur dans les styles, les formes et les fichiers

Lorsque vous créez des formes de base, vous devez prendre en compte l’apparence de la couleur de la forme de base sur différents systèmes utilisateur. Vous pouvez appliquer une couleur à une forme en utilisant soit la palette de couleurs Visio soit une couleur personnalisée. La méthode choisie a une incidence sur l’apparence de la forme dans un autre document. Vous pouvez appliquer une couleur à une forme en utilisant les méthodes suivantes :

• En appliquant une couleur choisie dans la palette de couleurs Visio. Choisissez l’indice de l’une des couleurs de la palette. Le moteur Visio enregistre seulement l’indice sur la palette de couleurs et non la couleur elle-même.

Page 231: MS Visio 2003 Guide du Développeur

G E S T I O N D E S S T Y L E S , D E S F O R M A T S E T D E S C O U L E U R S 217

• En définissant, soit dans la boîte de dialogue Couleur, soit sous la forme d’une formule, une valeur RVB (rouge, vert, bleu) ou TSL (teinte, saturation, luminosité). Vous appliquez ainsi une couleur personnalisée à une forme.

Modification de la palette de couleursLa palette de couleurs apparaît dans la boîte de dialogue Palette de couleurs, ainsi que dans la liste déroulante des couleurs dans les boîtes de dialogue Remplissage, Trait, Définir la police, Bloc de texte et d’autres. Pour tout document qui utilise la palette Visio par défaut, un indice de couleur renvoie à la même couleur : 0 pour noir, 1 pour blanc, 2 pour rouge, etc.

En revanche, l’utilisateur peut, en modifiant la palette de couleurs, choisir la couleur qu’il souhaite voir apparaître à n’importe quel indice. Dans ce cas, toute propriété de couleur associée à cet indice peut changer de couleur. Par exemple, si vous appliquez une couleur de remplissage à une forme de base en cliquant sur le rouge dans la palette, la couleur de remplissage de la forme est enregistrée sous le nombre 2. Si un utilisateur crée une occurrence de la forme de base rouge dans un document dans lequel le second indice de la palette de couleurs a été modifié, la couleur de remplissage de la forme passe dans cette couleur.

La plupart des utilisateurs ne modifient pas la palette de couleurs d’un document, il est peu vraisemblable que les couleurs changent. Mais vous pouvez vous assurer qu’une couleur de forme ne change jamais, quelle que soit la palette de couleurs du document, en utilisant une couleur personnalisée RVB ou TSL. Pour indiquer une couleur personnalisée sous la forme d’une formule, utilisez la fonction RVB ou la fonction TSL. Pour plus d’informations sur l’utilisation de ces fonctions, reportez-vous à la section « Utilisation d’une formule pour définir une couleur personnalisée », page 218.

Normalisation des palettes de couleurs pour tous les documentsLorsque vous créez des gabarits que vous avez l’intention d’ouvrir avec un modèle, utilisez la même palette de couleurs dans tous les documents. Si les palettes de couleurs ne sont pas identiques, les couleurs définies par un indice dans les styles d’une forme de base peuvent changer lorsqu’une occurrence est déplacée dans un document qui dispose d’une valeur de couleur différente de cet indice. Pour normaliser la palette de couleurs utilisée dans les documents qui sont censés être ouverts ensemble, comme les gabarits et les modèles, vous pouvez copier dans un autre fichier la palette de couleurs utilisée dans un fichier.

Page 232: MS Visio 2003 Guide du Développeur

218 C H A P I T R E 1 0

Si vous modifiez la palette de couleurs dans un fichier de gabarit, vous pouvez copier les couleurs dans un modèle.

Pour copier la palette de couleurs d’un gabarit dans un modèle :

1 Ouvrez le fichier de modèle.

2 Choisissez Outils > Palette de couleurs.

3 Dans Copier les couleurs de, sélectionnez le gabarit dont vous souhaitez copier la palette de couleurs dans le fichier de modèle, puis cliquez sur OK.

Veillez à enregistrer le document.

Utilisation d’une formule pour définir une couleur personnaliséeVous pouvez définir la couleur des formes en utilisant une fonction qui spécifie une valeur RVB ou TSL. Par exemple, pour garantir qu’une forme de panneau stop est toujours rouge, vous pouvez saisir la formule suivante dans la section Format de remplissage :

Les trois arguments de la fonction RVB spécifient les composants rouge, vert et bleu de la couleur. Chacun de ces composants peut avoir une valeur de 0 à 255. Pour indiquer une couleur à l’aide d’une valeur TSL, vous pouvez à la place utiliser la formule TSL(0,240,120) dans la cellule RemplPremPlan. Pour plus d’informations sur la syntaxe de la fonction, recherchez « fonction TSL » ou « fonction RVB » dans l’aide en ligne Référence du développeur (choisissez ? (Aide) > Référence du développeur) fournie avec Visio.

Plutôt que d’indiquer des constantes de couleur en guise d’argument de ces fonctions, vous pouvez utiliser les fonctions ROUGE, VERT et BLEU, ou TEINTE, SATURATION et LUMINOSITE pour renvoyer la valeur d’une constante de couleur de la palette de couleurs du document ou d’une autre cellule. Dans l’exemple du panneau stop, ROUGE(RemplPremPlan) renvoie 255, la valeur du composant de rouge dans la couleur de remplissage.

Pour définir une couleur à partir de celle d’une autre cellule dans la même forme ou dans une autre forme, vous pouvez utiliser la fonction RVB et TSL conjointement avec les autres fonctions de couleur. Cela est particulièrement utile dans un groupe qui contient des formes de couleurs associées mais non identiques. Vous pouvez définir les couleurs de la forme groupée en tant que couleur de forme pour le groupe. Par exemple, si la forme au premier plan du groupe est Etoile 7, vous pouvez saisir ce qui suit dans Etoile 7.2 :

&���������� �&!3�088<'<'�

&���������� �&!3�&�%; �)������"=9&�����������<'<'�

Page 233: MS Visio 2003 Guide du Développeur

G E S T I O N D E S S T Y L E S , D E S F O R M A T S E T D E S C O U L E U R S 219

Si un utilisateur applique une nouvelle couleur au groupe, la forme au premier plan change de couleur, mais Etoile 7.2 modifie seulement la proportion de rouge dans sa couleur de remplissage.

Lorsque vous indiquez une couleur personnalisée à l’aide des fonctions RVB ou TSL, la couleur est ajoutée au bas de la liste des couleurs dans les boîtes de dialogue Remplissage, Trait, Définir la police, ainsi que dans les autres boîtes de dialogue dans lesquelles vous associez une couleur. Si vous créez une forme de base à partir d’une forme à laquelle une couleur personnalisée a été associée, puis que vous déplaciez une occurrence de cette forme dans un autre document Visio, la couleur personnalisée est ajoutée également aux listes de couleurs du document.

Une couleur personnalisée est enregistrée seulement avec la forme à laquelle elle a été appliquée. Si vous supprimez une forme avec une couleur personnalisée, puis que vous enregistriez et fermiez le document, la couleur personnalisée n’apparaît plus, lors de l’ouverture suivante du même document, dans les listes de couleurs des différentes boîtes de dialogue, à moins qu’une autre forme utilise aussi cette couleur dans le document.

Motifs personnalisés

Vous pouvez créer vos propres motifs de remplissage, motifs de traits et extrémités de traits. Pour faciliter la présentation, ces styles sont regroupés sous l’appellation motifs personnalisés et apparaissent sous la forme d’options dans les boîtes de dialogue Remplissage et Trait. Pour créer un motif personnalisé, créez le motif d’une forme de base représentant une occurrence du motif, comme un point qui, lorsqu’il est appliqué sous la forme d’un remplissage, ressemble à un motif complet, comme des points polka. Un motif de forme de base est un type particulier de forme de base qui apparaît seulement sous la forme d’un motif de remplissage, d’un motif de trait ou d’une extrémité de trait supplémentaire.

Lorsque vous créez un motif de forme de base, vous paramétrez ses propriétés pour indiquer :

• Le nom du motif de la forme de base.

• Le type de motif personnalisé : motif de remplissage, motif de trait ou extrémité de trait.

• Le comportement du motif, c’est-à-dire la manière dont le motif personnalisé est appliqué à une forme et la manière dont il évolue lorsque la forme est étirée ou formatée.

• L’utilisation du motif personnalisé dans des dessins mis à l’échelle ou non.

Page 234: MS Visio 2003 Guide du Développeur

220 C H A P I T R E 1 0

Un motif personnalisé est toujours enregistré sous la forme d’un motif de forme de base, bien qu’il ne soit pas visible dans le gabarit. Les noms des motifs des formes de base apparaissent dans l’ordre alphabétique au bas de la liste d’options, dans la boîte de dialogue Remplissage ou Trait. L’utilisateur peut alors appliquer le motif personnalisé en choisissant Format > Trait ou Format > Remplissage, puis en sélectionnant le nom du motif de la forme de base dans la liste appropriée. Les motifs personnalisés apparaissent dans la fenêtre Drawing Explorer lorsque le gabarit dans lequel ils figurent est ouvert et qu’ils ont été appliqués aux formes dans le dessin.

Création d’un motif personnalisé Lorsqu’un utilisateur applique un motif personnalisé, son motif de forme de base est copié dans le gabarit du document. Le motif personnalisé reste alors disponible dans le document actif, même si le gabarit autonome contenant le motif de forme de base d’origine est fermé. Le moteur Visio enregistre le choix en insérant la fonction USE dans la cellule MotifRempl, MotifTrait, DépartFlèche ou FinFlèche. Par exemple, si un utilisateur applique une extrémité de trait personnalisée appelée Etoile au point de départ d’un trait, la cellule DépartFlèche du trait contiendra la formule USE(Etoile). Le moteur Visio applique le motif personnalisé en fonction de la taille de son rectangle de sélection.

Si un utilisateur n’applique pas de motif personnalisé particulier à partir d’un gabarit lorsque le gabarit est ouvert, il n’apparaît plus dans les boîtes de dialogue Remplissage et Trait, une fois que le gabarit dans lequel il figure est fermé.

Si un utilisateur copie dans un autre document une forme formatée avec un motif personnalisé, les règles d’héritage habituelles s’appliquent. Le motif de la forme de base est copié dans le nouveau document, à moins que le nouveau document contienne déjà un motif de forme de base du même nom, auquel cas la forme de base du document de ce nom est appliquée.

La plupart des techniques utilisées pour mettre au point des formes de base s’appliquent également lors de la création des motifs des formes de base. Par exemple, vos utilisateurs et vous obtiendrez des résultats plus prévisibles si vous utilisez une forme unique ou un groupe dans votre forme de base (forme ou motif). Vous pouvez toujours combiner plusieurs géométries pour créer une forme unique à l’aide des commandes du sous-menu Opérations du menu Forme. Vous devez, en outre, créer un motif de forme de base sous la forme d’une occurrence unique de l’élément de base à répéter selon vos besoins.

REMARQUE : n’utilisez pas de texte, de bitmaps ou de remplissages graduels dans un motif de forme de base. Ils n’apparaissent pas lorsque le motif est appliqué à une forme.

Page 235: MS Visio 2003 Guide du Développeur

G E S T I O N D E S S T Y L E S , D E S F O R M A T S E T D E S C O U L E U R S 221

Pour créer un motif personnalisé :

1 Ouvrez un document ou un gabarit.

2 Choisissez Affichage > Fenêtres > Drawing Explorer. Dans Drawing Explorer™, cliquez avec le bouton droit sur le dossier Motifs de remplissage, Motifs de ligne ou Extrémités de trait, puis choisissez Nouveau motif dans le menu contextuel.

3 Dans la zone Nom, saisissez le nom du motif personnalisé tel que vous souhaitez qu’il apparaisse dans les boîtes de dialogue Remplissage et Trait.

4 Dans la zone Type, choisissez Motif de trait, Extrémité de trait ou Motif de remplissage.

5 Dans la zone Comportement, choisissez une option pour indiquer la manière dont le motif est appliqué à une forme.

Pour plus d’informations sur le comportement du motif personnalisé, reportez-vous aux sections suivantes.

6 Cochez la case Mise à l'échelle si le motif personnalisé représente un objet avec des dimensions réelles.

Par exemple, si vous créez un motif de remplissage de carreaux de cuisine de 10 centimètres carrés, cochez la case Mise à l'échelle pour conserver les dimensions du motif lorsque celui-ci est appliqué à une forme sur une page de dessin mise à l’échelle.

7 Cliquez sur OK pour créer une forme de base vide.

8 Ouvrez le dossier approprié, puis cliquez avec le bouton droit sur le nom du motif que vous venez d’ajouter. Choisissez Modifier le motif dans le menu contextuel pour ouvrir la fenêtre de dessin de la forme de base, où vous pouvez dessiner un motif personnalisé.

Pour que les utilisateurs puissent modifier la couleur d’un motif ou d’une extrémité de trait après l’avoir appliquée à une forme, créez le motif de la forme de base en noir et blanc en suivant les indications des rubriques suivantes.

9 Après avoir créé le motif, fermez la fenêtre de dessin de la forme de base et enregistrez le document en tant que gabarit.

Bien que les icônes des motifs que vous créez ne soient pas visibles lorsque vous enregistrez un motif dans un gabarit, les motifs que vous avez définis apparaissent au bas des listes dans les boîtes de dialogue Remplissage et Trait lorsque ce gabarit est ouvert. Lorsqu’un motif personnalisé est appliqué à une forme, le nom du motif est ajouté à la liste dans la fenêtre Drawing Explorer actuelle.

Page 236: MS Visio 2003 Guide du Développeur

222 C H A P I T R E 1 0

Création de motifs de remplissage personnalisésVous pouvez créer des motifs de remplissage personnalisés qui remplissent une forme de trois manières, en fonction du comportement que vous choisissez dans la boîte de dialogue Propriétés de la forme de base. La mosaïque est le type de comportement le plus fréquent pour les motifs de remplissage. Les occurrences du motif sont répétées pour remplir la forme à partir de l’angle inférieur gauche vers l’extérieur, comme dans l’exemple suivant.

Vous pouvez aussi créer un motif de remplissage centré ou étiré. Dans un motif centré, une seule occurrence du motif remplit la forme. L’axe du motif est aligné avec l’axe de la forme. Dans un motif étiré, une seule occurrence du motif est étirée horizontalement et verticalement pour remplir une forme. La position de l’axe du modèle n’est pas prise en compte. Lorsque vous redimensionnez la forme, le motif est également redimensionné, à la différence des motifs en mosaïque ou intégrés.

Lorsque vous créez un motif deremplissage personnalisé, vous

pouvez aussi indiquer la manièredont ce modèle est appliqué aux

formes. Vous pouvez choisir deremplir la forme avec des

occurrences du modèle à partir del’angle inférieur gauche vers

l’extérieur (A), centrer uneoccurrence du motif sur la forme

(B) ou l’étirer pour remplir laforme (C).

Couleurs du motif de remplissageSi vous créez votre motif de remplissage en noir et blanc, l’utilisateur peut paramétrer la couleur du motif lorsqu’il l’applique à une forme comme avec tout motif de Visio. Les zones blanches (trait ou remplissage) de votre motif héritent de la couleur de remplissage du premier plan de la forme à laquelle le motif est appliqué ; les zones noires (trait ou remplissage) de votre motif héritent de la couleur de remplissage de l’arrière-plan de la forme. Si votre motif contient des couleurs autres que le noir et le blanc, il conserve ces couleurs lorsqu’il est appliqué à une forme.

� � �

Page 237: MS Visio 2003 Guide du Développeur

G E S T I O N D E S S T Y L E S , D E S F O R M A T S E T D E S C O U L E U R S 223

Création de motifs en mosaïqueLa mosaïque est le comportement le plus fréquent pour les motifs de remplissage : le motif est mis en mosaïque par les bords du rectangle de sélection. Vous pouvez obtenir différents effets de mosaïque en créant un motif avec un rectangle de sélection plus ou moins grand, comme le montre la figure suivante, ou en décentrant le motif à l’intérieur du rectangle de sélection. Pour plus d’informations sur la création d’un rectangle de sélection de taille personnalisée, reportez-vous à la section « Réglage de la taille du rectangle de sélection d’une forme », page 240.

Dans cet exemple, le motif de laforme de base inclut deux formes

triangulaires décalées dans ungrand rectangle de sélection (A).

Les motifs de remplissage enmosaïque remplissent la forme à

partir de l’angle inférieur gauche.

Lorsque votre motif en mosaïque représente un objet réel, cochez la case Mise à l'échelle dans la boîte de dialogue Propriétés de la forme de base. Par exemple, la mosaïque d’un sol en céramique de 30 cm sur 30 cm doit toujours être de la même taille, quelle que soit l’échelle du dessin sur lequel elle est utilisée. Par défaut, le motif de remplissage n’est pas mis à l’échelle, ce qui signifie que le motif se comporte comme les motifs intégrés Visio : il s’imprime toujours à la même taille, quelle que soit l’échelle du dessin.

Sur une page de dessin qui utiliseune échelle architecturale, un motifnon mis à l’échelle (A) est identiquesur une page sans échelle, mais un

motif mis à l’échelle (B) conserveses dimensions.

A B

Page 238: MS Visio 2003 Guide du Développeur

224 C H A P I T R E 1 0

Création de motifs de trait personnalisésEn appliquant un motif de trait personnalisé, un utilisateur peut reformater un trait pour en faire une voie ferrée, une allée de jardin pavée ou tout autre motif de trait. Lorsque vous créez un motif de trait, étudiez la façon dont le motif se répète le long du trait, dans les courbes et dans les angles. Déterminez si le motif doit être redimensionné lorsque l’épaisseur du trait est modifiée. Ces éléments, qui constituent le comportement du motif, déterminent la manière dont le moteur Visio applique le motif à un trait ; ils peuvent donc affecter de manière significative l’apparence du trait.

Choisissez l’option Comportement dans la boîte de dialogue Propriétés de la forme de base pour contrôler la manière dont un motif de trait est appliqué à un trait. Vous pouvez créer des motifs de trait qui se comportent de quatre façons différentes, comme le montre les illustrations suivantes.

• Pour créer une voie ferrée, chaque occurrence du motif est incurvée pour s’adapter aux courbes au fur et à mesure des répétitions sur la longueur du trait.

Le choix de l’option de courbure (A)incurve les occurrences du modèleafin de les adapter au trait courbé.

• Pour créer une allée de jardin, chaque occurrence du motif est positionnée et pivotée au fur et à mesure des répétitions sur la longueur d’un trait.

Le choix de l’option d’annotation (B)répète les occurrences du modèle

afin de les adapter au trait sans lesincurver.

Page 239: MS Visio 2003 Guide du Développeur

G E S T I O N D E S S T Y L E S , D E S F O R M A T S E T D E S C O U L E U R S 225

• Pour créer une ligne inclinée, une seule occurrence du motif est étirée sur la longueur d’une spline.

Le choix de l’option d’étirement (C)étire une seule occurrence du motif

sur la longueur d’un trait.

• Pour créer un trait de flux, le motif est répété en haut de la ligne, pour recouvrir l’ensemble des occurrences du motif entre les angles. Le rectangle de sélection est plus grand que la pointe de flèche contrôlant l’espacement entre les occurrences du motif.

Le choix de l’option de mosaïque(D) répète les occurrences du motifen haut du trait et permet d’obtenir

un effet « collier ».

Page 240: MS Visio 2003 Guide du Développeur

226 C H A P I T R E 1 0

Personnalisation du rectangle de sélection et de l’axe Pour créer un motif de trait efficace, vous devez prendre en compte la taille du rectangle de sélection et la position de l’axe, ainsi que la forme du motif. Pour adapter un motif à un trait, l’axe du motif est aligné sur le trait, et répète ou étire le motif par les bords de son rectangle de sélection. Si le rectangle de sélection est plus grand que le motif, des espaces apparaissent entre les occurrences du modèle au fur et à mesure qu’ils sont répétés sur le trait. Si le rectangle de sélection est plus petit que le modèle, vous obtiendrez un effet de superposition lorsque le motif sera appliqué. Pour plus d’informations sur le rectangle de sélection de taille personnalisée, reportez-vous à la section « Réglage de la taille du rectangle de sélection d’une forme », page 240.

En changeant le rectangle desélection d’un motif de trait, vouspouvez contrôler la manière dont

les occurrences d’un motif serépètent le long d’un trait.

A Le rectangle de sélection du motif de trait flèche de flux est plus grand que l’occurrence du motif.B Le rectangle de sélection du motif de trait flèche de superposition est plus petit que l’occurrence

du motif.C Trait avec motif de flèche de fluxD Trait avec motif de flèche de superposition

Comparaison des motifs de trait mis à l’échelle et non mis à l’échelle Si vous créez un motif de trait non mis à l’échelle (c’est-à-dire sans cocher la case Mise à l'échelle dans la boîte de dialogue Propriétés de la forme de base de la forme de base), lorsqu’un utilisateur applique un motif de trait, le moteur Visio redimensionne son rectangle de sélection jusqu’à ce que sa hauteur soit égale à l’épaisseur du trait. Les motifs de trait mis à l’échelle conservent leurs dimensions, quelle que soit l’échelle du dessin ou l’épaisseur du trait.

Page 241: MS Visio 2003 Guide du Développeur

G E S T I O N D E S S T Y L E S , D E S F O R M A T S E T D E S C O U L E U R S 227

Couleur des motifs de trait Lorsque vous créez un motif de trait, appliquez du noir aux zones (trait ou remplissage) que vous souhaitez rendre modifiables par l’utilisateur en choisissant une nouvelle couleur dans la boîte de dialogue Trait. Appliquez du blanc ou toute autre couleur aux zones que vous ne souhaitez pas rendre modifiables par l’utilisateur. Si vous souhaitez que la zone de remplissage soit transparente lors de l’application à une ligne, paramétrez sur Aucun le remplissage du motif de trait.

Création d’extrémités de traits personnalisées Une extrémité de trait personnalisée constitue le type de modèle personnalisé le plus simple à créer. Il s’agit simplement d’une forme que vous pouvez associer au point de fin d’un trait. Lorsque vous créez une extrémité de trait, vous déterminez si elle peut être adaptée à la direction du trait auquel elle est associée et si elle est redimensionnée lorsque l’épaisseur de trait change. Vous pouvez créer une extrémité de ligne qui adopte les comportements suivants :

• Elle est orientée par rapport au trait. Si vous déplacez le trait, l’extrémité du trait s’adapte afin d’être orientée dans la même direction.

• Elle est orientée par rapport à la page. Si vous déplacez le trait, l’extrémité du trait conserve son orientation sur la page.

Le moteur Visio associe l’axe de l’extrémité du trait au point de fin d’un trait. Si le comportement de l’extrémité du trait est de s’orienter par rapport au trait, ce dernier est coupé, entre son point de fin et le rectangle de sélection de l’extrémité du trait. Sinon, le trait n’est pas coupé. Lorsque vous créez une extrémité de trait, déterminez la position de l’axe permettant d’obtenir le meilleur effet. Par exemple, pour créer une tête de flèche, vous pouvez dessiner un triangle, puis déplacer l’axe vers la pointe.

REMARQUE : une extrémité de trait doit pointer vers la droite ; sinon, elle n’est pas appliquée correctement.

Page 242: MS Visio 2003 Guide du Développeur

228 C H A P I T R E 1 0

A La pointe de flèche simple est un triangle droit avec un remplissage noir.B La pointe de flèche raffinée est un groupe avec un rectangle de sélection légèrement plus étroit

que le triangle. L’axe a été déplacé vers la pointe de la flèche.C Extrémité de trait Pointe de flèche simple appliquée à une ligne de 36 pixels.D Extrémité de trait Pointe de flèche raffinée appliquée à une ligne de 36 pixels.

CONSEIL : Pour déplacer l’axe d’une forme, cliquez avec le bouton droit sur la forme, choisissez Affichage > Taille et position dans le menu contextuel, puis choisissez une option du menu dans le champ Pos. axe. Vous pouvez également sélectionner la forme avec l’outil de rotation, puis faire glisser l’axe à un autre emplacement.

Vous devez également savoir, lors de la création d’une extrémité de trait, si sa taille doit dépendre de l’épaisseur du trait auquel elle est appliquée. Si vous créez une extrémité de trait non mise à l’échelle (sans cocher la case de mise à l’échelle dans la boîte de dialogue Propriétés de la forme de base de la forme de base), la hauteur du rectangle de sélection de l’extrémité du trait est paramétrée pour être égale à l’épaisseur du trait, tant que l’utilisateur donne au paramètre Taille la valeur Moyen (la valeur par défaut) dans la boîte de dialogue Trait. En revanche, sur un trait de 1 pixel, l’extrémité de trait peut ne pas être visible. Pour garantir que votre extrémité de trait fonctionne pour n’importe quelle épaisseur de trait, vous pouvez personnaliser son rectangle de sélection. Si un utilisateur donne au paramètre Taille une valeur autre que Moyen, l’extrémité du trait est redimensionnée de la même manière que n’importe quelle extrémité de ligne est redimensionnée. Pour plus d’informations sur la création d’un rectangle de sélection avec une taille personnalisée, reportez-vous à la section « Réglage de la taille du rectangle de sélection d’une forme », page 240.

Si votre extrémité de trait représente un objet avec des dimensions réelles, comme un raccord au bout d’un tuyau, cochez la case Mise à l'échelle dans la boîte de dialogue Propriétés de la forme de base de la forme de base. Les paramètres Taille et Epaisseur de la boîte de dialogue Trait n’ont aucune incidence sur la taille d’une extrémité de trait mise à l’échelle.

� �

� �

Page 243: MS Visio 2003 Guide du Développeur

Sommaire

11Réorganisation des formesd’un dessin

Lorsque vous créez des modèles Microsoft® Visio®, la plus grande attention est souvent apportée à la définition du comportement qui détermine la manière dont les formes de vos gabarits interagissent entre elles et avec la page de dessin. La même attention doit être apportée à leur mode de réorganisation sur la page.

Vous pouvez organiser vos formes sur la page de dessin à l’aide de calques. Vous disposez pour ce faire de plusieurs outils, notamment des repères de grille et de règle. L’alignement des formes sur la page dépend également des paramètres d’attraction du document et du comportement des rectangles de sélection.

En outre, le moteur Visio offre une fonction de mise en page automatique puissante. Lorsqu’ils sont configurés, les paramètres de cette fonction vous permettent de mieux contrôler la position des formes les unes par rapport aux autres lors de la mise en page automatique.

Attribution de formes et de formes de base à des calques ................................ 230

Création d’une grille............................................................................................... 233

Alignement des formes sur des repères et des points de repère ...................... 237

Accrochage de formes à une grille à l’aide des rectangles de sélection ........... 240

Création de formes et mise en page automatique .............................................. 243

Page 244: MS Visio 2003 Guide du Développeur

230 C H A P I T R E 1 1

Attribution de formes et de formes de base à des calques

Les calques permettent d’organiser les formes d’un dessin. Dans les autres programmes graphiques, le terme calques fait souvent référence à l’ordre (premier plan/arrière-plan) des objets sur la page. Dans Visio, les calques sont des catégories regroupant les formes apparentées. L’appartenance d’une forme à un calque n’a aucune incidence sur son ordre d’affichage.

Vous pouvez masquer ou afficher des calques, les imprimer ou les paramétrer pour éviter toute modification. Les formes peuvent être attribuées à plusieurs calques. Les informations de calque d’une forme ne dépendent pas de son ordre d’affichage ni même de son appartenance à un groupe. En outre, chaque page d’un document peut présenter son propre jeu de calques. Lorsque vous créez des formes de base, vous pouvez les associer à des calques ; lorsque les utilisateurs créent des occurrences de ces formes, elles sont automatiquement attribuées à ces calques.

Les formes peuvent appartenir àplusieurs calques. Dans cet

exemple, les formes du lac et de laboussole appartiennent aux

calques des rues (A), des élémentsgéographiques (B) et des routes

(C).

Utilisation optimisée des calquesLorsqu’un utilisateur insère une forme de base dans la page de dessin, l’occurrence hérite des informations de calque de la forme de base. Si la forme de base est attribuée à un calque qui n’existe pas sur la page, le moteur Visio le crée automatiquement. Lorsque les formes sont attribuées à des calques, les utilisateurs peuvent appliquer une surbrillance de couleur distincte aux formes de chaque calque afin de pouvoir imprimer, verrouiller et masquer toutes les formes d’un calque. Une forme peut appartenir à plusieurs calques. Vous pouvez par conséquent créer des formes représentant une utilisation concrète complexe.

Par exemple, si vous créez des formes pour un gabarit d’agencement d’espace, vous pouvez attribuer quatre calques distincts aux formes correspondant aux murs et aux portes, aux fenêtres, aux prises électriques et au mobilier. Vous pouvez mettre en surbrillance toutes les formes du calque des prises électriques afin de les rendre plus visibles, ou verrouiller le calque des murs pendant que vous modifiez les formes du calque des fenêtres afin d’empêcher toute modification fortuite.

Page 245: MS Visio 2003 Guide du Développeur

R É O R G A N I S A T I O N D E S F O R M E S D ’ U N D E S S I N 231

Les calques appartiennent aux pages ; chaque page est associée à une liste de calques. Les formes peuvent appartenir à plusieurs calques. En masquant ou en verrouillant plusieurs calques sur une page, vous pouvez indiquer les formes qui seront visibles et celles qui seront modifiables.

Comme les calques appartiennent aux pages, chaque page d’un fichier de dessin peut présenter un jeu de calques distinct. Les formes des pages de premier plan et d’arrière-plan peuvent être organisées grâce aux calques. Une forme peut appartenir à plusieurs calques ou à l’ensemble des calques de la page actuelle. Si vous copiez sur une autre page du dessin une forme appartenant à un calque, ce calque est ajouté à la page de destination s’il n’existe pas encore.

Pour créer des calques et contrôler le comportement de chacun d’eux :

• Choisissez Affichage > Propriétés des calques, puis sélectionnez des options.

Pour supprimer des calques :

• Choisissez Affichage > Propriétés des calques, cochez l’option Retirer les calques non référencés dans la boîte de dialogue Propriétés des calques, puis cliquez sur OK.

Vous pouvez supprimer de la page de dessin tous les calques qui ne sont associés à aucune forme afin de réduire la taille de fichier du document. Cette précaution est particulièrement utile lorsque vous créez un gabarit ou un modèle destiné à d’autres utilisateurs.

Attribution de formes de base à des calquesLorsque vous créez des calques de page dans la boîte de dialogue Propriétés des calques, chaque calque est associé à un index numérique qui complète son nom. L’index du premier calque créé est 0, l’index du deuxième est 1, etc. Si vous supprimez le calque 0, les autres calques ne changent pas de numéro. Dans la boîte de dialogue, les calques sont répertoriés dans l’ordre alphabétique. Cet ordre ne correspond donc pas forcément aux numéros d’index des calques.

Lorsque vous attribuez une forme de base à un calque, chaque calque créé est associé à un numéro. Toutefois, lorsqu’une occurrence de la forme de base est placée sur la page, les numéros d’index des calques correspondants remplacent ceux qui étaient attribués aux formes de base. Par exemple, supposons qu’une page possède deux calques, A et B, et que les index correspondants soient 0 et 1. Si vous insérez sur la page de dessin une occurrence d’une forme de base contenant le calque Z, dont le numéro d’index dans la liste des calques de la forme de base est 0, ce calque est ajouté à la liste des calques de la page et son numéro d’index est remplacé. Le calque Z est désormais associé au numéro d’index 2.

Page 246: MS Visio 2003 Guide du Développeur

232 C H A P I T R E 1 1

Lorsque vous attribuez une forme à un calque, la section Appartenance au calque de la feuille de la forme utilise le numéro d’index du calque pour indiquer les calques auxquels est associée la forme de base ou la forme. Si vous envisagez d’utiliser la fenêtre ShapeSheet® afin d’associer des formes à un calque, il est judicieux de faire figurer dans son nom son numéro d’index.

Pour attribuer une forme de base à un calque :

1 Cliquez avec le bouton droit sur la forme de base dans la fenêtre du gabarit, puis choisissez Modifier la forme de base dans le menu contextuel.

La forme de base apparaît dans la fenêtre de dessin de la forme de base.

REMARQUE : si vous attribuez une forme de base à un calque, le gabarit contenant la forme de base doit être ouvert en tant qu’original ou en tant que copie. Si le gabarit est ouvert en lecture seule, cliquez avec le bouton droit sur sa barre de titre, puis choisissez Modifier dans le menu contextuel.

2 Sélectionnez la forme de base, puis choisissez Format > Calque.

3 Dans la boîte de dialogue Nouveau calque, indiquez le nom du calque auquel vous souhaitez attribuer la forme, puis cliquez sur OK. La boîte de dialogue Calque qui apparaît comporte une liste dans laquelle se trouve le nouveau calque.

4 Pour attribuer la forme de base à un autre calque, cliquez sur Créer et répétez l’étape 3.

5 Cliquez sur OK afin de fermer la boîte de dialogue Calque, puis cliquez sur la case de fermeture pour fermer la fenêtre de dessin de la forme de base. Cliquez ensuite sur Oui afin de mettre à jour la forme de base.

REMARQUE : lorsque vous avez fini de modifier les formes de base du gabarit, cliquez de nouveau avec le bouton droit sur la barre de titre du gabarit, désélectionnez Modifier, puis enregistrez vos modifications dans le fichier du gabarit. Pour plus d’informations sur la modification des gabarits, consultez l’aide en ligne fournie avec Visio.

Pour attribuer une forme à un calque :

1 Cliquez sur la forme avec le bouton droit, puis choisissez Format > Calque.

2 Dans la boîte de dialogue Calque, sélectionnez le calque auquel la forme de base doit appartenir, puis cliquez sur OK.

Pour attribuer une forme de base à plusieurs calques, appuyez sur la touche Ctrl et cliquez sur les différents calques.

Page 247: MS Visio 2003 Guide du Développeur

R É O R G A N I S A T I O N D E S F O R M E S D ’ U N D E S S I N 233

S’il n’existe actuellement aucun calque, la boîte de dialogue Nouveau calque apparaît. Saisissez le nom du nouveau calque, puis cliquez sur OK. La boîte de dialogue Calque qui apparaît contient une liste dans laquelle figure le nouveau calque.

3 Cliquez sur OK pour fermer la boîte de dialogue Calque.

Pour plus d’informations sur l’utilisation de calques sur la page de dessin, recherchez «formes présentées sur des calques » et « calques sur les pages » dans l’aide en ligne fournie avec Visio.

Création d’une grille

Par défaut, la page de dessin Visio affiche une grille. Si vous utilisez la grille au moment de créer l’échelle de vos formes et les pages de dessin, les utilisateurs peuvent positionner rapidement un dessin par magnétisme. Il n’est pas nécessaire de positionner toutes les formes sur une grille par magnétisme. De même, il n’est pas nécessaire de créer une grille personnalisée pour tous les modèles. Dans les dessins plus techniques, toutefois, vous devez obligatoirement prendre en compte la grille pour créer des formes de base.

Pour plus d’informations sur l’utilisation des grilles dans les dessins mis à l’échelle, reportez-vous au chapitre 12, « Formes mises à l’échelle et dessins cotés ».

Définition de la grille pour la page de dessin d’un modèleLorsque vous configurez la page de dessin d’un modèle, vous pouvez choisir d’utiliser une grille variable ou fixe. Dans une grille variable, l’incrémentation change dès que vous procédez à un zoom avant ou à un zoom arrière. En revanche, dans une grille fixe, le grossissement n’a aucune incidence sur l’incrémentation. Dans les deux cas, vous pouvez définir les graduations de la grille et des règles. Dans chaque vue, les utilisateurs doivent pouvoir facilement positionner des éléments par magnétisme sur une grille qui utilise le même espacement que les formes de base.

Les paramètres de grille sélectionnés dans la boîte de dialogue Règles et grille sont stockés dans la section Règles et grille de la ShapeSheet® de la page. Les paramètres des grilles variables sont stockés dans les cellules DensitéGrilleX et DensitéGrilleY. Ceux des grilles fixes sont stockés dans les cellules EspacementGrilleX et EspacementGrilleY.

Pour définir l’espacement de la grille :

• Choisissez Outils > Règles et grille.

Pour afficher ou masquer la grille :

• Choisissez Affichage > Grille.

Page 248: MS Visio 2003 Guide du Développeur

234 C H A P I T R E 1 1

Pour afficher les formules Règles et grille d’une grille :

• Lorsqu’aucun élément de la page de dessin n’est sélectionné, choisissez Fenêtres > Afficher la feuille ShapeSheet, puis passez à la section Règles et grille.

Création de formes de base fonctionnant avec une grilleSi vous créez des formes de base dont les dimensions sont des multiples de l’espacement de grille existant, les utilisateurs peuvent avoir recours à la fonction de grille magnétique afin de positionner leurs formes avec précision. Lorsqu’un utilisateur insère une forme de base du gabarit, l’occurrence est, une fois insérée, facilement alignée sur les lignes de la grille.

Lorsque la fonction de grille magnétique est activée, les bords du rectangle de sélection d’une forme 2D s’accrochent aux lignes de grille visibles. L’utilisateur connaît ainsi la position exacte de la forme. Dans le cas d’une forme 2D, la fonction de grille magnétique est plus utile lorsque la largeur et la hauteur de la forme sont des multiples de l’espacement de la grille actuelle, comme l’indique la figure suivante. Si tel n’est pas le cas, les côtés opposés de l’objet sont positionnés par magnétisme séparément. Le comportement de déplacement de la forme est saccadé et l’utilisateur doit tenter de déterminer si le bord qui s’accroche à la grille est le bord gauche ou droit.

Création d’une forme dont lalargeur et la hauteur sont des

multiples des unités de la grille

A Largeur = 1 pouce (4 * grille)B Espacement de la grille = ¼ pouceC Hauteur = ½ pouce (2 * grille)

Pour que la position des formes sur la grille soit correcte, les formes de base doivent utiliser la même unité de mesure que la page de dessin. Lorsque vous configurez la page de dessin pour votre modèle, attribuez à la grille l’unité de mesure des formes de base qui seront utilisées avec ce modèle.

Pour définir l’unité de mesure d’une forme de base :

1 Cliquez sur la forme de base avec le bouton droit, puis choisissez Modifier la forme de base afin d’ouvrir la fenêtre de dessin correspondante.

REMARQUE : si vous attribuez une forme de base à un calque, le gabarit contenant la forme de base doit être ouvert en tant qu’original ou en tant que copie. Si le gabarit est ouvert en lecture seule, vous pouvez cliquer avec le bouton droit sur sa barre de titre, puis choisir Modifier dans le menu contextuel.

A

B

C

Page 249: MS Visio 2003 Guide du Développeur

R É O R G A N I S A T I O N D E S F O R M E S D ’ U N D E S S I N 235

2 Choisissez Fichier > Mise en page, cliquez sur l’onglet Propriétés de la page, puis sélectionnez une option de la liste Unité de mesure.

REMARQUE : lorsque vous avez terminé de modifier les formes de base du gabarit, cliquez de nouveau sur la barre de titre du gabarit avec le bouton droit, désélectionnez Modifier, puis enregistrez vos modifications dans le fichier du gabarit. Pour plus d’informations sur la modification des gabarits, consultez l’aide en ligne fournie avec Visio.

Pour définir les unités de mesure d’un modèle :

• Choisissez Fichier > Mise en page, cliquez sur l’onglet Propriétés de la page, puis sélectionnez une option Unité de mesure.

Si l’élément à positionner par magnétisme n’est pas le bord de la forme, vous pouvez ajuster le rectangle de sélection de la forme. Pour plus d’informations sur la personnalisation du rectangle de sélection, reportez-vous à la section « Accrochage de formes à une grille à l’aide des rectangles de sélection », page 240.

CONSEIL : si vous créez deux formes de base devant être connectées, placez leurs points de connexion de manière à ce que les deux formes de base s’accrochent à la grille et semblent être alignées. Le connecteur circule ainsi directement entre les deux points de connexion les plus proches. Pour plus d’informations sur les points de connexion, reportez-vous au chapitre 8, « Liaison des formes : formes 1D et collage ».

Stockage d’informations de grille à l’aide de formulesPour créer des formes de base à partir d’une grille modifiable, vous pouvez stocker l’espacement de grille utilisé pour une forme en tant que formule d’une forme de base. En théorie, les informations d’espacement de grille ne sont pas stockées avec les formes de base, mais si vous écrivez des formules personnalisées, vous pouvez facilement modifier les formes de base d’un gabarit afin de pouvoir utiliser différentes grilles.

Création de formules pour une grille variableLorsque vous utilisez un modèle, vous pouvez modifier l’unité de mesure du document. Vous modifiez ainsi l’unité de la grille du document qui, à son tour, a une incidence sur la grille magnétique des formes. Si vous savez qu’une unité de mesure de modèle risque de changer, vous pouvez définir les formes de base du modèle de manière à pouvoir utiliser plusieurs systèmes.

Page 250: MS Visio 2003 Guide du Développeur

236 C H A P I T R E 1 1

Par exemple, vous pouvez être amené à adapter un modèle et un gabarit conçus pour une grille au ¼ de pouce afin de pouvoir les utiliser avec une autre unité de mesure, par exemple les centimètres. Si vous définissez la largeur et la hauteur des formes de base du gabarit sous la forme d’une variable (définie dans une cellule personnalisée) exprimée dans l’unité de la grille, vous pouvez simplement modifier la variable de chaque forme de base afin qu’elle présente la nouvelle unité de mesure. Dans ce cas, les formes de base sont redimensionnées automatiquement en fonction de la nouvelle grille. Vous pouvez attribuer un nom évocateur à la cellule personnalisée afin d’expliquer sa fonction.

Par exemple, ces formules créent une forme pour une grille d’1 cm.

La formule peut utiliser n’importe quelle unité. La valeur est exprimée dans l’unité du dessin, tout comme les cellules de la section Transformation de la forme. Pour que la forme puisse fonctionner dans une grille en pouces, modifiez simplement la valeur de la cellule Util.UnitéGrille et indiquez 0,25 po. au lieu de 1 cm.

Création de formules pour une grille fixeSi la page de dessin de votre modèle utilise une grille fixe, vous pouvez définir les formules de la forme en fonction de l’espacement de grille stocké dans la page ; si l’unité de la grille fixe change dans un nouveau document, les formes du gabarit répercutent automatiquement cette modification. Au lieu de stocker l’espacement de grille en tant que variable personnalisée, les formules de largeur et de hauteur font référence aux informations de grille de la page :

%���"%���A;���� �*���"

����� �G�@�%���"%���A;����

?����� �B�@�%���"%���A;����

����� �G�@�������9 ��������;����7

?����� �B�@�������9 ��������;����:

Page 251: MS Visio 2003 Guide du Développeur

R É O R G A N I S A T I O N D E S F O R M E S D ’ U N D E S S I N 237

Alignement des formes sur des repères et des points de repère

Lorsque vous créez un modèle, vous facilitez le travail des utilisateurs en insérant des repères ou des points de repère sur la page de dessin. Les repères sont des lignes non imprimables qui figurent sur la page de dessin de Visio et sont utilisées pour l’alignement, comme l’indique la figure suivante. Définis comme lignes infinies, les repères se comportent comme des lignes normales. Ils peuvent donc être associés à du texte et prennent en charge l’utilisation de styles. Un point de repère est un repère en forme de barre déplacé depuis l’intersection de deux règles. Les utilisateurs peuvent rapidement aligner et déplacer des formes en les collant à un repère ou à un point de repère (lorsqu’un repère est déplacé, toutes les formes collées à lui le suivent).

Vous pouvez coller sur un repère unpoint, un côté ou le centre d’une

forme en deux dimensions.

Instructions concernant l’utilisation de repères ou de grilles Les repères et les grilles permettent d’aligner des formes sur une page de plusieurs manières. En règle générale, les repères offrent davantage de flexibilité que les grilles. Le tableau suivant fournit quelques conseils qui vous aideront à déterminer, en fonction de vos objectifs, si vous devez utiliser des grilles et/ou des repères.

Pour plus d’informations sur l’utilisation des grilles pour l’alignement de formes, reportez-vous aux sections « Création d’une grille », page 233 et « Accrochage de formes à une grille à l’aide des rectangles de sélection », page 240.

Comparaison des repères et des grilles

Fonction du repère oude la grille Repères Grilles

Objets distincts Les repères et les points de repère sont des objets distincts dont l’apparence et le comportement peuvent être contrôlés par formule.

Les lignes d’une grille ne sont pas des objets distincts. Vous ne pouvez donc ni définir leurs propriétés, ni écrire des formules les concernant.

Rotation Vous pouvez faire pivoter les repères par rapport à la page en saisissant une valeur dans le champ Angle de la fenêtreTaille et position (Affichage > Fenêtres > Taille et position).

Les lignes d’une grille sont toujours horizontales et verticales par rapport à la fenêtre, et non par rapport à la page.

Page 252: MS Visio 2003 Guide du Développeur

238 C H A P I T R E 1 1

Manipulation des repères et des points de repèreLa géométrie d’un repère se présente sous la forme d’une ligne infinie unique. Vous pouvez appliquer des styles aux repères comme vous le feriez pour des lignes normales. Par défaut, les repères utilisent le style prédéfini. Les repères peuvent facilement être déplacés sur la page.

Lorsque vous créez un repère, il est parallèle à la règle depuis laquelle vous l’avez fait glisser. Les règles sont toujours verticales et horizontales par rapport à la fenêtre, et non par rapport à la page. Si vous créez un repère sur une page que vous avez fait pivoter, le repère ne pivotera pas forcément avec la page.

Pour créer un repère :

• Pointez vers la règle horizontale ou vers la règle verticale. Le pointeur se transforme en une flèche à deux pointes. Placez le repère à l’emplacement souhaité sur la page de dessin en le faisant glisser, puis relâchez le bouton de la souris.

Pour créer un point de repère :

• Faites glisser votre pointeur depuis l’intersection de deux règles.

Pour sélectionner un repère sur la page de dessin :

• Cliquez sur le repère avec l’outil Pointeur. Le repère devient vert. Vous pouvez alors le déplacer, le supprimer ou afficher la fenêtre Taille et position (choisissez Affichage > Fenêtres > Taille et position). Cette fenêtre permet de faire pivoter le repère, ou de préciser sa position et son orientation. Vous pouvez également ouvrir la fenêtre ShapeSheet® qui affiche ses propriétés.

Pour indiquer précisément la position d’un repère sur la page :

• Utilisez des formules. Par exemple, si l’échelle de votre dessin au format A5 est de 1:500, la largeur de la page correspond à une distance de 74 mètres. Vous pouvez placer le repère par rapport à la largeur de la page à l’aide d’une formule du type suivant :

Intervalles de grille et de repère

Les repères peuvent être paramétrés manuellement sur n’importe quel intervalle.

Les lignes de la grille apparaissent à intervalles réguliers.

Impression Les repères peuvent être imprimés : désélectionnez l’option Forme non imprimable dans la boîte de dialogue Comportement.

Les lignes de la grille ne sont pas imprimées.

���7 �������9���������58�

Comparaison des repères et des grilles (suite)

Fonction du repère oude la grille Repères Grilles

Page 253: MS Visio 2003 Guide du Développeur

R É O R G A N I S A T I O N D E S F O R M E S D ’ U N D E S S I N 239

Pour activer ou désactiver l’affichage des repères d’un document :

• Choisissez Affichage > Repères.

Pour désactiver le magnétisme des repères d’un document :

1 Choisissez Outils > Magnétisme et collage.

2 Dans l’onglet Général, dans la zone Activation, désélectionnez Magnétisme.

Repères se trouvant sur une page pivotéeLorsque vous créez un repère, il est parallèle à la règle depuis laquelle vous l’avez fait glisser. Les règles sont toujours verticales et horizontales par rapport à la fenêtre, et non par rapport à la page. Si vous créez un repère sur une page que vous avez fait pivoter, le repère ne pivotera pas forcément avec la page.

Pour préciser l’angle de rotation d’un repère :

• Affichez la fenêtre Taille et position (choisissez Affichage > Fenêtres > Taille et position), puis saisissez une valeur dans le champ Angle. Vous pouvez également sélectionner un repère, puis le faire pivoter à l’aide de l’outil Rotation ( ).

La section Infos sur les repères enregistre le point de rotation du repère dans les cellules AxeX et AxeY, ainsi que l’angle de rotation. Une forme collée à un repère possède une section Alignement faisant référence au repère par le biais d’une formule qui comprend une fonction IntersectX ou IntersectY.

Regroupement de repères et de formesVous pouvez utiliser des repères et des points de repère afin d’aligner des formes et des groupes lorsque vous créez des formes de base. Par exemple, vous pouvez regrouper une forme et un repère. Lorsque vous ouvrez la fenêtre du groupe afin de le modifier (pour ce faire, sélectionnez le groupe, puis choisissez Edition > Ouvrir Grouper), le repère apparaît. Il permet d’aligner facilement des formes supplémentaires du groupe.

Si une forme est collée à un repère et que vous ajoutiez cette forme (et non le repère) à un groupe, la connexion établie entre la forme et le repère disparaît. De même, si vous ajoutez un repère à un groupe sans ajouter les formes collées, les connexions de la forme au repère disparaissent également. Si vous incluez dans le groupe à la fois le repère et les formes collées, les connexions sont conservées.

Page 254: MS Visio 2003 Guide du Développeur

240 C H A P I T R E 1 1

Accrochage de formes à une grille à l’aide des rectangles de sélection

Lorsqu’un utilisateur fait glisser une forme dans la fenêtre de dessin, le rectangle de sélection par défaut de la forme s’accroche à la ligne la plus proche sur la grille. (Si la fonction de grille magnétique est désactivée pour un document, le moteur Visio laisse la forme à l’emplacement où elle a été placée.) Toutes les formes comportent un rectangle de sélection dont la taille est par défaut identique au plan largeur/hauteur de la forme. Si une forme est asymétrique ou comporte des composants de taille personnalisée, les utilisateurs risquent d’avoir du mal à prévoir son comportement d’alignement et de positionnement par magnétisme. Dans certains cas, vous souhaiterez accrocher à la grille d’autres éléments que les bordures extérieures de la forme. Vous pouvez personnaliser ce rectangle de sélection afin d’identifier clairement sa fonction.

Un rectangle de sélection peut êtreplus grand ou plus petit que la

forme qu’il représente. Il apparaîtlorsqu’une forme est sélectionnée

ou déplacée.

Si vous faites pivoter une forme selon un angle qui n’est pas un multiple de 90 degrés, le rectangle de sélection est le plus petit rectangle supérieur droit pouvant contenir tous les chemins de la forme comme si leur épaisseur de trait était de zéro.

Réglage de la taille du rectangle de sélection d’une formeVous pouvez personnaliser la taille du rectangle de sélection d’une forme. Par exemple, vous pouvez créer un ensemble de formes présentant le même rectangle de sélection afin de les positionner et de les aligner correctement, comme ci-dessous.

Formes de base munies derectangles de sélection

personnalisés

A Comme ils servent à établir des connexions avec d’autres formes, les rectangles de sélection de ces valves 1D présentent tous la même hauteur.

B Pour faciliter l’alignement, la taille du rectangle de sélection de la forme Données (en haut) est identique à la forme Processus (en bas).

Page 255: MS Visio 2003 Guide du Développeur

R É O R G A N I S A T I O N D E S F O R M E S D ’ U N D E S S I N 241

Pour créer un rectangle de sélection qui ne corresponde pas à la géométrie d’une forme, dessinez d’abord le rectangle de sélection, puis paramétrez-le de telle manière que le moteur Visio ne puisse pas le modifier lorsque vous créez et modifiez la géométrie de la forme.

Pour définir un rectangle de sélection différent du plan largeur/hauteur :

1 Dessinez votre forme.

2 Sélectionnez la forme, puis choisissez Fenêtre > Afficher la feuille ShapeSheet.

3 Dans la section Protection, donnez la valeur TRUE à la cellule VerrCalcLH.

Ce paramètre empêche le rectangle de sélection actuel de changer lorsque vous modifiez la géométrie de la forme.

4 Utilisez l’outil Crayon, Trait, Arc ou Rectangle pour ajouter des éléments à la géométrie de la forme ou pour la modifier.

Positionnement d’une forme à l’intérieur d’un rectangle de sélection de taille supérieure à la formeVous pouvez insérer une forme dans un rectangle de sélection plus grand que son plan largeur/hauteur. Les utilisateurs peuvent ainsi la positionner plus facilement par magnétisme. Par exemple, le symbole d’une prise électrique est une forme rectangulaire qui se trouve dans une zone de sélection carrée plus grande. La forme peut ainsi être déplacée sans problème.

Pour inclure une forme dans un rectangle de sélection de taille supérieure à la forme :

1 Dessinez la forme.

2 Dessinez une autre forme de la taille du rectangle de sélection souhaité.

3 Sélectionnez les deux formes, puis appuyez sur Ctrl+G pour les regrouper.

4 Sélectionnez le groupe, choisissez Edition > Ouvrir Grouper, puis supprimez le rectangle de sélection du groupe.

Page 256: MS Visio 2003 Guide du Développeur

242 C H A P I T R E 1 1

Personnalisation du rectangle de sélection d’un groupeVous pouvez personnaliser la taille du rectangle de sélection d’un groupe afin que les utilisateurs puissent facilement positionner la forme de base par magnétisme et l’aligner. Lorsqu’une forme de base est un groupe composé d’une ou de plusieurs formes, le groupe fournit le rectangle de sélection. Pour certaines formes, le rectangle par défaut du groupe n’est pas aligné correctement par rapport à la forme. La figure suivante représente un groupe doté d’un rectangle de sélection personnalisé.

Ce rectangle de sélectionpersonnalisé (A) est plus petit que

le groupe et ne comprend pas laforme du libellé du groupe.

Pour créer un groupe doté d’un rectangle de sélection de taille personnalisée :

1 Créez les formes qui composent la forme de base. Ne personnalisez pas encore les formules de ces formes.

2 Utilisez l’outil Rectangle pour créer une forme. Attribuez-lui la taille et la position souhaitées pour le rectangle de sélection par rapport aux autres formes de la forme de base.

3 Sélectionnez uniquement le rectangle de sélection et regroupez-le avec les formes, puis choisissez Edition > Ouvrir Grouper pour l’ouvrir dans la fenêtre de groupe.

4 Sélectionnez les autres formes à ajouter au groupe, faites-les glisser dans la fenêtre du groupe, puis positionnez-les par rapport au rectangle de sélection.

5 Supprimez la forme du rectangle de sélection, puis fermez la fenêtre du groupe.

6 Ajoutez aux formes des formules personnalisées.

Mise à jour d’un rectangle de sélectionLe rectangle de sélection d’une forme risque de ne plus coïncider avec son plan largeur/hauteur une fois que vous avez modifié ses sommets ou, dans le cas d’un groupe, une fois que vous avez ajouté ou supprimé une forme. Pour réaligner explicitement le rectangle de sélection avec le plan largeur/hauteur, choisissez Forme > Opérations > M. à jour rect. sélection.

Si vous définissez une poignée de contrôle sur un sommet d’une forme, le déplacement de cette poignée change également la géométrie de la forme. Le rectangle de sélection ne coïncide donc plus avec le plan largeur/hauteur. Dans ce cas, vous pouvez donner la valeur TRUE à la cellule MseAJourRectSél de la section Divers de manière à ce que le rectangle de sélection soit toujours redimensionné lorsque vous déplacez les poignées de contrôle.

Page 257: MS Visio 2003 Guide du Développeur

R É O R G A N I S A T I O N D E S F O R M E S D ’ U N D E S S I N 243

Modification du rectangle de sélection des formes 1DPar défaut, les points de fin d’une forme 1D sont centrés horizontalement dans le rectangle de sélection. En déplaçant les points de départ et de fin du plan local de la forme, vous pouvez modifier le rectangle de sélection afin que les utilisateurs puissent aligner votre forme plus facilement. Par exemple, la figure suivante illustre une forme de mur 1D munie de points de fin sur chaque bord, plutôt qu’au centre. Lorsque les utilisateurs font glisser la forme, le trait du rectangle de sélection suit le bord utilisé pour connecter le mur.

Le rectangle de sélectionpersonnalisé d’une forme de

mur 1D comporte des points de fin(A) alignés sur le bord du mur. Son

déplacement est ainsi facilité. Pour déplacer le rectangle de sélection d’une forme 1D :

1 A l’aide de l’outil Rectangle, dessinez la forme.

2 Sélectionnez la forme, puis choisissez Format > Comportement.

3 Dans l’onglet Comportement, sélectionnez l’option Trait (1D), puis cliquez sur OK.

4 Choisissez Fenêtre > Afficher la feuille ShapeSheet.

5 Dans la section Transformation de la forme, saisissez 0 po. dans la cellule AxeLocY.

Lorsque vous déplacez la coordonnée y de l’axe local, vous alignez les points de fin sur le bord de la forme.

CONSEIL : vous pouvez masquer le rectangle de sélection d’une forme 1D (par exemple un connecteur) si son affichage et la fonction d’une forme risquent d’interférer. Choisissez Format > Comportement, puis désélectionnez l’option Afficher la zone d'alignement. Vous pouvez également donner la valeur TRUE à la cellule PasRectSél dans la section Divers.

Création de formes et mise en page automatique

Le moteur Visio offre des possibilités de mise en page automatique puissantes qui mettent en place les formes et repositionnent les connecteurs entre les formes sur la base des options sélectionnées par les utilisateurs. Vous pouvez contrôler la manière dont les formes et les connecteurs de vos solutions réagissent lorsqu’un utilisateur manipule le dessin ou utilise la commande Mettre en page les formes. Pour ce faire, personnalisez les paramètres par défaut des pages dans vos modèles. Vous pouvez également ne pas prendre en compte le comportement de placement et de repositionnement de chaque forme de base et de chaque connecteur dans les gabarits que vous créez.

A A

Page 258: MS Visio 2003 Guide du Développeur

244 C H A P I T R E 1 1

Définition des options de mise en page de la pageLorsqu’un utilisateur déplace un dessin ou choisit Outils > Mettre en page les formes, le moteur Visio utilise les valeurs des cellules de la section Mise en page figurant sur la feuille de la page afin de déterminer le comportement de repositionnement et de placement par défaut des connecteurs et des formes du dessin. Vous pouvez modifier directement les valeurs des cellules ou sélectionner des options dans l’onglet Repositionnement et mise en page de la boîte de dialogue Mise en page (choisissez Fichier > Mise en page).

Vous pouvez également définir le comportement de placement des formes de base et de chaque forme, et le comportement de repositionnement des connecteurs dans la section Mise en page des formes. Plusieurs cellules de cette section Mise en page des formes sont identiques à celles de la section Mise en page. Certaines modifications que vous effectuez localement peuvent donc être prioritaires par rapport au paramétrage général

En règle générale, lorsque vous indiquez des options de mise en page globales et que vous limitez le nombre de remplacements locaux, le comportement de repositionnement est plus cohérent et donc plus prévisible. Par exemple, vous pouvez indiquer que les formes positionnables disparaissent lorsqu’une autre forme est insérée sur le dessin par le biais d’un paramètre global. Pour interdire le déplacement de certaines occurrences de la forme, modifiez la section Mise en page des formes d’une forme de base particulière. Vous pouvez également indiquer que les occurrences d’une forme de connecteur utilisent un style de trait particulier ou une direction de déviation donnée.

Page 259: MS Visio 2003 Guide du Développeur

R É O R G A N I S A T I O N D E S F O R M E S D ’ U N D E S S I N 245

Le tableau suivant répertorie les cellules de la section Mise en page des formes qui remplacent les paramètres par défaut de la section Mise en page.

REMARQUE : cette liste n’est pas exhaustive et ne présente pas toutes les cellules que vous pouvez contrôler dans les sections Mise en page et Mise en page des formes. Reportez-vous à l’aide en ligne Référence du développeur fournie avec Visio pour plus d’informations sur les fonctions de chaque cellule de ces sections ShapeSheet®.

Cellules Mise en page des formes remplaçant les paramètres Mise en page

Cellule Mise en page des formes S’applique aux Détermine

CodeTracéForme Formes positionnables

Si les formes positionnables de la page de dessin disparaissent lorsqu’une autre forme positionnable est insérée à proximité. Remplacez les paramètres par défaut de la page par Repositionner au besoin (1) ou Jamais (2).

CodeDévTraitLien Formes repositionnables

Le moment où le connecteur est dévié. Remplacez les paramètres par défaut de la page par Jamais (1) ou par Toujours (2).

StyleDévTraitLien Formes repositionnables

Le style d’une déviation de connecteur. Remplacez les paramètres par défaut de la page par les déviations Arc (1), Intervalle (2), Carré (3) ou à plusieurs côtés (4-9). Pour plus d’informations, recherchez « ConLineJumpStyle » dans l’aide en ligne (choisissez ? (Aide) > Référence du développeur) fournie avec Visio.

DirDévTraitLienX et DirDévTraitLienY

Formes repositionnables

La direction horizontale (X) ou verticale (Y) d’une déviation de connecteur. Dans le cas de déviations horizontales, remplacez les paramètres par défaut de la page par Gauche (1) ou Droite (2). Dans le cas de déviations verticales, remplacez les paramètres par défaut de la page par Haut (1) ou par Bas (2).

StylePositionForme Formes positionnables et repositionnables

Le style et la direction d’un connecteur sur la page de dessin. Pour plus d’informations sur les valeurs ce cette cellule, recherchez StylePositionForme dans l’aide en ligne Référence du développeur fournie avec Visio.

Page 260: MS Visio 2003 Guide du Développeur

246 C H A P I T R E 1 1

Définition du comportement des formes et des connecteursLorsque vous créez une forme de base, ses paramètres Mise en page des formes correspondent aux valeurs par défaut de la page actuelle. Vous pouvez modifier ces paramètres afin de définir la manière dont les occurrences d’une forme de base interagissent avec les autres formes lorsqu’un utilisateur manipule un dessin ou choisit la commande Mettre en page les formes. Par exemple, vous pouvez, si vous le souhaitez, permettre la superposition des formes. Vous pouvez également faire en sorte que les connecteurs se repositionnent en passant à travers les formes plutôt qu’en les contournant.

Le même processus s’applique aux formes de connecteur : vous pouvez modifier le comportement des connecteurs dynamiques afin de fournir des interactions plus personnalisées lors de la mise en page automatique des formes. Par exemple, vous pouvez être amené à empêcher la déviation de certains connecteurs ou, au contraire, à définir une déviation de trait particulière pour les connecteurs qui peuvent être déviés.

Lorsque vous créez des formes de base, vous pouvez également associer aux points de connexion un comportement personnalisé. Les points de connexion sont associés à une direction qui contrôle le mode de connexion des connecteurs à la forme. En modifiant la direction d’un point de connexion, vous pouvez contrôler encore plus précisément la manière dont les connecteurs sont associés à une forme.

REMARQUE : les options de direction des points de connexion ne sont disponibles que si vous exécutez Visio en mode Développeur. (Pour ce faire, choisissez Outils > Options, cliquez sur l’onglet Options avancées, sélectionnez Exécuter sous le mode développeur, puis cliquez sur OK.)

Page 261: MS Visio 2003 Guide du Développeur

R É O R G A N I S A T I O N D E S F O R M E S D ’ U N D E S S I N 247

Pour modifier la direction d’un point de connexion :

1 Choisissez l’outil de point de connexion ( � dans la barre d’outils Standard, puis cliquez dessus pour sélectionner un point de connexion.

2 Cliquez avec le bouton droit sur le point, puis choisissez une direction dans le menu contextuel. La direction vers l’extérieur ne peut pas être utilisée pour les connexions point à point.

3 Cliquez sur le triangle gris associé au point de connexion et faites-le glisser afin d’indiquer une direction. Lorsque le point de connexion a été activé, le triangle devient vert.

Le changement de direction d’unpoint de connexion détermine la

manière dont les connecteurs sontassociés à cette forme.

A Pour relier le connecteur à l’extérieur de la forme, faites glisser le cercle du point de connexion vers l’intérieur de la forme.

B Vous ne pouvez établir aucune connexion avec les points de connexion vers l’extérieur. Ils permettent uniquement de connecter deux formes par magnétisme.

C Les points de connexion vers l’intérieur et vers l’extérieur fournissent de nombreuses options de connexion.

A

B

C

Page 262: MS Visio 2003 Guide du Développeur
Page 263: MS Visio 2003 Guide du Développeur

Sommaire

12Formes mises à l’échelle et dessins cotés

Lorsque les dessins créés par les utilisateurs représentent des objets réel, des formes et modèles sont nécessaires pour qu’ils puissent être à l’échelle. Vous pouvez concevoir des formes de base qui adoptent les dimensions adéquates lorsque les utilisateurs les insèrent dans une page de dessin dotée d’une échelle, par exemple ¼ pouce = 1 pied. Si vous concevez également le modèle, vous pouvez avoir la garantie que l’échelle de la page de dessin est compatible avec celle des formes de base fournies et les opérations de dessin sont ainsi simplifiées.

Ce chapitre explique comment choisir l’échelle des dessins et des formes ; il indique également comment empêcher la mise à l’échelle des formes, y compris dans un dessin à l’échelle. Pour plus d’informations sur la conception d’une grille pour les dessins avec ou sans mise à l’échelle, et sur la création de formes ajustées à une grille, reportez-vous au Chapter 11, “Réorganisation des formes d’un dessin.” .

Choix d’une échelle de dessin appropriée ........................................................... 250

Choix des échelles des formes de base................................................................ 253

Création de formes non mises à l’échelle ............................................................ 257

Page 264: MS Visio 2003 Guide du Développeur

250 C H A P I T R E 1 2

Choix d’une échelle de dessin appropriée

Tout dessin représentant des objets physiques trop petits ou trop grands pour être dessinés aisément, ou qui ne tiennent pas sur la feuille de papier, doit être mis à l’échelle. Par exemple, pour le plan d’une maison, ¼ pouce sur la page de dessin peut représenter 1 pied de la maison en réalité. Les schémas, tels que les diagrammes de flux et les organigrammes, permettent de décrire les objets abstraits ; par conséquent, ces types de dessin n’ont pas d’échelle et les formes apparaissent à leur taille réelle.

Dans Microsoft® Visio®, les unités de dessin représentent la taille des objets. Dans l’exemple de maison ci-dessus, 1 pied est l’unité de dessin. Les unités de page représentent la taille des objets sur la page imprimée (¼ pouce dans ce même exemple). Le rapport des unités de page sur les unités de dessin constitue l’échelle du dessin.

Les cellules ShapeSheet® décrivant la taille ou la position de l’objet (c’est-à-dire la plupart des cellules) sont exprimées en unités de dessin. Les cellules représentant des mesures sur la page imprimée, par exemple le format et les retraits de texte, sont exprimées en unités de page. Si vous modifiez l’échelle du dessin, toutes les cellules ShapeSheet exprimées en unités de dessin restent identiques, mais la forme est redessinée en fonction de la nouvelle échelle.

Page 265: MS Visio 2003 Guide du Développeur

F O R M E S M I S E S À L ’ É C H E L L E E T D E S S I N S C O T É S 251

Présentation des échelles de dessin et de pagePour comprendre le rapport existant entre l’échelle du dessin et l’échelle de la page, observez la figure suivante, qui représente une piscine. La piscine mesure 40 pieds de long sur 20 pieds de large ; l’épaisseur du trait de dessin est de 1 point et la police du texte est de 8 points.

Si vous utilisez l’échelle de dessin de ¼ pouce = 1 pied (1:48), le dessin de la piscine mesure 10 pouces de long sur 5 de large. Si vous modifiez l’échelle du dessin et choisissez 1/8 pouce = 1 pied (1:96), la piscine fait toujours 40 pieds sur 20 ; cependant, le dessin la représentant ne mesure plus que 5 pouces sur 2 ½. Quelle que soit l’échelle utilisée, l’épaisseur du trait de dessin est toujours de 1 point et la police est de 8 points.

En unités de dessin, la piscine faittoujours 40 pieds sur 20 quelle que

soit l’échelle de dessin utilisée.

A Echelle du dessin : 1/8 po. = 1 pd (1:96)B En unités de page, la piscine mesure 5 po. sur 2 1/2 avec cette échelle de dessin.C Echelle du dessin : ¼ po. = 1 pd (1:48)D En unités de page, la piscine mesure 10 po. sur 5 avec cette échelle de dessin.

Page 266: MS Visio 2003 Guide du Développeur

252 C H A P I T R E 1 2

Facteurs à prendre en compte lors du choix d’une échelle de dessinPour choisir l’échelle de dessin appropriée à inclure dans un modèle, prenez en compte les facteurs suivants :

• la taille prévue du dessin, en unités de dessin ;

• la taille du papier sur lequel les utilisateurs impriment leurs dessins ;

• les conventions de dessin ou de la profession qui s’appliquent au type de dessin que les utilisateurs créent à l’aide de votre modèle, comme les marges ou les blocs de titre.

Par exemple, un utilisateur peut imprimer le plan d’une maison sur une feuille de8 ½ pouces sur 11 pouces, en orientation paysage. Si l’échelle utilisée pour le dessin est ¼ pouce = 1 pied, la page de dessin représente une surface de 34 pieds sur 44 pieds (en supposant qu’aucune marge n’ait été définie pour la page imprimée). Ce format risque d’être insuffisant pour représenter la maison et son aménagement extérieur. Il est donc préférable de choisir une échelle plus grande, par exemple 1/8 pouce = 1 pied ou 1 pouce = 10 pieds.

REMARQUE : les unités de dessin peuvent mesurer d’autres paramètres que la distance. Vous pouvez utiliser le temps écoulé plutôt que la distance pour une échelle de page. Pour ce faire, paramétrez les unités de dessin sur des heures, des jours, des semaines ou des mois. Vous pouvez, par exemple, utiliser les semaines écoulées (portant l’abréviation « we » dans les formules ShapeSheet) comme unités de dessin pour le diagramme d’un planning de projet. Pour obtenir la liste complète des unités disponibles, recherchez les mots-clés « unités de mesure » dans l’aide en ligne Référence du développeur fournie avec Visio.

Pour définir l’échelle de dessin d’une page :

1 Sélectionnez Fichier > Mise en page, puis cliquez sur l’onglet Propriétés de la page.

2 Dans la zone Unité de mesure, choisissez les unités de dessin souhaitées, puis cliquez sur l’onglet Taille de la page.

3 Dans l’onglet Taille de la page, sélectionnez l’orientation et la taille du papier sur lequel le dessin va être imprimé.

Les valeurs indiquées dans l’onglet Taille de la page représentent les unités de mesure de votre page en fonction de l’échelle et du format de papier sélectionnés.

Page 267: MS Visio 2003 Guide du Développeur

F O R M E S M I S E S À L ’ É C H E L L E E T D E S S I N S C O T É S 253

4 Cliquez sur l’onglet Echelle de dessin, puis, dans la section du même nom, choisissez une échelle prédéfinie dans la liste :

• Sélectionnez Architecturale, Génie civil ou Génie mécanique parmi les échelles intégrées standard pour ces professions.

• Choisissez Métrique pour définir un rapport d’échelle métrique standard pour la page.

Vous pouvez également cliquer sur Echelle personnalisée, puis saisir un autre rapport d’échelle.

Pour plus d’informations sur les options, cliquez sur le bouton d’aide.

CONSEIL : pour vous assurer que la forme de base que vous créez correspond à l’échelle de dessin d’une page de modèle, modifiez-la, puis répétez la procédure ci-dessus dans la fenêtre de dessin de la forme de base. Pour plus d’informations, reportez-vous à la section « Définition de l’échelle d’une forme de base », page 256.

Choix des échelles des formes de base

Vous pouvez mettre à l’échelle les formes de base et les pages de dessin. L’aspect d’une forme sur la page de dessin dépend de l’échelle de la forme de base et de celle de la page de dessin. Si une forme est mise à l’échelle, et que la page n’ait pas d’échelle ou ait une échelle très différente (ou vice-versa), la forme peut avoir un comportement inattendu lorsque l’utilisateur l’insère dans la page. Si les utilisateurs ne connaissent pas ces différences d’échelle, ils risquent d’être déçus s’ils tentent d’utiliser des formes sur une page avec une échelle incompatible.

Vous ne pouvez pas empêcher les utilisateurs de créer un dessin, d’y définir une échelle et d’y insérer des formes ; cependant, vous pouvez veiller à ce que les échelles des pages de dessin fournies avec vos modèles correspondent à celles de vos formes de base. Vous pouvez également créer des formes de base compatibles avec le plus grand nombre d’échelles de dessin possible.

Page 268: MS Visio 2003 Guide du Développeur

254 C H A P I T R E 1 2

Définition d’une échelle appropriée pour une forme de baseIl est préférable que l’échelle de dessin d’une forme de base corresponde à celle de la page dans laquelle cette forme est insérée. Comme ce n’est pas toujours possible, Visio gère, dans une certaine mesure, les différences d’échelle en s’assurant que la taille de la forme, telle qu’elle est dessinée, est identique à celle de la forme de base, en unités de dessin :

• Si la différence entre l’échelle de la forme et celle de la page de dessin n’excède pas le facteur huit (c’est-à-dire si l’échelle de dessin de la forme de base est au maximum huit fois supérieure ou inférieure à celle de la page), Visio calcule la taille de la forme en unités de dessin et la met correctement à l’échelle sur la page de dessin. Ce comportement permet d’éviter qu’une forme ne devienne trop grande et dissimule entièrement la page de dessin, ou trop petite pour être visible.

• Si une échelle est plus de huit fois supérieure ou inférieure à l’autre, Visio ne change pas l’échelle de la forme ; la taille de la forme est identique, en unités de page, à celle de la forme de base. L’utilisateur peut redimensionner cette forme après son insertion. Par exemple, dans la figure suivante, lorsque la forme de la table est insérée dans un dessin dont l’échelle dépasse la limite d’un rapport huit, sa taille, en unités de page, est identique à celle de la forme de base (2 pouces). Cependant, Visio recalcule sa largeur à l’aide de l’échelle de dessin de la page.

Visio utilise un facteur de huit lorsqu’il ne met pas à l’échelle une forme, c’est pourquoi cette méthode est quelquefois appelée « règle du rapport huit ».

Page 269: MS Visio 2003 Guide du Développeur

F O R M E S M I S E S À L ’ É C H E L L E E T D E S S I N S C O T É S 255

Par exemple, vous pouvez créer une forme de base d’une table pouvant être utilisée dans des modèles d’aménagement de l’espace dont l’échelle varie de ½ pouce = 1 pied (facteur d’échelle de 1:24) à 1 pouce = 10 pieds (facteur d’échelle de 1:120). Dans la figure suivante, lorsqu’une forme de table de 48 pouces est insérée dans un dessin dont l’échelle est dans les limites du rapport huit, la table est correctement mise à l’échelle. La section Transformation de la forme indique que sa largeur est toujours de 48 pouces.

Formes redessinées à des échellesdifférentes en fonction de la règle

du rapport huit

Visio applique la règle du rapport huit uniquement aux valeurs de largeur et de hauteur. Les constantes des formules ne sont pas ajustées. Donc, si vous saisissez, par exemple, la formule suivante dans l’une des cellules de la section Géométrie, vous risquez d’obtenir des résultats inattendus :

Visio modifie la largeur de la forme et la référence de largeur est mise à l’échelle, mais une mesure de 1 pied reste inchangée dans les unités de dessin. Par conséquent, la forme peut avoir une apparence étrange même après avoir été correctement mise à l’échelle.

A Facteur de la forme de base : ½ pouce = 1 pied Rapport d’échelle : 1:24Taille (en unités de dessin) : 4 pieds Taille à l’impression (en unités de page) : 2 pouces

B Echelle de dessin : 1 pouce = 10 pieds Facteur d’échelle : 1:120Taille (en unités de dessin) : 4 piedsTaille à l’impression (en unités de page) : 0,4 pouceFacteur d’échelle : (1/24) / (1/120) = 55 est inférieur à 8 ; la forme est donc mise à l’échelle.

C Echelle de dessin : 1 pouce = 20 piedsRapport d’échelle : 1:240Taille (en unités de dessin) : 40 piedsTaille à l’impression (en unités de page) : 2 poucesFacteur d’échelle : (1/24) / (1/240) = 1010 est supérieur à 8 ; la forme n’est donc pas mise à l’échelle.

������>�*���1

Page 270: MS Visio 2003 Guide du Développeur

256 C H A P I T R E 1 2

Pour utiliser la règle de rapport huit lors de la conception des formes de base, suivez les instructions ci-dessous :

• Définissez l’échelle d’une forme de base comprise entre l’échelle la plus grande et la plus petite utilisées pour cette forme de base. Ainsi, la forme de base fonctionne avec la plus grande plage possible d’échelles de dessin dans le rapport huit. Cette « échelle moyenne » est égale à la racine carrée du rapport d’échelle de dessin le plus élevé multipliée par le rapport d’échelle de dessin le moins élevé.

• Si vous souhaitez qu’une forme ne soit jamais mise à l’échelle, paramétrez l’échelle de la forme de base sur une valeur extrême, pour que la forme ne subisse pas de mise à l’échelle lorsque vous l’insérez dans la page. Vous pouvez par exemple utiliser une échelle de 1 000 pouces = 1 pouce, ce qui est bien en dehors des limites du rapport huit. Pour plus d’informations, reportez-vous à la section « Création de formes non mises à l’échelle », page 257.

Définition de l’échelle d’une forme de baseEn général, l’échelle d’une forme de base est égale à l’échelle de la page de dessin avec laquelle cette forme est utilisée. Par défaut, une forme de base utilise l’échelle de la page de dessin dans laquelle elle a été créée, avant que la forme ait été insérée dans un gabarit. Toutefois, si vous utilisez la commande Nouvelle forme de base pour créer une forme de base directement dans le gabarit, cette forme n’est par défaut pas mise à l’échelle.

REMARQUE : pour modifier une forme de base, vous devez ouvrir le fichier de gabarit d’origine. Si vous ouvrez le gabarit en lecture seule, vous ne pouvez pas modifier ses formes de base.

Pour définir l’échelle d’une forme de base :

1 Cliquez avec le bouton droit sur l’une des formes de base du gabarit, puis sélectionnez Modifier la forme de base dans le menu contextuel.

2 Choisissez Fichier > Mise en page, puis cliquez sur l’onglet Echelle de dessin.

3 Dans l’onglet Echelle de dessin, sélectionnez une échelle prédéfinie dans la liste :

• Sélectionnez Architecturale, Génie civil ou Génie mécanique parmi les échelles intégrées standard pour ces professions.

• Cliquez sur Métrique pour définir un rapport d’échelle métrique standard pour la page.

Vous pouvez également choisir Echelle personnalisée et saisir un rapport d’échelle pour définir une autre échelle.

Page 271: MS Visio 2003 Guide du Développeur

F O R M E S M I S E S À L ’ É C H E L L E E T D E S S I N S C O T É S 257

Création de formes non mises à l’échelle

Vous pouvez créer des formes de base qui ne sont jamais mises à l’échelle, c’est-à-dire des formes dont la taille reste identique en unités de page quelle que soit l’échelle de dessin utilisée. Par exemple, le bloc de titre d’un plan ou la légende d’une carte doivent toujours conserver la même taille, quelle que soit l’échelle. Pour qu’une forme de bloc de titre conserve la même taille, ses dimensions doivent être converties en unités de page, même si elles sont exprimées en unités de dessin.

Visio contient deux formules de page qui vous permettent de déterminer l’échelle : LaPage!EchellePage et LaPage!EchelleDessin. Vous pouvez écrire une formule de non-mise à l’échelle utilisant le rapport de ces deux valeurs pour convertir une valeur exprimée en unités de page en une valeur équivalente en unités de dessin.

Pour convertir une valeur exprimée en unités de page en une valeur équivalente en unités de dessin, multipliez-la par le rapport suivant :

Si vous écrivez une formule personnalisée utilisant ce rapport pour une forme de base, les utilisateurs peuvent insérer cette forme sans que son échelle de dessin, quelle qu’elle soit, change. Par exemple, pour créer sur la feuille une forme qui mesure toujours 5 cm de largeur et qui ne peut pas être redimensionnée, saisissez la formule suivante dans la section Transformation de la forme :

Pour que les utilisateurs puissent redimensionner la forme, n’utilisez pas la fonction PROTECTION. Lorsqu’un utilisateur crée une occurrence de cette forme de base sur une page avec une échelle de 1 cm = 1 m, la formule de largeur est recalculée en fonction de l’échelle de la page de destination :

Une forme de 500 cm fait 5 cm lorsqu’elle est imprimée ou affichée à l’écran en taille réelle.

������9 �������������C�������9 ����������

������ ��&�$ �$��2�8����@��������9 �������������C�������9 ������������

�8����@��*���C�*����

�8����@�*''

�8''���

Page 272: MS Visio 2003 Guide du Développeur

258 C H A P I T R E 1 2

Si vous créez plusieurs formes de base non mises à l’échelle, il peut s’avérer plus efficace de placer la formule de non-mise à l’échelle dans une cellule de la feuille définie par l’utilisateur, telle que Lapage!Util.NonMiseEchelle. Ainsi, vous pouvez rapidement modifier cette formule, en saisissant de nouvelles valeurs une seule fois, à savoir dans la feuille. La formule d’une forme de base non mise à l’échelle devient alors la suivante :

����� �8����@�������9%���"2��E��� ������

Page 273: MS Visio 2003 Guide du Développeur

Sommaire

13Diffusion de gabarits et de modèles

Les formes de base, les gabarits et les modèles sont les éléments qui composent une solution graphique. Toutes les solutions ne nécessitent pas ces trois types d’éléments, mais cela peut être le cas d’une solution comprenant de nombreuses formes nouvelles ou personnalisées destinées à la distribution. Vous pouvez en outre joindre des fichiers d’aide pour assister les utilisateurs. Avant de distribuer les formes de base, les gabarits et les modèles, vous devez les soumettre à un test approfondi. C’est en effet la seule façon de s’assurer que les utilisateurs peuvent comprendre et utiliser facilement les différentes composantes de votre solution Microsoft® Visio®.

Ce chapitre explique comment peaufiner les formes, les gabarits et les modèles. Il décrit également comment intégrer une aide sur les formes et donne des instructions détaillées pour tester votre travail en fonction de la méthode utilisée par l’équipe d’assurance qualité de Visio.

Conception de formes personnalisées pour la distribution ............................... 260

Test des formes de base ........................................................................................ 262

Ajout d’une aide aux formes de base................................................................... 266

Finalisation et test d’un gabarit............................................................................. 268

Finalisation et test d’un modèle............................................................................ 273

Installation des gabarits et des modèles.............................................................. 277

Page 274: MS Visio 2003 Guide du Développeur

260 C H A P I T R E 1 3

Conception de formes personnalisées pour la distribution

Si vous prenez le temps de créer vos propres formes, vous envisagez certainement de les réutiliser ou de les distribuer dans des gabarits et des modèles afin que d’autres puissent les utiliser. L’objectif d’un travail de conception soigné est de produire des formes dont le fonctionnement correspond aux attentes des utilisateurs. Dans tout travail de création répétitif les résultats s’affinent au fur et à mesure des tentatives : c’est le cas de la conception de formes.

Les éléments qui fonctionnent sur votre système peuvent ne pas fonctionner sur un autre système. Les installations de Microsoft® Windows® ne sont pas toutes rigoureuse-ment identiques. Si vous connaissez la configuration matérielle des utilisateurs, vous pouvez optimiser les formes, les gabarits et les modèles que vous créez à leur intention. Même si vous créez des formes que vous serez seul à utiliser, vous gagnerez du temps si vous connaissez les caractéristiques de votre environnement informatique car vous pourrez créer des formes immédiatement opérationnelles.

Quel que soit le système, l’utilisation des gabarits et des modèles est liée à la vitesse du processeur et à la quantité de mémoire disponible. Les formes comprenant de nombreuses formules complexes sont recalculées et redessinées plus lentement que des formes simples, et occupent un espace disque plus important. Testez les gabarits sur tous les systèmes dont disposent les utilisateurs, y compris les portables.

Procédure concernant la conception des formes La procédure suivante permet de créer une solution de formes de niveau professionnel :

1 Définissez la fonction envisagée pour une forme. Quels besoins doit-elle satisfaire ? Quel comportement lui permettra de les satisfaire ? Si la forme fait partie d’une collection dans un gabarit, quel comportement doit-elle adopter pour être cohérente avec les autres formes ?

2 Dessinez un prototype de la forme et formatez-le selon l’apparence souhaitée. Testez ensuite cette forme à l’aide des outils de dessin de Visio. Comment se comporte-t-elle lorsque vous la déplacez, la dimensionnez, la faites pivoter ou la regroupez avec d’autres formes ? Que se passe-t-il lorsque vous en verrouillez des parties ? Quels comportements souhaitez-vous modifier ?

3 Identifiez les cellules ShapeSheet® en rapport avec le comportement à modifier. Quelles sont celles qui doivent contenir des formules personnalisées et à quelles cellules les formules doivent-elles faire référence ?

4 Créez les formules une à une et contrôlez leur effet sur le comportement de la forme. Prenez des notes sur papier ou dans des blocs de texte sur le dessin contenant le prototype. Si vous essayez plusieurs solutions, vous pouvez copier la forme à chaque nouvel essai et conserver ces copies de façon à pouvoir revenir à une version antérieure si nécessaire.

Page 275: MS Visio 2003 Guide du Développeur

D I F F U S I O N D E G A B A R I T S E T D E M O D È L E S 261

5 Rédigez une aide sur la forme afin d’expliquer sa fonction aux utilisateurs.

6 Testez la forme en la transmettant à des collègues pour savoir si elle répond également à leurs attentes.

Lorsque vous savez exactement l’apparence que doit avoir la forme et comment elle doit se comporter, et que vous connaissez les formules nécessaires à son comportement, recréez-la de toutes pièces. Ce travail peut sembler inutile, mais c’est la meilleure façon de s’assurer que les cellules ShapeSheet ne contiennent aucune formule obsolète, et que la forme est dessinée et formatée proprement.

Remarques concernant la distribution des formesLorsque vous créez des gabarits et des modèles qui seront distribués, tenez compte des remarques suivantes :

• A propos de la résolution des différents systèmes d’affichage

Si vous concevez ces éléments pour le système disposant de la résolution la plus faible et du plus petit nombre de couleurs, il est probable que l’apparence des présentations et des formes sera meilleure sur des systèmes plus évolués. En revanche, l’apparence d’un gabarit conçu pour une résolution supérieure et un plus grand nombre de couleurs sera probablement moins bonne sur un système moins performant.

• A propos des périphériques de sortie que les utilisateurs peuvent utiliser pour imprimer des formes

Vous devez connaître les possibilités et les limites des périphériques de sortie des utilisateurs. Testez les formes que vous créez en les imprimant sur le périphérique de sortie dont ils disposent afin de vous assurer que les traits et les remplissages ont l’apparence souhaitée.

• A propos de la protection des formes créées par copyright

Les gabarits, les formes de base, les modèles et le code source qui accompagnent les produits Visio sont protégés par les lois sur les droits d’auteur : ils appartiennent à Visio Corporation et sont protégés par les lois des Etats-Unis régissant les droits d’auteur ainsi que par les traités internationaux. Vous n’êtes pas autorisé à distribuer les formes de base ainsi protégées fournies avec un produit Visio, à moins que l’utilisateur ne dispose déjà d’une licence pour un produit Visio les contenant. Il en va de même pour les formes que vous créez en modifiant ou en partant des formes de base protégées par ces lois.

Vous pouvez toutefois associer un droit d’auteur à vos propres formes.

Pour associer un droit d’auteur à vos propres formes :

• Choisissez Format > Spécial.

Ajoutez les informations de copyright en dernier lieu du processus de développement de la forme. Une fois que vous avez saisi ces informations dans la boîte de dialogue Spécial, vous ne pouvez plus les modifier.

Page 276: MS Visio 2003 Guide du Développeur

262 C H A P I T R E 1 3

Test des formes de base

Vous pouvez tester ensemble toutes les formes de base d’un gabarit pour voir si elles sont cohérentes, puis les tester séparément. Après avoir effectué les tests suivants, consacrez quelques minutes à élaborer un diagramme ou un graphique tel que ceux qui seront produits avec les formes. C’est la meilleure façon de tester les interactions entre les formes, leur précision et leur utilité, et de découvrir leurs limites ou leurs lacunes.

Contrôle de la cohérence des formes de baseAssurez-vous qu’un gabarit contient toutes les formes de base qu’il est censé contenir, que les noms et les formats sont compréhensibles et que l’ordre d’apparition des icônes dans le gabarit est prévisible. Si vous disposez de spécifications écrites pour les formes de base, prenez soin de comparer chaque forme à ces spécifications.

Pour contrôler la cohérence des formes de base d’un gabarit, ouvrez le fichier de gabarit avec l’option Original, puis vérifiez les points suivants.

Contrôle de la cohérence des formes de base d’un gabarit

Elément à vérifier Action

Nombre de formes de base prévu dans le gabarit

• Vérifiez ce nombre dans les spécifications dont vous disposez éventuellement. Si des modifications ultérieures sont apportées au gabarit et que vous soyez amené à le tester une nouvelle fois, vous saurez si des formes de base ont été ajoutées ou supprimées.

Messages et noms des formes de base

• Vérifiez que l’orthographe, la ponctuation, les majuscules, la grammaire, le contenu et l’espacement dans les messages et les noms des formes de base sont corrects et cohérents avec ceux des autres formes.

• Supprimez les espaces à la fin des noms de formes de base qui se traduirait par une surbrillance plus longue que nécessaire lors de la sélection de l’icône. Pour vérifier ce point, choisissez Edition > Sélectionner tout.

• Utilisez le même alignement pour les noms de toutes les formes de base du gabarit.

Icônes • Organisez les icônes de façon logique, alignez-les de façon cohérente, et classez-les de gauche à droite et de haut en bas.

• Définissez une taille correcte. Le paramètre de taille normale est le plus couramment utilisé.

• Vérifiez que chaque icône représente de manière significative la forme de base associée. Contrôlez que l’apparence des icônes est claire et comparez-les aux formes de base correspondantes. Pour ce faire, cliquez avec le bouton droit sur une forme de base et choisissez Modifier l’icône dans le menu contextuel.

Page 277: MS Visio 2003 Guide du Développeur

D I F F U S I O N D E G A B A R I T S E T D E M O D È L E S 263

Contrôle de la forme de base dans la fenêtre de dessin de cette formePour tester une forme dans la fenêtre de dessin de la forme de base, ouvrez le fichier de gabarit avec l’option Original. Pour ouvrir la fenêtre de gabarit dans la fenêtre de dessin de forme de base, double-cliquez, dans la fenêtre de gabarit, sur une icône de forme de base. Vous pouvez également cliquer avec le bouton droit sur une forme de base et choisir Modifier la forme de base dans le menu contextuel. Procédez alors aux vérifications suivantes.

Test des différentes échelles de page des formes de base Pour chaque modèle fourni, un gabarit et une page de dessin sont ouverts, et vous devez tester chaque forme avec les différentes échelles de page qu’elle est censée utiliser. Il est également utile de tester une forme sur une page dont l’échelle est très éloignée de la sienne.

Icônes • Les icônes disposant d’un graphique personnalisé doivent être mises à jour manuellement. Pour vérifier ce point, cliquez avec le bouton droit sur une forme de base et choisissez Propriétés des formes de base dans le menu contextuel. Dans la boîte de dialogue Propriétés de la forme de base, l’option Générer automatiquement une icône à partir des données de la forme de la section Comportement doit être sélectionnée.

Contrôle d’une forme de base

Elément à vérifier Vérification

Echelle utilisée par la forme

La forme doit utiliser l’échelle qui convient. Pour vérifier ce point, choisissez Fichier > Mise en page et cliquez sur l’onglet Echelle de dessin.

Style d’interaction en 1D ou en 2D

Choisissez le comportement qui convient à la forme. Pour vérifier ce point, choisissez Format > Comportement.

Exactitude des informations relatives à la forme de base dans la boîte de dialogue Spécial

Par exemple, vérifiez que les champs Données sont remplis et que la forme est liée à une aide spécifique. Pour vérifier ce point, choisissez Format > Spécial.

Définition des options de protection appropriées

Ouvrez la fenêtre ShapeSheet® d’une forme de base ou choisissez Format > Protection pour vérifier le paramétrage des options Protection.

Affichage des points de connexion

Choisissez Affichage > Points de connexion.

Contrôle de la cohérence des formes de base d’un gabarit (suite)

Elément à vérifier Action

Page 278: MS Visio 2003 Guide du Développeur

264 C H A P I T R E 1 3

Pour tester une forme dans un dessin de même échelle :

1 Choisissez Fichier > Ouvrir.

2 Dans la zone contenant les noms des fichiers, sélectionnez un fichier de modèle contenant un gabarit dont les formes de base doivent être testées et une page de dessin utilisant la même échelle que ces formes de base.

3 Dans la zone Ouvrir, sélectionnez Lecture seule et cliquez sur OK.

4 Insérez une forme de base dans la page de dessin afin de créer une occurrence et de la tester.

5 Vérifiez les éléments du tableau suivant.

Contrôle d’une forme de base dans un dessin de même échelle

Elément à vérifier Vérification

Comportement général des formes

• La forme doit être correctement alignée dans le rectangle de sélection lorsque vous la déplacez.

• La forme doit se comporter comme prévu lorsque vous la liez à d’autres formes ; par exemple, une forme Lien doit utiliser le type de collage approprié.

• La forme doit se comporter comme prévu lorsque vous double-cliquez dessus. Pour vérifier ce paramètre, choisissez Format > Comportement et cliquez sur l’onglet Action du double-clic.

• Vous devez pouvoir supprimer la forme.

• L’apparence de la forme est celle que vous envisagez lorsque vous l’imprimez sur les périphériques de sortie prévus. Par exemple, certains motifs de remplissage ont une incidence sur les performances des imprimantes PostScript.

Comportement des formes vis-à-vis de l’attraction et du collage

• La forme et le rectangle de sélection répondent au magnétisme de la grille.

• L’occurrence est attirée par les autres formes, et par la grille et les repères comme prévu.

Page 279: MS Visio 2003 Guide du Développeur

D I F F U S I O N D E G A B A R I T S E T D E M O D È L E S 265

Texte des formes • La zone de texte associée à la forme se trouve à l’emplacement approprié. Le texte que vous y entrez passe à la ligne et s’aligne correctement.

• La forme et le texte associé se comportent comme prévu lorsque vous appliquez un style de remplissage.

• La forme et le texte associé se comportent comme prévu lorsque vous redimensionnez la forme verticalement, horizontalement et proportionnellement. Ce test est particulièrement important si vous avez programmé la forme pour un redimensionnement unique (par exemple, dans une seule direction).

• La forme et le texte associé se comportent comme prévu lorsque vous faites pivoter la forme à l’aide des commandes Pivoter à gauche et Pivoter à droite, et de l’outil Rotation.

• La forme et le texte associé se comportent comme prévu lorsque vous inversez les extrémités, et que vous retournez la forme verticalement et horizontalement.

• La forme et le texte associé se comportent comme prévu lorsque vous dissociez cette forme. Si la forme de base ne constitue pas un groupe, la commande Dissocier est grisée.

Personnalisation des formes

• Si des propriétés personnalisées sont associées à la forme, elles doivent être affichées comme prévu. Pour contrôler ce point, choisissez Affichage > Fenêtres > Propriétés personnalisées ou Forme > Propriétés personnalisées.

• Si des actions personnalisées sont associées à la forme dans un menu contextuel, elles doivent fonctionner comme prévu. Pour contrôler ce point, cliquez avec le bouton droit sur la forme et choisissez la commande correspondant à une action.

• Le message et l’aide propre à une forme fournissent des informations utiles sur cette forme.

• La boîte de dialogue Spécial contient les informations appropriées. Pour contrôler ce point, choisissez Format > Spécial.

Contrôle d’une forme de base dans un dessin de même échelle (suite)

Elément à vérifier Vérification

Page 280: MS Visio 2003 Guide du Développeur

266 C H A P I T R E 1 3

Pour tester une forme dans une page de dessin d’échelle différente :

1 Créez une page de dessin avec une échelle très éloignée de celle de la forme à tester.

Par exemple, si la forme de base a été créée avec une échelle de 1:1, créez une page de dessin avec une échelle de ¼ pouce = 1 pied.

2 Insérez une forme de base dans la page de dessin afin de créer une occurrence et la tester.

3 Vérifiez les points suivants :

• Lorsque vous déplacez la forme, son alignement dans le rectangle de sélection est correct.

• La forme et le rectangle de sélection répondent au magnétisme de la grille.

• La forme et le texte associé se comportent comme prévu lorsque vous redimensionnez la forme verticalement, horizontalement et proportionnellement.

• La forme et le texte associé se comportent comme prévu lorsque vous faites pivoter la forme à l’aide des commandes Pivoter à gauche et Pivoter à droite, et de l’outil Rotation.

Ajout d’une aide aux formes de base

Vous pouvez fournir une aide en ligne donnant des instructions générales sur l’utilisation des formes de base d’un gabarit ou sur les subtilités du comportement d’une forme. Ce produit Visio prend en charge WinHelp (fichiers .hlp) et HTML Help (fichiers .chm). Cette section suppose que vous connaissez les techniques et la terminologie relatives à la création de fichiers d’aide en ligne Microsoft Windows. Pour plus d’informations, reportez-vous à la documentation fournie avec le kit de développement SDK (Microsoft Platform Software Development Kit).

Association d’une aide à une forme de baseVous pouvez associer une aide aux formes d’un dessin, quelles qu’elles soient, mais cette aide est généralement associée aux formes de base d’un gabarit. Pour afficher l’aide associée à une forme ou à un gabarit, choisissez ? dans le menu contextuel correspondant.

Visio localise la rubrique d’aide associée à une forme grâce au numéro de l’identificateur de contexte (ID) indiqué dans le fichier .hpj utilisé pour compiler les fichiers .hlp, ou le fichier .hhp utilisé pour compiler les fichiers .chm. Pour associer une rubrique d’aide à une forme, vous devez fournir l’identificateur de contexte de cette rubrique.

Page 281: MS Visio 2003 Guide du Développeur

D I F F U S I O N D E G A B A R I T S E T D E M O D È L E S 267

Pour associer une aide à une forme de base d’un gabarit :

1 Ouvrez un gabarit avec l’option Original afin de pouvoir modifier les formes de base qu’il contient, ou cliquez avec le bouton droit sur la barre de titre de ce gabarit et choisissez Modifier.

2 Double-cliquez sur une forme de base pour ouvrir la fenêtre de dessin associée et sélectionnez une forme.

3 Choisissez Format > Spécial.

4 Dans le champ d’aide, entrez le nom du fichier d’aide et le mot-clé correspondant en respectant la syntaxe suivante :

nomdefichier.hlp!#n ou nomdefichier.chm!#n

Nomdefichier.hlp ou nomdefichier.chm correspondent au nom du fichier d’aide et n au numéro d’ID défini pour la rubrique d’aide à associer à la forme (par exemple, Forme.hlp#63 ou Forme.chm#63).

Pour afficher le sommaire du fichier d’aide, au lieu d’entrer le numéro d’ID, utilisez la syntaxe suivante :

nomdefichier.hlp ou nomdefichier.chm

5 Cliquez sur OK.

Lorsqu’un utilisateur choisit la commande ?, la rubrique indiquée apparaît :

• dans une fenêtre contextuelle qui n’est liée à aucun système d’aide parent de WinHelp ;

• dans une fenêtre standard qui fait partie du système d’aide principal d’HTML Help.

Lorsqu’aucune rubrique d’aide n’est associée à une forme, la commande ? du menu correspondant est grisée.

REMARQUE : l’activation de la touche F1 affiche toujours l’aide en ligne de Visio, et non l’aide associée à une forme.

Pour que Visio puisse localiser le fichier d’aide sur une forme, vous devez le placez dans le dossier approprié. Par défaut, l’application Visio recherche d’abord ce type de fichier dans le dossier des fichiers d’aide par défaut (il s’agit généralement du dossier \Help). Vous pouvez changer ce dossier par défaut en modifiant le paramètre du chemin d’accès à l’aide dans la boîte de dialogue Chemins d'accès. Pour ce faire, choisissez Outils > Options, puis cliquez sur l’onglet Chemins d'accès.

Page 282: MS Visio 2003 Guide du Développeur

268 C H A P I T R E 1 3

Test de l’aide sur les formesAssurez-vous que l’aide associée à la forme et la forme elle-même sont finalisées. Testez la cohérence et la précision de l’aide et de ses liens.

Pour tester l’aide sur les formes :

1 Cliquez avec le bouton droit sur une forme de base d’un gabarit. Vous pouvez aussi créer une occurrence de la forme et cliquer dessus avec le bouton droit. Choisissez ? et vérifiez que la rubrique d’aide correcte apparaît.

2 Créez une autre occurrence de la forme, sélectionnez-la et cliquez dessus avec le bouton droit. Choisissez ? dans le menu contextuel et vérifiez que la rubrique d’aide correcte apparaît.

3 Testez tous les liens pour vous assurer qu’ils donnent accès aux rubriques appropriées.

4 Vérifiez l’orthographe, la grammaire, la cohérence et la précision de chaque rubrique.

Finalisation et test d’un gabarit

Une fois que vous avez créé un gabarit contenant des formes de base, il vous reste encore quelques tâches à effectuer pour préparer ce gabarit en vue de sa distribution. Par exemple, l’utilisation des gabarits que vous créez sera d’autant plus facile si les formes de base sont harmonisées et si chacune évoque la fonction de la forme correspondante.

Création de raccourcis vers des formes de baseVous pouvez créer des raccourcis vers des formes de base situées dans d’autres gabarits. Pour ce faire, les formes de base doivent être stockées dans un gabarit enregistré. Ces raccourcis apparaissent et se comportent exactement comme une forme de base, à la différence près qu’ils font référence à une forme de base qui peut être stockée dans tout autre gabarit. Les raccourcis de formes de base ne contiennent aucune donnée de forme : lorsque vous déplacez ce raccourci sur la page de dessin, la forme de base d’origine est extraite et utilisée pour créer la forme.

Page 283: MS Visio 2003 Guide du Développeur

D I F F U S I O N D E G A B A R I T S E T D E M O D È L E S 269

En créant des raccourcis vers des formes de base dans un gabarit, vous bénéficiez des avantages suivants :

• Vous réduisez la taille des gabarits en faisant référence aux formes de base (elles ne sont plus dupliquées).

• Vous simplifiez la maintenance des formes de base en conservant les données des formes dans un même emplacement.

• Vous disposez de plusieurs raccourcis vers une même forme de base et des définitions des actions de chaque raccourci (appelées actions de déplacement) ayant une incidence sur l’apparence de la forme lorsqu’elle est déplacée sur la page.

Pour créer un raccourci vers une forme de base, effectuez l’une des opérations suivantes :

• Cliquez avec le bouton droit sur une forme de base et choisissez Créer un raccourci dans le menu contextuel. Un raccourci apparaît dans le même gabarit que cette forme de base ; faites-le alors glisser vers un autre gabarit. Un gabarit doit être modifiable pour que vous puissiez créer un raccourci vers une forme de base située dans le même gabarit.

• Cliquez avec le bouton droit sur une forme de base, puis choisissez Copier. Cliquez avec le bouton droit sur le gabarit dans lequel vous souhaitez insérer le raccourci, puis choisissez Coller le raccourci.

• Faites glisser une forme de base vers un autre gabarit tout en maintenant les touches Ctrl+Maj enfoncées. Au lieu de créer une copie de la forme de base dans le gabarit cible, Visio génère un raccourci vers cette forme.

Pour définir des actions de déplacement pour un raccourci vers une forme de base :

1 Cliquez avec le bouton droit sur un raccourci de forme de base et choisissez Propriétés de raccourci de forme de base.

2 Dans les champs Actions au déplacement de la boîte de dialogue des raccourcis de forme de base, saisissez tout nom de cellule égal à une valeur ou à une formule valide que vous souhaitez appliquer à l’occurrence de la forme de base. Par exemple, pour appliquer la couleur de remplissage rouge lorsque vous l’insérez dans une page de dessin, saisissez l’expression suivante :

Vous pouvez séparer tout nombre de valeur de cellule par un point virgule. Par exemple :

&����������� �0

&����������� �0�-�F<�!�)����� �*

Page 284: MS Visio 2003 Guide du Développeur

270 C H A P I T R E 1 3

Nettoyage des formes de base dans un gabaritVous pouvez modifier le nom et l’icône des formes de base pour en faciliter l’identification. Vous pouvez également ajouter un message et le faire apparaître dans la barre d’état de Visio pour qu’il explique la fonction principale de la forme de base.

Par défaut, le nom d’une forme de base est un identificateur attribué par Visio et son icône, une représentation miniature de la forme. Lorsque vous modifiez une nouvelle forme de base, sauf indication contraire, l’icône est mise à jour en même temps que vous dessinez la forme correspondante.

Pour faciliter l’identification d’uneforme de base, vous pouvez

associer une image personnaliséeà l’icône.

A Icône de la forme de base FenêtreB Forme Fenêtre telle qu’elle apparaît dans la fenêtre de dessin

Pour définir un nom et un message pour une forme de base :

1 Ouvrez un gabarit avec l’option Original, ou cliquez avec le bouton droit dans la barre de titre d’un gabarit et choisissez Modifier.

2 Dans la fenêtre de gabarit, cliquez avec le bouton droit sur une forme de base et choisissez Propriétés des formes de base dans le menu contextuel.

3 Dans le champ Nom, saisissez le nom de la forme de base. Pour changer l’alignement du nom de la forme de base sous l’icône, sélectionnez une option Aligner.

4 Dans le champ Message d’aide, saisissez le texte qui doit apparaître dans la barre d’état et dans l’info-bulle lorsque l’utilisateur place le pointeur de la souris sur l’icône.

5 Dans la zone Taille de l'icône, sélectionnez une taille.

Pour créer une icône de forme de base personnalisée :

1 Dans la fenêtre de gabarit, cliquez avec le bouton droit sur une forme de base et choisissez Modifier l'icône.

2 Modifiez l’icône ou créez un dessin dans la fenêtre de modification d’icônes à l’aide des outils de dessin.

Pour plus d’informations sur l’utilisation des outils de dessin dans la fenêtre de modification d’icônes, effectuez une recherche à l’aide des mots « fenêtre de modification d’icônes » dans l’aide en ligne fournie avec Visio.

3 Lorsque vous avez terminé, fermez la fenêtre de modification d’icônes.

4 Pour éviter toute modification accidentelle d’une icône personnalisée, cliquez avec le bouton droit sur la forme de base, puis choisissez Propriétés des formes de base. Assurez-vous que la case Générer automatiquement une icône à partir des données de la forme n’est pas cochée.

A B

Page 285: MS Visio 2003 Guide du Développeur

D I F F U S I O N D E G A B A R I T S E T D E M O D È L E S 271

Fenêtre de modification d’icônes

A Cliquez sur ce bouton avec le bouton gauche pour appliquer cette couleur.B Cliquez sur ce bouton avec le bouton droit pour appliquer cette couleur.C Palette de couleursD Outils d’éditionE Couleur d’arrière-plan du gabaritF Fenêtre de modification d’icônes

Nettoyage d’un fichier de gabaritAvant d’enregistrer un gabarit terminé, effectuez les opérations suivantes pour éliminer les données superflues et améliorer les performances :

• Agencez les icônes dans les fenêtres de gabarit de sorte qu’elles apparaissent à l’écran, à l’ouverture du fichier, classées de gauche à droite et de haut en bas.

• Saisissez des informations récapitulatives sur le fichier de gabarit. Pour ce faire, activez la fenêtre de gabarit, puis choisissez Fichier > Propriétés.

• Pour réduire la taille du fichier de gabarit, assurez-vous qu’il contient uniquement la page de dessin requise et que celle-ci ne contient aucune forme.

• Supprimez de la page de dessin les styles non utilisés par les formes de base du gabarit. Un fichier de gabarit ne doit contenir que des formes de base et les styles associés.

• Vérifiez que la définition des styles du gabarit correspond à celle des styles de mêmes noms dans les modèles donnant accès au gabarit. Pour obtenir des informations sur l’utilisation des styles, reportez-vous au chapitre 10, « Gestion des styles, des formats et des couleurs ».

• Enregistrez le fichier de gabarit à l’aide de la commande Enregistrer sous et vérifiez que l’option Espace de travail de la boîte de dialogue est désélectionnée. La liste des espaces de travail d’un gabarit doit être vide.

��

Page 286: MS Visio 2003 Guide du Développeur

272 C H A P I T R E 1 3

Test des gabaritsPour tester les gabarits, vous devez passer en revue les informations de la boîte de dialogue Ouvrir un fichier et analyser le gabarit ouvert avec les options Original, Copie et Lecture seule.

CONSEIL : pour protéger le gabarit d’origine, faites-en une copie contenant les formes à tester, puis procédez au test dans cette copie. Entrez ensuite les modifications dans l’original et faites-en une copie pour procéder à de nouveaux tests.

Pour tester les informations de la boîte de dialogue Ouvrir un fichier :

1 Choisissez Fichier > Ouvrir.

2 Dans la zone contenant les noms des fichiers, sélectionnez un fichier de gabarit.

3 Vérifiez les points suivants :

• L’option Ouvrir par défaut est paramétrée sur Lecture seule.

• Un titre et une description apparaissent dans la zone Description. Dans le cas contraire, pensez à les entrer ultérieurement dans le fichier d’origine via Fichier > Propriétés.

Pour tester la version d’origine d’un gabarit :

1 Ouvrez un fichier de gabarit avec l’option Original.

2 Vérifiez les points suivants :

• Le nom du fichier est correctement affiché dans la barre de titre à l’ouverture du fichier. Par exemple, ce nom doit apparaître sous la forme : Formes de base.vss. (Si la page de dessin est ouverte, .vss n’apparaît pas.)

• La fenêtre de gabarit occupe le quart gauche de l’écran.

• Les informations de propriété relatives au fichier sont remplies. Pour contrôler ce point, choisissez Fichier > Propriétés et vérifiez l’orthographe, la grammaire, le contenu, l’espacement, l’utilisation des majuscules et la ponctuation.

Pour tester la copie d’un gabarit :

1 Ouvrez un fichier de gabarit avec l’option Copie.

2 Vérifiez les points suivants :

• Le fichier est ouvert sous un nom générique tel que Gabarit1.

• Aucune information de propriété ne doit apparaître, sauf dans le champ Auteur qui doit afficher le nom d’utilisateur défini dans la boîte de dialogue Options (accessible via le menu Outils) ou lors de l’installation de Visio.

Page 287: MS Visio 2003 Guide du Développeur

D I F F U S I O N D E G A B A R I T S E T D E M O D È L E S 273

Pour tester la version en lecture seule d’un gabarit :

1 Fermez tous les fichiers et ouvrez le fichier de gabarit avec l’option Lecture seule.

2 Vérifiez les points suivants :

• Le nom de fichier apparaît entre accolades dans la barre de titre.

• Dans le menu Fichier, la commande Enregistrer est grisée.

• Dans le menu Edition, les commandes Couper, Effacer, Coller et Dupliquer sont grisées.

• Dans le menu Forme de base, toutes les commandes sont grisées.

Finalisation et test d’un modèle

Avant d’enregistrer un modèle, vérifiez les points suivants :

• La liste des espaces de travail ne doit contenir que les fichiers à ouvrir.

• Toutes les fenêtres doivent être positionnées correctement.

• Toute fenêtre que vous souhaitez réduire doit être mise en icône.

Pour créer un espace de travail pour un modèle, cochez la case Espace de travail dans la boîte de dialogue Enregistrer le fichier sous et enregistrez le fichier de modèle. Ensuite, à moins que vous n’ayez désélectionné la case Espace de travail, Visio met à jour la liste des espaces de travail chaque fois que vous enregistrez le fichier d’origine (ajout des fichiers ouverts et suppression de ceux fermés).

Nettoyage d’un modèlePour optimiser l’efficacité d’un modèle, supprimez les données superflues des fenêtres et de l’espace de travail qui lui sont associés, et ajoutez des informations de résumé pour le modèle. Commencez par ouvrir un modèle avec l’option Original.

Pour supprimer les formes de base inutiles du gabarit de document du modèle :

1 Activez la fenêtre de dessin et choisissez Fenêtre > Afficher le gabarit de document.

2 Ne supprimez que les occurrences qui ne figurent dans aucun dessin du fichier de dessin.

Page 288: MS Visio 2003 Guide du Développeur

274 C H A P I T R E 1 3

Pour vérifier que la taille des fenêtres et des gabarits apparaît correctement sur différents systèmes :

1 Ouvrez un modèle sur un système dont la résolution d’affichage correspond à celle que les utilisateurs sont susceptibles d’utiliser.

2 Choisissez Fenêtre > Mosaïque pour positionner les fenêtres correctement.

3 Prenez soin d’ouvrir le modèle sur des systèmes de résolution différents pour vérifier que la position des fenêtres est correcte.

Pour entrer des informations récapitulatives pour un modèle :

• Choisissez Fichier > Propriétés et cliquez sur l’onglet Résumé.

Test d’un modèlePour tester un modèle, vous devez contrôler les informations le concernant qui sont affichées dans la boîte de dialogue Ouvrir un fichier, puis l’ouvrir avec les options Original, Copie ou Lecture seule pour voir comment il se comporte.

Si vous créez un modèle en enregistrant un fichier Visio existant en tant que nouveau fichier de modèle (.vst), il risque d’hériter d’une liste des espaces de travail non pertinente. Avant de transmettre un modèle aux utilisateurs, prenez soin de le tester pour vous assurer que la liste des espaces de travail associée ouvre les fenêtres et les fichiers adéquats.

CONSEIL : pour protéger le modèle d’origine, faites-en une copie contenant les formes à tester, puis procédez au test dans cette copie. Entrez ensuite les modifications dans l’original et faites-en une copie pour procéder à de nouveaux tests.

Pour tester les informations de la boîte de dialogue Ouvrir un fichier :

1 Choisissez Fichier > Ouvrir.

2 Recherchez le fichier de modèle à tester et sélectionnez-le.

3 Dans la zone Description, vérifiez qu’un titre et qu’une description apparaissent.

Titre : Description doit apparaître dans la zone Description. Dans le cas contraire, pensez à les entrer ultérieurement dans le fichier d’origine par le biais de la commande Fichier > Propriétés.

Page 289: MS Visio 2003 Guide du Développeur

D I F F U S I O N D E G A B A R I T S E T D E M O D È L E S 275

Pour tester la version d’origine d’un modèle :

1 Ouvrez le fichier de modèle avec l’option Original.

2 Vérifiez que le modèle est ouvert correctement.

• Le nom du fichier doit être correctement affiché dans la barre de titre à l’ouverture du fichier. Par exemple, si le fichier de modèle porte le nom Organigramme.vst, le nom qui apparaît dans la barre de titre doit également être Organigramme.vst.

• Tous les fichiers de gabarit (.vss) associés au modèle doivent être ouverts en lecture seule, à moins qu’il ne doivent être ouverts en tant que fichiers d’origine.

• La fenêtre de la page de dessin doit être ouverte en vue pleine page, à moins que vous n’activiez expressément une autre option. (La vue pleine page est l’option optimale pour la plupart des écrans.)

• La position des fenêtres de gabarit et de dessin doit être correcte. Choisissez Fenêtre > Mosaïque pour contrôler les positions de ces fenêtres, à moins que vous ne les ayez déjà repositionnées pendant la session de travail en cours.

• Le modèle doit contenir le nombre de pages adéquat. Contrôlez les onglets Page au bas de la page de dessin. Les modèles ne doivent contenir qu’une seule page à moins que des pages supplémentaires n’aient été créées intentionnellement.

• Le contenu de chaque page (y compris l’arrière-plan) doit être correct.

• Aucun élément ne doit se trouver par erreur dans la zone bleue qui entoure la page de dessin. Pour contrôler ce point, appliquez un zoom de 5 % à chaque page de dessin. Pour vérifier que toutes les formes sont visibles, choisissez Edition > Sélectionner tout.

3 Vérifiez que les paramètres du modèle sont corrects.

• L’échelle de chaque page doit être compatible avec les formes destinées à être utilisées avec le modèle. Pour contrôler ce point, choisissez Fichier > Mise en page et cliquez sur l’onglet Propriétés de la page ; effectuez cette opération pour chaque page.

• La taille de la page doit correspondre à l’orientation de page utilisée pour l’impression. A moins que vous ne souhaitiez que les pages soient juxtaposées à l’impression, les paramètres suivants doivent être utilisés : si la hauteur de la page est supérieure à sa largeur, l’orientation portrait doit être utilisée. Dans le cas contraire, utilisez l’orientation paysage.

• Le gabarit de document ne doit contenir aucune forme de base, à moins que vous n’ayez créé un formulaire sur la page de dessin du modèle. Dans ce cas, aucune autre forme de base ne doit apparaître. Pour contrôler ce point, choisissez Fenêtre > Afficher le gabarit de document.

Page 290: MS Visio 2003 Guide du Développeur

276 C H A P I T R E 1 3

• Les informations de propriété du fichier doivent être remplies. Pour contrôler ce point, choisissez Fichier > Propriétés et vérifiez l’orthographe, la grammaire, le contenu, l’espacement, l’utilisation des majuscules et la ponctuation.

• Les paramètres de modèle des différentes pages doivent être corrects. Pour contrôler ce point, dans le menu Outils, choisissez les commandes Options, Magnétisme et collage, et Règles et grille. Choisissez Fichier > Mise en page et cliquez sur les onglets Taille de la page, Echelle de dessin et Propriétés de la page. Vérifiez les listes de styles dans les barres d’outils Format.

• Le paramétrage des options d’affichage du modèle doit être correct : règles, grille, repères, points de connexion, barre d’outils et barre d’état.

• Vérifiez que la palette de couleurs du modèle correspond à celle de tous les gabarits ouverts avec ce modèle.

Pour tester la copie d’un modèle :

1 Ouvrez un fichier de modèle avec l’option Copie.

2 Vérifiez que le nom de la page de dessin est sous la forme Dessin1:Page-1 à l’ouverture du fichier.

3 Vérifiez que l’apparence de la page de dessin et des pages que vous avez ajoutées correspond à vos attentes.

4 Tous les fichiers de gabarit (.vss) doivent s’ouvrir en lecture seule.

5 Choisissez Fichier > Propriétés et vérifiez qu’aucune information n’apparaît dans les propriétés de fichier, sauf dans le champ Auteur qui affiche le nom de l’utilisateur défini via Outils > Options ou lors de l’installation de Visio.

Pour tester un modèle en lecture seule :

1 Ouvrez un fichier de modèle avec l’option Lecture seule.

2 Vérifiez que le nom de fichier qui apparaît dans la barre de titre de la fenêtre de dessin est placé entre accolades et commence par le nom du modèle.

3 Dans le menu Fichier, vérifiez que la commande Enregistrer est grisée.

Page 291: MS Visio 2003 Guide du Développeur

D I F F U S I O N D E G A B A R I T S E T D E M O D È L E S 277

Installation des gabarits et des modèles

Pour que Visio puisse trouver vos fichiers de gabarit et de modèle, ainsi que les programmes complémentaires qu’ils utilisent, placez-les dans le dossier \Solutions. Vous pouvez ajouter vos fichiers à ce dossier pour permettre aux utilisateurs de visualiser vos fichiers de modèle et de gabarit lorsqu’ils choisissent Fichier > Nouveau > Choisir le type de dessin ou Fichier > Ouvrir un gabarit > Ouvrir un gabarit. Ces fichiers sont également visibles lorsque l’utilisateur lance Microsoft® Visio® 2000 et qu’il choisit Créer un dessin > Choisir le type de dessin dans la boîte de dialogue Bienvenue dans Visio 2000.

Si vous souhaitez installer vos fichiers de gabarit et de modèle à un autre emplacement, vous pouvez redéfinir le dossier par défaut dans lequel Visio recherche les fichiers. Pour ce faire, choisissez Outils > Options et cliquez sur l’onglet Chemins d'accès. Dans la boîte de dialogue Chemins d'accès, vous pouvez entrer un chemin d’accès par défaut.

Déplacement des fichiers de modèle Les noms des différents fichiers de gabarit et de dessin ouverts avec un modèle sont répertoriés dans la liste des espaces de travail du modèle avec chemin d’accès et nom complets. Des problèmes peuvent survenir lorsque des fichiers sont déplacés sur d’autres machines dont les lecteurs locaux ou de réseau ne sont pas configurés de la même façon. Pour prévenir en partie ces problèmes, Visio procède aux vérifications suivantes :

1 Lorsqu’un fichier de la liste des espaces de travail est sur le point d’être ouvert, Visio commence par examiner le chemin d’accès du fichier enregistré.

2 Si le chemin est exactement le même que celui enregistré pour le fichier qui contient la liste, Visio considère que ces fichiers se trouvent dans le même dossier.

3 Visio cherche ce fichier dans le dossier en cours du fichier d’espace de travail.

Lorsque vous déplacez des fichiers, tant que vous copiez les gabarits et les modèles dans le même dossier, Visio parvient à localiser et à ouvrir tous les fichiers de la liste des espaces de travail.

Protection des gabarits et des modèlesL’ouverture en lecture seule est la meilleure façon d’éviter toute modification accidentelle des gabarits et des modèles. Aucune modification ne peut en effet être enregistrée dans un fichier dans cet état. Lorsque vous créez un modèle, ouvrez en lecture seule les fichiers de gabarit à inclure avant d’enregistrer ce modèle. Visio ouvre ensuite automatiquement ces gabarits en lecture seule lorsqu’un utilisateur ouvre le modèle.

Page 292: MS Visio 2003 Guide du Développeur

278 C H A P I T R E 1 3

Lorsque vous utilisez la commande Enregistrer ou Enregistrer sous, vous pouvez activer l’option Lecture seule pour faire bénéficier un fichier Visio de la protection en lecture seule de Windows. Lorsque vous procédez ainsi, les utilisateurs ne peuvent pas ouvrir le fichier d’origine, mais seulement une copie.

Vous pouvez aussi protéger un document par le biais de la commande Protéger le document. Cette commande empêche l’utilisateur de modifier les pages d’arrière-plan d’un modèle, les formes de base d’un gabarit, les formes d’un dessin et les styles du modèle. Si vous entrez un mot de passe, les utilisateurs doivent le saisir pour pouvoir modifier les éléments concernés.

Pour protéger un document, choisissez Affichage > Fenêtres > Drawing Explorer, puis cliquez avec le bouton droit sur le nom de ce document. Vous pouvez alors sélectionner Protéger le document dans le menu contextuel.

Page 293: MS Visio 2003 Guide du Développeur

Sommaire

14Automation et le modèle d’objet de Visio

Automation est le programme qui permet d’intégrer les fonctionnalités du programme Microsoft® Visio® ou d’utiliser le moteur Visio en tant que moteur graphique de votre propre application. Avec Automation, vous pouvez utiliser le moteur Visio pour créer ou mettre à jour des dessins en fonction de données provenant d’une source externe, pour lire des dessins et en extraire des données, ou simplement pour intégrer le comportement d’un dessin dans une macro écrite en Microsoft® Visual Basic® pour Applications (VBA).

Ce chapitre décrit les objets proposés par Visio via Automation et explique comment y accéder depuis un autre programme. Il aborde brièvement la syntaxe permettant d’utiliser des objets, des propriétés et des méthodes Visio dans VBA, et présente des exemples de code.

Pour plus d’informations sur la gestion des événements dans votre programme, reportez-vous au chapitre 21, « Gestion des événements dans Visio ».

Pour plus d’informations sur la création d’un programme externe en Microsoft® Visual Basic®, reportez-vous au chapitre 26, « Programmation de Visio avec Microsoft Visual Basic ».�Pour plus d’informations comparables sur la syntaxe en C++, reportez-vous au chapitre 27, « Programmation de Visio avec C++ ».

Présentation d’Automation .................................................................................... 280

Modèle d’objet de Visio ......................................................................................... 280

Récupération et libération d’objets Visio ............................................................. 283

Utilisation des propriétés et des méthodes ......................................................... 289

Page 294: MS Visio 2003 Guide du Développeur

280 C H A P I T R E 1 4

Présentation d’Automation

Automation permet à un programme écrit en VBA (Microsoft Basic pour Applications), Microsoft Visual Basic, C/C++, ou en tout autre langage de programmation prenant en charge Automation, d’intégrer les fonctionnalités de Visio en utilisant simplement ses objets.

Les relations unissant les objets entre eux dans une application, ainsi que les événements, les méthodes (comportements) et les propriétés (données) de chaque objet sont représentés par la hiérarchie d’objets ou le modèle d’objet du programme. La plupart des objets du modèle d’objet de Visio correspondent à des éléments visibles et manipulables dans Visio. Par exemple, l’objet Shape représente une forme dans un dessin.

Avec Automation, l’application qui fournit les objets (telle que Visio, parfois appelée application fournisseur ou serveur d’Automation) permet aux autres applications d’accéder à ces objets, et fournit les propriétés et les méthodes permettant de les contrôler, ce qui est décrit par l’expression mise à disposition des objets.

L’application qui utilise les objets (telle que votre programme, parfois désigné par le terme application de contrôle ou client d’Automation) crée des occurrences de ces objets, puis définit leurs propriétés ou appelle les méthodes associées pour pouvoir utiliser ces objets.

L’interaction entre l’application fournisseur et l’application de contrôle s’opère par des services COM (Component Object Model), installés lors de l’installation de toute version de Microsoft® Windows® 95 ou ultérieure.

Tous les produits Microsoft® Visio® 2000 comprennent VBA ; vous n’avez donc pas besoin d’utiliser un autre environnement de développement pour écrire vos programmes. Vous pouvez néanmoins écrire des programmes qui contrôlent Visio dans tout autre langage prenant en charge Automation en tant que contrôleur. Les exemples présentés dans cet ouvrage sont rédigés en VBA, mais leurs principes sont applicables à tout langage de programmation.

Modèle d’objet de Visio

Le modèle d’objet de Visio représente les objets, les propriétés, les méthodes et les événements proposés par le moteur Visio via Automation ; surtout, il décrit les relations unissant ces objets.

Page 295: MS Visio 2003 Guide du Développeur

A U T O M A T I O N E T L E M O D È L E D ’ O B J E T D E V I S I O 281

������������������ ��������������

��������

������

�� ������ ����

�������

����� �����

� ����������

� ��������

� ���� � �!���

"#�� � �!���

$%&� �

$%&� �

� �!���

� �!����

������

�������

�'(

������'��������'���

"��������"���������

� ��"���� ��"����

���������������

�'���� �

�����������

)���)����

��*����*���

����

�����

���� ����

������

����

� �!���

������'��%��!������'��%��!�

"�����"������

� ��%��!� ��%��!�

���������

�#���

�#����

+�*��+�*���

&+(&� �&+(&� ��

����� ������ ��

"�����%��!"�����%��!�

����%��!����%��!�

���#���#�

�#��� ����

,*������-,*������-�

����� ������ ��

�#���.�.�.�#����

����%��!����%��!�

/����

�����

�� ����

���&����&��

+����

�(����(����+���

� +�����"#�� � �!������������ ������������� � �!���0�������������1��!��������1���������������2�� ��������������'��� ����������� ������.

� ����������#��������3��������������0���� �!������3����!������� ���� ������#����.

� �������������%��!0�"���'��%��!���������'��%��!�����3��������!����#�3��� #�1��0���� �!�����3����!������� ���� ��������%��!�0�"���'��%��!����������'��%��!�� �������������.

� $������$%&� �����������3����������!������������� 3�3�������0������������������������������������3���.������������������!������0 �������2���� #�������4405������������������������������ �������������������6����!������������������� ��������.

� ����!���7������������������������� ���� ������(����+���.�����������������!������0� �������2������������������������3�3��� �����!�����.

� +��������������������������������1�������1���������������2�������'��� ����������� ������.

����3���������!������� ����������� ��8�������� �����3�3 �!!������������3�3��������������������.

&� ������ ���� & ����� �

���������

(7��� ������

�������#��� ���������#��� ���

������

�������

�#����#����

+�*��+�*���

&+(&� �&+(&� ��

����� ������ ��

�#����#����

"�����%��!"�����%��!�

������'��%��!������'��%��!�

�������'���

"���������

� ��"����

��������

������'��%��!�

"������

� ��%��!�

�����

���&��

(����+���

� �!����

�������

������

)����

��*���

�����

�#����

+�*���

&+(&� ��

����� ��

"�����%��!�

����%��!�

���#�

,*������-�

����� ��

�#����

����%��!�

�������#��� ���

�������

�#����

+�*���

&+(&� ��

����� ��

�#����

"�����%��!�

������'��%��!�

/����

����� ����

Page 296: MS Visio 2003 Guide du Développeur

282 C H A P I T R E 1 4

La plupart des objets du modèle correspondent à des éléments visibles et manipulables dans Visio. Par exemple, l’objet Shape représente un élément d’une page de dessin Visio sélectionnable avec l’outil Pointeur, à savoir une forme, un groupe, un repère ou un objet issu d’une autre application, et lié, incorporé ou importé dans un dessin Visio.

Les objets Visio résident dans une copie de Visio (un programme VBA est exécuté dans une copie de Visio, puis accède aux objets dont il a besoin). Un programme externe est exécuté de façon autonome par rapport à Visio ; il lance donc l’application Visio ou accède à une session en cours. Il accède ensuite aux objets Visio dont il a besoin.

Certains objets représentent des collections d’autres objets. Une collection contient un nombre variable d’objets d’un type précis. Par exemple, l’objet Document représente un document ouvert dans une copie de Visio ; la collection Documents représente tous les documents ouverts dans cette copie. Pour plus d’informations sur les collections, reportez-vous à la section « Référence à un objet d’une collection », page 285.�

De nombreux objets UI Visiocorrespondent à des éléments

visibles sur la page de dessin del’interface utilisateur.

A Objet global/ApplicationB Objets DocumentC Objet PageD Objet Master

E Objet Selection F Objet ShapeG Objets Window

Page 297: MS Visio 2003 Guide du Développeur

A U T O M A T I O N E T L E M O D È L E D ’ O B J E T D E V I S I O 283

L’utilisation d’un objet Visio se fait en deux étapes : vous récupérez une référence à l’objet, puis vous utilisez les propriétés et les méthodes de ce dernier pour effectuer des opérations. Récupérer une référence à un objet consiste généralement à lire une propriété d’un objet situé plus haut dans le modèle d’objet de Visio. La plupart des objets sont utilisés pour accéder à d’autres objets. Par exemple, pour récupérer une référence à un objet Shape, vous devez récupérer des références aux objets situés plus haut dans le modèle d’objet (à la page qui contient la forme et au document qui contient la page, par exemple).

Pour obtenir la liste récapitulative des objets, des propriétés, des méthodes et des événements Visio, reportez-vous à l’annexe A, « Propriétés, méthodes et événements classés par objet ».

Récupération et libération d’objets Visio

Pour récupérer un objet, il faut déclarer une variable objet, effectuer une recherche dans le modèle d’objet pour établir une référence à cet objet que vous souhaitez contrôler, puis attribuer la référence à la variable objet. Vous pouvez ensuite définir les valeurs des propriétés de cet objet ou utiliser des méthodes permettant de contrôler l’objet.

Déclaration de variables objetsUne variable stockant une référence à un objet Visio doit être déclarée avec un type d’objet Visio, comme Visio.Page ou Visio.Document, défini dans la bibliothèque de types de Visio. Une fois que vous avez récupéré l’objet que vous souhaitez contrôler, la déclaration Set vous permet d’attribuer la référence à la variable de l’objet.

Il n’est pas toujours nécessaire d’attribuer d’autres références d’objet à des variables, mais cette opération est en général conseillée, notamment si le programme fait référence plusieurs fois aux mêmes objets. La plupart des programmes comportent au moins une variable objet stockant, par exemple, une référence à l’objet Page qui représente la page manipulée par le programme. Les objets auxquels vous faites référence dépendent de l’utilisation du programme. Il est impossible de stocker la valeur d’une variable objet entre les exécutions d’un programme. Une référence d’objet équivaut à un pointeur vers une adresse mémoire : sa valeur peut différer chaque fois que le programme est exécuté.

Page 298: MS Visio 2003 Guide du Développeur

284 C H A P I T R E 1 4

Une variable peut également être déclarée avec le type générique Object. Cependant, l’utilisation des types d’objet de Visio augmente la rapidité de votre programme et élimine les risques de confusion ou de conflits qui pourraient se produire dans les noms des objets et des propriétés lorsque vous programmez avec d’autres applications et avec Visio. Par exemple, lorsque vous déclarez une variable objet pour une page de Visio, utilisez la syntaxe suivante :

Vous pourriez éliminer Visio et n’utiliser que Page, mais les autres applications utilisées peuvent comporter un objet Page. Par exemple, Microsoft® Excel comporte un objet Cell, comme le moteur Visio, mais ces deux objets sont différents et ne sont pas interchangeables.

Les variables déclarées peuvent être locales, de niveau module ou globales. La portée adoptée dépend de l’utilisation de ces variables dans le programme. Pour plus d’informations sur la déclaration des variables, reportez-vous à l’aide en ligne de Microsoft Visual Basic.

Accès aux objets de Visio via les propriétésLa plupart des objets Visio ont des propriétés dont la valeur fait référence à d’autres objets. Vous pouvez utiliser ces propriétés pour accéder aux objets que vous souhaitez contrôler, par l’intermédiaire des diverses couches du modèle d’objet.

Prenez l’exemple suivant : l’objet que vous souhaitez contrôler est l’objet Shape. Vous accédez tout d’abord au modèle d’objet via l’objet de niveau supérieur, soit l’objet Application. La propriété Documents d’un objet Application renvoie à une collection Documents. Vous progressez dans le modèle d’objet de la manière suivante :

• La propriété Documents d’un objet Application renvoie une référence à la collection Documents.

• La propriété Item d’une collection Documents renvoie une référence à un objet Document.

• La propriété Pages d’un objet Document renvoie une référence à la collection Pages.

• La propriété Item d’une collection Pages renvoie une référence à un objet Page.

• La propriété Shapes d’un objet Page renvoie une référence à la collection Shapes.

• La propriété Item d’une collection Shapes renvoie une référence à un objet Shape.

Inversement, la plupart des objets ont une propriété faisant référence à l’objet situé au-dessus dans la hiérarchie, comme la propriété Document d’un objet Page, qui fait référence à l’objet Document qui contient l’objet Page.

���������P����!����"����

Page 299: MS Visio 2003 Guide du Développeur

A U T O M A T I O N E T L E M O D È L E D ’ O B J E T D E V I S I O 285

Référence à un objet d’une collectionUne collection est un objet représentant un nombre variable d’objets de même type. Vous pouvez effectuer des itérations dans une collection pour effectuer la même opération sur tous ses objets, ou établir une référence à un objet de la collection. Chaque collection comporte deux propriétés permettant de faire référence aux objets de la collection :

• La propriété Item renvoie une référence à un objet d’une collection ; il s’agit de la propriété par défaut de la plupart des collections.

• La propriété Count renvoie le nombre d’objets de la collection. Pour plus d’informations sur la propriété Count, reportez-vous à la section « Itération dans une collection », page 286 de ce chapitre.

La propriété Item reçoit un argument numérique représentant l’indice de l’objet, c’est-à-dire sa position ordinale dans la collection. Le premier élément de la plupart des collections porte le numéro 1. Par exemple, si la propriété Index de l’objet Document renvoie 5, cela signifie que cet objet Document est le cinquième membre de sa collection Documents.

Les collections suivantes, toutefois, sont indexées à partir de 0, et non de 1 : AccelTables, StatusBars, AccelItems, StatusBarItems, Colors, ToolbarSets, MenuSets, Toolbars, Menus, ToolbarItems, MenuItems et Hyperlinks. Si la propriété Index d’un objet de l’une de ces collections renvoie le numéro 5, cet objet est alors le sixième membre de sa collection.

Pour récupérer un objet en indiquant son indice, utilisez par exemple le code suivant (shpsObj représente une collection Shapes) :

Si la page comporte au moins une forme, cette instruction renvoie une référence au premier objet Shape de la collection Shapes. Si la collection est vide, l’instruction provoque une erreur.

�������P� �!����"���������

����1�����P� ����P"���������

����1����P� ����������"�����*�

���������P� �1����P"�����

��������P� ������P"�����*�

���������P� �����P"�����

��������P� ������P"�����*�

Page 300: MS Visio 2003 Guide du Développeur

286 C H A P I T R E 1 4

CONSEIL : vous pouvez vérifier que la propriété Count d’une collection n’est pas égale à 0 avant d’utiliser Item.

Objet Shape et objets connexessitués plus haut dans le modèle

d’objet de Visio

Avec certaines collections (Documents, Pages, Masters, Shapes ou Styles), la propriété Item peut également recevoir un argument de chaîne indiquant le nom de l’objet, ce qui peut être plus pratique que de faire référence à un objet par son indice. Par exemple, le code suivant récupère l’objet Master appelé 2-D Double dans la collection Masters.

Itération dans une collectionLa propriété Count d’une collection renvoie le nombre d’objets de cette dernière. Si la propriété Count a la valeur 0, la collection est vide. Par exemple, l’instruction suivante affiche le nombre de documents ouverts dans une copie de Visio :

En général, la propriété Count est utilisée pour fixer la limite d’une boucle d’itération. Remarquez l’utilisation de Count dans l’instruction For de l’exemple ci-dessous. La boucle For tourne sur la collection Documents, en vérifiant les trois derniers caractères du nom de fichier de chaque objet Document. Si ces caractères sont vss (ce qui indique que le document est un gabarit), son nom est ajouté à une zone de liste déroulante modifiable.

Le code situé dans ce type de boucle ne doit pas changer le nombre d’objets de la collection (par exemple, en ajoutant ou en supprimant des objets). Sinon, la valeur de Count change à chaque itération de la boucle.

����������P� ��������P�#05��������#�

E��3���#���������1��������� �#�L���V����������"������

����1���� ��!����"���������

)�� ����1����P����1�����P

�+�%�����&�����1����P"2���,�F��� �#���#�$���

�����3��*"�11�����1����P")���2���

�1��+

2����

Pages

PagesDocument

Documents

ShapeShapes

ApplicationPages

Documents

Shapes

Page 301: MS Visio 2003 Guide du Développeur

A U T O M A T I O N E T L E M O D È L E D ’ O B J E T D E V I S I O 287

Pour supprimer des objets d’une collection à l’aide d’une boucle, décrémentez le compteur au lieu de l’incrémenter. Chaque fois qu’un élément est supprimé de la collection, Count diminue de 1 et les éléments restants changent de position ; c’est pourquoi une boucle incrémentielle risque de sauter des éléments. Utilisez à la place la boucle suivante :

Libération d’un objetUn objet d’un programme est automatiquement libéré lorsque l’exécution du programme prend fin ou lorsque toutes les variables objets faisant référence à cet objet sont hors de portée. Si une variable objet est locale, c’est-à-dire propre à une procédure, elle est hors de portée dès que l’exécution de cette dernière prend fin. Si la variable objet est globale, elle subsiste tant que le programme est en cours d’exécution, sauf si l’objet est libéré explicitement.

La libération d’un objet dans un programme est sans incidence sur l’objet correspondant de la copie de Visio. Par exemple, la libération d’un objet Document ne ferme pas le document Visio correspondant. Ce document reste ouvert, mais le programme ne peut plus y accéder.

Pour libérer explicitement un objet, attribuez la valeur Visual Basic Nothing à sa variable objet. Par exemple :

Si vous attribuez la même référence d’objet à plusieurs variables, n’oubliez pas de les associer toutes à Nothing à la libération de l’objet.

Ne libérez pas un objet avant d’avoir fini de l’utiliser. Une fois l’objet libéré, le programme ne peut plus faire référence à l’objet correspondant dans la copie de Visio. Par exemple, si vous libérez un objet Document, le programme ne peut plus manipuler ce document Visio ; il lui est donc impossible de l’enregistrer ou de le fermer, ou encore d’en extraire des objets.

Cependant, vous devrez peut-être libérer explicitement un objet dans votre programme si la référence d’objet est devenue incorrecte. Par exemple, si l’utilisateur ferme le document Visio ou supprime une forme, les références à ces objets deviennent incorrectes. Une erreur se produit si vous tentez d’utiliser une variable objet contenant une référence d’objet non valide.

���������P����!����"�����

)���� �����������"�����P"������$��*�����>*

�����P���"������

2�����

����1����P� �2������

Page 302: MS Visio 2003 Guide du Développeur

288 C H A P I T R E 1 4

Utilisation de références d’objet composéesVous pouvez concaténer des références d’objet, des propriétés et des références Visio dans une même instruction, comme avec les objets Microsoft Visual Basic pour Applications (VBA). Cependant, les références simples sont parfois plus efficaces, même si elles nécessitent plusieurs lignes de code.

Par exemple, l’instruction suivante fait référence à la première forme de la troisième page du premier document ouvert dans une copie de Visio :

L’exécution de cette instruction extrait un seul objet, l’objet Shape attribué à shpObj. Comparez-la à la série d’instructions ci-dessous utilisant des références d’objet simples :

L’exécution de ces instructions extrait cinq objets : un objet Document, une collection Pages, un objet Page, une collection Shapes et un objet Shape. Les références à ces objets, attribuées à des variables, peuvent être réutilisées ultérieurement, contrairement à l’exemple précédent. Si votre programme risque de devoir accéder aux objets intermédiaires, la lecture et la maintenance de votre code seront facilitées si vous les récupérez de cette manière.

Limitation de la portée et de la durée de vie des variables objetsLes références d’objet existent indépendamment de l’élément vers lequel elles pointent ; c’est pourquoi elles peuvent être rendues incorrectes par des actions de l’utilisateur incontrôlables par le programme. Par exemple, si vous avez établi une référence à un objet Shape et si l’utilisateur supprime la forme correspondante, la référence, qui existe toujours dans le programme, est incorrecte car elle pointe vers une forme qui n’existe plus.

Pour éviter que des références soient incorrectes, il est conseillé de limiter la portée et la durée de vie des variables objets. Par exemple, lorsque l’exécution du programme reprend, après des manipulations effectuées par l’utilisateur, vous pouvez libérer certains objets et les récupérer de nouveau pour vérifier qu’ils sont toujours disponibles et que le programme fait référence à des objets dans leur état actuel.

��������P� �����������*�"������F�"������*�

����1����P� ����������"�����*�

���������P� �1����P"�����

��������P� ������P"�����F�

���������P� �����P"�����

��������P� ������P"�����*�

Page 303: MS Visio 2003 Guide du Développeur

A U T O M A T I O N E T L E M O D È L E D ’ O B J E T D E V I S I O 289

La façon la plus sûre de conserver des références d’objet valides est de capturer les événements déclenchés par l’objet auquel vous faites référence. Par exemple, si vous avez établi une référence à un objet Shape, vous pouvez gérer tout événement qui peut entraîner l’invalidation de la variable (par exemple, l’événement BeforeShapeDelete). Pour plus d’informations sur la gestion des événements de votre programme, reportez-vous au chapitre 21, « Gestion des événements dans Visio ».

Utilisation des propriétés et des méthodes

Une fois que vous avez établi une référence à un objet, vous pouvez récupérer et définir les valeurs de ses propriétés, ou utiliser les méthodes qui font que l’objet exécute les actions. Pour les propriétés et méthodes qui ont des valeurs ou des arguments renvoyés, vous devez déclarer des variables dans votre programme. Ces variables peuvent être des références d’objet, ou peuvent avoir pour valeur une chaîne ou un nombre. Par exemple, la valeur de la propriété Text d’un objet Shape est une chaîne, à savoir le texte affiché dans la forme correspondante.

Déclaration de variables utilisables comme valeurs renvoyées et comme argumentsLorsque vous déclarez des variables utilisables comme valeurs renvoyées par les propriétés ou les méthodes, déclarez une variable avec un type de données explicite ou avec le type de données Variant de Microsoft Visual Basic, et utilisez une instruction simple pour attribuer cette valeur à la variable.

Les mêmes règles s’appliquent lorsque vous déclarez des variables pour les utiliser comme arguments de propriétés ou de méthodes : utilisez des variables objets pour les objets, et le type de données Variant ou un type de données explicite approprié pour les autres valeurs.

Pour plus d’informations sur la déclaration des variables objets, reportez-vous à la section « Déclaration de variables objets », page 283. Par ailleurs, toutes les variables de propriété et de méthode sont présentées dans l’aide en ligne Automation Reference fournie avec Visio.

Lecture et définition des propriétésLes propriétés définissent souvent l’aspect d’un objet. Par exemple, l’instruction suivante définit la propriété Text d’un objet Shape :

����P"$���� �#3��P���W����� 9#

Page 304: MS Visio 2003 Guide du Développeur

290 C H A P I T R E 1 4

L’instruction suivante lit le texte de la forme :

Certaines propriétés reçoivent des arguments. Par exemple, la propriété Cells de l’objet Shape reçoit une expression de chaîne indiquant une cellule particulière de la forme correspondante. Lorsqu’une propriété reçoit des arguments, entourez-les de parenthèses. Par exemple, l’instruction suivante définit la formule de la cellule AxeX.

L’instruction suivante lit la formule de la cellule AxeX et la stocke dans strPinX :

La plupart des propriétés des objets de Visio sont en lecture/écriture, c’est-à-dire que vous pouvez lire et définir leur valeur. Certaines propriétés sont en lecture seule ; vous pouvez les lire, mais il n’est pas possible de les redéfinir. Par exemple, vous pouvez lire la propriété Application d’un objet pour identifier la copie de Visio le contenant, mais il est impossible de redéfinir la valeur de cette propriété pour transférer l’objet vers une autre copie.

Quelques propriétés sont en écriture seule, c’est-à-dire que leur valeur peut uniquement être définie. Ces propriétés gèrent généralement un cas particulier pour des propriétés équivalentes en lecture/écriture. Par exemple, vous pouvez modifier la formule d’une cellule en définissant sa propriété Formula, sauf si la formule est protégée par la fonction PROTECTION. Dans ce cas, vous devez utiliser la propriété FormulaForce pour redéfinir la formule. Cependant, il est impossible de récupérer la formule d’une cellule en utilisant FormulaForce ; vous devez employer Formula, même si la formule est protégée.

Pour plus d’informations sur les propriétés (en lecture/écriture, en lecture seule et en écriture seule) et les méthodes, reportez-vous à l’aide en ligne Developer Reference (accessible via ? (Aide) > Référence du développeur) fournie avec Visio.

Utilisation de la propriété par défaut d’un objetLa plupart des objets comportent une propriété par défaut qui est utilisée si vous ne précisez pas de propriété lorsque vous faites référence à l’objet. Par exemple, la propriété par défaut de l’objet Document est Name, c’est pourquoi les deux instructions suivantes renvoient la même valeur :

��$���� �����P"$���

����P"������#���7#�")������ �#B,08��"#

�����7� �����P"������#���7#�")�����

1��2���� �����������8�"2��� X+����������

1��2���� �����������8� X+���������

Page 305: MS Visio 2003 Guide du Développeur

A U T O M A T I O N E T L E M O D È L E D ’ O B J E T D E V I S I O 291

La propriété par défaut de la plupart des collections est Item ; vous pouvez ainsi utiliser l’instruction suivante pour accéder à un objet d’une collection :

Pour définir la propriété par défaut d’un objet Visio, recherchez cet objet dans l’aide en ligne Automation Reference fournie avec Visio. La propriété par défaut d’un objet Visio est également repérée par un point bleu dans l’explorateur d’objets. Pour plus d’informations sur cet explorateur, reportez-vous à la section « Utilisation de l’explorateur d’objets », page 303.

Utilisation de méthodesLes méthodes correspondent souvent aux commandes de Visio. Par exemple, l’objet Shape comporte une méthode Copy qui équivaut à sélectionner une forme et à choisir la commande Copier dans le menu Edition de Visio. Les autres méthodes correspondent à d’autres actions. Par exemple, l’objet Fenêtre comporte une méthode Activate qui permet d’activer la fenêtre correspondante, ce qui revient à sélectionner cette dernière à l’aide de la souris.

La syntaxe permettant d’utiliser une méthode est comparable à celle employée pour définir une propriété. Si une méthode crée un objet, comme l’objet Page, elle renvoie une référence à l’objet créé, comme dans l’exemple suivant. En général, les méthodes qui ne créent pas d’objets ne renvoient pas de valeur.

��������P� ������P"�����*� X+���������

��������P� ������P�*� X+���������

��������P����!����"����

��������P� ������P"�11

Page 306: MS Visio 2003 Guide du Développeur
Page 307: MS Visio 2003 Guide du Développeur

Sommaire

15Programmation dans Visioavec Microsoft VBA

Chaque langage de programmation qui prend en charge Automation peut servir à écrire des programmes qui permettent d’accéder à des objets Microsoft® Visio®, à récupérer et à paramétrer des propriétés, à appeler des méthodes et à recevoir des événements. Les produits Visio fournissent un environnement de développement intégré standard idéal pour la mise au point de projets Microsoft® Visual Basic® pour Applications (VBA).

Si votre solution utilise Automation pour gérer les formes et les dessins, lire des données de sources externes ou en écrire (comme une base de données) ou agir en interaction avec d’autres applications, vous pouvez écrire du code VBA dans l’application Visio pour accomplir ces tâches. L’environnement de développement intégré VBA Visio est compatible avec l’environnement de développement intégré dans toutes les applications activées par VBA, par exemple, Microsoft® Office. Si vous avez utilisé VBA dans l’une de ces applications, l’environnement Visio vous semblera familier.

Ce chapitre est un bref aperçu de certaines tâches communes qui utilisent VBA dans Visio. Pour obtenir des détails complets sur l’utilisation de l’environnement de développement VBA et sur l’écriture du code VBA, reportez-vous à l’aide en ligne livrée avec VBA.

Utilisation de l’Editeur Visual Basic ...................................................................... 294

Création d’un projet VBA....................................................................................... 298

Utilisation de la bibliothèque de types Visio ....................................................... 303

Utilisation des objets global et ThisDocument.................................................... 306

Exécution du code VBA depuis Visio.................................................................... 310

Gestion des erreurs................................................................................................ 313

Gestion d’un projet VBA........................................................................................ 315

Page 308: MS Visio 2003 Guide du Développeur

294 C H A P I T R E 1 5

Utilisation de l’Editeur Visual Basic

Pour créer un programme Microsoft Visual Basic pour Applications (VBA), vous devez créer un projet VBA à l’aide de l’Editeur Visual Basic. Chaque document ou fichier Visio contient un projet auquel vous pouvez ajouter des modules et des formulaires, en fonction des besoins de votre solution. Au minimum, chaque projet contient un module de classe ThisDocument. Ce module de classe représente les propriétés, méthodes et événements d’un document associé à votre projet Visio VBA.

Editeur Visual Basic :l’environnement VBA

A L’explorateur de projet affiche la listes de projets et des éléments de projet contenus dans les documents Visio.

B La fenêtre Propriétés affiche la liste des propriétés de l’élément sélectionné.C Fenêtre de codeD L’espace de travail de programmation affiche tous les modules ouverts, les modules de classe et

les formulaires utilisateur au cours de la création. Le programme est créé dans cette zone.E La barre de menus affiche les commandes à utiliser pour créer, exécuter et déboguer votre

programme.F La barre d’outils permet d’accéder rapidement aux commandes fréquemment utilisées dans

l’environnement de développement.

Dans la fenêtre de code, vous pouvez écrire, afficher et modifier le code des nouvelles procédures ou des procédures d’événement existantes. Vous pouvez ouvrir le nombre nécessaire de fenêtres de code sur différents modules, modules de classe ou formulaires utilisateur de manière à pouvoir facilement visualiser le code, le copier et le coller d’une fenêtre à l’autre.

A

B

C

D

E F

Page 309: MS Visio 2003 Guide du Développeur

P R O G R A M M A T I O N D A N S V I S I O A V E C M I C R O S O F T V B A 295

Démarrage de l’Editeur Visual BasicVous pouvez démarrer l’Editeur Visual Basic sans ouvrir de document Visio, mais vous pouvez commencer par ouvrir un document pour voir le projet VBA de ce document. L’occurrence Visio ajoute seulement des projets aux documents ouverts en tant qu’Original ou Copie ; en revanche, si le document comporte déjà un projet, vous pouvez visualiser ce projet en lecture seule.

Pour démarrer l’Editeur Visual Basic

1 Démarrez l’application Visio et ouvrez un modèle, un gabarit ou un dessin en sélectionnant Original ou Copie, pas Lecture seule.

2 Choisissez Outils > Macros > Editeur Visual Basic ou cliquez sur le bouton Editeur Visual Basic ( ��de la barre d’outils Développeur.

Dans VBA, vous pouvez personnaliser votre environnement de travail en paramétrant les options comme la taille de la police, la couleur du code, les options d’erreurs de syntaxe ainsi que les exigences en matière de déclaration de variables.

Pour paramétrer les options d’environnement dans l’Editeur Visual Basic :

• Choisissez Outils > Options, cliquez sur l’onglet Format de l’éditeur et paramétrez les options souhaitées.

Par défaut, les projets auront le même nom que le document avec lequel ils sont associés. En revanche, chaque projet dispose d’une fenêtre Propriétés dans laquelle vous pouvez renommer votre projet et fournir des informations supplémentaires (décrire le projet, par exemple). Vous pouvez également verrouiller votre projet.

Pour ouvrir la fenêtre Propriétés :

• Choisissez Outils > Nom du projet > Propriétés et paramétrez les propriétés du projet. Vous pouvez également cliquer avec le bouton droit sur le nom du projet dans l’explorateur de projet.

Page 310: MS Visio 2003 Guide du Développeur

296 C H A P I T R E 1 5

Navigation parmi les projets Pour parcourir les projets dans l’Editeur Visual Basic, utilisez l’explorateur de projet. Celle-ci répertorie les modules, les modules de classe et les formulaires utilisateur des projets de tous les fichiers Visio ouverts. Vous pouvez double-cliquer sur un module, un module de classe ou un formulaire utilisateur dans l’explorateur de projet pour ouvrir sa fenêtre de code.

Explorateur de projet affichant cinqfichiers Visio ouverts dans une

occurrence Visio

A Gabarit des diagrammes de base et éléments de son projet ; ouvert avec accès lecture/écriture.B Dessin Visio ouvert et éléments de son projet ; ce dessin n’a pas été enregistré.C Dessin Visio ouvert, enregistré sous Agencement d’espaces, et éléments de son projet.

Si vous ne voyez pas l’explorateur de projet lorsque vous ouvrez l’Editeur Visual Basic, choisissez Affichage > Explorateur de projet.

Enregistrement d’un projetUn projet VBA est stocké dans le document Visio le contenant. Un document Visio peut être enregistré sous l’un des types de fichier suivants :

• Modèle (.vst)

• Gabarit (.vss)

• Dessin (.vsd)

A

B

C

Page 311: MS Visio 2003 Guide du Développeur

P R O G R A M M A T I O N D A N S V I S I O A V E C M I C R O S O F T V B A 297

Lorsqu’un utilisateur crée un document Visio à partir d’un modèle, l’occurrence Visio copie le projet VBA et ses éléments dans le nouveau document.

Exemple de dessin Visio après ajoutd’éléments dans le projet par

défaut et enregistrement du dessin.

A Première procédure Sub dans le module (macro)B Première procédure Function dans le module (fonction définie par l’utilisateur)

Pour enregistrer le document Visio et son projet VBA :

• Dans l’interface utilisateur Visio, choisissez Fichier > Enregistrer. Dans l’Editeur Visual Basic, choisissez Fichier > Enregistrer Nom de fichier.

Dans l’explorateur de projet de VBA, le nom de fichier et l’emplacement du document sont affichés entre parenthèses après le nom du projet.

Page 312: MS Visio 2003 Guide du Développeur

298 C H A P I T R E 1 5

Création d’un projet VBA

Un projet Microsoft Visual Basic pour Applications (VBA) est constitué de modules, de modules de classe et de formulaires utilisateur.

• Un module est une série de déclarations suivies de procédures, soit une liste d’instructions qu’un programme exécute.

• Un module de classe définit un objet, ses propriétés et ses méthodes. Il agit comme un modèle à partir duquel l’occurrence d’un objet est créée au moment de l’exécution. Chaque projet VBA de type Visio contient un module de classe appelé ThisDocument ; ce module de classe représente les propriétés, les méthodes et les événements du document Visio contenant le projet VBA.

• Un formulaire utilisateur contient les commandes de l’interface utilisateur, comme les boutons de commande et les zones de texte.

Des projets complexes peuvent contenir plusieurs modules, modules de classe et formulaires utilisateur, un projet simple peut n’exiger qu’un seul formulaire utilisateur ou module. Par exemple, une solution générant un dessin peut inclure un formulaire utilisateur pour rassembler les informations de l’utilisateur. Elle peut aussi inclure du code, organisé en un ou en plusieurs modules et/ou modules de classe, qui effectue les opérations suivantes :

• Il valide la saisie de l’utilisateur.

• Il traduit le code en données qui serviront à générer un dessin.

• Il utilise Automation pour créer le dessin dans la fenêtre de dessin Visio.

Si la solution doit être exécutée en réponse à un événement, comme l’ouverture d’un document, elle peut inclure du code devant être exécuté lorsque cet événement se produit.

Vous pouvez ajouter dans votre projet des modules, des modules de classe ou des formulaires utilisateur en important des fichiers ; vous pouvez aussi exporter des éléments du projet pour les utiliser dans d’autres projets. Vous pouvez aussi insérer un contrôle ActiveX® dans votre document Visio. Pour plus d’informations sur les contrôles ActiveX, reportez-vous au Chapitre 23, « Utilisation de contrôles ActiveX dans une solution Visio ».

Page 313: MS Visio 2003 Guide du Développeur

P R O G R A M M A T I O N D A N S V I S I O A V E C M I C R O S O F T V B A 299

Insertion de modules et de modules de classe dans un projetDe nombreux programmes VBA comportent un ou plusieurs modules, une série de déclarations suivies de procédures. Chaque projet VBA Visio contient le module de classe ThisDocument, qui est un objet représentant le document du projet. Vous pouvez créer des modules de classe supplémentaires pour définir les objets VBA personnalisés dans votre projet.

Pour insérer un module ou un module de classe :

• Choisissez Insertion > Module.

La fenêtre de code affiche un module vide où vous allez pouvoir insérer des procédures qui créent des modèles dans lesquels vous allez saisir du code VBA.

Boîte de dialogue Ajouter uneprocédure

Pour ajouter des procédures aux modules et aux modules de classe :

1 Choisissez Insertion > Procédure pour ouvrir la boîte de dialogue Ajouter une procédure.

2 Dans la zone Nom, nommez la procédure.

Dans le sous-menu des macros de Visio, le nom d’une procédure apparaît dans le sous-menu de son module. Le nom d’une procédure ne peut pas contenir d’espaces ou de mots réservés, comme MsgBox, If ou Loop, que VBA utilise dans le cadre de son langage de programmation.

3 Dans la zone Type, sélectionnez le type de procédure : Sub, Function ou Property.

Les modules et les modules de classe peuvent contenir) plusieurs types de procédure.

• Pour écrire une procédure qui n’englobe aucun argument, insérez une procédure Sub.

• Pour écrire une fonction qui englobe des arguments et renvoie une valeur, insérez une procédure Fonction.

• Pour ajouter des propriétés dans un module de classe, insérez une procédure Property.

Page 314: MS Visio 2003 Guide du Développeur

300 C H A P I T R E 1 5

4 Dans la zone Portée, sélectionnez Public ou Private.

Le domaine correspond à l’accessibilité d’une procédure par d’autres modules et programmes.

• Une procédure dont le domaine est privé est accessible seulement par le module qui la contient ; seule une procédure contenue dans le même module peut appeler une procédure privée, et une procédure privée n’apparaît dans aucun des menus ou aucune des boîtes de dialogue.

• Une procédure dont le domaine est public est accessible par d’autres programmes et modules. L’application Visio affiche les procédures publiques des modules et le module de classe ThisDocument qui n’englobe aucun argument dans le sous-menu Macros.

5 Pour déclarer toutes les variables locales comme étant statiques, cochez la case Toutes les variables locales statistiques.

Vous pouvez déclarer les variables de votre procédure comme étant locales ou statiques (globales).

• Les variables statiques existent pendant toute la durée de vie du programme.

• Les variables locales existent seulement lorsque la procédure dans laquelle elles sont déclarées est exécutée. A l’exécution suivante de la procédure, toutes les variables locales sont réinitialisées. En revanche, vous pouvez conserver pendant toute la durée de vie de votre programme la valeur de toutes les variables locales d’une procédure en les définissant comme étant statiques, ce qui fixe leur valeur.

6 Cliquez sur OK.

VBA insère un modèle de procédure dans la fenêtre de saisie du code de l’élément. Le modèle contient la première et la dernière lignes du code correspondant au type de procédure insérée.

Pour obtenir des informations sur les procédures, reportez-vous à l’aide en ligne Microsoft Visual Basic.

Page 315: MS Visio 2003 Guide du Développeur

P R O G R A M M A T I O N D A N S V I S I O A V E C M I C R O S O F T V B A 301

Insertion de formulaires utilisateur dans un projetPour que votre programme indique à l’utilisateur de saisir des informations, vous pouvez créer une interface utilisateur en insérant des formulaires utilisateur. Un formulaire utilisateur contient des commandes d’interface utilisateur, comme des boutons de commande et des zones de texte. Lorsque vous ajoutez un formulaire utilisateur au projet, VBA ouvre automatiquement la boîte à outils Contrôles. Un contrôle est un objet que vous placez dans un formulaire utilisateur qui a ses propres propriétés et méthodes ; un contrôle déclenche aussi des événements auxquels vous pouvez répondre. Utilisez les contrôles pour recevoir la saisie utilisateur, afficher la sortie et déclencher les procédures d’événement.

Boîte à outils et formulaireutilisateur contenant des contrôles

A Onglet Contrôles de la boîte à outilsB Formulaire utilisateurC Contrôle de zone de texteD Contrôle de bouton de commande

Pour ajouter un formulaire utilisateur au projet :

1 Choisissez Insertion > UserForm.

2 Sélectionnez les contrôles à ajouter au formulaire utilisateur à partir de la boîte à outils Contrôles et placez-les sur le formulaire utilisateur.

Pour obtenir des informations sur l’ajout de contrôles, comme les boutons de commande et les zones de texte, reportez-vous à l’aide en ligne Visual Basic.

3 Double-cliquez sur un formulaire utilisateur ou sur un contrôle pour afficher sa fenêtre de code.

4 Choisissez l’événement auquel vous souhaitez répondre dans la liste déroulante des événements et des procédures située dans la fenêtre de code ; vous pouvez alors commencer à saisir votre code. Vous pouvez également insérer une procédure et commencer à saisir le code dans le modèle de procédure.

A

B

C

D

Page 316: MS Visio 2003 Guide du Développeur

302 C H A P I T R E 1 5

CONSEIL : pour plus de clarté, ce guide utilise les noms VBA par défaut des formulaires et des contrôles ; sachez pourtant que le changement des noms par défaut en noms plus évocateurs s’avère être une excellente technique de programmation. De nombreux programmeurs utilisent les conventions de dénomination suivantes :

Nom par défaut du formulaire utilisateur = UserForm1

Nom révisé = frmGetDocName

Remarquez l’utilisation de frm dans le nom modifié du formulaire utilisateur. Dans le nom du contrôle, de nombreux programmeurs utilisent frm, txt (zone de texte), lbl (libellé), cmd (bouton de commande) et ainsi de suite, de manière à rapidement reconnaître le type d’objet.

Importation de fichier et exportation d’un projetPour importer un élément dans un projet, choisissez Fichier > Importer un fichier. Pour ajouter une copie de fichier dans un projet, vous pouvez choisir un module VBA (fichiers portant l’extension .bas), un formulaire utilisateur (fichiers portant l’extension .frm) ou un module de classe (fichiers portant l’extension .cls). Pour exporter un élément d’un projet afin qu’il puisse être importé dans d’autres projets, sélectionnez-le dans l’explorateur de projet et choisissez Fichier > Exporter un fichier, puis saisissez l’emplacement dans lequel vous souhaitez enregistrer le fichier. L’exportation d’un élément ne le supprime pas de votre projet.

Vous pouvez aussi déplacer des projets ou des éléments de projet d’un fichier Visio à l’autre en sélectionnant, dans l’explorateur de projet, le projet ou l’élément de projet à déplacer et en plaçant son icône sur une icône de projet Visio. L’élément de projet est automatiquement stocké dans le dossier des projets approprié. Le projet est référencé dans le dossier Références ; un fichier Visio peut seulement contenir un projet, lequel peut, par contre, faire référence à d’autres projets.

REMARQUE : vous ne pouvez pas déplacer le module de classe ThisDocument d’un fichier Visio à l’autre, mais vous pouvez déplacer, copier et coller du code à partir de ThisDocument dans d’autres éléments de projet.

Page 317: MS Visio 2003 Guide du Développeur

P R O G R A M M A T I O N D A N S V I S I O A V E C M I C R O S O F T V B A 303

Utilisation de la bibliothèque de types Visio

La bibliothèque de types Visio contient des descriptions Automation d’objets, de propriétés, de méthodes et d’événements que le moteur Visio met à disposition. Les projets Microsoft Visual Basic pour Applications (VBA) appartenant aux documents Visio font automatiquement référence à la bibliothèque de types Visio, que vous utilisez pour définir des types d’objet Visio dans votre programme. L’utilisation des types d’objet Visio déclarés dans la bibliothèque de types Visio augmente la vitesse du programme car VBA interprète les objets Visio au moment de la compilation plutôt qu’au moment de l’exécution. Lorsque vous compilez un programme au cours de la création, VBA recherche les erreurs de syntaxe et de programmation et compare les types d’objet aux bibliothèques de types. Si vous utilisez un type de variable général, comme Object, VBA ne l’interprète pas avant l’exécution ; à ce moment, VBA effectue une requête dans le moteur Visio et recherche des références d’objet. Cette étape de recherche supplémentaire diminue la vitesse de votre programme.

La bibliothèque de types contient également les constantes symboliques globales définies pour les arguments et les valeurs de retour des propriétés et des méthodes. Comme la plupart des arguments des propriétés et des méthodes sont des valeurs numériques, l’utilisation de ces constantes peut faciliter l’écriture et la lecture du code. Par exemple, supposons que vous souhaitiez connaître le type de fenêtre qu’un objet Window représente. La propriété Type d’un objet Window renvoie un entier qui indique le type de fenêtre. Si vous paramétrez une référence à la bibliothèque de types Visio ou incluiez Visconst.bas dans votre projet, vous pouvez, pour vérifier le type de fenêtre, utiliser une constante à la place d’un entier, dans cet exemple, visDrawing au lieu de 1.

Pour obtenir la liste des constantes utilisées par une méthode ou une propriété donnée, reportez-vous à cette méthode ou à cette propriété dans l’aide en ligne Référence du développeur (accessible via ? (Aide) > Référence du développeur) fournie avec Visio.

A l’aide de l’explorateur d’objets VBA, vous pouvez visualiser le contenu de la bibliothèque de types Visio.

REMARQUE : les exemples de ce guide correspondent à un paramétrage de référence sur la bibliothèque de types Visio. Pour vérifier que ce paramètrage est actif, choisissez Outils > Références et cochez l’option de bibliothèque de types Visio 2000.

Utilisation de l’explorateur d’objetsVous pouvez utiliser l’explorateur d’objets pour afficher la bibliothèque de types Visio. L’explorateur d’objets affiche des constantes, des classes (objets) et des membres de classe (propriétés, méthodes et événements) des bibliothèques de types auxquelles des projets ouverts font référence.

Page 318: MS Visio 2003 Guide du Développeur

304 C H A P I T R E 1 5

L’explorateur d’objets affiche, dans la liste Membres de, les propriétés, les méthodes, les événements et les constantes Visio sous la forme de membres. Le volet des détails affiche la syntaxe de chaque membre sous la forme d’un modèle de code que vous pouvez copier, coller ou déplacer dans un module ; vous pouvez alors substituer vos propres variables et arguments. L’utilisation des modèles de code diminue les risques d’erreur.

Explorateur d’objets

A Zone des projets/bibliothèquesB Zone de rechercheC Liste ClassesD Liste Membres deE Volet des détails

Pour utiliser l’explorateur d’objets :

1 Choisissez Affichage > Explorateur d’objets ou le bouton Explorateur d’objets ( ) situé dans la barre d’outils Microsoft Visual Basic pour Applications (VBA).

2 Pour explorer ou rechercher un objet, une propriété, une méthode, un événement ou une constante Visio, saisissez son nom dans la zone de texte Rechercher ou cliquez sur un membre de la liste Membres de.

Paramétrage des références aux bibliothèques de types Les applications prenant en charge Automation contiennent une bibliothèque de types pour décrire les objets qu’elles mettent à la disposition d’Automation. Si vous souhaitez accéder aux objets de la solution Visio à partir d’une autre application, choisissez Outils > Références et sélectionnez la bibliothèque de types que vous recherchez dans la liste Références disponibles. Vous pouvez aussi utiliser cette procédure pour paramétrer une référence à Visio à partir de toute autre application prenant en charge Automation. Vous pouvez, par exemple, à partir de Microsoft® Word, paramétrer une référence à Visio afin d’utiliser des objets Visio dans Word.

AB

C

E

D

Page 319: MS Visio 2003 Guide du Développeur

P R O G R A M M A T I O N D A N S V I S I O A V E C M I C R O S O F T V B A 305

Toutes les bibliothèques de types cochées dans la liste Références disponibles apparaîtront dans la zone de projet/bibliothèque de votre projet. Vous pouvez aussi paramétrer une référence à tout document Visio ouvert ou accéder à tout document fermé dans la boîte de dialogue des références.

Liste Références disponiblesétendue

REMARQUE : pour n’afficher que la classe et les membres de la bibliothèque de types Visio, choisissez Visio dans la zone de projet/bibliothèque.

Utilisation des types d’objet VisioLa bibliothèque de types Visio présente des fonctionnalités qui vous permettent de travailler plus efficacement lors de l’écriture du code. A l’aide de types d’objet Visio déclarés dans la bibliothèque de types, vous pouvez déclarer des variables sous la forme de types spécifiques, comme Visio.Page :

L’utilisation d’un type d’objet Visio, comme Visio.Page, permet à votre programme, au moment de la compilation, de vérifier le type d’objet auquel il fait référence dans la bibliothèque de types Visio. Cette fonctionnalité s’appelle liaison préliminaire. Cet exemple utilise Visio pour informer le programme qu’il fait référence aux types d’objet Visio dans la bibliothèque de types Visio et qu’il utilise Page pour l’informer que la variable pagObj est un objet Page. Pour plus d’informations sur les objets Visio, reportez-vous au Chapitre 14, « Automation et le modèle d’objet de Visio ».

��������P����!����"����

Page 320: MS Visio 2003 Guide du Développeur

306 C H A P I T R E 1 5

Voici quelques types d’objet fréquents :

Lorsque vous saisissez un point après un objet ou un type de bibliothèque, une liste apparaît automatiquement : elle contient les types d’objet, les propriétés et les méthodes disponibles de l’objet précédent ou du type de variable. Pour insérer dans le code un type d’objet de la liste, double-cliquez sur ce type.

CONSEIL : si la fenêtre de liste automatique n’apparaît pas lorsque vous travaillez dans la fenêtre de code, choisissez Outils > Options > Editeur et cochez Complément automatique des instructions.

Dans cet exemple, le type d’objet approprié est Page.

Fenêtre de liste automatique de labibliothèque de types Visio

Utilisation des objets global et ThisDocument

A la différence d’un programme autonome qui doit obtenir une référence à l’objet Application Visio en la créant ou en la récupérant, le code d’un projet Microsoft Visual Basic pour Applications (VBA) s’exécute dans une occurrence Visio en cours d’exécution pour que vous n’ayez pas à obtenir de référence à l’objet Application. Le moteur Visio fournit l’objet global qui représente l’occurrence Visio. Le moteur Visio fournit aussi l’objet ThisDocument qui représente le document Visio associé au projet.

����1�����P����!����"��������� X%��������������1��1��������

����1����P����!����"�������� X%����P���1�������

���������P����!����"����� X%��������������1��+������������

��������P����!��������� X%����P���+����������

����������P����!����"E���� X%����P���+����1��������E�����

Page 321: MS Visio 2003 Guide du Développeur

P R O G R A M M A T I O N D A N S V I S I O A V E C M I C R O S O F T V B A 307

Utilisation de l’objet global VisioL’objet global représente l’occurrence et permet un accès plus direct à certaines propriétés. Les propriétés de l’objet global Visio ne sont pas préfixées avec une référence à un objet.

Objet global Visio et ses propriétés

L’objet Application est une propriété de l’objet global Visio, qui vous permet d’accéder aux propriétés de l’objet Application en faisant directement référence à la propriété Application de l’objet global Visio.

Voici trois exemples de code qui récupèrent le premier document d’un ensemble Documents, tous les trois utilisant une syntaxe différente.

L’exemple 1 crée un objet Application. Ce code est généralement utilisé lors de l’écriture d’un programme externe :

L’exemple 2 utilise la propriété Application de l’objet global Visio :

�����!��������!����"���������

����1�����P����!����"���������

����1����P����!����"��������

�����!����� ��������P����#�����"���������#�

����1�����P� ��!����"���������

����1����P� �1�����P"�����*�

����1�����P����!����"���������

����1����P����!����"��������

����1�����P� ����������"���������

����1����P� �1�����P"�����*�

Application

ActiveDocument

Global

DocumentDocuments

WindowWindows

ActivePage

ActiveWindow

AddonAddons

VBE

Documents

Windows

Addons

Page 322: MS Visio 2003 Guide du Développeur

308 C H A P I T R E 1 5

L’exemple 3 permet d’accéder directement à la propriété Documents de l’objet global Visio :

Notez dans les exemples 2 et 3 que Application et Documents ne sont pas précédés d’un objet. Lorsque vous faites référence à une propriété ou à une méthode quelconque de l’objet global Visio, il n’est pas nécessaire de déclarer une variable pour l’objet global ni de le référencer comme étant l’objet qui précède une propriété—l’objet global est implicite. Le troisième exemple est la méthode d’accès la plus directe à la collection Documents d’un projet VBA.

Voici des exemples de code pour les propriétés les plus fréquentes de l’objet global Visio :

Pour plus d’informations sur les propriétés et les méthodes de l’objet global Visio, reportez-vous à l’aide en ligne Référence du développeur (choisissez ? (Aide) > Référence du développeur) fournie avec Visio.

REMARQUE : L’objet global Visio est disponible seulement lorsque vous écrivez du code dans le projet VBA d’un document Visio.

Utilisation de l’objet ThisDocumentDans l’application Visio, chaque projet VBA contient un module de classe par défaut appelé ThisDocument qui représente les propriétés, les méthodes et les événements du document associé au projet. Comme tout module de classe, d’autres programmes peuvent accéder à ThisDocument au moment de l’exécution.

Objet Document et objetssupérieurs associés dans le module

d’objet Visio

Si vous souhaitez manipuler un document, mais pas nécessairement le document associé au projet VBA, récupérez l’objet Document de la collection Documents. Pour manipuler le document associé au projet VBA, utilisez l’objet ThisDocument.

����1����P����!����"��������

����1����P� ����������"�����*�

����1����P� ���������������

��������P� �����������

����O����P� ����������1�O

Global Document

Documents

ActiveDocument

ThisDocument

Documents

Page 323: MS Visio 2003 Guide du Développeur

P R O G R A M M A T I O N D A N S V I S I O A V E C M I C R O S O F T V B A 309

Par exemple, pour référencer la première page du dessin Bonjour.vsd, vous pouvez récupérer l’objet Document de l’ensemble Documents de l’objet global. L’exemple suivant récupère la première page de Bonjour.vsd de la collection Pages du document.

Si Bonjour.vsd est le document associé à votre projet VBA, il vous suffit d’utiliser l’objet ThisDocument comme dans l’exemple suivant :

Une fois que vous faites référence à un objet Document, extrayez d’autres objets Visio en récupérant les propriétés de l’objet Document, puis des autres objets de la hiérarchie.

Vous pouvez ajouter des propriétés et des méthodes à l’objet ThisDocument, car il s’agit d’un objet extensible, c’est-à-dire d’un objet dont les fonctionnalités peuvent être étendues. L’objet ThisDocument est le seul objet extensible fourni par le moteur Visio. Vous pouvez aussi sélectionner ThisDocument dans l’explorateur de projet et changer ses propriétés, comme les paramètres de la page et les styles par défaut ; dans la fenêtre Propriétés, vous pouvez aussi changer les propriétés du document, comme le titre, le créateur et le sujet.

Pour plus d’informations sur les propriétés, les méthodes et les événements de ThisDocument, sélectionnez l’objet ThisDocument dans l’explorateur de projet qui vous intéresse, ouvrez l’explorateur d’objets, affichez le projet Visio contenant ThisDocument dans la liste des projets et parcourez les membres de ThisDocument.

����1����P� ����������"�����#���P��"��1#�

��������P� �1����P"�����"�����*�

��������P� �$�����������"�����"�����*�

Page 324: MS Visio 2003 Guide du Développeur

310 C H A P I T R E 1 5

Exécution du code VBA depuis Visio

Vous pouvez exécuter le code Microsoft Visual Basic pour Applications (VBA) dans l’Editeur Visual Basic pour le tester et le déboguer au cours du développement. Cette partie traite des différentes manières d’exécuter du code dans l’Editeur Visual Basic. Pour plus d’informations sur le débogage d’un programme VBA, comme l’ajout de points d’arrêt, des espions et l’exécution pas à pas, reportez-vous à l’aide en ligne Microsoft Visual Basic.

L’utilisateur peut exécuter vos macros terminées dans l’interface utilisateur Visio en effectuant son choix dans le sous-menu Macros du menu Outils. Une macro est une procédure VBA qui n’utilise aucun argument. Les procédures qui emploient des argu-ments n’apparaissent pas dans le sous-menu Macros.

Boîte de dialogue Macros

L’exécution d’un programme peut être déclenchée de différentes manières, par exemple en réponse à des événements. Pour plus d’informations sur l’exécution d’un programme en réponse à des événements, reportez-vous au Chapitre 21, « Gestion des événements dans Visio ». Pour connaître les autres manières d’exécuter un programme, reportez-vous au Chapitre 25, « Distribution d’une solution Visio Automation ».

A Nom de la macro sélectionnéeB Liste des macros disponibles et

des programmes complémentaires

C Liste des projets, des modules et des dessins accessibles

Page 325: MS Visio 2003 Guide du Développeur

P R O G R A M M A T I O N D A N S V I S I O A V E C M I C R O S O F T V B A 311

Pour exécuter une macro depuis l’Editeur Visual Basic :

1 Choisissez Outils > Macros.

2 Dans la liste Macros, sélectionnez la macro souhaitée et cliquez sur Exécuter.

Si la macro souhaitée n’est pas répertoriée, assurez-vous que vous avez choisi le projet, le module ou le dessin correct dans la zone Macros dans. Les procédures privées n’apparaissent pas dans tous les menus ou dans toutes les boîtes de dialogue.

Ou

1 Dans l’explorateur de projet, ouvrez le module qui contient la macro.

2 Dans la fenêtre de code, cliquez à l’intérieur de la macro pour placer le point d’insertion.

3 Choisissez Exécuter > Exécuter Sub/UserForm.

La macro où figure le point d’insertion est exécutée.

Pour exécuter une macro à partir de la boîte de dialogue Macros de Visio :

1 Dans l’application Visio, choisissez Outils > Macros > Macros.

2 Dans la liste Macros, sélectionnez votre programme et cliquez sur Exécuter.

REMARQUE : du point de vue de l’utilisateur, peu importe si le programme que l’utilisateur exécute est un programme complémentaire ou une macro car l’application Visio combine donc ces programmes dans des boîtes de dialogue. Par exemple, vous pouvez exécuter un programme complémentaire ou une macro à partir de la boîte de dialogue Macros ou à partir du sous-menu Macros.

Pour décrire la macro qui apparaît dans la boîte de dialogue Macros :

1 Dans l’Editeur Visual Basic, ouvrez l’explorateur d’objets.

2 Dans la zone de projet/bibliothèque, choisissez le projet qui contient la macro.

3 Dans la liste Classe, sélectionnez le module qui contient la macro et cliquez avec le bouton droit sur la macro dans la liste Membres de, puis choisissez Propriétés.

4 Saisissez une description dans la zone Description.

Pour exécuter la macro depuis le sous-menu Macros Visio :

1 Choisissez Outils > Macros.

2 Dans le sous-menu Macros, choisissez le projet contenant vos macros, puis choisissez-en une.

Page 326: MS Visio 2003 Guide du Développeur

312 C H A P I T R E 1 5

L’illustration suivante montre comment un module apparaît dans le sous-menu Macros Visio avec ses macros affichées dans le sous-menu du module.

Sous-menu Macros Visio

Si vous souhaitez que vos macros apparaissent dans le sous-menu Macros, mais que le module contenant vos macros soit masqué, nommez votre module ShowInMenu. Le module ShowInMenu n’apparaît pas dans le sous-menu Macros Visio mais, comme le montre l’illustration suivante, ses macros y figurent :

Sous-menu Macros utilisantle module ShowInMenu

Page 327: MS Visio 2003 Guide du Développeur

P R O G R A M M A T I O N D A N S V I S I O A V E C M I C R O S O F T V B A 313

Gestion des erreurs

Lorsqu’une erreur se produit au cours de l’exécution du programme, Microsoft Visual Basic pour Applications (VBA) génère un message d’erreur et interrompt l’exécution. En testant les hypothèses avant d’exécuter réellement le code qui risque d’échouer, vous pouvez éviter de nombreuses erreurs. Vous pouvez déceler les erreurs et les résoudre en utilisant la formulation On Error de votre programme. Pour plus d’informations sur On Error, reportez-vous à votre documentation VBA.

Les erreurs peuvent provenir d’une grande variété de situations. Cette partie répertorie les situations communes conduisant à des erreurs et suggère des moyens de les éviter.

Exécution du programme dans le contexte correctSi vous avez décidé du contexte dans lequel le programme sera exécuté, vous pouvez effectuer des hypothèses concernant l’environnement. Par exemple, si vous écrivez un programme VBA pour gérer le comportement du double-clic, vous pouvez probablement supposer qu’un document est ouvert et que la forme ayant fait l’objet d’un double-clic est sélectionnée dans la fenêtre active. En revanche, il existe des limites à la capacité d’un programme à contrôler les actions utilisateur. Par exemple, rien ne peut empêcher un utilisateur de tenter, au lieu de double-cliquer sur la forme, d’exécuter un programme VBA conçu pour gérer un événement de double-clic à partir de la boîte de dialogue Macros.

Si votre programme exige qu’une forme soit sélectionnée, cochez la propriété Selection dans la fenêtre active pour vous assurer qu’elle contient au moins un objet.

������������P����!����"���������

������������P� ����������1�O"���������

�+���������P"������ �'�$���

E��3���#!����1���I�1Y���1��A��������������+���"#�,�,�#�A����������

����+���#

���

X������1�����������

�1��+

Page 328: MS Visio 2003 Guide du Développeur

314 C H A P I T R E 1 5

Verification de l’existence des objets et des valeurs renvoyéesAvant d’accéder à des objets, il est prudent de contrôler leur existence dans la collection. Avant d’effectuer une itération dans la collection Masters, ce qui provoquerait une erreur si l’ensemble était vide, l’exemple suivant vérifie si le document comporte des formes de base.

Si une propriété ou une méthode est censée renvoyer une valeur, il peut être judicieux de s’assurer qu’elle l’a réellement fait. Par exemple, si votre programme formate un texte de forme, vous pouvez vérifier que l’objet Forme contient du texte :

Vérification des valeurs d’erreurVBA comporte une fonction Error qui renvoie une chaîne. Lorsqu’une erreur se produit dans Visio, un code d’erreur et une chaîne descriptive sont renvoyés. Pour obtenir la chaîne associée au code d’erreur renvoyé par l’application Visio, utilisez la fonction Error.

L’objet Cell Visio comporte une propriété Error qui indique si une erreur s’est produite lors du calcul de la formule d’une cellule. Si votre programme modifie les formules ShapeSheet®, cochez cette propriété pour vous assurer que la formule fonctionne comme prévu. Pour obtenir la liste des valeurs possibles, recherchez « Error, propriété » dans l’aide en ligne Référence du développeur (choisissez ? (Aide) > Référence du développeur) fournie avec Visio.

�+�$�����������"E�����"������ �'�$���

E��3���#���1�������������������������+����1������"#

X��������������������1Y���

�1��+

��������P����!����"����

������$������������

��������P� �����������"�����"������*�

��$���� �����P"$���

�+���$���� �##�$���

E��3���#���+�����A��������A���Y��������������W�+�����"#�,�,�#)������

���������1Y����+���#

���

X������1�����������

�1��+

Page 329: MS Visio 2003 Guide du Développeur

P R O G R A M M A T I O N D A N S V I S I O A V E C M I C R O S O F T V B A 315

Gestion d’un projet VBA

Pour travailler de manière efficace et pour réduire les tâches de maintenance, effectuez ces opérations de gestion de projet :

• Supprimez les éléments du projet qui ne sont plus nécessaires afin de réduire la taille des fichiers et faciliter la gestion du projet.

• Empêchez l’affichage et la modification de votre code, si nécessaire.

• Concevez des modules, des modules de classe et des formulaires utilisateur afin de pouvoir les réutiliser, pour économiser du temps lors de l’écriture du code. En outre, Microsoft Visual Basic pour Applications (VBA) 6.0 vous permet d’exécuter des programmes complémentaires qui peuvent être partagés dans plusieurs applications.

Pour plus d’informations sur la réutilisation des éléments du projet, reportez-vous à la section « Importation de fichier et exportation d’un projet », page 302 de ce chapitre.

Suppression d’éléments d’un projetLorsque vous supprimez un élément, vous le supprimez définitivement de la liste des projets ; cela signifie que vous ne pouvez pas annuler cette action. Assurez-vous que le code restant dans les autres modules et formulaires utilisateur ne fait pas référence au code contenu dans l’élément supprimé.

Pour supprimer un élément de projet :

1 Sélectionnez l’élément dans l’explorateur de projet.

2 Choisissez Fichier > Supprimer <Nom>.

3 Indiquez si vous souhaitez exporter l’élément avant de le supprimer.

• Cliquez sur Oui pour ouvrir la boîte de dialogue Exporter un fichier.

• Cliquez sur Non pour supprimer l’élément.

Page 330: MS Visio 2003 Guide du Développeur

316 C H A P I T R E 1 5

Protection du codePour empêcher l’affichage ou la modification du code, vous pouvez verrouiller un projet : vous paramétrez un mot de passe qui doit être saisi pour que le projet puisse être affiché dans l’explorateur de projet.

Pour empêcher l’affichage d’un projet VBA :

1 Choisissez Outils > Propriétés de Nom du dessin.

2 Cliquez sur l’onglet Protection et sélectionnez Verrouiller le projet pour l’affichage.

3 Saisissez un mot de passe et confirmez-le.

4 Enregistrez votre fichier Visio et fermez-le.

A l’ouverture suivante du fichier Visio, le projet est verrouillé. Si un utilisateur souhaite l’afficher ou le modifier, il doit saisir le mot de passe.

Utilisation du gestionnaire des programmes complémentairesDans l’Editeur Visual Basic, vous pouvez utiliser le gestionnaire de programmes complémentaires pour gérer les programmes qui étendent l’environnement de développement VBA. Ces compléments COM procurent au développeur le moyen d’utiliser un seul complément pour ajouter des fonctionnalités dans n’importe quelle application incluant VBA 6.0, notamment l’application Visio. Pour plus d’informations sur les compléments, reportez-vous à l’aide en ligne VBA.

Pour afficher le gestionnaire des programmes complémentaires depuis l’Editeur Visual Basic :

• Choisissez Compléments > Gestionnaire de compléments.

La boîte de dialogue Gestionnaire de compléments apparaît et affiche la liste des compléments enregistrés avec Visio.

Page 331: MS Visio 2003 Guide du Développeur

Sommaire

16Utilisation des objets Visio Document, Page et Shape

Dans le modèle d’objet Microsoft® Visio®, l’objet de base à utiliser est l’objet Shape. Pour parcourir les objets Shape, il convient, en général, d’utiliser les objets Document et Page qui les précèdent dans la hiérarchie des objets.

Ce chapitre décrit l’utilisation des objets Document, Page et Shape, comment récupérer et paramétrer leurs propriétés, et appeler leurs méthodes. Lors de l’utilisation des autres objets Visio du modèle d’objet, vous pouvez appliquer la plupart des techniques traitées dans ce chapitre.

Pour plus d’informations sur les objets, les propriétés, les méthodes et les événements du modèle d’objet Visio, reportez-vous à l’aide en ligne Référence du développeur (choisissez ? (Aide) > Référence du développeur) fournie avec Visio. Pour obtenir la liste récapitulative des objets, propriétés, méthodes et événements Visio, reportez-vous à l’Annexe A, « Propriétés, méthodes et événements classés par objet ».

REMARQUE : dans Microsoft® Visio® 2000, tout objet pouvant être nommé (par exemple, une page ou une forme) peut avoir deux noms : un nom local et un nom universel. Si vous développez des solutions qui seront localisées, reportez-vous à la section « Utilisation de noms universels dans une solution » page 493.

Utilisation des objets Document........................................................................... 318

Utilisation des objets Page .................................................................................... 324

Utilisation des objets Shape.................................................................................. 326

Exemple de création d’un dessin simple ............................................................. 337

Page 332: MS Visio 2003 Guide du Développeur

318 C H A P I T R E 1 6

Utilisation des objets Document

Un objet Document représente un fichier de dessin (.vsd), un fichier de gabarit (.vss) ou un fichier de modèle (.vst) ouvert dans une occurrence Visio. Lors de l’utilisation d’un dessin existant dans un programme, vous devrez probablement utiliser uniquement la page active du document actif, c’est-à-dire le dessin affiché dans la fenêtre de dessin active. Toutefois, dans certains circonstances, le programme peut ouvrir un document pour automatiquement récupérer un document ouvert et inactif.

Récupération d’un objet Document Pour récupérer des informations sur un document, vous devez récupérer la référence d’un objet Document.

Objet Document et objets associésde niveau supérieur dans le modèle

d’objet Visio

En fonction de la conception de votre solution, il existe plusieurs manières de récupérer la référence d’un objet Document. Pour tous les exemples suivants, supposons que vous avez défini une variable d’objet docObj :

• Les objets Global et Application ont une propriété ActiveDocument qui fait référence au document de la fenêtre active, quel que soit le type de cette fenêtre. Cette instruction récupère le document actif dans une occurrence Visio et l’attribue à docObj :

En guise d’alternative, si vous avez récupéré la fenêtre active, vous pouvez récupérer la propriété Document de cet objet Window : il renvoie au même objet Document qu’ActiveDocument.

Pour plus d’informations sur l’objet global, reportez-vous à la section « Utilisation de l’objet global Visio », page 307.�

����1����P����!����"���������

����1����P� ���������������

Application

ActiveDocument

Document

DocumentsGlobal Documents

Page 333: MS Visio 2003 Guide du Développeur

U T I L I S A T I O N D E S O B J E T S V I S I O D O C U M E N T , P A G E E T S H A P E 319

• Si vous connaissez le nom de fichier d’un document ouvert, vous pouvez l’extraire de la collection Documents, que le document soit actif ou inactif. Par exemple :

L’instruction précédente extrait le document Bonjour.vsd de la collection Documents. Si Bonjour.vsd n’est pas ouvert, la tentative d’extraction provoque une erreur.

• Vous pouvez utiliser la méthode Open d’une collection Documents pour ouvrir un document si vous connaissez son chemin et son nom de fichier :

Cette instruction ouvre le document Bonjour.vsd sous sa forme originale et l’ajoute à la collection Documents.

Avec la méthode Open, vous pouvez ouvrir tout document Visio (fichier de gabarit, de modèle ou de dessin), bien que cela ne soit pas conseillé pour les gabarits et les modèles. Au lieu d’une copie ou d’une version en lecture seule, la méthode Open ouvre l’original du document. Un document original peut être modifié ; ce type d’ouverture est donc déconseillé pour les gabarits et les modèles car rien n’empêche l’utilisateur de modifier les formes de base, de changer l’espace de travail du modèle ou d’effectuer d’autres modifications pouvant s’avérer fâcheuses.

Pour ouvrir un document Visio en lecture seule, utilisez la méthode OpenEx. Vous pouvez aussi utiliser OpenEx pour ouvrir les éléments suivant :

• La copie d’un document.

• La copie d’un document sans ajouter son nom au menu Fichier Visio.

• Un gabarit ancré dans une fenêtre de dessin.

• Un gabarit mis en icône.

Pour plus d’informations, reportez-vous à OpenEx dans l’aide en ligne Référence du développeur fournie avec Visio.

����1����P� ����������"�����#���P��"��1#�

����1����P� ����������"����#�Z[�����[1������[���P��"��1#�

Page 334: MS Visio 2003 Guide du Développeur

320 C H A P I T R E 1 6

Récupération d’informations sur des documentsVous pouvez récupérer des informations sur un document en extrayant ses propriétés, comme Description, Mots-clés, Sujet et Titre. Ces propriétés correspondent aux zones de texte de la boîte de dialogue Propriétés (choisissez Fichier > Propriétés).

Un objet Document comporte trois propriétés que vous pouvez utiliser pour récupérer le nom de fichier d’un document :

• Name, qui renvoie seulement le nom de fichier d’un document, par exemple, Bonjour.vsd. Tant que le document n’est pas enregistré, Name renvoie son nom provisoire, comme Dessin1.

• FullName, qui renvoie le lecteur et le nom de fichier du document. Par exemple, c:\Visio\Dessins\Bonjour.vsd. Comme pour la propriété Name, tant que le document n’est pas enregistré, FullName renvoie un nom provisoire.

• Path, qui renvoie seulement le lecteur et le chemin du document. Par exemple, c:\Visio\Dessins\. Tant que le document n’est pas enregistré, Path renvoie une chaîne de caractères Null ("").

Ces propriétés sont en lecture seule. Pour changer le nom, l’unité ou le chemin d’un document, utilisez la méthode SaveAs pour enregistrer le document sous un nom différent, ou dans une unité ou un chemin différents.

Vous pouvez obtenir le statut d’un document en récupérant sa propriété ReadOnly ou Saved :

• ReadOnly renvoie TRUE si un document est ouvert en lecture seule.

• Saved renvoie TRUE si toutes les modifications du document ont été enregistrées.

Vous pouvez aussi obtenir des informations sur un objet Document en obtenant la propriété DocumentSheet de l’objet Document. Cette propriété renvoie un objet Shape dont la propriété Cells renvoie des objets Cell qui contiennent les formules du document. Ces objets Cell correspondent aux cellules qui figurent dans la fenêtre ShapeSheet® du document. Pour plus d’informations sur l’utilisation des formules, reportez-vous au chapitre 17, « Automatisation des formules »�

Utilisation des styles d’un documentPour déterminer les styles disponibles d’un document, récupérez la propriété Styles d’un objet Document. Cette propriété Styles renvoie une collection Styles, qui représente la collection des styles définis pour un document. La propriété Name d’un objet Style renvoie le nom du style qui apparaît dans les listes de styles et dans la boîte de dialogue Définir les styles (choisissez Format > Définir les styles).

Page 335: MS Visio 2003 Guide du Développeur

U T I L I S A T I O N D E S O B J E T S V I S I O D O C U M E N T , P A G E E T S H A P E 321

L’exemple suivant effectue une itération dans la collection Styles du document et dresse la liste des noms de styles dans une zone de liste sur un formulaire utilisateur :

CONSEIL : vous pouvez modifier les styles par défaut d’un objet Document dans l’Editeur Microsoft Visual Basic. Sélectionnez l’objet ThisDocument dans l’explorateur de projet et modifiez les styles indiqués dans la fenêtre Propriétés. Les styles de la fenêtre Propriétés sont : DefaultFillStyle, DefaultLineStyle, DefaultStyle et DefaultTextStyle.

Création d’un style pour un documentPour créer un style à partir d’un programme, utilisez la méthode Add d’une collection Styles et spécifiez le nom du nouveau style. Vous pouvez également spécifier le nom d’un style, créer un nouveau style et indiquer si ce style inclut des attributs de texte, de trait et de remplissage.

Par exemple, pour créer un nouveau style nommé Légende d’après le style Normal qui inclut seulement des attributs de texte :

Pour créer un nouveau style qui n’est pas basé sur un autre style avec des attributs de texte, de trait et de remplissage :

����������4������

������4����P����!����"��4���

������4���P����!����"��4��

������4��2������������

������4����P� �$�����������"��4���

%��)��*"����3��*"����

)�� ������4���P������4����P

��4��2���� ���4���P"2���

%��)��*"����3��*"�11�������4��2���

2����

%��)��*"���O

�1����

������4���P� ���4����P"�11�#�A���1�#,�#2����#,�*,�',�'�

������4���P� ���4����P"�11�#��������1����#,##,�*,�*,�*�

Page 336: MS Visio 2003 Guide du Développeur

322 C H A P I T R E 1 6

Vous pouvez modifier le nom du style en paramétrant sa propriété Name, ou indiquer s’il comporte des attributs de texte, de trait ou de remplissage en paramétrant sa propriété IncludesFill, IncludesLine ou IncludesText. Pour plus d’informations sur la création de styles dans l’application Visio, recherchez « styles » dans l’aide en ligne fournie avec Visio.

Un objet Style comporte une propriété Cells que vous pouvez utiliser pour paramétrer des formules pour les cellules ShapeSheet qui définissent le style. Cette propriété renvoie un objet Cell qui correspond à une cellule dans un style.

Par exemple, pour modifier la taille de police d’un style :

Pour plus d’informations sur l’utilisation des formules, reportez-vous au chapitre 17, « Automatisation des formules »�

Impression et enregistrement de documentsVotre programme peut imprimer ou enregistrer le dessin qu’il crée. Pour les utilisateurs qui connaissent les commandes de menu Visio, vous allez probablement créer le dessin à partir de votre programme, et laisser les opérations d’impression et d’enregistrement à l’utilisateur. Vous pouvez également gérer ces étapes à partir de votre programme.

Impression de documents et de pagesVous pouvez imprimer un document ou une page en utilisant la méthode Print.

Pour imprimer l’intégralité des pages d’un document, utilisez Print avec un objet Document. Cela équivaut à choisir Tout dans la boîte de dialogue Imprimer (choisissez Fichier > Imprimer). Pour imprimer une seule page, utilisez la méthode Print avec un objet Page. Cela revient à afficher cette page et à choisir Page en cours dans la boîte de dialogue Imprimer.

Lors de l’impression à partir de Microsoft® Visual Basic® pour Applications (VBA) ou Visual Basic, vous devez :

• Appliquer la méthode à une variable de type Objet. Vous ne pouvez pas utiliser un type d’objet Visio spécifique.

• Appliquer le résultat de la méthode Print à une variable fictive.

����+�����I�������P� ���4���P"������#��"$�����#�

+�����I�������P")������ �#*T��#

Page 337: MS Visio 2003 Guide du Développeur

U T I L I S A T I O N D E S O B J E T S V I S I O D O C U M E N T , P A G E E T S H A P E 323

Par exemple, pour imprimer un document :

Enregistrement de documentsPour enregistrer un document à partir d’un programme, utilisez la méthode Save ou SaveAs d’un objet Document.

Utilisez la méthode SaveAs et indiquez un nom de fichier et un chemin pour enregistrer et nommer un nouveau document, pour enregistrer une copie d’un document existant sous un nom différent, ou pour enregistrer un document existant dans une unité ou un chemin différents. Par exemple :

Utilisez la méthode Save seulement si le document a déjà été enregistré et nommé. Par exemple :

A la différence de la commande de menu Enregistrer de l’interface utilisateur Visio, qui affiche la boîte de dialogue Enregistrer le fichier sous si un document est sans nom, l’utilisation de la méthode Save sur un document sans nom n’appelle pas la méthode SaveAs, mais entraîne une erreur.

Pour savoir si un document a déjà été enregistré, vérifiez sa propriété Path qui renvoie le lecteur et le chemin complet du document ou, s’il n’a pas été enregistré, une chaîne Null. Pour savoir si un document a été enregistré depuis les dernières modifications, vérifiez sa propriété Saved.

����1����P����!����"��������

����1����P$��������P���

����1���4���������

����1����P� �$�����������

����1����P���� �1����P

1���4� �1����P$��"����

$�����������"�������#�Z[�����[1������[���+�����"��1#

$�����������"����

Page 338: MS Visio 2003 Guide du Développeur

324 C H A P I T R E 1 6

Utilisation des objets Page

Un objet Page représente une page de dessin pouvant être soit une page d’arrière-plan, soit une page de premier plan. Une fois que vous avez la référence à un document, vous devez récupérer un objet Page de la page de dessin à utiliser.

Si vous vous attendez à ce que l’utilisateur crée ou affiche un dessin, puis exécute votre programme, mieux vaut partir du principe que la page active contient le dessin souhaité. Vous pouvez soit récupérer la page active dans l’occurrence Visio, soit récupérer le document actif et extraire une page de sa collection Pages.

Récupération d’un objet PagePour utiliser une page de dessin, vous devez récupérer une référence à un objet Page.

Objet Page et objets associéssupérieurs dans le modèle d’objet

Visio

Pour récupérer une page d’un document, récupérez la collection Pages de l’objet Document ou ThisDocument, puis récupérez un objet Page de la collection. Vous pouvez récupérer une page par son indice dans la collection, ou si vous connaissez le nom de la page, par son nom. Par exemple, pour extraire une page nommée « Ingénierie » :

Pour récupérer la page active d’une application, vous pouvez récupérer la propriété ActivePage de l’objet global ou Application. Par exemple, en utilisant l’objet global :

Pour plus d’informations sur l’objet global, reportez-vous à la section « Utilisation de l’objet global Visio » page 307��

��������P� �$�����������"�����"�����#���A�����#�

��������P� �����������

Application

ActivePage

DocumentGlobal

PageDocument PageDocuments PagesDocuments Pages

Page 339: MS Visio 2003 Guide du Développeur

U T I L I S A T I O N D E S O B J E T S V I S I O D O C U M E N T , P A G E E T S H A P E 325

Récupération des informations sur les pagesVous pouvez récupérer des informations sur une page en lisant des propriétés, comme Name et Background, qui sont affichées dans les zones de texte de l’onglet Propriétés de la page de la boîte de dialogue Mise en page (choisissez Fichier > Mise en page). La propriété Document d’une page renvoie l’objet Document qui contient la page.

Un objet Page comporte aussi des propriétés que vous pouvez utiliser pour identifier le contenu d’une page de dessin :

• Shapes renvoie la collection de tous les objets Shape d’une page.

• Connects renvoie la collection de tous les objets Connect d’une page.

• OLEObjects renvoie la collection de tous les objets liés OLE 2.0 et les objets incorporés, ainsi que les contrôles ActiveX d’une page.

Vous pouvez aussi récupérer des informations sur les dimensions et sur l’apparence d’une page de dessin en récupérant la propriété PageSheet d’un objet Page. Cette propriété renvoie un objet Shape dont la propriété Cells renvoie des objets Cell qui contiennent les formules de la page. Ces objets Cell correspondent aux cellules qui figurent dans la fenêtre ShapeSheet® de la page.

Par exemple, les instructions suivantes renvoient la largeur de la page :

Pour plus d’informations sur l’utilisation des formules, reportez-vous au chapitre 17, « Automatisation des formules ».

Ajout de pages dans un dessinUn document Visio peut contenir plusieurs pages. Chaque page d’un document peut contenir un dessin unique, et certaines pages peuvent servir d’arrière-plans pour d’autres pages.

Vous pouvez, à partir d’un programme, créer des documents à plusieurs pages en ajoutant des pages et en leur attribuant des arrière-plans. Vous pouvez aussi modifier les paramètres de la page, comme l’échelle du dessin, la largeur et la hauteur de la page.

Au départ, un nouveau document contient une page. Pour créer une autre page, utilisez la méthode Add de la collection Pages du document. Par exemple :

Une fois que vous avez ajouté une page à la collection, vous pouvez utiliser la propriété Name de l’objet Page pour nommer votre page.

��������P� �����P"���������

���������P� �����P"������#���������#�

1��1��� ������P"&������#�����#�

��������P� �$�����������"�����"�11

Page 340: MS Visio 2003 Guide du Développeur

326 C H A P I T R E 1 6

Utilisation des objets Shape

L’objet Visio essentiel que vous allez utiliser est l’objet Shape. Un objet Shape représente une forme de base, un groupe, un repère ou un point de repère, ou encore un objet lié ou incorporé. Un objet Shape peut aussi représenter les formules d’une page, d’une forme de base ou d’un document. Une collection Shapes représente tous les objets Shape d’une page de dessin.

Récupération d’un objet ShapePour obtenir des informations sur une forme, vous devez récupérer la référence à l’objet Shape. Pour ce faire, vous devez tout d’abord récupérer la référence à la collection Shapes de l’objet qui contient la forme qui vous intéresse.

Objet Shape et objets associéssupérieurs dans le modèle

d’objet Visio

Pour récupérer la collection Shapes d’une page, récupérez la propriété Shapes de l’objet Page. Pour récupérer une collection Shapes d’une forme de base, récupérez la propriété Shapes de l’objet Master. Si un objet Shape représente un groupe ou la feuille d’une page ou d’une forme de base, cet objet Shape dispose aussi d’une propriété Shapes.

Vous pouvez récupérer un objet Shape de la collection Shapes par son indice, son nom ou son ID unique.

Récupération d’une forme par son indice

L’ordre des éléments dans une collection Shapes est identique à celui des formes dessinées. Le premier élément d’une collection Shapes est la forme à l’arrière-plan de la page de dessin (la première forme dessinée), et le dernier élément est la forme au tout premier plan (la dernière forme dessinée). Par exemple, pour placer sur la page la forme au tout premier plan :

����1��� ������P"�����

��������P� ������P"���������1���

Page

Pages

ShapeShapes

Application Document

Global

Documents

Pages

Shapes

Documents

Page 341: MS Visio 2003 Guide du Développeur

U T I L I S A T I O N D E S O B J E T S V I S I O D O C U M E N T , P A G E E T S H A P E 327

Récupération d’une forme par nom ou par ID uniqueUn objet Shape comporte trois propriétés qui identifient la forme : Name, NameID et UniqueID.

Name : renvoie NomDeForme[.nnnn]. Le nom de la forme est NomDeForme ; vous pouvez paramétrer ce nom soit à l’aide de la propriété Name, soit en saisissant un nom dans la boîte de dialogue Spécial (choisissez Format > Spécial).

Si vous n’attribuez pas de nom à une forme, la propriété Name renvoie l’une des valeurs suivantes :

• Si la forme est la première ou la seule occurrence d’une forme de base sur une page ou dans un groupe, NomDeForme est le nom de la forme de base sans numéro d’identification, par exemple, Décision.

• Si la forme n’est pas la première occurrence d’une forme de base sur une page ou dans un groupe, NomDeForme est le nom de la forme de base suivie du numéro d’identification de la forme, par exemple, Décision.43.

• Si la forme n’est pas l’occurrence d’une forme de base, NomDeForme correspond à Feuille suivie du numéro d’identification de la forme, par exemple, Feuille.34. Dans ce cas, les propriétés Name et NameID de la forme renvoient la même chaîne.

Un nom de forme peut être constitué de 1 à 31 caractères et il décrit généralement la forme, comme Ordinateur de bureau. Par exemple, pour récupérer une forme nommée Ordinateur de bureau

NameID : renvoie Feuille.n, n étant l’ID entier de la forme, par exemple, Feuille.34. Cet ID est attribué à la forme lorsqu’elle est créée sur une page de dessin ; il est unique dans la page ou dans la forme de base de la forme. Par exemple, pour récupérer une forme dont l’ID est 5 :

UniqueID(visGetGUID) : renvoie l’éventuel ID de la forme. Vous pouvez accéder aux ID uniques seulement à partir d’un programme, pas depuis l’interface utilisateur Visio. La plupart du temps, les ID permettent d’identifier les formes ayant des enregistrements correspondants dans une base de données. Dans le cas d’un plan de local commercial par exemple, il existe des douzaines de formes de bureau, de siège et de PC identiques, vous pouvez utiliser l’ID unique de chaque forme pour associer une forme spécifique du plan à un enregistrement de la base de données d’équipements.

��������P� ������P"�����#�1�������1�������#�

��������P� ������P"�����#)������"8#�

Page 342: MS Visio 2003 Guide du Développeur

328 C H A P I T R E 1 6

Tant que le programme ne le génère pas, une forme n’a pas d’ID unique. En revanche, une forme de base dispose toujours d’un ID unique, généré par le moteur Visio. Un ID unique est stocké en interne sous la forme d’une valeur de 128 bits, mais le moteur Visio renvoie cette valeur sous la forme d’une chaîne. Vous pouvez passer la chaîne ID unique avec la méthode Item pour récupérer une forme par son ID unique. Par exemple :

Pour plus d’informations sur les ID uniques des formes et des formes de base, reportez-vous au chapitre 20, « Intégration de données et d’une solution Visio »�

Récupération d’informations sur une formeEtant donné qu’un objet Shape peut représenter plus qu’une forme de base, il convient parfois de déterminer son type. L’objet Shape comporte une propriété Type qui indique le type de la forme. Les valeurs renvoyées par cette propriété sont représentées par les constantes suivantes définies dans la bibliothèque de types Visio :

• visTypeShape identifie une forme qui n’est pas un groupe, comme une ligne, une ellipse ou un rectangle, et les formes avec chemins multiples.

• visTypeGroup identifie un groupe. Un groupe peut contenir des formes, des groupes, des objets externes et des repères.

• visTypeForeignObject identifie un objet importé, incorporé ou lié à partir d’une autre application.

• visTypeGuide identifie un repère ou un point de repère.

• visTypePage identifie une forme contenant les propriétés d’une page ou d’une forme de base.

• visTypeDoc identifie une forme contenant les propriétés d’un document.

L’occurrence d’une forme de base peut être une forme de base ou un groupe, en fonction de la manière dont la forme de base a été créée.

��������P� ������P"�����#\GG=B8T�*5DFTG5*'*�5D*'=5''G'T�)B3GG']#�

Page 343: MS Visio 2003 Guide du Développeur

U T I L I S A T I O N D E S O B J E T S V I S I O D O C U M E N T , P A G E E T S H A P E 329

Dans la collection Shapes d’un objet Page, chaque groupe est considéré comme une seule forme. En revanche, un groupe dispose de sa propre collection Shapes. La fonction suivante comptabilise les formes d’une page, y compris celles des groupes (mais pas les groupes eux-mêmes), en effectuant une itération dans la collection Shapes d’un objet Page. Elle vérifie également la propriété Type de chaque objet Shape pour voir si la forme est un groupe. Si Type renvoie visTypeGroup, l’exemple extrait le nombre de formes du groupe et ajoute ce nombre au nombre total de formes.

Création et modification de formesQu’il s’agisse de création ou de modification, la plupart des opérations exécutées par le programme s’effectuent avec des formes. Pour créer des formes, vous insérez généralement des formes de base dans la page de dessin en les faisant glisser, comme le décrit le chapitre 18, « Création de dessins par automatisation »�

)�����������������������������P��������������

�������������������� X!�����1������

���������P����!����"���� X����������������

��������P����!����"���� X��P�������

������� �' X������J������"���������������������

X�������

���������P� ����"�����

)�� ��������P���������P

�+�����P"$4�� ����$4�;���$���

������� ��������-����������������P�

���

������� ��������-�*

�1��+

2���

����������� �������

�1�)�������

Page 344: MS Visio 2003 Guide du Développeur

330 C H A P I T R E 1 6

Création de formesA partir d’un programme, vous pouvez dessiner des lignes, des ellipses et des rectangles en utilisant les méthodes DrawLine, DrawOval et DrawRectangle d’un objet Page. Lorsque vous dessinez des lignes, des ovales et des rectangles au lieu d’insérer une forme de base dans la page de dessin, vous attribuez des coordonnées aux deux angles opposés du plan largeur-hauteur de la nouvelle forme.

Création de formes à l’aide desméthodes DrawLine,

DrawRectangle et DrawOval

A pagObj.DrawLine 1,9,3,10 B pagObj.DrawRectangle 1,6,3,7 C pagObj.DrawOval 1,3,3,4

Lorsque vous dessinez des ellipses et des rectangles, l’ordre dans lequel vous spécifiez les angles n’a pas réellement d’importance. En revanche, il est important pour les lignes. Il convient généralement de connaître l’extrémité d’une ligne correspondant au point de départ et celle correspondant au point de fin.

Si vous le souhaitez, vous pouvez par exemple appliquer un style de ligne qui formate le point de fin d’une ligne avec une flèche, ou coller le point de départ d’une ligne sur une autre forme. Lorsque vous dessinez une ligne à partir d’un programme, les premières coordonnées x,y déterminent le point de départ de la ligne, et les secondes coordonnées x,y déterminent le point de fin de la ligne ; le résultat est le même que lorsque vous dessinez une forme avec la souris.

� � � !

����

"�

# $ � �

�$

#!

��

��

A

B

C

Page 345: MS Visio 2003 Guide du Développeur

U T I L I S A T I O N D E S O B J E T S V I S I O D O C U M E N T , P A G E E T S H A P E 331

Outre les lignes, les ovales et les rectangles, vous pouvez aussi dessiner des formes à l’aide des méthodes DrawBezier, DrawNURBS, DrawPolyline et DrawSpline. Pour plus d’informations sur ces méthodes, reportez-vous à l’aide en ligne Référence du développeur (choisissez ? (Aide) > Référence du développeur) fournie avec Visio.

Modification des formesVous pouvez aussi dessiner des formes originales, modifier des formes existantes, ou en changer l’apparence et le comportement en paramétrant leurs formules. Un objet Shape comporte une propriété Cells qui renvoie un objet Cell contenant une formule.

Par exemple, pour masquer le texte d’une forme :

Pour plus d’informations sur l’utilisation des formules, reportez-vous au chapitre 17, « Automatisation des formules »�

Copie, coupe, suppression et duplication de formesVous pouvez copier, couper, supprimer et dupliquer des formes en utilisant les méthodes Copy, Cut, Delete et Duplicate d’un objet Shape. Ces méthodes fonctionnent de la même manière que les commandes de menu Copier, Couper, Supprimer et Dupliquer de l’interface utilisateur Visio. Vous pouvez utiliser ces méthodes avec un objet Shape, que la forme correspondante soit sélectionnée ou non dans la fenêtre de dessin.

Pour dupliquer une forme à un endroit donné de la page, utilisez la méthode Drop de l’objet Page. Pour ce faire, attribuez une référence à la forme à dupliquer et aux coordonnées de destination du centre du rectangle de sélection et de rotation de la forme. Ce point se confond généralement avec l’axe de la forme. Par exemple :

Pour coller des formes à partir du Presse-papiers, utilisez la méthode Paste de l’objet Page. Pour plus d’informations sur le collage à partir du Presse-papiers, reportez-vous à la méthode Paste dans l’aide en ligne Référence du développeur fournie avec Visio.

���������P� �����P"������#E��J��$����#�

�����P")������ �#$��#

��������P� �����P"������#)������"*#�

����P"�������P,*,0

Page 346: MS Visio 2003 Guide du Développeur

332 C H A P I T R E 1 6

Ajout de texte aux formesIl est plus fréquent de paramétrer le texte d’une forme à partir du programme que de le considérer comme partie intégrante d’une forme de base. Vous pouvez ajouter du texte à une forme ou modifier le texte existant en paramétrant la propriété Text d’un objet Shape sur une expression de chaîne. Par exemple :

Pour inclure des guillemets dans le texte, utilisez deux caractères guillemets ("") de part et d’autre de la chaîne. Par exemple :

Pour contrôler le retour à la ligne, utilisez la fonction Chr$ de Microsoft® Visual Basic® pour inclure un saut de ligne ASCII. Par exemple :

Paramétrez la propriété Text d’unobjet Shape pour ajouter du texte à

la forme correspondante.

Pour modifier une partie du texte d’une forme, récupérez la propriété Characters de la forme, qui renvoie un objet Characters. Paramétrez les propriétés Begin et End de l’objet Characters pour marquer le texte à modifier.

Le texte d’une forme est contenu dans son bloc de texte et est positionné dans son propre système de coordonnées relatif à la forme. Vous pouvez contrôler la taille et la position du bloc de texte d’une forme en paramétrant des formules dans la section Transformation du texte de la forme. Pour plus d’informations sur l’utilisation des formules, reportez-vous au chapitre 17, « Automatisation des formules ». Pour connaître les techniques Visio de modification de bloc et de contrôle des comportements du texte, reportez-vous au chapitre 9, « Création d’un comportement de texte ».

����P"$���� �# �����#

����P"$���� �### ���5������������1��7:^ _###

����P"$���� �#������#�L���V�*'��L�#A�����#�L���V�*'��L�#��������#

Petiteétoile

brillante

Page 347: MS Visio 2003 Guide du Développeur

U T I L I S A T I O N D E S O B J E T S V I S I O D O C U M E N T , P A G E E T S H A P E 333

Récupération du texte d’une formeLa propriété Text d’un objet Shape renvoie une chaîne contenant le texte affiché dans la forme. Si le texte d’une forme contient des champs, comme une date, une heure ou des formules personnalisées, la chaîne renvoyée par la propriété Text de la forme contient un caractère d’échappement (1E en hexadécimal, 30 en décimal), non pas le texte étendu affiché dans les champs.

Pour que le texte de la forme apparaisse avec des champs correspondant intégralement à ce qu’ils affichent dans la fenêtre de dessin, récupérez la propriété Characters de la forme, puis récupérez la propriété Text de l’objet Characters obtenu. Vous pouvez aussi récupérer un sous-ensemble du texte de la forme en paramétrant les propriétés Begin et End de l’objet Characters.

Les champs du texte d’une forme correspondent aux résultats des formules que vous pouvez visualiser dans la section Champs de texte de la forme. Utilisez la propriété FieldFormula et les propriétés associées de l’objet Characters pour contrôler les champs du texte d’une forme.

REMARQUE : dans les versions précédentes de Visio, la chaîne renvoyée par la propriété Text d’une forme contenait un code de champ de 4 octets commençant par un caractère d’échappement. Les trois octets suivants contenaient les valeurs FieldCategory, FieldCode et FieldFormat du champ. Dans Visio 2000, un seul caractère d’échappement est stocké et les valeurs FieldCategory, FieldCode et FieldFormat sont stockées dans les cellules Fields.UICat[i], Fields.UICod[i] et Fields.UIFmt[i] de la section Champs de texte de la forme. (Ces cellules n’apparaissent pas dans la fenêtre ShapeSheet). Dans visFieldCodes, les constantes de codes de champs sont définies dans la bibliothèque de types Visio.

Outre le texte affiché dans la forme, d’autres parties d’une forme peuvent contenir du texte :

• Une forme peut contenir du texte dans les cellules définies par l’utilisateur ou des propriétés personnalisées. Pour accéder à ce texte, utilisez la propriété Formula de l’objet Cell contenant le texte.

• Une forme peut contenir du texte dans ses champs Données1, Données2 et Données3 ; ils apparaissent dans la boîte de dialogue Spécial de Visio correspondant à cette forme. Pour accéder à ce texte, utilisez les propriétés Data1, Data2 et Data3 de l’objet Shape.

Identification et application des styles aux formesUn objet Shape comporte des propriétés qui identifient les styles de texte, de trait et de remplissage appliqués à cette forme :

• FillStyle identifie le style de remplissage de la forme.

• LineStyle identifie le style de trait de la forme.

• TextStyle identifie le style de texte de la forme.

Page 348: MS Visio 2003 Guide du Développeur

334 C H A P I T R E 1 6

Vous pouvez récupérer ces propriétés pour déterminer un style de texte, de trait ou de remplissage d’une forme, ou paramétrer ces propriétés pour appliquer des styles à la forme. L’exemple suivant dessine un rectangle et applique deux styles :

Vous pouvez aussi paramétrer la propriété Style pour appliquer à une forme un style comportant plusieurs attributs. Si vous récupérez la propriété Style d’une forme, elle renvoie le style de remplissage de cette forme, car une propriété ne peut pas renvoyer plusieurs objets.

Conservation du formatage localLe programme ou l’utilisateur peut appliquer à une forme des attributs de formatage spécifiques qui s’ajoutent aux styles de texte, de trait ou de remplissage. Ce type de formatage est appelé formatage local. Si vous appliquez ultérieurement un style à cette forme, ce style remplace le formatage local sauf si vous faites en sorte de le conserver.

Pour conserver le formatage local lors de l’application d’un style à partir d’un programme, utilisez l’une des propriétés suivantes à la place de FillStyle, LineStyle ou de TextStyle :

• FillStyleKeepFmt

• LineStyleKeepFmt

• TextStyleKeepFmt

• StyleKeepFmt

Ces propriétés reviennent à cocher la case Conserver le formatage local de la boîte de dialogue Style.

������4�4�����

��������P����!����"����

��������P����!����"����

��������P� �����������

��������P� �����P"��O&���������8,�B,�F,�0�

����P")�����4��� �#!�����0'�)���F#

����P"������4��� �#!�����*'�)���0#

�1����

Page 349: MS Visio 2003 Guide du Développeur

U T I L I S A T I O N D E S O B J E T S V I S I O D O C U M E N T , P A G E E T S H A P E 335

Création de groupes à partir d’un programmeUn groupe est une forme composée d’autres formes. Pour créer un groupe à partir d’un programme, utilisez la méthode Group de l’objet Window ou un objet Selection. L’instruction suivante crée un groupe à partir des formes sélectionnées dans la fenêtre de dessin :

La méthode Group crée un groupe àpartir de formes sélectionnées.

Pour ajouter une forme à un groupe, utilisez la méthode Drop de l’objet Shape qui représente le groupe, et faites référence à la forme à ajouter et à sa position dans le groupe. Par exemple :

Utilisez la méthode Drop d’ungroupe pour ajouter une forme au

groupe.

A 0,0B 0,375; 0,125C grpObjD shpObjE grpObj après grpObj.Drop

O����P";��

���P"�������P,�',F=8<�',*08

Page 350: MS Visio 2003 Guide du Développeur

336 C H A P I T R E 1 6

Les coordonnées 0,375; 0,125 sont exprimées en coordonnées locales du groupe. Si la forme déplacée est un objet Master, le point placé par rapport à ces coordonnées est l’axe de la forme de base. Si la forme déplacée est un objet Shape, ce point est le centre du rectangle de sélection de la forme.

Vous pouvez contrôler le comportement d’un groupe en paramétrant des formules dans la section Propriétés de groupe de la forme. Pour plus d’informations sur l’utilisation des formules, reportez-vous au chapitre 17, « Automatisation des formules ».

Création de formes de base Pour créer des formes de base à partir d’un programme, vous insérez une forme provenant d’une page de dessin dans un document (souvent un gabarit), comme vous le faites lors de la création d’une forme de base avec la souris. Attribuez une référence à l’objet Shape à convertir en forme de base à l’aide de la méthode Drop du document. Avant de pouvoir insérer un objet Shape dans un gabarit, vous devez ouvrir le gabarit sous sa forme originale plutôt qu’en lecture seule, comme c’est généralement le cas lorsqu’un gabarit est ouvert par un fichier de modèle (.vst). Pour ouvrir un gabarit sous sa forme originale, utilisez la méthode Open, par exemple :

Une forme de base est souvent constituée de plusieurs composants qui, pour de meilleures performances, doivent être groupés. Vous n’êtes pas tenu de grouper les composants d’une forme de base dans un gabarit. Notez cependant que si vous ne les groupez pas, le moteur Visio groupe automatiquement les formes lorsque l’utilisateur insère la forme de base dans un dessin. Cette opération augmente le temps de création d’une occurrence de la forme de base.

REMARQUE : outre les objets Shape et Master, la méthode Drop accepte les objets Selection, ou tout objet qui fournit une interface IDataObject. Pour plus d’informations sur la méthode Drop, reportez-vous à l’aide en ligne Référence du développeur fournie avec Visio.

���������P����!����"��������

��������P����!����"����

���������P� ����������"����#)�����1������"���#�

�����P"�������P,�',�'

Page 351: MS Visio 2003 Guide du Développeur

U T I L I S A T I O N D E S O B J E T S V I S I O D O C U M E N T , P A G E E T S H A P E 337

Exemple de création d’un dessin simple

Voici un programme qui démontre comment vous pouvez utiliser le modèle d’objet à l’aide des objets Document, Page et Shape pour créer un dessin. Cet exemple crée des objets Visio ; il ne fait pas référence à des objets Visio existants. Ce programme est constitué des étapes suivantes :

1 Récupération de la première page de la collection Pages du document associé au projet Microsoft Visual Basic pour Applications (VBA).

2 Ajout du gabarit Formes de base.vss à la collection Documents.

3 Insertion dans la page de dessin d’une occurrence de la forme de base Rectangle depuis le gabarit.

4 Choix de « Bonjour à tous ! » comme texte de la forme rectangle sur la page de dessin.

5 Enregistrement du document.

����?�������1���

X!����������P���W���������1�������������"

���������P����!����"�������� X����������������J���������������+���

X1������

����������P����!����"E���� X)����1�������W�1A���

���������P����!����"����� X�����������������1��1�������

��������P����!����"���� X�����1��������

��������P����!����"���� X���������1�����+����1������

X���������

X����������U������1��1��������������A�����������!3�"

X%����������1�������������P�����������,�1�����Y��1����1������

X����������������������*"

���������P� �$�����������"�����

��������P� ������P"�����*�

X��������������1�������������������������������1A+�������

X+����1������"

���������P� ����������"�11�#)�����1������"���#�

����������P� ������P"E������#&��������#�

X�A��������������������������1Y�����������+�����%�������"

��������P� �����P"���������P,�B"08,�8"8�

X�A+�������������1����������"

����P"$���� �#3��P���W����� 9#

X �����������1�����"�����������������������������,

X���������������������J������1���������������A"

$�����������"�������#���P��"��1#

E��3���#���1���������������A 9#,�,�#3��P���W����� 9#

�1����

Page 352: MS Visio 2003 Guide du Développeur

338 C H A P I T R E 1 6

Le dessin créé par ce programme apparaît de la manière suivante.

Dessin créé par le programmeBonjour à tous !

Ce programme utilise les types d’objet Visio comme Visio.Document, Visio.Master, Visio.Pages, Visio.Page et Visio.Shape définis dans la bibliothèque de types Visio. L’utilisation de types d’objet Visio à la place du type de variable générale Object augmente la vitesse d’exécution du programme.

Ce programme utilise les variables d’objet pour conserver les références aux objets Visio. Chaque instruction Set attribue une référence d’objet à une variable d’objet, en commençant par l’objet ThisDocument. Remarquez la progression depuis l’objet ThisDocument vers la collection Pages, puis vers l’objet Page.

Set pagsObj = ThisDocument.Pages utilise l’objet ThisDocument, qui est équivalent à l’objet Document spécifique associé à un projet VBA. Pour faire référence à l’objet Document du fichier associé à votre projet VBA, vous n’avez pas à le récupérer depuis la collection Documents ; il suffit de faire référence à l’objet ThisDocument.

Set stnObj = Documents.Add("Formes de base.vss") ne fait pas référence à un objet supérieur du modèle d’objet Visio précédant Documents. Documents est une propriété de l’objet global Visio. Cet objet Visio comporte des propriétés et des méthodes auxquelles vous pouvez faire référence sans indiquer d’objet. Pour plus d’informations sur l’objet global Visio, reportez-vous au chapitre 15, « Programmation dans Visio avec Microsoft VBA ».

Set shpObj = pagObj.Drop(mastObj, 4,25; 5,5) utilise la méthode Drop pour insérer une forme de base sur la page représentée par la variable pagObj. Bien qu’il soit possible de créer des formes de toutes pièces dans un programme, une technique beaucoup plus facile consiste à déplacer une forme de base. L’argument mastObj spécifie la forme de base à déplacer ; 4,25; 5,5 sont les coordonnées sur la page de l’emplacement de l’axe de la nouvelle forme (son centre de rotation). Ces coordonnées sont mesurées à partir de l’angle inférieur gauche de la page de dessin dans des unités de dessin exprimées en pouces. La méthode Drop renvoie une référence à l’objet Shape, c’est-à-dire au nouveau rectangle, qui est attribué à la variable shpObj.

Page 353: MS Visio 2003 Guide du Développeur

U T I L I S A T I O N D E S O B J E T S V I S I O D O C U M E N T , P A G E E T S H A P E 339

shpObj.Text = "Bonjour à tous !" attribue la chaîne "Bonjour à tous !" à la propriété Text de l’objet Shape ; cette chaîne est alors affichée dans le rectangle. Cela revient à sélectionner une forme avec l’outil Pointeur dans une fenêtre de dessin Visio et à saisir Bonjour à tous !.

ThisDocument.SaveAs "bonjour.vsd" utilise la méthode SaveAs pour enregistrer l’objet ThisDocument dans le fichier nommé Bonjour.vsd. Comme aucun chemin de dossier n’est spécifié, le document est enregistré dans le dossier de travail (en général, le dossier qui contient le programme). L’instruction MsgBox indique simplement que le dessin est terminé. Lorsque vous cliquez sur OK dans la zone de message, vous mettez fin au programme.

Pour plus d’informations sur tout objet, propriété, méthode ou événement Visio, reportez-vous à l’aide en ligne Référence du développeur (choisissez ? (Aide) > Référence du développeur) fournie avec Visio. Pour rechercher des informations sur la programmation VBA, reportez-vous à l’aide en ligne Microsoft Visual Basic, accessible à partir du menu d’aide de l’Editeur Visual Basic.

Page 354: MS Visio 2003 Guide du Développeur
Page 355: MS Visio 2003 Guide du Développeur

Sommaire

17Automatisation des formules

Outre les propriétés que le modèle d’objet Microsoft® Visio® met à disposition, vous pouvez contrôler les objets Shape, Style, Page, Master et Document à l’aide des formules contenues dans les objets Cell. Comme vous pouvez visualiser, saisir et modifier des formules dans les cellules d’une fenêtre ShapeSheet®, vous pouvez récupérer et paramétrer des formules contenues dans les objets Cell qui appartiennent à une forme. Il est donc essentiel pour un développeur Automation de comprendre les fonctionnalités dont le moteur Visio dispose avec sa technologie SmartShapes®. Tout ce qu’une formule peut effectuer dans une fenêtre ShapeSheet peut être effectué dans votre programme.

Vous pouvez apporter des modifications importantes à une forme à l’aide de l’ensemble des sections et des lignes de ses formules. Par exemple, vous pouvez ajouter des sections Géométrie, supprimer des sommets ou modifier le type de ligne des segments en convertissant des lignes en arcs ou des arcs en lignes.

IMPORTANT : pour obtenir la liste complète des sections, des noms des références de cellule et des constantes d’indice de section, de ligne et de cellule, reportez-vous à l’Annexe B, « Indices de section, de ligne et de cellule ShapeSheet ». Vous pouvez aussi obtenir la liste des constantes d’indice et leurs valeurs en recherchant VisSectionIndices, VisRowIndices et VisCellIndices dans la bibliothèque de types Visio.

Ce chapitre présente l’automatisation des formules des objets Cell appartenant aux objets Shape, Style, Page, Master et Document. Il traite également de l’utilisation des sections et des lignes à partir de votre programme. Pour plus d’informations sur l’utilisation des formules Visio, reportez-vous au chapitre 4, « Formules Visio »��

Utilisation des formules dans les cellules............................................................ 342

Utilisation des sections et des lignes ................................................................... 349

Utilisation de données héritées ............................................................................ 356

Page 356: MS Visio 2003 Guide du Développeur

342 C H A P I T R E 1 7

Utilisation des formules dans les cellules

Dans le modèle d’objet Visio, un objet Shape comporte plusieurs cellules ; chaque cellule contient une formule dont la valeur détermine un aspect de l’affichage ou du comportement d’un objet.

Objet Cell et objets supérieursassociés dans le modèle d’objet

Visio

Supposons que vous souhaitiez modifier la largeur d’un objet Shape de votre programme. Dans le modèle d’objet Visio, un objet Shape n’indique pas de propriété de largeur. Vous pouvez cependant modifier la largeur de la forme en récupérant une référence à la cellule de la forme qui définit la largeur de la forme. Lorsque vous disposez d’une référence à l’objet Cell qui définit la largeur de la forme, vous pouvez récupérer ou paramétrer ses formules. Ainsi, toutes les fonctionnalités à votre disposition dans la fenêtre ShapeSheet® d’un objet sont aussi à votre disposition par l’intermédiaire de l’automatisation.

• Pour utiliser les formules d’un objet Shape ou Style, utilisez la propriété Cells ou CellSRC de l’objet pour récupérer un objet Cell donné.

• Pour utiliser les formules d’une page (Page) ou d’une forme de base (Master), utilisez la propriété PageSheet de l’objet, qui renvoie un objet Shape. Vous pouvez ensuite utiliser la propriété Cells ou CellSRC de cet objet Shape.

• Pour utiliser les formules d’un objet Document, utilisez la propriété DocumentSheet de l’objet, qui renvoie un objet Shape. Vous pouvez ensuite utiliser la propriété Cells ou CellSRC de cet objet Shape.

Récupération d’un objet CellVous pouvez récupérer un objet Cell dans une collection soit par son nom, soit par son indice de section, de ligne et de cellule. Après avoir récupéré un objet Cell, vous pouvez utiliser ses méthodes et ses propriétés pour récupérer ou paramétrer la formule de la cellule ou sa valeur.

Récupération d’un objet par son nomPour récupérer un objet Cell, utilisez la propriété Cells d’un objet Shape et spécifiez le nom de la cellule. Avec la propriété Cells, vous pouvez utiliser toute référence de cellule valide.

Document

DocumentsMasterMasters

Page

Pages

ShapeShapes

SectionSection

SectionRow

RowLigne

CellCell

Cellule

Documents Masters

Pages

Shapes

Page 357: MS Visio 2003 Guide du Développeur

A U T O M A T I S A T I O N D E S F O R M U L E S 343

Par exemple, pour récupérer la cellule AxeX d’une forme :

Pour récupérer la coordonnée y du quatrième point de connexion de la forme :

Dans ces exemples, nous récupérons par leurs noms des objets Cell à partir d’une collection. Remarquez que ces noms de cellule sont identiques à ceux qui figurent dans la fenêtre ShapeSheet de la forme.

Récupération d’un objet Cell par son indice de section, de ligne et de celluleVous pouvez utiliser la propriété CellsSRC pour récupérer toute cellule par son indice de section, de ligne et de cellule.

Par exemple, pour récupérer la cellule Police dans la première ligne de la section Caractères d’une forme :

Si une section contient plusieurs lignes et que vous souhaitiez faire référence à une cellule qui n’est pas sur la première ligne, ajoutez un décalage de valeur entière à la constante de ligne pour cette section. Bien que vous puissiez utiliser une constante de ligne sans décalage pour récupérer la première ligne d’une section, il est préférable en pratique d’utiliser la constante de ligne comme base et de lui ajouter un décalage de valeur entière, en commençant par 0 pour la première ligne. Par exemple :

La position d’une section ou d’une ligne peut changer en fonction des opérations effectuées sur les autres sections et lignes. Par exemple, si une section Montage contient trois lignes et que vous supprimiez la deuxième ligne, la troisième ligne est déplacée pour devenir la deuxième ligne. En conséquence, visRowScratch + 2 n’est plus une référence valide car la section n’a plus de troisième ligne.

Vous pouvez aussi utiliser des indices de section et de ligne pour ajouter ou supprimer des sections ou des lignes d’une forme ou pour effectuer une itération dans les lignes d’une section.

������7������P� �����P"������#���7#��

�������:������P� �����P"������#�����������":B#��

����+���������P� �����P"������&��������������������,�.

���&�O��������-�',�����������)����

���&�O�������-�' X����U��������1�������������E������

���&�O�������-�* X�����U���������1�������������E������

���&�O�������-�0 X$����U���������1�������������E������

Page 358: MS Visio 2003 Guide du Développeur

344 C H A P I T R E 1 7

REMARQUE : dans la version 5.0 de Visio, les cellules Géométrien.NoFill et Géométrien.AucunAff apparaissaient dans une fenêtre ShapeSheet dans les troisième et quatrième cellules de la ligne Départ d’une section Géométrie, et étaient nommées Géométrien.A1 et Géométrien.B1 (Géométrien.X0 et Géométrien.Y0, respectivement, dans les versions antérieures à Visio 5.0). Vous pouvez faire référence à ces cellules avec l’un de ces noms.

Récupération d’une cellule définie par l’utilisateur ou de propriétés personnaliséesCertaines formes peuvent avoir des cellules nommées par l’utilisateur ou par le développeur de formes. Les cellules personnalisées sont définies dans la section Cellules personnalisées de la forme ; les cellules de propriétés personnalisées sont définies dans la section Propriétés personnalisées de la forme. Chaque ligne de la section Cellules personnalisées ou Propriétés personnalisées comporte une cellule Valeur qui contient la valeur de la cellule ou de la propriété définie par l’utilisateur, et une cellule Message pouvant contenir une chaîne. Une ligne de propriété personnalisée comporte des cellules supplémentaires qui contrôlent le mode d’utilisation de la propriété personnalisée.

La cellule Valeur constitue la cellule par défaut d’une ligne définie par l’utilisateur ou de propriété personnalisée, vous pouvez donc récupérer la cellule Valeur en spécifiant simplement la section et le nom de la ligne. Par exemple, pour récupérer la cellule Valeur d’une cellule définie par l’utilisateur nommée Point de fuite :

Pour récupérer toute autre cellule dans une cellule définie par l’utilisateur ou dans une ligne de propriété personnalisée, vous devez inclure le nom de la cellule souhaitée. Par exemple, pour récupérer la cellule Message d’une propriété personnalisée nommée Numéro de série :

Pour plus d’informations sur la définition des propriétés personnalisées dans une fenêtre ShapeSheet, reportez-vous à la section « Propriétés personnalisées » page 146.�

���������P� �����P"������#%���"������1��+����#�

���������P� �����P"������#��"2��A��1���A��"E������#�

Page 359: MS Visio 2003 Guide du Développeur

A U T O M A T I S A T I O N D E S F O R M U L E S 345

Modification des formules de cellule à l’aide de la propriété FormulaPour modifier une formule de cellule, paramétrez la propriété Formula d’un objet Cell sur une chaîne correspondant à une formule valide pour cette cellule. Par exemple, pour paramétrer la formule de la cellule AxeLocX d’une forme sur = 2 * Largeur :

Si vous omettez le signe égal d’une chaîne de formule, le moteur Visio l’ajoute automatiquement à la formule.

Si la chaîne de formule contient des guillemets, par exemple, si des pouces sont spécifiés sous la forme de guillemets (") plutôt que par pouces ou po., utilisez deux caractères de guillemets ("") pour transmettre un guillemet dans le moteur Visio. Pour saisir une formule dans la cellule Message d’une ligne de propriété personnalisée, utilisez l’instruction suivante :

Récupération du résultat d’une formuleChaque cellule possède une formule, et chaque formule permet de calculer un résultat. En choisissant Formules ou Valeurs dans le menu Affichage, vous pouvez afficher le résultat dans la fenêtre ShapeSheet. Si vous affichez des formules, une cellule peut afficher Largeur * 0,5. Si vous visualisez des valeurs, et si la largeur est de 5,0 po (5 pouces), la même cellule affiche 2,5 po (2,5 pouces).

Pour récupérer le résultat d’une formule :

• Result renvoie le résultat d’une formule sous la forme d’un nombre à virgule flottante dans les unités que vous spécifiez.

• ResultIU renvoie le résultat sous la forme d’un nombre à virgule flottante dans les unités internes Visio : pouces, radians ou jours écoulés.

• ResultInt renvoie le résultat sous la forme d’un nombre entier dans les unités que vous spécifiez.

• ResultStr renvoie le résultat sous la forme d’une chaîne dans les unités que vous spécifiez.

• GetResults renvoie les résultats de plusieurs cellules dans les unités que vous spécifiez.

���������P� �����P"������#������7#�

�����P")������ �#0�@������#

����P"������#�"�����.*"�������#�")������ �### ���I�������A�A###

Page 360: MS Visio 2003 Guide du Développeur

346 C H A P I T R E 1 7

Par exemple, les formules qui déterminent les coordonnées locales du centre de rotation d’une forme sont stockées dans ses cellules AxeLocX et AxeLocY. Les formulations suivantes obtiennent le résultat de la formule dans la cellule AxeLocX :

Les propriétés Result et ResultIU renvoient un nombre à virgule flottante. Lors de la récupération des résultats de certaines formules de formes, surtout celles qui déterminent les dimensions ou les sommets d’une forme, vous voudrez probablement préserver ce niveau de précision. Pour ce faire, attribuez des résultats aux variables Variant ou Double. Cela réduit la possibilité d’arrondissement des erreurs et maintient le même niveau de précision si vous utilisez des nombres pour recréer des formes dans d’autres dessins Visio.

Vous pouvez spécifier des unités en utilisant toute chaîne acceptable par le moteur Visio. Pour spécifier les unités internes Visio (pouces ou radians), spécifiez une chaîne Null ("") pour les unités ou utilisez la propriété ResultIU au lieu de Result.

Comme alternative à la spécification d’unités sous forme de chaîne, utilisez les constantes d’unité définies dans la bibliothèque de types Visio. Par exemple, vous pouvez spécifier des centimètres en utilisant la constante visCentimeters.

Utilisez visPageUnits pour spécifier les unités définies pour la page ou visDrawingUnits pour spécifier les unités définies pour le dessin.

Comme toute autre propriété de résultat, ResultStr prend l’argument des unités et vous permet ainsi d’effectuer des conversions entre toutes les unités. Vous pouvez utiliser ResultStr surtout pour accéder aux formules des cellules qui contiennent des chaînes, comme la cellule Message dans une ligne de propriété personnalisée, ou pour récupérer une chaîne destinée à servir de commande dans l’interface utilisateur.

Remplacement d’une formule par un résultatSi vous le souhaitez, vous pouvez remplacer une formule par son résultat exprimé sous la forme d’une constante, soit pour améliorer la performance d’une forme, soit parce que vous n’avez plus besoin de conserver ses formules. Le moteur Visio calcule des formules chaque fois qu’une modification apportée à une forme a une incidence sur ses formules. La fréquence des calculs peut avoir un effet notable sur les performances. Pour remplacer une formule par son résultat, utilisez la propriété Result de la cellule afin de paramétrer sa formule. Cela revient à paramétrer la propriété Formula de la cellule : il s’agit d’un raccourci permettant de calculer la formule et de la remplacer par la constante équivalente sous la forme d’une nouvelle formule de cellule.

���������P� �����P"������#������7#�

����������7� ������P"&������#�����#�

����������7� ������P"&��������������������

Page 361: MS Visio 2003 Guide du Développeur

A U T O M A T I S A T I O N D E S F O R M U L E S 347

Supposons, par exemple, que la formule AxeLocX d’une forme est = 3 pouces + 1 pied/2 ; son résultat est donc égal à 9 pouces. Pour remplacer cette formule par son résultat, utilisez la formulation suivante :

Une fois que cette formulation est exécutée, la formule de la cellule AxeLocX est = 9 sin.

Vous pouvez aussi améliorer les performances en réduisant le nombre d’interdépendances dans vos formules. Pour plus d’informations sur la conception des formules, reportez-vous à la section « Contrôle du recalcul des formules » page 84.

Remplacement de formules protégéesL’application Visio comporte une fonction PROTECTION qui protège des modifications la formule d’une cellule. Si la formule d’une cellule est protégée avec PROTECTION, tenter de paramétrer la formule avec la propriété Formula, Result ou ResultIU provoque une erreur. Vous pouvez, en revanche, modifier la formule de la cellule comme suit :

• Utilisez ResultForce ou ResultIUForce à la place de Result ou de ResultIU.

• Utilisez FormulaForce à la place de Formula.

Soyez vigilants lors du remplacement de formules protégées. Souvent, un développeur de formes protège les formules d’une forme de base afin de préserver son comportement intelligent des modifications accidentelles par un utilisateur. Si vous remplacez ces formules, la forme peut ne plus avoir son comportement d’origine.

���������7"&������#�����#�� ����������7"&������#�����#�

Page 362: MS Visio 2003 Guide du Développeur

348 C H A P I T R E 1 7

Exemple d’utilisation de formules pour déplacer des formesCet exemple de programme déplace les formes sélectionnées dans la fenêtre active en paramétrant des formules pour l’axe d’une forme en deux dimensions (2D) ou pour les points de départ ou de fin d’une forme en une dimension (1D). Le programme utilise un formulaire utilisateur avec quatre boutons qui appellent la sous-routine Nudge avec les paramètres affichés.

����2�1����1�����������,�14�����������

X!�������������������� <

X�A�����',�5*������1��1Y��������A

X�A�����5*,�'�A�����1Y��������A��������������

X�A�����*,�'�A�����1Y��������A��������1����

X�A�����',�*&�������1Y��������A

��� ��;�$�����

���������P����!����"���������

��������P����!����"����

������������������

���������������

X �������Y����A�1�����������������

����� �*�

���������P� ����������1�O"���������

X�������A��������������1������Y4�������W�+���"

X�����,�1A��������J�����P���1������A��������W�������1Y��������A Z

)���� �*�$�������P"�����

��������P� ������P���

�����"�����#2�1���#�<�����P"2���<�#��#<�����P"2�����<�#�#

�+��2�������P"������$���

����P"������#���7#�"&������%� ��1��@�������-�����P"������#���7#�"&������%

����P"������#���:#�"&������%� ��14�@�������-�����P"������#���:#�"&������%

���

����P"������#�A��7#�"&������%� ��1��@�������-�.�

����P"������#�A��7#�"&������%

����P"������#�A��:#�"&������%� ��14�@�������-�.�

����P"������#�A��:#�"&������%

����P"������#)��7#�"&������%� ��1��@�������-�����P"������#)��7#�"&������%

����P"������#)��:#�"&������%� ��14�@�������-�����P"������#)��:#�"&������%

�1�+

2�����

�������

��� Z

�1����

Page 363: MS Visio 2003 Guide du Développeur

A U T O M A T I S A T I O N D E S F O R M U L E S 349

Utilisation des sections et des lignes

Vous pouvez modifier certaines caractéristiques d’une forme, d’un style, d’une page, d’une forme de base ou d’un document en ajoutant et en supprimant des sections et des lignes. Vous pouvez aussi effectuer une itération dans les sections ou dans les lignes pour effectuer la même opération sur chaque élément, comme l’énumération de toutes les formules de géométrie d’une forme.

Ajout de sections et de lignesEn général, vous souhaiterez ajouter une section complète à une forme. Par exemple, vous pouvez ajouter une section Géométrie pour créer une forme avec plusieurs chemins ou une section Montage qui serve de zone de travail pour la création de formules complexes. Avant de pouvoir utiliser une nouvelle section, vous devez y ajouter au moins une ligne. En fonction du type de ligne que vous ajoutez, vous pouvez aussi avoir besoin de paramétrer les formules des cellules dans la ligne.

Pour ajouter une section, utilisez la méthode AddSection d’un objet Shape. Par exemple, pour ajouter une section Montage à une forme :

Pour ajouter une ligne à une section, utilisez la méthode AddRow et spécifiez la section, la ligne et l’étiquette de ligne. Lorsque vous ajoutez une ligne à une section Géométrie, l’étiquette de ligne indique le type de ligne à ajouter ; par exemple, visTagLineTo indique une ligne TraitVers. L’argument de l’étiquette de ligne est tout d’abord utilisé pour ajouter des lignes à la section Géométrie. Pour la plupart des autres sections, utilisez une étiquette de ligne de 0 comme emplacement. Par exemple, pour ajouter une ligne à une section Montage :

����P"�11������������������������

����P"�11&�O�����������������,����&�O�������-�',�'

Page 364: MS Visio 2003 Guide du Développeur

350 C H A P I T R E 1 7

Les constantes des étiquettes de ligne sont définies dans la bibliothèque de types Visio dans la zone VisRowTags. Le tableau suivant répertorie les étiquettes de ligne et la ligne qu’elles représentent dans la section Géométrie d’une fenêtre ShapeSheet®.

Une forme peut disposer d’une seule section par type, sauf pour Géométrie. Si une forme dispose déjà d’une section particulière et si vous tentez d’en ajouter une autre, vous obtenez une erreur. Vous pouvez utiliser la propriété SectionExists pour savoir si elle dispose d’une section, et l’ajouter ensuite si besoin est.

REMARQUE : vous ne pouvez pas ajouter ni supprimer des lignes de visSectionCharacter, visSectionParagraph, visSectionTextField ou visSectionTab.

Etiquette de ligne Ligne de géométrie

visTagComponent Affichage des propriétés

visTagMoveTo Ligne DéplacerVers (cellules X et Y dans une ligne Départ)

visTagLineTo Ligne TraitVers

visTagArcTo Ligne ArcVers

visTagEllipticalArcTo Ligne ArcElliptiqueVers

visTagSplineBeg Ligne DébutSpline

visTagSplineSpan Ligne NoeudSpline

visTagEllipse Ligne Ellipse

visTagInfiniteLine Ligne LigneInfinie

visTagPolylineTo Ligne PolyligneVers

visTagNURBSTo Ligne NURBSVers

Page 365: MS Visio 2003 Guide du Développeur

A U T O M A T I S A T I O N D E S F O R M U L E S 351

Exemple d’ajout d’une section Géométrie à une formeDans un dessin Visio, une forme de base est constituée de zéro, un ou plusieurs composants, ou chemins. Chaque chemin est une séquence de segments reliés. Dans la plupart des formes, un segment est soit un segment de ligne, soit un segment d’arc, qui peut être un arc d’ellipse. Chaque chemin est représenté par une section Géométrie et chaque segment par une ligne de cette section.

Pour ajouter une section Géométrie à une forme, utilisez la méthode AddSection avec visSectionFirstComponent pour l’insérer avant les sections Géométrie existantes ou visSectionLastComponent pour l’ajouter après ces mêmes sections. Par exemple, pour ajouter une section Géométrie après les sections Géométrie existantes :

Après avoir ajouté une section Géométrie, vous devez ajouter au moins deux lignes (les lignes ne s’ajoutent pas automatiquement à une section ajoutée à partir d’un programme). Utilisez la méthode AddRow avec les étiquettes de ligne suivantes :

• visTagComponent détermine les propriétés d’affichage du composant défini par la section Géométrie. Il doit s’agir de la première ligne de chaque section Géométrie.

• visTagMoveTo, visTagEllipse ou visTagInfiniteLine déterminent le premier sommet, c’est-à-dire le point de départ du composant. Il doit s’agir de la seconde ligne de chaque section Géométrie. La ligne visTagEllipse ou visTagInfiniteLine est la ligne finale car les ellipses et les lignes infinies sont représentées par des sections d’une seule ligne.

Les étiquettes de ligne visTagLineTo, visTagArcTo, visTagEllipticalArcTo, visTagMoveTo, visTagPolylineTo ou visTagNURBSTo vous permettent d’ajouter des lignes de sommet supplémentaires. Chaque ligne de sommet définit les coordonnées locales d’un sommet et le type de segment qui relie ce sommet au précédent.

Avec les étiquettes de ligne visTagSplineBeg et visTagSplineSpan, vous pouvez ajouter des lignes de spline. Faites précéder la ligne de départ de la spline (visTagSplineBeg) d’une ligne de départ (visTagMoveTo) ou d’une ligne de sommet et utilisez visTagSplineSpan pour ajouter des lignes de noeuds de spline.

����P"�11������������������������������

Page 366: MS Visio 2003 Guide du Développeur

352 C H A P I T R E 1 7

La procédure suivante insère une section Géométrie avant les sections Géométrie existantes d’une forme. Elle ajoute la ligne de composant, la ligne DéplacerVers et quatre lignes TraitVers (il s’agit des lignes généralement utilisées pour définir une ligne droite). Elle paramètre ensuite les formules des cellules dans chaque ligne pour que la ligne soit tracée diagonalement dans le plan largeur-hauteur de la forme.

L’illustration suivante montre la forme avant et après l’insertion de la section Géométrie.

Insertion d’une section Géométriedans une forme

�����P���;A��A������

��������P����!����"����

����������������������

���������������

XE�������������1Y���#������������1Y���#�����������Y��������������+�����Y�����A��������A�

��� ��;�$���2���

��������P� ����������1�O"����������*�

��� ��;�$��'

��������� �����P"�11������������������)������������

����P"�11&�O���������,����&�O)����-�',����$����������

����P"�11&�O���������,����&�O!�����-�',����$��E���$�

)���� �*�$��B�

����P"�11&�O���������,����&�O!�����-��,����$������$�

2�����

����P"������&����������,����&�O!�����-�',����7�")������ �#������@�'"08#

����P"������&����������,����&�O!�����-�',����:�")������ �#?������@�'"8#

����P"������&����������,����&�O!�����-�*,����7�")������ �#������@�'"8#

����P"������&����������,����&�O!�����-�*,����:�")������ �#?������@�'"08#

����P"������&����������,����&�O!�����-�0,����7�")������ �#������@�'"=8#

����P"������&����������,����&�O!�����-�0,����:�")������ �#?������@�'"8#

����P"������&����������,����&�O!�����-�F,����7�")������ �#������@�'"8#

����P"������&����������,����&�O!�����-�F,����:�")������ �#?������@�'"=8#

����P"������&����������,����&�O!�����-�B,����7�")������ �#;A��A���*"7*#

����P"������&����������,����&�O!�����-�B,����:�")������ �#;A��A���*":*#

X`�����������A1�������������1�������������������1Y���

�������

�2���Z

E��3���#�A���������I�����+����������������I"#,����a���4,��!�.$�$�

�1����

Page 367: MS Visio 2003 Guide du Développeur

A U T O M A T I S A T I O N D E S F O R M U L E S 353

Remarquez que visRowVertex sans décalage ou avec un décalage de 0 renvoie à la ligne DéplacerVers. Lors de l’ajout des lignes de sommet, ajoutez toujours un décalage d’une valeur au moins égale à 1 à visRowVertex de manière à ce que vous ne remplaciez pas par inadvertance la ligne DéplacerVers ; vous évitez ainsi tout comportement imprévisible de la forme. Pour créer un intervalle, vous pouvez insérer des lignes DéplacerVers supplémentaires dans la même section Géométrie. Pour plus d’informations sur l’utilisateur des formules de la section Géométrie, reportez-vous au chapter 5, « Contrôle de la géométrie des formes à l’aide de formules », ou recherchez « section Géométrie » dans l’aide en ligne fournie avec Visio.

Suppression de sections et de lignesLa suppression d’une section supprime automatiquement toutes ses lignes et ses cellules. Vous pouvez supprimer toutes les sections sauf visSectionObj ; vous pouvez néanmoins supprimer des lignes de cette section. Pour supprimer une section, utilisez la méthode DeleteSection d’un objet Shape. Par exemple, l’instruction suivante supprime la section Montage d’une forme :

La suppression d’une section qui n’existe pas n’entraîne pas d’erreur.

Vous pouvez aussi supprimer une ligne d’une section, sauf celles des sections visSectionParagraph, visSectionCharacter, visSectionTextField et visSectionTab. Par exemple, vous pouvez supprimer le sommet d’une forme en supprimant la ligne qui le définit dans la section Géométrie de la forme. L’instruction suivante supprime le dernier sommet d’un rectangle :

Suppression de la ligne d’unsommet

A Ce sommet est représenté par visRowVertex + 3.B Après la suppression de la ligne du sommet, la forme change d’aspect.

����P"������������������������������

����P"������&�O�����������)������������-�',����&�O!�����-�F

A

B

Page 368: MS Visio 2003 Guide du Développeur

354 C H A P I T R E 1 7

Modification du type d’un segmentVous pouvez définir un segment sous la forme d’une ligne, d’un arc d’ellipse, d’une courbe spline, d’une ellipse, d’une ligne infinie, d’une polyligne, d’une ligne DéplacerVers ou NURBS en paramétrant le type de la ou des lignes qui représentent le segment. A partir du programme, vous pouvez effectuer cette opération en paramétrant la propriété RowType de l’objet Shape.

Par exemple, l’instruction suivante convertit le premier segment d’une forme en un segment de ligne.

Modification du type de ligne pourune ligne de sommet

A Ce segment d’arc est représenté par visRowVertex + 1.B Une fois que le type de ligne est modifié, la forme change d’aspect.

����P"&�O$4������������)������������-�',�.

���&�O!�����-�*�� ����$������$�

A B

Page 369: MS Visio 2003 Guide du Développeur

A U T O M A T I S A T I O N D E S F O R M U L E S 355

Exemple d’itération dans une collection de sections et de lignesVous pouvez effectuer la même opération sur plusieurs sections ou plusieurs lignes à l’aide d’une itération, les propriétés de l’objet Shape permettant de limiter la boucle :

• GeometryCount représente le nombre de sections Géométrie d’une forme.

• RowCount représente le nombre de lignes d’une section.

• RowsCellCount représente le nombre de cellules d’une ligne.

L’exemple suivant effectue une itération dans les lignes et les cellules d’une section Géométrie d’une forme et utilise CellsSRC pour extraire chaque cellule. Il affiche ensuite chaque formule de cellule dans une zone de liste sur un formulaire utilisateur.

Pour obtenir la liste des constantes de positions logiques, reportez-vous à l’Annexe B, « Indices de section, de ligne et de cellule ShapeSheet ».

������A�����;A��A������

X�����������������J������������������������������+���

��������P����!����"���� X��P�������

������;����������������� X2��A��1����������������A1�

XW������������1���A��A���

������;���������1����������� X!�������1������������������������

X1���A��A���

�����&�O����������� X2�����1���������1���������������

�������������������� X2�����1�����������1��������������

������&�O���������� X2��A��1���������W�����1��'�

�������������������� X��1���1�������������������W�����1��'�

�������������������� X2�����1�����������1���A��A����1������

X+���

��������P� �����������"������*�

%��)��*"����3��*"����

������� �����P";�����4�����

)����;���������1�� �'�$���������5�*

��;�������� �����������)������������-���;���������1�

�&�O�� �����P"&�O��������;��������

)����&�O� �'�$����&�O��5�*�

������� �����P"&�O�������������;�������,���&�O�

)��������� �'�$����������5�*�

%��)��*"����3��*"�11�����.

����P"������&����;�������,���&�O,��������"�����2����L�.

#Z�#�L�����P"������&����;�������,���&�O,��������")�����

2����������

2������&�O

2������;���������1�

%��)��*"���O

�1����

Page 370: MS Visio 2003 Guide du Développeur

356 C H A P I T R E 1 7

Utilisation de données héritées

Il arrive qu’une forme n’ait pas de copie locale de toutes ses données figurant dans la fenêtre ShapeSheet® ou des données auxquelles vous accédez à partir du programme. La forme se comporte comme si les données étaient locales, mais certaines peuvent être héritées d’une forme de base ou d’un style.

Toutes les opérations que vous effectuez lors de l’addition, de la modification ou de la suppression des données se font localement. Si les données n’existent pas localement, en d’autres termes si la forme hérite des données d’une forme de base ou d’un style, le moteur Visio crée d’abord une copie locale des données, puis exécute l’action demandée. Une fois que les données existent localement, l’héritage de ces données est rompu et les modifications des données dans la forme de base n’ont pas d’incidence sur les données locales de la forme.

Par exemple, si une forme est une occurrence d’une forme de base qui comporte des points de connexion, la forme hérite des points de connexion de la forme de base. Les points de connexion de la forme ont le même comportement que ceux de la forme de base et sa section Points de connexion affichée dans la fenêtre ShapeSheet est héritée de la forme de base. En revanche, la forme ne possède pas de copie locale des données Points de connexion ; à la place, elle hérite des données de la forme de base. Si vous tentez de supprimer la section Points de connexion de cette forme, les données Points de connexion ne changent pas car il n’existe pas de copie locale à supprimer, et la forme continue à hériter des données Points de connexion de la forme de base.

Pour remplacer l’héritage d’une section tout entière, supprimez toutes les lignes de la section ou l’intégralité de la section et ajoutez une nouvelle section vierge du même type. Dans le dernier cas, supprimez la section pour vous assurer qu’aucune copie locale n’existe déjà car une erreur surviendrait si vous essayiez d’ajouter la section.

Pour rétablir une section héritée, supprimez la copie locale. La forme hérite alors à nouveau de cette section de la forme de base ou du style.

CONSEIL : lors des premières utilisations de Microsoft® Visio® 2000, les formes héritent des formules géométriques de la forme de base, ce qui permet d’obtenir des formes plus petites et plus rapides. Comme l’indiquent les informations ci-dessus, tous les remplacements locaux de ces formules géométriques font que la forme récupère une copie locale et augmente en taille. Pour cette raison, veillez à apporter les modifications importantes à la forme de base.

Page 371: MS Visio 2003 Guide du Développeur

Sommaire

18Création de dessinspar automatisation

Quel que soit le dessin réalisé, vous devez généralement suivre certaines étapes dans votre programme. Vous ajoutez des formes au dessin, en général en faisant glisser des formes de base d’un gabarit. Vous déterminez l’emplacement des formes et pouvez calculer leur position à l’aide de données externes.

Le présent chapitre décrit les techniques fondamentales entrant en jeu dans la création d’un dessin depuis un programme, notamment l’utilisation des formes, des pages d’arrière-plan et des calques. Si vos dessins comprennent des formes connectées, reportez-vous au chapitre 19, « Automatisation des connexions d’une solution Visio ». Pour plus d’informations sur l’association de données aux formes d’un dessin, reportez-vous au chapitre 20, « Intégration de données et d’une solution Visio ».�

Création automatisée de dessins à l’aide de formes de base ............................ 358

Choix de la position des formes sur un dessin.................................................... 361

Utilisation de formes sélectionnées ..................................................................... 363

Pages d’arrière-plan ............................................................................................... 367

Calques.................................................................................................................... 371

Page 372: MS Visio 2003 Guide du Développeur

358 C H A P I T R E 1 8

Création automatisée de dessins à l’aide de formes de base

Pour créer des formes depuis un programme, le plus simple est d’insérer des formes de base d’un gabarit dans la page de dessin. Une forme de base, directement utilisable dans un dessin, occasionne très peu de traitement dans votre programme. Vous pouvez utiliser les formes de base des gabarits que vous développez et diffusez avec votre programme, ou celles des gabarits accompagnant le programme Microsoft® Visio®.

Pour insérer une forme de base dans une page :

1 Créez un objet Document représentant le gabarit qui contient la forme de base à placer.

2 Créez un objet Master représentant cette forme de base.

3 Créez un objet Page représentant la page de dessin dans laquelle insérer la forme de base.

Récupération du gabaritVous pouvez récupérer une référence à tout gabarit ouvert en l’extrayant de la collection Documents de l’objet Application. Par exemple

L’exemple ci-dessus utilise une variable nommée stnObj plutôt que docObj pour distinguer les gabarits des autres types de fichier. Cette convention peut permettre d’éviter des erreurs ultérieures.

Comme dans toutes les opérations sur des fichiers, il est préférable de vérifier que le gabarit est disponible avant d’essayer de l’utiliser. L’instruction Set précédente renvoie une erreur si Formes de base.vss n’est pas ouvert. Pour vérifier ce point, procédez comme suit :

���������P� �����������#)�����1������"���b�

X������+�������Y������������,�����I5��

��� ��&������2���

X��������A+A�����1�����Y��P������������;������

���������P� �����������#)�����1������"���#�

�X�����������cA�������������,����+�����Y����

�+������P� �2�������$���

X��� ���Y���������������+�����

��� ��;��$��������������

���������P� ����������"��� ���#)�����1������"���#, ������&��

�1��+

Page 373: MS Visio 2003 Guide du Développeur

C R É A T I O N D E D E S S I N S P A R A U T O M A T I S A T I O N 359

Un gabarit est généralement enregistré en lecture seule pour éviter toute modification ; l’utilisateur peut néanmoins ouvrir l’original et modifier l’espace de travail, ou déplacer ou supprimer un fichier, ce qui pourrait influer sur le nombre de gabarits ouverts durant l’utilisation du modèle.

Récupération de la forme de baseUn objet Document comporte une propriété Masters qui renvoie une collection Masters regroupant les formes de base du gabarit du document. Vous pouvez faire référence à un objet Master par son nom ou par son indice dans la collection Masters. Par exemple :

Une erreur commune consiste à accéder à la collection Masters du fichier de dessin plutôt qu’à celle du fichier de gabarit. Tous les documents Visio possèdent un gabarit ; c’est pourquoi tous les objets Document ont une collection Masters. Cependant, la collection Masters d’un fichier de dessin contient seulement les formes de base déjà insérées dans le dessin ; ainsi, la collection Masters d’un nouveau document est généralement vide. Quoi qu’il en soit, cette collection Masters risque fort de ne pas contenir la forme de base qui vous intéresse. Si votre programme ne parvient pas à accéder à un objet Master, vérifiez que vous le recherchez bien dans le fichier de gabarit, et non dans le fichier de dessin.

Insertion de la forme de base dans la pagePour insérer une forme de base dans une page, vous devez tout d’abord récupérer l’objet Page représentant la page de dessin, puis appliquer la méthode Drop de cet objet. La méthode Drop équivaut à déposer une forme à l’aide de la souris. La méthode Drop reconnaît trois arguments : une référence à un objet et un couple de coordonnées indiquant où placer l’axe de l’objet sur la page de dessin si cet objet est une forme de base. Dans les autres cas, le couple de coordonnées indique le centre du plan largeur-hauteur de l’objet.

Les coordonnées sont mesurées depuis l’angle inférieur gauche de la page. Dans notre exemple, les valeurs 4,25 et 5,5 placent l’axe de la forme au centre d’une page de dessin de 8½ po. sur 11 po. dans un dessin sans échelle. (Dans un dessin à échelle, vous indiquez les coordonnées en unités de dessin exprimées en pouces. Par exemple, si l’échelle de dessin est de 1 pied = 1 pouce, vous indiqueriez les coordonnées 51, 66 pour placer la forme au centre de la page.) Pour plus d’informations sur les coordonnées des formes, reportez-vous au chapitre 2, « Création de formes Visio ».

����������P� ������P"E������# ������8#�

��������P� �$�����������"������*�

��������P� �����P"���������P,�B"08,�8"8�

Page 374: MS Visio 2003 Guide du Développeur

360 C H A P I T R E 1 8

L’axe de la forme est placé auxcoordonnées 4,25, 5,5 (A) indiquées

avec la méthode Drop.

s

Pour plus de simplicité, cet exemple place une forme au milieu de la page de dessin et utilise des constantes pour indiquer sa position. La détermination de la position des formes peut cependant être complexe, notamment dans un diagramme connecté avec de nombreuses formes. Une approche possible est présentée à la section « Choix de la position des formes sur un dessin », page 361.

Outre l’insertion de formes de base dans une page de dessin, la méthode Drop permet également d’effectuer les opérations suivantes :

• Création d’une forme à partir d’une forme existante.

• Ajout d’une forme à un groupe.

• Création d’une forme de base à la volée par insertion d’une forme dans un gabarit (le fichier de gabarit doit être ouvert avec l’option Original, et non Lecture seule).

• Modification d’une forme de base par insertion d’un objet dans une forme de base ouverte.

Pour insérer plusieurs formes, appliquez la méthode DropMany, qui équivaut à déposer plusieurs formes à l’aide de la souris.

REMARQUE : lorsqu’un programme dessine ou insère une forme dans un dessin à l’échelle, il doit convertir les coordonnées des mesures du dessin en pouces. Par exemple, l’instruction suivante trace un rectangle de 3 pieds, 4 à 5 pieds, et 6 pieds sur un dessin mis à l’échelle en pouces :

�����P"��O&���������FG,�BT,�G',�=0�

� � � !

����

"�

# $ � �

�$

#!

��

��

A

Page 375: MS Visio 2003 Guide du Développeur

C R É A T I O N D E D E S S I N S P A R A U T O M A T I S A T I O N 361

Choix de la position des formes sur un dessin

Le calcul de la position des formes peut être l’une des tâches les plus complexes d’un programme créant des dessins Visio, notamment dans des diagrammes connectés et dans les autres dessins comportant des relations complexes entre les formes. L’objectif final reste le même : vous devez calculer deux coordonnées de page pour toutes les formes placées sur la page de dessin. L’approche adoptée dépend du type de dessin à créer et des données qui le sous-tendent.

Par ailleurs, Visio propose des fonctionnalités de présentation automatique contrôlant le mode d’interaction entre les formes et les liens reliant ces formes dans le dessin. Vous pouvez afficher les paramètres de présentation par défaut dans les sections Mise en page et Mise en page des formes de la fenêtre Feuille ShapeSheet®. Vous pouvez personnaliser ces paramètres dans votre programme à l’aide des formules de ces sections. Pour plus d’informations sur les formes et leur présentation automatique, reportez-vous à la section « Création de formes et mise en page automatique », page 243. Pour plus d’informations sur les sections Mise en page et Mise en page des formes, reportez-vous à l’aide en ligne Référence du développeur (accessible via ? (Aide) > Référence du développeur) fournie avec Visio.

La procédure CreateDrawing suivante présente un exemple de positionnement des formes dans un diagramme de réseau simple. Cet exemple lit les données dans un tableau en deux dimensions (le premier élément du tableau répertorie le nom d’une forme de base du gabarit Formes de réseau de base 3D, et le second correspond au libellé de la forme). CreateDrawing positionne un concentrateur au centre de la page, puis les autres composants en cercle autour de ce concentrateur.

Cet exemple présente plusieurs techniques de positionnement des formes, notamment les suivantes :

• Pour placer le concentrateur au centre de la page, le programme utilise les valeurs des cellules HauteurPage et LargeurPage de la feuille de page.

• Pour espacer les formes régulièrement autour du concentrateur, la variable dblDegreeInc a été calculée en fonction du nombre d’éléments présents dans le tableau. Cette variable a ensuite servi à définir les coordonnées x et y pour insérer la forme.

Remarquez l’utilisation des propriétés de feuille de page pour obtenir des informations sur le positionnement sur la page. Par ailleurs, les formes sont régulièrement espacées autour du concentrateur grâce à la variable dblDegreeInc qui permet de calculer les coordonnées x et y en fonction du nombre d’éléments du tableau.

Page 376: MS Visio 2003 Guide du Développeur

362 C H A P I T R E 1 8

REMARQUE : pour calculer les coordonnées de page visibles dans la fenêtre de dessin, appliquez la méthode GetViewRect de l’objet window. Vous pouvez utiliser ces coordonnées pour positionner les formes au centre de la fenêtre. Pour plus d’informations, reportez-vous à la section relative à la méthode GetViewRect dans l’aide en ligne Référence du développeur (accessible via ? (Aide) > Référence du développeur) fournie avec Visio.

������������������������2�����������������

��������P?%3����!����"����

��������P2�1������!����"����

���������P����!����"E����

���������P����!����"��������

����1��7,�1��:����������

����1��������������������

����1��&�1����������

����1��������1��,�1������?���������������

���������������

��������� �F"*B*8

�����������&�1���� �0

X���������������������������1Y��P����1��������������"����������������A����U����������A�

1����������� �FG'�C�%3���1��2�������

X����������A�A��������1����������?������

1��������1��� �����������"���������"������#���������#�"&������%

1������?������ �����������"���������"������#?���������#�"&������%

X���������������b+����1��A�����1�������F�b

���������P� ����������"���������"��� ��#3�����2��O�d�������F�"���#,����������d�1�

X$��������+�������C����������

���������P� ������P"E�������2�������',�'��

��������P?%3� �����������"��������P,�1��������1���C�0,�1������?������C�0�

X�A+�������������1�����+�������C����������

����P?%3"$���� ��2�������',�*�

X$�������������1�

)���� �*�$��%3���1��2�������

���������P� ������P"E�������2��������,�'��

X)���������������7,�:��������������1�������������������1�����C�����������

1��&�1� ��1�����������@����@����C�*T'

1��7� ������&�1����@�����1��&�1��-��1��������1���C�0�

1��:� ������&�1����@�����1��&�1��-��1������?������C�0�

X�P����,����������1���,����+�������1�����

��������P� �����������"��������P,�1��7,�1��:�

X�A+�������������1�����+���

����P"$���� ��2��������,�*�

2���

�1����

Page 377: MS Visio 2003 Guide du Développeur

C R É A T I O N D E D E S S I N S P A R A U T O M A T I S A T I O N 363

Utilisation de formes sélectionnées

Vous pouvez accéder aux propriétés et aux méthodes d’une forme à partir d’un programme, que la forme soit sélectionnée ou non. Vous pouvez également créer un objet Selection pour travailler sur plusieurs formes. L’objet Selection est similaire à une collection Shapes car il représente un ensemble d’objets Shape, et comporte des propriétés Item et Count. Un objet Selection ne représente cependant que les formes sélectionnées.

Objet Selection et objets connexesà un niveau supérieur du modèle

d’objet de Visio

Vous pouvez obtenir un objet Selection représentant les formes sélectionnées dans une fenêtre ou en créer en choisissant les formes qui y figurent dans une collection Shapes. L’ordre des éléments dans un objet Selection correspond à l’ordre de la sélection des objets. Le premier élément renvoyé est la première forme sélectionnée.

Obtention des formes sélectionnées dans une fenêtrePour travailler sur les formes sélectionnées dans la fenêtre, lisez la propriété Selection de l’objet window.

Window.Selection représente lesformes sélectionnées dans la

fenêtre de dessin.

GlobalApplication

Window

Windows

Selection

ActiveWindow

Windows

Page 378: MS Visio 2003 Guide du Développeur

364 C H A P I T R E 1 8

L’exemple suivant obtient l’objet Selection de la fenêtre active :

Si toutes les formes d’une page sont sélectionnées, l’objet Selection de la fenêtre et la collection Shapes de la page rassemblent les mêmes formes. Si rien n’est sélectionné, l’objet Selection est vide et sa propriété Count renvoie 0. S’il est nécessaire pour le programme qu’une forme soit sélectionnée, vous pouvez tester la propriété Selection de la fenêtre active pour vérifier qu’elle contient au moins un objet.

Un objet Selection récupéré dans une fenêtre représente les formes sélectionnées dans la fenêtre. Les instructions ultérieures modifiant la sélection dans la fenêtre n’ont aucune incidence sur l’objet Selection récupéré.

Si la même page de dessin est affichée dans plusieurs fenêtres, vous pouvez sélectionner des formes différentes dans chaque fenêtre.

Par défaut, seuls les groupes et les formes sélectionnés sont inclus dans l’objet Selection ; les formes sélectionnées à l’intérieur d’un groupe ne sont pas incluses. Pour inclure les formes sélectionnées à l’intérieur d’un groupe (une forme enfant dans un groupe) ou un groupe parent d’une forme, vous pouvez modifier les paramètres par défaut de la propriété IterationMode de l’objet Selection. Pour obtenir des informations sur l’objet Selection et ses propriétés, reportez-vous à l’aide en ligne Référence du développeur (accessible via ? (Aide) > Référence du développeur) fournie avec Visio.

��������P� ����������1�O"���������

������������P� ����������1�O"���������

�+���������P"������ �'�$���

E��3���#!����1���I�1Y���1��A��������������+���"#,�,�#�A��������������

+���#

���

X���������������������

�1��+

Page 379: MS Visio 2003 Guide du Développeur

C R É A T I O N D E D E S S I N S P A R A U T O M A T I S A T I O N 365

Ajout et suppression de formes dans les sélectionsPour ajouter un élément à une sélection, appliquez la méthode Select correspondante et indiquez l’objet Shape à sélectionner. Vous pouvez ajouter une forme à une sélection ou annuler sa sélection sans affecter les autres formes sélectionnées.

Les constantes visSelect et visDeselect, définies dans la bibliothèque de types de Visio, contrôlent l’action exécutée. Par exemple, l’instruction suivante ajoute une forme à celles figurant déjà dans l’objet Selection :

L’instruction suivante annule la sélection de cette forme :

Pour sélectionner une forme définie explicitement :

Sélection et désélection de formes dans une fenêtre Pour sélectionner une forme dans la fenêtre d’un programme, appliquez la méthode Select de l’objet window et indiquez l’objet Shape à sélectionner. Vous pouvez ajouter une forme à une sélection ou désélectionner une forme sans affecter les autres formes sélectionnées. Par exemple, l’instruction suivante ajoute une forme à celles déjà sélectionnées dans la fenêtre de dessin :

Pour sélectionner toutes les formes d’une page de dessin, appliquez la méthode SelectAll de l’objet window ; pour désélectionner toutes les formes sélectionnées, appliquez la méthode DeselectAll. Si vous récupérez un objet Selection après l’utilisation de SelectAll, le nouvel objet Selection inclut un objet Master pour chaque forme de la page de dessin affichée dans la fenêtre. Si vous récupérez un objet Selection après l’utilisation de DeselectAll, le nouvel objet Selection est vide.

�����P"�����������P,���������

�����P"�����������P,�����������

�����P"�����������P,�����������-���������������

O����P"�����������P,���������

Page 380: MS Visio 2003 Guide du Développeur

366 C H A P I T R E 1 8

Exécution d’opérations sur les formes sélectionnéesUne fois que vous disposez d’un objet Selection, vous pouvez appliquer aux formes sélectionnées des opérations similaires aux actions exécutées dans une fenêtre de dessin.

Par exemple, vous pouvez appliquer les méthodes Copy, Cut, Delete ou Duplicate d’un objet window ou Selection pour copier, couper, supprimer ou dupliquer des formes sélectionnées :

Vous pouvez également exécuter des opérations booléennes, telles que l’union, la combinaison et la fragmentation à l’aide des méthodes Union, Combine et Fragment. Ces méthodes correspondent aux commandes Union, Combinaison et Fragmentation de Visio, qui créent une ou plusieurs formes remplaçant les formes sélectionnées :

Avant d’utiliser Union, Combine ou Fragment, vérifiez que seules les formes à modifier sont sélectionnées. Ces méthodes suppriment les formes d’origine, toutes les formules intelligentes disparaissent et l’objet Selection représentant les formes n’est plus courant.

Pour obtenir des informations sur l’utilisation de l’objet Selection ainsi que sur les objets, propriétés et méthodes mentionnés ici, reportez-vous à l’aide en ligne Référence du développeur (accessible via ? (Aide) > Référence du développeur) fournie avec Visio.

Définition de la portée d’une sélection Pour déterminer si un objet Selection récupère ses formes dans un objet Page, Master ou Shape (groupe), vérifiez les propriétés ContainingPage, ContainingMaster et ContainingShape de l’objet Selection.

• Si les formes sont sur une page, la propriété ContainingPage renvoie cet objet Page et ContainingMaster renvoie Nothing.

• Si les formes sont dans une forme de base, la propriété ContainingMaster renvoie cet objet Master et ContainingPage renvoie Nothing.

• Si les formes sont dans un groupe, la propriété ContainingShape renvoie un objet Master représentant le groupe. Sinon, cette propriété renvoie un objet Master qui représente la feuille de page de la forme de base ou la page contenant ces formes.

��������P"������

��������P"%����

Page 381: MS Visio 2003 Guide du Développeur

C R É A T I O N D E D E S S I N S P A R A U T O M A T I S A T I O N 367

Pages d’arrière-plan

Un document Visio peut contenir plusieurs pages. Chaque page d’un document peut contenir un dessin différent, mais certaines pages peuvent également être l’arrière-plan d’autres pages.

Vous pouvez créer un document multipage depuis un programme en ajoutant des pages et en leur associant des arrière-plans. Vous pouvez également modifier des paramètres de page tels que l’échelle du dessin, ou la hauteur et la largeur du dessin.

Création et association de pages d’arrière-planPour qu’un ensemble de formes apparaisse dans plusieurs dessins, vous pouvez le placer sur une page d’arrière-plan. Par exemple, si le programme crée des dessins sur plusieurs pages, vous pouvez créer une page d’arrière-plan comportant des formes d’en-tête et de pied de page, ou de bloc de titre et de bordure.

Vous pouvez associer la même page d’arrière-plan à plusieurs pages de premier plan. Une page de premier plan ne peut avoir qu’une page d’arrière-plan, mais cette dernière peut elle-même avoir un arrière-plan. Vous pouvez donc construire un dessin avec beaucoup de pages d’arrière-plan. Pour créer une page d’arrière-plan, ajoutez une page au dessin et associez la valeur True à la propriété Background. Par exemple :

Pour associer la page d’arrière-plan à une autre page pour que les formes de l’arrière-plan apparaissent dans le fenêtre de dessin lorsque la page est affichée, paramétrez la propriété BackPage de la page de premier plan sur le nom de la page d’arrière-plan. Par exemple :

���d�����P"3��d����1� �$��

����P"3��d����� �#�����1X��A������������A���#

Page 382: MS Visio 2003 Guide du Développeur

368 C H A P I T R E 1 8

Exemple d’itération dans la collection PagesLes éléments d’une collection Pages sont indexés à partir des pages de premier plan dans l’ordre dans lequel elles sont répertoriées dans la boîte de dialogue Redisposer les pages, suivies des pages d’arrière-plan classées dans un ordre arbitraire. (Pour afficher la boîte de dialogue Redisposer les pages, cliquez avec le bouton droit sur un onglet de page de la fenêtre de dessin, puis choisissez Redisposer les pages.)

L’exemple suivant exécute une itération dans la collection Pages du document actif et répertorie les noms de toutes les pages de premier plan dans une zone de liste sur un formulaire d’utilisateur.

Exemple de configuration de pages et d’arrière-plansSupposez que vous souhaitez créer un dessin multipage comportant une occurrence de chaque forme de base d’un gabarit. La procédure formValid crée la page d’arrière-plan et définit une échelle et une taille de page correspondant à l’échelle des formes de base du rapport.

Cette procédure récupère les échelles de la forme de base et de la page d’arrière-plan dans leur feuille de page respective. La variable globale gDocDraw a été préalablement définie pour désigner un nouveau document qui n’est pas à l’échelle.

������������������

���������P����!����"�����

��������P����!����"����

���������P� �$�����������"�����

%��)��*"����3��*"����

)�� ��������P���������P�

�+�����P"3��d����1� �)�����$���

%��)��*"����3��*"�11���������P"2���

�1��+

2����

%��)��*"���O

�1����

Page 383: MS Visio 2003 Guide du Développeur

C R É A T I O N D E D E S S I N S P A R A U T O M A T I S A T I O N 369

������� ��������

X����1A���������������������������������������������"

X$����������+�����1���������������e���A������"

���������� ��������*�

��������������� ������"������#������#�

X�A+�����������������U�5���"

���������3��d� �������O"�����"�����*�

�����3��d"2���� ��$&.3��a;&�%2�

�����3��d"3��d����1� �$��

X�A+�����YA�������������1���������1���������1Y��U�����"

������������� ������3��d"������#������#�

�������O��������� �����������"������# ������������#�")�����

��������������� �����������"������# ����������#�")�����

�����O��������� ���������"������# ������������#�")�����

������������� ���������"������# ����������#�")�����

X�U�������A��AA�����A��������1�����+����1����������1��������,�+��!���1������

X�YA�������1�����+����1������������������1��������"����������1�++U���������,���������,

X1�����������1Y����������1��+������������������,�+��!���1������������W��YA�������1�

c���+����1������"���������A1����������������������������������������1�������������

X1���������������W�1����������W��YA�������������� ����������������������������� ��"

�+���������O���������6/������O��������������������������6/���������������$���

X �������1��1������ ��P��������

��������"������#$4� ������������#�")������ �F

��������"������# ������������#�")������ ��������O��������

��������"������# ����������#�")������ ���������������

X$������1��1������ �����������

1�O��������� �����������"������# ������������#�

��������� �����������"������# ����������#�

���?������ ���������"������#?���������#�

�����1��� ���������"������#���������#�

��������"������#?���������#�")������ ����?������@�1�O���������C���������

��������"������#���������#�")������ ������1���@�1�O���������C���������

�1��+

�1����

Page 384: MS Visio 2003 Guide du Développeur

370 C H A P I T R E 1 8

Modification des paramètres de pageEn général, les programmes Microsoft® Visual Basic® pour Applications (VBA) utilisent un modèle Visio pour créer un dessin. Il est donc rarement nécessaire de modifier les paramètres, tels que l’échelle de dessin ou de page car le modèle fournit les valeurs appropriées pour les dessins créés par votre programme. Si vous modifiez ces paramètres, ou si vous créez un dessin sans modèle et avec des paramètres différents des valeurs par défaut de Visio, vous pouvez changer les paramètres de la page en modifiant les formules de page.

Pour modifier une formule de page, lisez la propriété PageSheet de l’objet Page, qui renvoie un objet Shape indiquant les formules de la page. Utilisez ensuite la propriété Cells de l’objet Shape pour extraire une cellule de page par son nom, comme vous le feriez pour une forme sur la page de dessin.

Un objet Master comporte également une propriété PageSheet permettant d’obtenir les mêmes paramètres (échelle de dessin, échelle de page, etc.) pour la forme de base et pour la page. Cela permet, par exemple, de savoir si l’échelle d’une forme de base est appropriée pour la page de dessin avant d’insérer la forme dans la page de dessin.

REMARQUE : vous pouvez également accéder aux paramètres de page à l’aide d’une forme spéciale appelée LaPage de la collection Shapes des objets Page et Master. Cela équivaut à récupérer la propriété PageSheet d’un objet Page ou Master.

Par exemple, supposez que votre programme autorise l’utilisateur à modifier l’échelle d’un plan d’aménagement depuis le programme plutôt que depuis le moteur Visio. Les instructions suivantes modifient l’échelle de pagObj pour que 1 pied dans le dessin corresponde à 1/8 de pouce sur la page de dessin.

Les cellules de page les plus utilisées définissent la taille et l’échelle du dessin. D’autres cellules de page définissent la précision des règles et la densité de la grille, les calques de la page et les actions, ou sont définies par l’utilisateur. Pour obtenir la liste des cellules et des sections de page, reportez-vous à l’annexe B, « Indices de section, de ligne et de cellule ShapeSheet ».�

�������������P� �����P"���������

������������������� ����������P"������# ����������#�

�����������O������ ����������P"������# ������������#�

��������������"&������#�#�� �'"*08

�������O�����"&������#�#�� �*"'

Page 385: MS Visio 2003 Guide du Développeur

C R É A T I O N D E D E S S I N S P A R A U T O M A T I S A T I O N 371

Calques

Une page peut comporter des calques, qui permettent d’organiser les formes sur la page. En attribuant des formes à un calque, vous pouvez les répartir en catégories de formes nommées afin de les afficher ou de les masquer, de les imprimer, ou d’empêcher leur modification), sans pour autant avoir à placer les formes sur une page d’arrière-plan ou à les grouper. Le calque d’une forme est indépendant de son ordre d’empilement ou même de son appartenance à un groupe.

Une forme de base peut être associée à des calques. Lorsqu’elle est insérée dans un dessin, l’occurrence de cette forme de base est associée aux calques indiqués. Si ces calques n’existent pas, la copie de Visio les crée automatiquement.

Lorsque vous utilisez les calques dans un programme, vous pouvez vérifier quels sont les calques disponibles dans une page de dessin ou dans une forme de base, et savoir à quels calques est associée une forme dans un dessin. Vous pouvez associer des formes à des calques, ajouter des calques et en supprimer. Vous pouvez également afficher ou masquer un calque, le rendre imprimable ou modifiable, et modifier d’autres paramètres, comme vous définissez les propriétés des calques dans la boîte de dialogue Propriétés des calques ou dans la section Calques de la fenêtre Feuille ShapeSheet®.

Identification des calques d’une page ou d’une forme de basePour identifier les calques définis pour une page ou une forme de base, récupérez sa propriété Layers. Cette propriété renvoie une collection Layers, qui contient un objet Layer pour chaque calque défini pour la page ou la forme de base. Si la page ou la forme de base ne comporte pas de calque, sa collection Layers est vide. Un objet Layer a une propriété Name qui renvoie le nom du calque sous forme de chaîne. Il s’agit de la propriété par défaut de l’objet.

Vous pouvez obtenir un objet Layer de la collection Layers en indiquant son nom ou son indice dans la collection. Par exemple, pour obtenir l’objet Layer d’un calque appelé « plomberie » :

������4���P� ���4����P"�����#��������#�

Page 386: MS Visio 2003 Guide du Développeur

372 C H A P I T R E 1 8

L’exemple suivant extrait tous les calques d’une collection et affiche leur nom dans la fenêtre de débogage de l’Editeur Visual Basic.

Comme dans la plupart des collections, les objets de la collection Layers sont indexés à partir de 1. Chaque calque de la collection est représenté par une ligne dans la section Calques de la page ou de la forme de base.

La propriété Index d’un objet Layer indique l’indice d’un calque dans la collection Layers. La propriété Row de cet objet indique la ligne correspondante de la section Calques de la feuille de page. Ces deux valeurs sont généralement différentes.

Identification des calques auxquels une forme est attribuéeUtilisez la propriété LayerCount d’un objet Shape pour déterminer le nombre total de calques auxquels la forme est attribuée. La propriété Layer du même objet permet d’obtenir un calque spécifique. Par exemple, l’instruction suivante obtient le deuxième calque auquel est attribuée la forme :

Consultez les propriétés de l’objet Layer, comme Name, pour plus d’informations sur ce calque.

Si la forme n’est attribuée à aucun calque, sa propriété LayerCount renvoie 0 (zéro) et une erreur se produit si vous essayez de lire sa propriété Layer.

Attribution de formes à un calque et suppressionPour attribuer une forme à un calque, appliquez la méthode Add de l’objet Layer. Par exemple :

����;����4�����

��������P����!����"����

������4����P����!����"��4��

������4���P����!����"��4�

������4�2������������

������4����P� �����P"��4��

)�� ������4���P������4����P�

��4�2���� ���4���P"2���

�����"�������4�2���

2����

�1����

������4���P� �����P"��4��0�

��4���P"�11�����P,������E�����)���

Page 387: MS Visio 2003 Guide du Développeur

C R É A T I O N D E D E S S I N S P A R A U T O M A T I S A T I O N 373

L’argument preserveMembersFlag doit être différent de zéro (True) si vous attribuez un groupe au calque sans modifier l’appartenance des formes du groupe. Sinon, utilisez 0 (False) pour attribuer à ce calque une forme, ou un groupe et chacune des formes qui le composent.

Pour annuler l’attribution d’une forme à un calque, appliquez la méthode Remove de l’objet Layer. Les arguments sont les mêmes pour la suppression et pour l’ajout d’un calque. Par exemple :

Ajout et suppression de calques dans les pages et les formes de basePour ajouter un calque à une page ou à une forme de base, appliquez la méthode Add de la collection Layers d’un objet Page ou Master. Par exemple, pour ajouter un calque nommé « Plomberie » à une page :

Le nom du nouveau calque doit être unique dans la page ou dans la forme de base. Si elle réussit, la méthode Add renvoie un objet Layer représentant le nouveau calque.

Pour supprimer un calque d’une page ou d’une forme de base, appliquez la méthode Delete de l’objet Layer. Par exemple :

L’argument deleteShapesFlag doit être différent de zéro (True) pour que les formes attribuées au calque soient supprimées. Sinon, utilisez la valeur 0 (False) pour conserver les formes. Les attributions de forme au calque sont mises à jour pour que ces formes ne fassent plus référence au calque supprimé.

Modification des paramètres de calqueVous pouvez modifier les paramètres de la boîte de dialogue Propriétés des calques afin de rendre un calque visible ou imprimable, de définir sa couleur de surbrillance, etc.

Pour modifier les paramètres de calque depuis un programme, définissez les formules des cellules contrôlant ces paramètres. Pour ce faire, utilisez la propriété CellsC d’un objet Layer pour obtenir la cellule contenant le paramètre à modifier, puis définissez la formule de cette cellule.

��4���P"&����������P,������E�����)���

������4����P� �����P"��4��

������4���P� ���4����P"�11�#��������#�

��4���P"�������1����������)���

Page 388: MS Visio 2003 Guide du Développeur

374 C H A P I T R E 1 8

Par exemple, pour accéder à la cellule contenant le nom du calque, utilisez une instruction du type :

CONSEIL : vous pouvez également accéder aux paramètres des calques via la propriété CellsSRC d’un objet Shape représentant une feuille de page. Pour plus d’informations, reportez-vous au chapitre 17, « Automatisation des formules ».

Pour déterminer la visibilité d’un calque, utilisez des instructions telles que :

Pour masquer un calque :

Les constantes visLayerName et visLayerVisible sont définies dans la bibliothèque de types de Visio. Pour obtenir la liste des constantes contrôlant les paramètres de calque, reportez-vous à l’annexe B, « Indices de section, de ligne et de cellule ShapeSheet ». Pour plus d’informations sur la modification des paramètres de calque dans Visio, recherches les mots « zone des propriétés de calque » dans l’aide en ligne fournie avec Visio.

������4�������P� ���4���P"������������4�2����

�+���4���P"������������4�!�������"&������%� �'�$���

����*"$���� �#���������#

���

����*"$���� �#�������#

�1��+

������4�������P� ���4���P"������������4�!�������

��4�������P")������ �)�������'

Page 389: MS Visio 2003 Guide du Développeur

Sommaire

19Automatisation des connexionsd’une solution Visio

Les dessins avec connexion ou que vous créez avec Microsoft® Visio® font partie des types de dessin les plus utilisés. Ils illustrent souvent des relations dans un système, que ce soit entre les individus d’une entreprise ou entre les étapes d’un procédé de fabrication. Il est souvent plus simple de créer des liens en les schématisant, puis d’utiliser le diagramme créé comme source de données pour ces liens. Dans le moteur Visio, l’opération de liaison des formes s’appelle le collage des formes, et la relation entre deux formes est représentée par un objet Connect.

Ce chapitre décrit l’utilisation des objets Connect et de leurs propriétés qui permettent d’analyser un dessin avec connexions. Il présente également les modalités de création de dessins avec connexions par l’intermédiaire du collage de formes issues du programme.

Utilisation d’un objet Connect............................................................................... 376

Récupération d’informations d’un dessin avec connexions............................... 378

Exemples d’itération dans les connexions sur une page ................................... 382

Création d’un dessin avec connexions à partir d’un programme...................... 384

Exemple de connexion de formes dans un diagramme de flux ........................ 389

Page 390: MS Visio 2003 Guide du Développeur

376 C H A P I T R E 1 9

Utilisation d’un objet Connect

Dans un dessin, une forme Visio peut être liée ou collée à une autre forme Visio. Dans le modèle d’objet Visio, cette relation est représentée par l’objet Connect.

Objet Connect et objets deniveau supérieur associés dans

le modèle d’objet Visio

Lorsque vous avez récupéré la référence à un objet Connect, vous pouvez savoir quelles formes sont liées et leur mode de liaison. En récupérant les propriétés des objets Connect sur les objets Shape, Master et Page, vous pouvez aussi analyser des graphiques orientés, comme des diagrammes de flux, ou des schémas reliés, comme des organigrammes.

La propriété Connects de l’objet Page renvoie une collection Connects contenant un objet Connect pour chaque connexion présente sur la page. La propriété Connects de l’objet Master renvoie, quant à elle, une collection Connects contenant un objet Connect pour chaque connexion de la forme de base.

L’objet Shape comporte deux propriétés reliées par des connexions :

• Une propriété Connects qui renvoie une collection Connects contenant un objet Connect pour chaque forme, groupe ou repère auquel cette forme est collée.

• Une propriété FromConnects qui renvoie une collection Connects contenant un objet Connect pour chaque forme, groupe ou repère collé à cette forme.

Par exemple, prenons un dessin qui contient deux formes appelées A et B, et une forme en une dimension (1D) appelée C qui relie A et B.

Deux formes reliéespar une forme 1D

Document

Documents

Page

Pages

ThisDocument

Shape

Shapes

ConnectConnects

MasterMasters

Documents

Pages

Shapes

Connects

Masters

A

CB

Page 391: MS Visio 2003 Guide du Développeur

A U T O M A T I S A T I O N D E S C O N N E X I O N S D ’ U N E S O L U T I O N V I S I O 377

La collection Connects de la forme C contient deux objets Connect : un qui représente sa connexion à A et l’autre qui représente sa connexion à B. Les collections Connects de A et de B sont vides car ces formes ne sont pas collées. En revanche, les collections Connects renvoyées de la propriété FromConnects des formes A et B vont contenir un objet Connect qui représente sa connexion issue de la forme C ; la collection Connects renvoyée de la propriété FromConnects pour la forme C sera vide.

Prenons maintenant un dessin qui contient quatre formes appelées A, B, C et D. Chaque forme possède une poignée de contrôle collée à une forme nommée E.

La collection Connects de laforme E est vide, car elle n’est pas

collée à A, B, C et D : ce sontces formes qui sont collées à la

collection. Les collectionsConnects de A, B, C et Dcontiennent chacune un

objet Connect.

Pour récupérer la collection Connects de la forme A, récupérez la propriété Connects de cet objet Shape. Par exemple :

La collection Connects de la forme A contient un objet Connect qui représente la connexion de A à E. Cela est valable également pour les collections Connects des formes B, C et D. La collection Connects de la forme E est vide car elle n’est pas collée à d’autres formes : ce sont les formes qui lui sont collées.

����������P� �����P"��������

E

A B C D

Page 392: MS Visio 2003 Guide du Développeur

378 C H A P I T R E 1 9

Récupération d’informations d’un dessin avec connexions

Un objet Connect comporte plusieurs propriétés qui renvoient des informations sur la connexion qu’il représente. Vous pouvez déterminer les formes connectées et les parties de forme, par exemple le sommet ou le côté d’une forme.

Détermination des formes reliées Les propriétés FromSheet et ToSheet font référence aux objets Shape qui représentent les formes connectées. La forme est définie de manière interne dans une feuille de calcul semblable à celle affichée dans une fenêtre ShapeSheet®. Ces propriétés tirent leurs noms de cette feuille de calcul interne.

FromSheet renvoie la forme d’origine de la connexion et ToSheet la forme avec laquelle la connexion est effectuée. Prenons, par exemple, un dessin qui contient deux formes nommées Cadre et Poste, et supposons que cette dernière est collée à la forme Cadre. La collection Connects de la forme Poste contient un objet Connect dont la propriété FromSheet renvoie Poste et dont la propriété ToSheet renvoie Cadre.

Pour savoir quelles formes sont collées à une forme spécifique, utilisez la propriété FromConnects qui renvoie sa collection Connects. La propriété FromSheet de chaque objet Connect de la collection identifie les formes auxquelles la forme est collée. Pour reprendre l’exemple des quatre formes A, B, C et D, chacune étant collée à E, la propriété FromSheet de chaque objet Connect renvoyé de la propriété FromConnects de E fait référence à A, B, C et D.

CONSEIL : lors de l’utilisation des objets Connect situés dans une collection renvoyée par la propriété Connects d’une forme, il convient généralement de rechercher les formes auxquelles une forme est reliée. C’est la propriété ToSheet de chaque objet Connect qui fournit ces informations, la propriété FromSheet restant toujours la même.

Lors de l’utilisation des objets Connect situés dans une collection renvoyée par la propriété FromConnects d’une forme, les formes les plus intéressantes sont généralement celles reliées une autre forme. Dans ce cas, c’est la propriété FromSheet de chaque objet Connect qui fournit ces informations, la propriété ToSheet restant toujours la même.

Page 393: MS Visio 2003 Guide du Développeur

A U T O M A T I S A T I O N D E S C O N N E X I O N S D ’ U N E S O L U T I O N V I S I O 379

Détermination des parties connectées des formesLes propriétés FromPart et ToPart renvoient des constantes entières qui identifient l’emplacement général d’une connexion sur une forme. FromPart identifie la partie de la forme d’où provient une connexion tandis que ToPart identifie la partie de la forme cible de la connexion. Les constantes des valeurs FromPart et ToPart valides sont définies dans la bibliothèque de types Visio.

L’illustration suivante indique les valeurs FromPart et ToPart renvoyées pour indiquer les parties concernées par les connexions classiques d’un dessin.

Valeurs FromPart et ToPart pour lesconnexions classiques d’un dessin

A visGuideXB visGuideYC visLeftEdgeD visControlPoint+nE visConnectionPoint+nF visBeginG visEnd

A

C

B

D

E

F

G

Page 394: MS Visio 2003 Guide du Développeur

380 C H A P I T R E 1 9

Le tableau suivant répertorie les connexions entre les formes et les constantes des valeurs renvoyées par les propriétés FromPart et ToPart des formes de l’illustration précédente.

Une forme pouvant avoir plusieurs poignées de contrôle, visControlPoint est une base qui représente la première poignée de contrôle définie pour une forme. Si la valeur renvoyée par FromPart est supérieure à visControlPoint, elle représente la (n+1)ième poignée de contrôle de cette forme (pour obtenir n, soustraire visControlPoint de la valeur renvoyée par FromPart). Cela est valable aussi pour visConnectionPoint : si la valeur renvoyée par ToPart est supérieure à visConnectionPoint, elle représente le (n+1)ième point de connexion.

L’opération de collage à une poignée de sélection, à un sommet ou à un emplacement d’une forme crée automatiquement un point de connexion ; aucune constante n’est donc définie pour ces éléments. Pour obtenir des informations sur les parties d’une forme pouvant être collées, reportez-vous à « Eléments d’origine et de destination d’un collage », page 385 de ce chapitre.

Récupération des cellules d’une connexionLes propriétés FromCell et ToCell d’un objet Connect font référence à des objets Cell qui représentent les cellules ShapeSheet concernées par une connexion. Vous pouvez récupérer ou paramétrer la formule d’une cellule, son résultat ou toute autre propriété de l’objet Cell et l’utiliser comme vous le feriez pour toute autre objet Cell, par exemple sous la forme d’un argument pour la méthode GlueTo.

Constantes FromPart et ToPart pour les connexions

Connexion FromPart ToPart

Poignée de contrôle collée à un point de connexion, à un repère ou à un point de repère

visControlPoint + n visConnectionPoint + nvisGuideXvisGuideY

Forme 1D collée à un point de connexion

visBeginvisEnd

visConnectionPoint + n

Forme 2D collée à un repère ou à un point de repère

visRightEdgevisLeftEdgevisTopEdgevisBottomEdgevisMiddleEdgevisCenterEdge

visGuideXvisGuideY

Forme 1D collée à un repère ou à un point de repère

visBeginXvisEndXvisBeginYvisEndY

visGuideXvisGuideY

Forme 1D collée en mode dynamique à une forme

visBeginvisEnd

visWholeShape

Page 395: MS Visio 2003 Guide du Développeur

A U T O M A T I S A T I O N D E S C O N N E X I O N S D ’ U N E S O L U T I O N V I S I O 381

Instructions d’analyse d’un dessin avec connexions Lorsque vous tracez un dessin comportant des connexions, retenez les éléments suivants :

• Prenez connaissance des types des formes contenues dans le dessin.

Par exemple, le dessin utilise-t-il des formes 1D comme liens entre les formes 2D ou les poignées de contrôle 2D permettent-elles de tracer des lignes d’une forme à une autre ? Les lignes figurent-elles toutes entre les occurrences d’une forme de base lien ou certaines sont-elles dessinées avec l’outil Trait ?

• Sachez que les données de connexion réunies à partir d’un dessin peuvent avoir des connexions différentes de leur apparence à l’écran.

Par exemple, les formes ont sur la page un ordre d’empilage qui peut avoir une incidence sur l’élément auquel la forme est collée. Si l’utilisateur colle plusieurs formes sur le même point d’une autre forme, certaines formes peuvent, comme l’indique la figure suivante, être collées à d’autres formes au lieu de la forme prévue.

L’ordre d’empilage des formes peutavoir une incidence sur leurs

connexions.

A Si la résistance était collée en premier, elle serait collée au repère.B Cette diode peut être collée au repère ou à la résistance.

• Prenez en considération l’orientation du schéma ; dans un graphique orienté comme un diagramme de flux, les parties des formes qui sont collées peuvent ne pas correspondre aux orientations indiquées visuellement.

Par exemple, vous pouvez coller le point de départ ou le point de fin d’une forme 1D à une autre forme et formater le point de départ ou le point de fin avec une pointe de flèche. Si vous considérez que, sur un dessin, une pointe de flèche indique le point de fin d’une forme 1D, vous n’obtenez pas nécessairement une analyse précise du dessin.

A

B

Page 396: MS Visio 2003 Guide du Développeur

382 C H A P I T R E 1 9

Exemples d’itération dans les connexions sur une page

La macro ShowPageConnections ci-dessous effectue une itération dans les objets Connect situés sur la première page du document actif Visio. Pour chaque objet Connect, ShowPageConnections extrait les formes reliées (FromSheet et ToSheet) et la partie de chaque forme qui est reliée (FromPart et ToPart). A l’aide des constantes issues de la bibliothèque de types Visio, elle compare ensuite les valeurs de FromPart et de ToPart à chaque valeur possible et affiche, dans la zone de liste d’un formulaire utilisateur, la chaîne correspondante, ainsi que les autres données pour la connexion.

�������O������������������

���������P����!����"����� X�����������1�������1��1�������

��������P����!����"���� X�����1��������

����+����P����!����"���� X��P���1��1A���1��������������

��������P����!����"��� X��P���1��1�����������1��������������

����������P����!����"�������� X�������������������

���������P����!����"������� X��P�����������1���������������

����+���������������� X$4��1������������1��1A��

����+������������� X���S����������������1���������1��

X�������������1��1A��

�������������������� X$4��1������������1Y���A�

����������������� X���S����������������1�����������

X����������1��1����������

X������������������������1��1�������

X2���I��Y������������1��$������������������A+A�����1�������

X������

���������P� �$�����������"�����

X��������A+A�����1����������U������1���������������

��������P� ������P�*�

X���������������������������1��������

����������P� �����P"��������

X!�1�����I����1�������

%��)��*"����3��*"����

X3��������������������������������������������

)�� ���������P����������P

X�����Y��P�������������������1�����������������

���������P� �������P���������1��

X�����Y��+��������)��

����+����P� ������P")�������

+������� ������P")�����

X�����Y��+��������$�

��������P� ������P"$������

������� ������P"$����

X�����+�������1A�����������4��1�����������

�+�+������� ����������� ��$���

+����� �#��#

����+�+������� ����2����$���

+����� �#����#

Page 397: MS Visio 2003 Guide du Développeur

A U T O M A T I S A T I O N D E S C O N N E X I O N S D ’ U N E S O L U T I O N V I S I O 383

Exemple de code (suite)

X$�����+�������������&���� 1��,���3����� 1��,���E�11�� 1��,

X���$� 1��,�����+� 1��,�������� 1��,����3����7,����3����:,�

X���3����,���� �17,���� �1:,��� �1�

����+�+�������/ ����������������$���

+����� �#��������.#�L�����+�������5����������������-�*�

���

+����� �#___#

�1��+

X������������1A�����������4��1��+������J����������������

X�������A

�+�������� ����������� ��$���

����� �#��#

����+�������� ����2����$���

����� �#����#

����+�������� ����;��1�7�$���

����� �#���1�7#

����+�������� ����;��1�:�$���

����� �#���1�:#

����+��������/ ��������������������$���

����� �#���������.#�L������������5��������������������-�*�

���

����� �#___#

�1��+

X�P������Y��+��������1�������I����1�������

%��)��*"����3��*"�11�����#1A���#�L�+����P"2����L�#�#�.

L�+�����L�#�1�����������#�L�����P"2����L�#�#�L�����

2���

%��)��*"���O

�1����

Page 398: MS Visio 2003 Guide du Développeur

384 C H A P I T R E 1 9

Création d’un dessin avec connexions à partir d’un programme

Pour créer un dessin avec connexions à partir d’un programme, vous insérez des formes de base sur une page de dessin, puis collez ces formes. Le collage est une opération où l’orientation est un facteur important ; il est donc indispensable de connaître les deux éléments de chaque collage. Une fois que les formes sont collées, vous pouvez déplacer une forme à laquelle d’autres formes sont collées sans rompre leurs connexions, mais la réciproque n’est pas vraie. Cela reste valable si vous déplacez les formes depuis un programme ou dans une fenêtre de dessin Visio. Prenons, par exemple, une ligne collée à un rectangle. Le déplacement du rectangle ne rompt pas la connexion, la ligne reste collée au rectangle et s’étire en conséquence. En revanche, le déplacement de la ligne rompt la connexion.

Ce dessin montre le déplacementdes formes liées. La ligne est collée

au rectangle (A). Si vous déplacezle rectangle (B), ces formes restentliées. Si vous déplacez la ligne (C),

la connexion est rompue.

Pour coller des formes à partir d’un programme :

1 Choisissez la forme à coller à une autre forme, déterminez cette autre forme et choisissez l’emplacement de liaison.

2 Récupérez un objet Cell qui représente la partie de la forme (comme un point de fin, un point de contrôle ou un bord de la forme) sur laquelle vous souhaitez effectuer le collage.

3 Utilisez la méthode GlueTo pour spécifier la partie de l’autre forme (comme un point de connexion, un sommet ou une poignée de sélection) ou la méthode GlueToPos pour spécifier un emplacement visant à créer la connexion entre les formes.

A B C

Page 399: MS Visio 2003 Guide du Développeur

A U T O M A T I S A T I O N D E S C O N N E X I O N S D ’ U N E S O L U T I O N V I S I O 385

Eléments d’origine et de destination d’un collageSeules certaines parties d’une forme peuvent être collées. Par exemple, un point de fin d’une forme 1D ou une poignée de contrôle d’une forme 2D peut être collée à un point de connexion, mais le côté d’une forme 2D peut seulement être collé à un repère ou à un point de repère.

Le moyen le plus simple de coller un objet à un autre consiste à utiliser une forme de base avec une poignée de contrôle qui étend une ligne que vous pouvez coller à l’autre forme. L’illustration suivante contient, par exemple, la forme de base Poste issue du gabarit Organigrammes (Formes d’organigramme.vss). La poignée de contrôle située dans la partie supérieure de cette forme de base peut être collée à une autre forme. La forme de base comporte aussi quatre points de connexion nommés ainsi que des emplacements sur lesquels d’autres formes peuvent être collées. Les références de cellule à utiliser pour coller ces emplacements figurent dans l’illustration suivante.

Références de cellule pour lapoignée de contrôle et les points de

connexion sur la forme de basePoste

A Connections.hautB Connections.gaucheC Connections.droiteD Connections.basE Connections.X1

Les poignées de contrôle fonctionnent pour de nombreux types de diagramme lié. En revanche, si vous n’utilisez pas de poignées de contrôle dans cet objectif, vous pouvez, à la place, utiliser des formes 1D. Collez le point de départ et le point de fin de chaque forme 1D entre deux formes 2D, comme l’indique l’illustration suivante.

Références de cellule pour lespoints de départ et de fin d’une

forme 1D

A DépartX ou DépartYB FinX ou FinY

A

B C

D

E

A B

Page 400: MS Visio 2003 Guide du Développeur

386 C H A P I T R E 1 9

Collage sur la partie d’une forme représentée par deux cellules De nombreux points sur une forme, les poignées de contrôle, les points de connexion, les points de fin, les sommets géométriques, etc. sont spécifiés par deux cellules ShapeSheet®, une pour chacune des coordonnées x,y du point. Chaque fois que vous effectuez un collage sur la partie de la forme représentée par une paire de cellules, vous pouvez spécifier l’une de ces cellules. Par exemple, pour indiquer la première poignée de contrôle de la forme Poste, vous pouvez spécifier Points de contrôle.X1 ou Points de contrôle.Y1.

Le tableau suivant répertorie les cellules ShapeSheet qui représentent les parties d’une forme susceptibles de faire l’objet de collages.

Collage à une poignée de sélection Une cellule d’alignement correspond à la poignée de sélection située au milieu de la partie spécifiée de la forme. Par exemple, AlignHaut correspond à la poignée de sélection située au milieu du bord supérieur de la forme. Dans un programme, le collage à une cellule d’alignement revient à effectuer un collage sur la poignée de sélection correspondante de la forme dans une fenêtre de dessin.

Vous n’effectuez pas réellement le collage sur la poignée de sélection elle-même, mais vous utilisez la poignée de sélection pour créer un point de connexion à cet emplacement de la forme. Cela reste toujours valable, que vous colliez les formes à partir d’un programme ou dans une fenêtre de dessin Visio. Une ligne est ajoutée à la section Points de connexion de la forme pour représenter le nouveau point de connexion.

Cellules types pour le collage des parties d’une forme

Elément à coller Cellule à récupérerCellule de destination d’une autre forme

Point de départ ou de fin d’une forme 1D

DépartX ou DépartY, FinX ou FinY

Connections.Xn ou Connections.Yn

Géométrie.Xn ou Géométrie.Yn

AlignGauche, AlignCentre, AlignDroite, AlignHhaut, AlignMilieu ou AlignBas

AxeX ou AxeY (à coller en mode dynamique)

Poignée de contrôle

Points de contrôle.Xn ou Points de contrôle.Yn, n étant le numéro de ligne de cette poignée de contrôle

Connections.Xn ou Connections.Yn

Géométrie.Xn ou Géométrie.Yn

AlignGauche, AlignCentre, AlignDroite, AlignHhaut, AlignMilieu ou AlignBas

AxeX ou AxeY (à coller en mode dynamique)

Bord d’une forme

AlignGauche, AlignCentre, AlignDroite, AlignHaut, AlignMilieu ou AlignBas

Toute cellule Repère

Page 401: MS Visio 2003 Guide du Développeur

A U T O M A T I S A T I O N D E S C O N N E X I O N S D ’ U N E S O L U T I O N V I S I O 387

Collage à un repère ou à un point de repère Un repère est une ligne non imprimable pouvant être déplacée dans la fenêtre de dessin Visio depuis la règle et servant à aligner des formes. Vous pouvez coller des formes à un repère, puis déplacer le repère et les formes qui lui sont liées. Lorsque vous collez une forme 1D à un repère, vous pouvez indiquer toute cellule du repère. Par exemple :

Collage avec des objets CellUne fois que vous avez choisi la partie de la forme à coller à l’autre forme, récupérez l’objet Cell qui représente cette partie de la forme. Pour récupérer cet objet, récupérez la propriété Cells de l’objet Shape et indiquez un nom cellule. Par exemple, l’instruction suivante récupère un objet Cell qui représente la coordonnée x de la première poignée de contrôle de la forme représentée par shpObj1 :

Si, sur une forme, un point est représenté par deux cellules, vous pouvez n’indiquer qu’une seule cellule, quelle qu’elle soit. Dans l’exemple ci-dessus, Points de contrôle.Y1 fonctionne aussi correctement.

Pour plus d’informations sur l’utilisation des objets Cell, reportez-vous au chapitre 17, « Automatisation des formules ».

Collage d’une forme à une autre formePour coller une forme à une autre, vous pouvez utiliser la méthode GlueTo ou GlueToPos d’un objet Cell. Avec la méthode GlueTo, spécifiez une référence de cellule à une partie de l’autre forme ; la méthode définit ensuite la formule de l’objet Cell en fonction de la référence à cette cellule. Avec la méthode GlueToPos, indiquez deux valeurs proportionnelles du plan largeur-hauteur de l’autre forme. La méthode GlueTo ou GlueToPos crée un point de connexion sur cette partie de la forme ou à cet emplacement.

Par exemple, la formulation suivante utilise GlueTo pour coller la partie d’une forme représentée par celObj, la poignée de contrôle de l’illustration, à la forme représentée par shpObj2, au quatrième point de connexion de cette forme, lequel a été renommé plus explicitement, c’est-à-dire Connections.bas.

*���"������#�A��7#�";���$��;��1���"������#���7#�

0���"������#�����;�����#�";���$��;��1���"������#���7#�

���������P� �����P*"������#�������1������H��"7*#�

�����P";���$������P0"������#�����������"���#�

Page 402: MS Visio 2003 Guide du Développeur

388 C H A P I T R E 1 9

Collage à l’aide de la méthodeGlueTo d’une poignée de contrôle à

un point de connexion

.

A celObj représente la poignée de contrôle Points de contrôle.X1 de shpObj1.B celObj.GlueTo shpObj2.Cells (« Connections.bas ») colle la poignée de contrôle de shpObj1 au

point de connexion de shpObj2 qui a été nommé « bas ».

L’instruction suivante utilise GlueToPos pour coller la même forme au centre de shpObj2, créant un nouveau point de connexion à cet emplacement. L’emplacement est spécifié sous la forme de valeurs proportionnelles du plan largeur-hauteur de la forme, et non sous la forme de coordonnées x,y. Pour créer un point de connexion hors de ce plan, utilisez des fractions du plan négatives ou supérieures à 1.

Collage avec la méthodeGlueToPos d’une poignée de

contrôle à un emplacement

A celObj représente la poignée de contrôle Points de contrôle.X1 de shpObj1.B GlueToPos (shpObj2,.5,.5) colle la poignée de contrôle de shpObj1 au centre de shpObj2.

REMARQUE : pour coller la forme de manière dynamique, utilisez la méthode GlueTo avec la cellule AxeX ou AxeY comme cellule de destination du collage. Le collage sur AxeX indique une préférence de déplacement horizontal alors que le collage sur AxeY indique une préférence de déplacement vertical. Toutes les autres références de cellule seront par défaut paramétrées sur le collage statique. Pour plus d’informations sur les collages statique et dynamique, effectuez une recherche dans l’aide en ligne livrée avec Visio.

�����P";���$���������P0,�"8,�"8

B

A

B

A

Page 403: MS Visio 2003 Guide du Développeur

A U T O M A T I S A T I O N D E S C O N N E X I O N S D ’ U N E S O L U T I O N V I S I O 389

Exemple de connexion de formes dans un diagramme de flux

Le programme Microsoft® Visual Basic® pour Applications (VBA) permet de dessiner sur la page de dessin Visio un diagramme de flux simple d’après les données contenues dans un tableau transmis à cette procédure sous la forme d’un argument. Le tableau est en deux dimensions ; le premier élément contient le nom de la forme de base et le second, le texte de la forme. Avant de créer le diagramme de flux, la procédure lit les données du tableau et les affiche dans la fenêtre Exécution de l’Editeur Visual Basic.

Diagramme de flux créé parCreateFlowchart

����������������)��O������)��O�����������������

����������������!����"���� X�������������� ������������������

�����2�����������!����"���� X��������������� �����������������

������������������!����"���� X������������������ �����������

�����)��O����E��������!����"E���� X������������ ����������������

�� X������������

�������������E��������!����"E���� X������������ ��������������������

����������������!����"�������� X������������������ �����������������

����1��7������������������ X���� �������������� ���� ����������

X����

����1��:������������������ X���� ��������������!���� ����������

X����

�������������!����"���� X"� # ��$������#������

�������������!����"���� X"� # �������#�����

��������������������

Début duprocessusd’emprunt

Vérif.crédit ?

Vérificationdu crédit

Envoi durefus

Fin duprocessus

Page 404: MS Visio 2003 Guide du Développeur

390 C H A P I T R E 1 9

Exemple de code (suite)

��� ��;�$���?��1��

X����������������������7,�:�J����������A��W�����A���1����

1��7��������� �B"08

1��:��������� �*'"8

X��������������1�������+��e��� �A�������

)��������� ��3���1��)��O������$��%3���1��)��O�����

�����"������)��O�����������,�'��L�#�#<��)��O�����������,�*�

2���

X�������������������������

������������� ����������"���������"��� ��.�

�#3�����)��O����������"���#,����������d�1�

Y�P���������+�������1������������J���A�A�����1���������

)��������� ��3���1��)��O������$��%3���1��)��O�����

X�������+����1������������������1��E����2����1���������������1��

X1���A��"

�����)��O����E����� ���������"E�������)��O�����������,�'��

X�P��������+����W�������

�����2�������� �����������"����)��O����E����,�1��7��������,�.�

1��:���������

X�A+�������������1�����+����1A��A�

�2�������"$���� ��)��O�����������,�*�

X������������W����+����1Y�������1A��A�,�����A�������

�+�2���������������2�������$���

X�������+����1�����������,�����A�������

�+����������E��������2�������$���

�������������E����� ���������"E������#����#�

�1��+

X�P�������������W�������������������f���������������

�������������� �����������"������������E����,�',�'�

X�����������������1��1A��

���������� ����������"������#�A��7#�

�����";���$����������"������#�����3��#�

X�����������������1��+��

���������� ����������"������#)��7#�

�����";���$���2�������"������#�����?���#�

���������"���1$�3��d

�1��+

������������� ��2�������

�����2�������� �2������

X�A+���������������:�1�����+����1Y���A�

1��:��������� �1��:���������5�*"8

2���

�������

�?��1��Z

�����"����� �

�1����

Page 405: MS Visio 2003 Guide du Développeur

Sommaire

20Intégration de données et d’une solution Visio

Si vous développez une solution qui combine des dessins Microsoft® Visio® avec une autre source de données, comme une base de données, vous serez intéressé par différents moyens d’associer des données à des formes et des pages. A l’aide des propriétés personnalisées et des cellules ShapeSheet® définies par l’utilisateur, vous pouvez associer des données à une forme ; l’utilisation d’un ID unique permet d’établir une liaison permanente entre une forme et des données externes qui lui sont associées. Vous pouvez en outre, à l’aide d’une grande variété de propriétés Visio, stocker des données pour des documents, des pages, des formes de base, des raccourcis, des formes et du texte.

Ce chapitre contient également deux exemples de code concernant l’extraction des données d’un dessin et la création d’un dessin à partir de données externes. Ces exemples représentent les deux moyens les plus utilisés par les développeurs de solution qui travaillent avec Visio et avec des données issues d’autres applications. Les deux exemples présentent quelques approches générales concernant l’intégration de données et d’une solution Visio, et sont prévus pour vous donner un aperçu de l’ensemble des solutions qu’il est possible de créer.

Association de données avec des formes à l’aide d’Automation....................... 392

Propriétés Visio pour le stockage et l’extraction des données........................... 395

Ecriture de code pour l’extraction des données d’un dessin Visio .................... 396

Ecriture de code pour la création d’un dessin Visio à partir de données .......... 401

Intégration d’une solution Visio et d’une base de données ............................... 406

Page 406: MS Visio 2003 Guide du Développeur

392 C H A P I T R E 2 0

Association de données avec des formes à l’aide d’Automation

Vous pouvez créer des propriétés personnalisées, ou récupérer et paramétrer des valeurs de propriétés personnalisées exclusivement à partir d’un programme ; vous pouvez également collecter des valeurs fournies par l’utilisateur de la solution Visio. Vous pouvez, par exemple, fournir des formes de base qui invitent l’utilisateur à remplir certaines données lorsqu’une forme de base est insérée dans un dessin, puis utiliser un programme pour rassembler ces données à partir des dessins de l’utilisateur. Pour établir des liaisons permanentes entres les données d’un dessin et une source de données externe, vous pouvez utiliser des ID uniques associés aux formes et aux formes de base.

Pour plus d’informations sur la création de cellules définies par l’utilisateur et de propriétés personnalisées, reportez-vous au chapitre 7, « Amélioration du comportement des formes ».

Ajout de lignes de propriétés personnalisées et définies par l’utilisateur Les propriétés personnalisées servent à associer les champs d’une base de données à une forme ou à une page et peuvent surtout s’avérer pratiques si vous envisagez de collecter des valeurs saisies par un utilisateur. Vous pouvez, par exemple, créer une forme de base qui invite l’utilisateur à saisir des données lorsqu’une forme est déplacée sur la page, puis utiliser le programme Microsoft® Visual Basic® pour Applications (VBA) pour rassembler les données saisies à partir du dessin terminé.

Dans les lignes définies par l’utilisateur, les cellules Valeur et Message permettent de stocker une valeur et de la retrouver ultérieurement dans le même état. Comme vous pouvez associer des noms uniques à des lignes définies par l’utilisateur, il est peu vraisemblable que d’autres programmes connaissent l’existence des cellules de ces lignes, et encore moins qu’ils tentent d’écrire dans ces cellules. Les cellules Montage, au contraire, sont susceptibles de servir dans de nombreux programmes ; les valeurs stockées dans ces cellules peuvent donc être remplacées lorsque vous vous y attendez le moins.

A l’aide de la méthode AddNamedRow, vous pouvez ajouter une ligne de propriété personnalisée ou définie par l’utilisateur dans un objet Shape. Si la section Propriétés personnalisées ou Cellules personnalisées n’existe pas, la méthode AddNamedRow l’ajoute à la feuille de calcul ShapeSheet®. Par exemple, pour ajouter à une forme une ligne définie par l’utilisateur nommée Latitude :

Ce code correspond à l’insertion d’une section Cellules personnalisées dans la feuille de calcul ShapeSheet et au remplacement du nom par défaut Util.Ligne1 par Util.Latitude.

����P"�112���1&�O�����������%��,�#������1�#,�'

Page 407: MS Visio 2003 Guide du Développeur

I N T É G R A T I O N D E D O N N É E S E T D ’ U N E S O L U T I O N V I S I O 393

Pour récupérer la cellule Valeur de la nouvelle ligne Latitude :

Une fois que vous disposez de la référence à l’objet Cell qui est la cellule Valeur, vous pouvez utiliser la propriété Formula de cet objet Cell pour récupérer ou paramétrer des valeurs. Par exemple :

Vous pouvez utiliser la même technique pour gérer les lignes de propriétés personnalisées depuis votre programme.

Pour plus d’informations sur la méthode AddNamedRow, reportez-vous à l’Annexe B, « Indices de section, de ligne et de cellule ShapeSheet » et à l’aide en ligne Référence du développeur (choisissez ? (Aide) > Référence du développeur) fournie avec Visio.

Génération et utilisation d’ID uniquesLes formes et les formes de base peuvent avoir des ID uniques que vous pouvez utiliser pour distinguer des formes identiques dans un dessin ou pour effectuer le suivi de la source originale d’une forme de base. Les solutions de base de données plus élaborées utilisent généralement des ID uniques pour créer une liaison permanente entre une forme ou une forme de base et un enregistrement dans une base de données externe. Les ID uniques permettent aux applications de relier des données aux formes de manière plus fiable qu’avec les noms de formes et les ID. Les applications de base de données pouvant utiliser des ID uniques incluent celles relatives à l’aménagement, aux systèmes d’information géographique et aux assemblages mécaniques, dans lesquelles les formes présentes dans un dessin sont associées aux différents enregistrements d’une base de données.

L’ID unique est stocké en interne sous la forme d’une valeur codée sur 128 bits et est transmis sous la forme d’une chaîne de 39 caractères à zéro terminal, formaté comme dans l’exemple suivant :

���������P� �����P"������#%���"������1�#��

�����P")������ �###BT###�

\00T=��B053*G=5**� 5TT D5''0'�)���D*=]

Page 408: MS Visio 2003 Guide du Développeur

394 C H A P I T R E 2 0

REMARQUE : si une forme dispose d’un ID unique, aucune autre forme du même document ne doit normalement disposer de cet ID. Tout comme OLE garantit des ID d’objet uniques, le moteur Visio utilise la même technologie pour générer des ID uniques et les utiliser une seule fois.

Toutefois, dans certaines circonstances, il est possible de dupliquer un ID unique. Si vous copiez un fichier de dessin ou l’enregistrez sous un nom de fichier différent, toutes ses formes et leurs ID uniques associés sont copiés. Si vous coupez par la suite une forme issue du nouveau fichier et la collez dans l’original, le fichier original contient deux formes avec des ID uniques identiques. Pour garantir des ID uniques après avoir copié un fichier, supprimez tous les ID uniques de l’un des fichiers et régénérez-les.

ID uniques pour les formes

Par défaut, les formes n’ont pas d’ID uniques, c’est le programme qui doit les générer. Pour générer l’ID unique d’une forme, utilisez la méthode UniqueID d’un objet Shape. Par exemple :

Si la forme a déjà un ID unique, cette instruction récupère l’ID ; si elle n’en a pas, l’instruction le crée.

Pour savoir si une forme a un ID unique, utilisez l’instruction suivante. Si elle n’en a pas, cette formulation renvoie une chaîne Null ("").

Pour supprimer l’ID unique d’une forme, utilisez l’instruction suivante :

Certaines opérations provoquent la suppression automatique de l’ID unique de la forme par le moteur Visio. Si vous coupez une forme pour la placer dans le Presse-papiers Windows et la collez une fois, ou si vous déplacez une forme dans une autre fenêtre de dessin, son ID unique est conservé. En revanche, si vous collez une deuxième fois la même forme stockée dans le Presse-papiers ou dupliquez la forme en maintenant la touche Ctrl enfoncée et en effectuant le déplacement, la nouvelle forme n’aura pas d’ID unique.

�������� �����P"%��J��������;���E�d�;%���

�������� �����P"%��J��������;��;%���

����P"%��J��������������;%��

Page 409: MS Visio 2003 Guide du Développeur

I N T É G R A T I O N D E D O N N É E S E T D ’ U N E S O L U T I O N V I S I O 395

Propriétés UniqueID et BaseID des formes de baseUne forme de base comporte à la fois une propriété UniqueID et une propriété BaseID ; les deux sont automatiquement générées par le moteur Visio lorsqu’une nouvelle forme de base est créée.

La propriété UniqueID d’une forme de base ne peut pas être supprimée ou attribuée à nouveau ; elle change seulement lorsque vous modifiez la forme de base ou attribuez une nouvelle BaseID. La propriété BaseID d’une forme de base ne change pas à la suite d’une opération utilisateur ; elle permet d’établir un lien avec la forme de base originale, laquelle est permanente, contrairement au nom d’une forme de base ou à une propriété UniqueID. Les propriétés BaseID peuvent être modifiées par deux propriétés : BaseID et NewBaseID. Pour plus d’informations, effectuez une recherche dans l’aide en ligne Référence du développeur (choisissez ? (Aide) > Référence du développeur) fournie avec Visio.

Vous pouvez transmettre un ID unique sous la forme d’un argument dans la méthode Item d’une collection Shapes ou Masters. Par exemple :

Propriétés Visio pour le stockage et l’extraction des données

Cette section contient des informations sur l’utilisation de propriétés pour le stockage des données d’un dessin Visio. Le tableau suivant répertorie les propriétés les plus fréquentes qui renvoient des chaînes et indique pour chaque chaîne sa taille maximale.

��������P� ������P"�����#@\00T=��B053*G=5**� 5TT D5''0'�)���D*=]#�

Extraction et stockage des propriétés de texte

PropriétéElément auquel s’applique la propriété d’objet Taille maximale

Title, Subject, Author, Manager, Company, Category, Keywords, Description, HyperlinkBase, AlternateName

Document 63 caractères

Data1, Data2, Data3 Shape Illimitée

Formula Cell Illimitée

FullName Document 255 caractères

Name Document 255 caractères

Name Layer, Master, Shortcut, Page, Shape, Style

31 caractères

NameID Shape 36 caractères

Path Document 255 caractères

Page 410: MS Visio 2003 Guide du Développeur

396 C H A P I T R E 2 0

Le moteur Visio renvoie à la fois des nombres réels et des entiers sous la forme de nombres à virgule flottante avec 15 chiffres significatifs. Pour réduire le risque d’erreur d’arrondi, attribuez des nombres aux variables Variant ou Double et stockez les nombres dans des champs avec le type de données approprié.

Les propriétés True/false comme ReadOnly, Saved ou OneD et les valeurs booléennes contenues dans les cellules ShapeSheet® ont la valeur FALSE si elles sont égales à 0 et TRUE si elles sont différentes de zéro.

Ecriture de code pour l’extraction des données d’un dessin Visio

Dans les dessins Visio, les formes contiennent de nombreuses informations. A l’aide d’Automation, vous pouvez écrire des programmes qui extraient ces informations du dessin Visio pour les utiliser dans une autre application. Vous pouvez, par exemple, utiliser les formes d’un dessin pour générer automatiquement des bons de commande. De même, vous pouvez extraire les informations des formes contenues dans un diagramme de flux pour les placer dans une feuille de calcul afin d’estimer les coûts associés à un procédé de fabrication. Vous pouvez aussi extraire des informations sur des types de données dans une solution, et éviter toute modification des données d’un dessin en enregistrant une copie des données dans un fichier externe.

Quelle que soit la manière dont vous envisagez d’utiliser les données extraites du dessin, le processus de base pour les rassembler est toujours le même. Le code présenté dans cet exemple met en évidence le regroupement des données d’un dessin Visio ; les opérations que vous effectuez sur ces données dépendent du mode d’interaction du programme avec les autres applications.

Prompt Master, Shortcut 255 caractères

Text Shape, Characters Illimitée

UniqueID Master, Shortcut, Shape 39 caractères

Extraction et stockage des propriétés de texte (suite)

PropriétéElément auquel s’applique la propriété d’objet Taille maximale

Page 411: MS Visio 2003 Guide du Développeur

I N T É G R A T I O N D E D O N N É E S E T D ’ U N E S O L U T I O N V I S I O 397

Exemple d’extraction de données d’un dessinSupposons que vous souhaitiez écrire une application qui collecte dans un dessin les informations relatives aux composants d’un réseau afin que l’utilisateur puisse générer des bons de commande. Le commercial et le client pourraient collaborer sur un dessin qui représente un nouveau système de réseau, comme celui représenté ci-dessous.

Dessin Visio d’où sont extraites lesdonnées

Sachez que vous pouvez écrire un programme Automation comme celui de l’exemple ci-dessous qui s’exécute lorsque le dessin est enregistré et qui collecte des informations sur les formes du dessin et les place dans un tableau. Vous pouvez ensuite écrire du code supplémentaire qui utilise les données de ce tableau pour générer automatiquement une commande de composants.

Données sur les formes sur la pagede dessin

&�����������������

%!���!�����������

&���������

&�����������������

&���������&���������

Référence Fabricant Coût

XYZ-543341 Dell 1995

XYZ-543342 Dell 1995

XYZ-543343 Dell 1995

ABC-499891 Dell 2150

ABC-499892 Dell 2150

ZWY-123121 Hewlet Packard 3200

Page 412: MS Visio 2003 Guide du Développeur

398 C H A P I T R E 2 0

Avec Microsoft Visual Basic pour Applications (VBA), vous pouvez écrire du code semblable à celui de l’exemple suivant qui s’exécute lorsque le dessin Visio est enregistré. Après avoir défini des variables et récupéré la collection Shapes associée à la première page du dessin, ce code définit le tableau OrderInfo pour stocker les données des formes qui seront rassemblées dans la collection. Le nom de chaque forme est identifié et ajouté au tableau avec, pour chacune d’entre elles, les informations regroupées concernant trois propriétés personnalisées : la référence, le fabricant et le coût. Une fois que vous avez regroupé ces informations pour chaque forme de la page, les résultats sont affichés dans la fenêtre Exécution pour vérification. Enfin, les données du tableau sont transmises à une autre application ou enregistrées sur disque sous la forme d’un fichier texte.

Pour une explication détaillée de ce code, reportez-vous à la section suivante intitulée « Examen du code servant à l’extraction des données d’un dessin », page 399�

�������������������.������������1�34!���1�������!���������

��������P����!����"���� X��P��������!����

���������P����!����"����� X�����������������!����

��������P����!����"���� X��P��������!����

���������P����!����"���� X��P��������!����

�����1���+������������ X$�������J��������������������1�����

X1��������1�

������������������������ X������

��������������� X������

��������P� ����������� X�����������������

���������P� �����P"����� X������������������������1��������

����������� ������P"����� X2�����������1��+����

X�A+��������������1����������J���������������+������������������W���

X+���"�

X��1����1����������������g����W�'"�B����������������J���+���

&������1���+��F,������������5�*�

X�������J���+����1���������������������2��,����&A+A����,����)�������,�

X��������h�

)���� �*�$������������

X��������U���+���

��������P� ������P���

X�������2���1�����+���

�1���+��',���5�*�� �����P"2���

X���������A�A�&A+A������������������������1�����������S��

�+�����P"���� ������#��"&A+A����#,���� �����������4��$���

���������P� �����P"������#��"&A+A����#�

�1���+��*,���5�*�� ������P"&��������##�

�1��+

Page 413: MS Visio 2003 Guide du Développeur

I N T É G R A T I O N D E D O N N É E S E T D ’ U N E S O L U T I O N V I S I O 399

Exemple de code (suite)

Examen du code servant à l’extraction des données d’un dessinL’exemple de code précédent peut être divisé en plusieurs parties : définition des variables et du tableau qui contiendra les données ; parcours par itération des formes de la collection Shapes de la page, afin de rassembler les données et de les placer dans un tableau ; affichage du tableau pour vérifier la collection des données et l’exportation des données dans une autre application.

Définition des variablesDans la première section du code, l’instruction Dim sert à définir des variables pour l’objet Page, une collection Shapes, un objet Shape et un objet Cell. Par ailleurs, un tableau appelé OrderInfo est défini, ainsi qu’un entier pour l’itération de la première boucle.

X���������A�A�)���������������������������1�����������S��

�+�����P"���� ������#��")�������#,���� �����������4��$���

���������P� �����P"������#��")�������#�

�1���+��0,���5�*�� ������P"&��������##�

�1��+

X���������A�A���h��������1����������

�+�����P"���� ������#��"��h�#,���� �����������4��$���

���������P� �����P"������#��"��h�#�

�1���+��F,���5�*�� ������P"&������%

�1��+

X���A���Y��P�������

��������P� �2������

2���

X�++�����1�������+��e��� �A�����������A�+�������1���A����������A��

)���� �'�$������P"�����"������5�*

�����"������1���+��',����L�#,#�.

L��1���+��*,����L�#,#�.

L��1���+��0,����L�#,#�.

L��1���+��F,���

2���

X���������+�����������A��������1���A��������Y������J����

X�����1��1���A��,�����������������1���1���A����������A��

X ���������1���+�

�1����

Page 414: MS Visio 2003 Guide du Développeur

400 C H A P I T R E 2 0

Une fois que les variables sont définies, la variable de la page est paramétrée sur la page active du document. La variable shpsObj définit une collection constituée de toutes les formes de la page active et iShapeCount adapte le nombre de formes à propos desquelles les informations seront rassemblées. Enfin, le tableau OrderInfo définit un tableau servant à stocker les données relatives aux quatre propriétés de chaque forme contenues de la collection Shapes de la page. Si vous travailliez dans un document contenant plusieurs pages, vous pourriez définir une boucle à incrémenter dans chaque page du document. Dans ce cas, vous pourriez soit agrandir le tableau pour qu’il contienne plusieurs collections Shapes, soit créer un tableau par page.

Rassemblement des informations sur les formes à l’aide d’une boucleLa section suivante du code complète le tableau OrderInfo avec des informations concernant toutes les formes d’une page. La variable iShapeCount stocke le nombre de formes sur la page ; l’entier de comptabilisation est défini en fonction de cette plage. Avec une instruction For…Next, l’entier commence par la première forme de la collection, rassemble des informations la concernant, libère la forme, puis rassemble les informations sur la forme suivante, jusqu’à la dernière forme de la collection.

Pour chaque forme de la collection, ce code ajoute quatre éléments d’informations dans le tableau. La propriété shpObj.Name collecte simplement le nom de la forme. Les trois champs suivants sont dessinés à partir des champs de propriétés personnalisées. Le code vérifie tout d’abord l’existence des cellules Prop.Référence, Prop.Fabricant et Prop.Coût ; si elles sont présentes, la variable celObj est attribuée tour à tour à chaque valeur de cellule, et les chaînes obtenues sont ajoutées au tableau. Dans ce code, si une cellule n’existe pas, le champ est simplement ignoré. Dans une solution plus complète, vous souhaiterez peut-être que le code réponde différemment si les cellules n’existent pas.

Vérification de la collection des donnéesAvec une deuxième instruction For…Next, la section suivante du code affiche simplement pour chaque forme de la fenêtre Exécution les informations contenues dans le tableau, séparées par des virgules. Selon l’utilisation que vous prévoyez des informations contenues dans le tableau, cette opération peut constituer une technique utile pour la résolution des problèmes.

Exportation de données dans une autre applicationCet exemple de code ne comporte pas de code destiné à l’exportation des données dans un tableau d’une autre application, car l’approche varie considérablement en fonction de l’utilisation prévue des informations et de l’application de destination.

Page 415: MS Visio 2003 Guide du Développeur

I N T É G R A T I O N D E D O N N É E S E T D ’ U N E S O L U T I O N V I S I O 401

Ecriture de code pour la création d’un dessin Visio à partir de données

Tout comme vous pouvez extraire des données d’un dessin Visio pour les utiliser dans une autre application, vous pouvez utiliser des données issues d’autres sources pour créer un diagramme. Vous pouvez, par exemple, utiliser les informations provenant d’un bon de commande de composants de réseau afin de générer un schéma d’installation ou extraire des données d’une base de données d’employés pour générer un organigramme.

Quelle que soit la manière dont vous envisagez de créer le dessin, vous devez, avant de créer du code, répondre aux questions suivantes car elles conditionnent le mode de conception :

• La création du dessin est-elle incluse dans le code ou s’agit-il d’une opération préalable effectuée par l’utilisateur ?

• La source externe des données est-elle toujours la même ou peut-elle être sélectionnée par l’utilisateur ?

• Comment choisissez-vous le gabarit contenant les formes de base nécessaires au dessin et comment ces formes s’adaptent-elles aux données ? Notez que vous pouvez créer un gabarit dans le cadre de la solution.

L’exemple de code présenté dans cette partie montre comment, à partir du contenu d’une base de données, vous pouvez créer un diagramme simple.

Exemple de création d’un dessin à partir de donnéesSupposons que vous souhaitiez écrire une application qui génère le dessin d’une installation en réseau à partir des données importées d’un bon de commande. Lorsque la vente est terminée et que la commande est saisie dans la base de données, le programme utilisant Automation, comme celui en exemple ci-dessous, peut extraire les enregistrements de cette base de données et les utiliser pour créer un dessin qui servira à l’équipe d’installation. Dans cet exemple, le code associe un champ de l’enregistrement de la base de données à une forme d’un gabarit, puis insère les occurrences des formes dans la page de dessin et ajoute les informations provenant d’autres champs sous forme de propriétés personnalisées des formes.

Enregistrements dans une base dedonnées

Hub / switch Lyon

PC PC de Jeremy

Ordinateur portable Portable de Suzanne

PDA PC de Judith

Serveur Serveur de groupe

Imprimante Laser

Page 416: MS Visio 2003 Guide du Développeur

402 C H A P I T R E 2 0

Le résultat est un dessin qui configure les nouveaux éléments du réseau client en fonction des données saisies par le commercial.

Schéma d’installation généré àpartir des enregistrements de la

base de données

Avec Microsoft Visual Basic pour Applications (VBA), vous pouvez écrire du code ressemblant à l’exemple suivant : il crée un dessin à partir d’un modèle contenant le gabarit à utiliser, puis il insère les formes choisies d’après les données lues dans la base de données. Dans cet exemple, la forme d’un hub est placée au centre de la page, puis des noeuds sont liés au hub dans un cercle. Chaque forme affiche du texte qui, dans cet exemple, pourrait inclure des notes du commercial concernant la configuration souhaitée par le client. Pour obtenir une explication détaillée de ce code, reportez-vous à la section suivante ainsi qu’à « Examen du code servant à l’extraction des données d’un dessin », page 399�

Lyon

Ordinateur de Jeremy

Ordinateur portable de Suzanne

PC de Judith

Serveur de groupe

Imprimante laser

Page 417: MS Visio 2003 Guide du Développeur

I N T É G R A T I O N D E D O N N É E S E T D ’ U N E S O L U T I O N V I S I O 403

������������������O�����

��������P?%3����!����"����

��������P2�1������!����"����

��������P������������!����"����

���������P������������!����"E����

���������P����!����"E����

���������P����!����"��������

����17,�1:����������

����1������������������

����1&�1����������

����1������1��,�1����?���������������

���������������

��������� �F"*B*8

�����������&�1���� �0

�����2�����������������

X��������1���A��

����������2������

X����1����������+�������������,������1��������FG'������������������

X1Y���A���1���������

1��������� �FG'�C�%3���1��2�������

X����������A�A������������������1�����

1������1��� �����������"���������"������#���������#�"&������%

1����?������ �����������"���������"������#?���������#�"&������%

X���������������)�����1��A�����1�������F�

���������P� ����������"���������"��� ��#)�����1��A�����1�������F�"���#,����������d�1�

Page 418: MS Visio 2003 Guide du Développeur

404 C H A P I T R E 2 0

Exemple de code (suite)

X$��������+����?���

���������P� ������P"E�������2�������',�'��

��������P?%3� �����������"��������P,�1������1���C�0,�1����?������C�0�

X�A+�������������1�����+�������

����P?%3"$���� ��2�������',�*�

X�������+����1�����������

���������P��������� ������P"E������#3����������������������#�

X$�������������1�

)���� �*�$��%3���1��2�������

���������P� ������P"E�������2��������,�'��

X�A+���������������7,�:��������������1�������������������1������

1&�1� ��1���������@����@����C�*T'

17� ������&�1����@�����1&�1��-��1������1���C�0�

1:� ������&�1����@�����1&�1��-��1����?������C�0�

X�P��������+�������1����������������1���

��������P� �����������"��������P,�17,�1:�

X�A+�������������1�����+���

����P"$���� ��2��������,�*�

X����������������1��������������

��������P��������� �����������"��������P��������,�',�'�

����P��������"���1$�3��d

X��������������1��1A����W����+�������

����P��������"������#�A��7#�";���$������P?%3"������#�����������"7*#�

X��������������1��+����������1��P���A

����P��������"������#)��7#�";���$������P"������#�����������"7*#�

2���

�1����

Page 419: MS Visio 2003 Guide du Développeur

I N T É G R A T I O N D E D O N N É E S E T D ’ U N E S O L U T I O N V I S I O 405

Examen du code pour la création d’un dessin à partir de donnéesL’exemple de code précédent peut être divisé en trois parties distinctes : le paramétrage du programme, l’ajout de la forme de hub sur la page et l’ajout des formes de noeud sur la page et leur liaison au hub.

Paramétrage du programmeLa première section du code permet de définir les constantes et les variables que le programme utilise. Ensuite, le tableau contenant les données servant à la création du dessin est défini et initialisé. Enfin, les dimensions de la page sont déterminées (ces informations serviront ultérieurement de base pour le centrage de la forme du hub), et le gabarit utilisé par ce dessin est ouvert. Dans une solution plus élaborée, il serait possible de créer un code qui permette à l’utilisateur de choisir le gabarit à ouvrir. De même, les informations du gabarit pourraient être importées en tant que données, plutôt que d’être codées comme c’est le cas ici.

Ajout de la forme de hub sur la pageDans ce programme, les noeuds sont reliés à un hub qui est centré sur la page du document. La section suivante du code lit le tableau importé pour identifier la forme de base à utiliser pour la forme du hub, insère une occurrence de cette forme de base au centre de la page et paramètre le texte de la forme. La forme de lien est ensuite identifiée, mais ses occurrences ne sont pas déplacées sur la page tant que les formes de noeud ne sont pas ajoutées au dessin.

Ajout de formes de noeud sur la page et liaison de ces formes au hubLa partie finale de ce programme contient une boucle qui correspond à un champ contenu dans chaque enregistrement du tableau importé avec une forme de base dans le gabarit ouvert. Une fois la forme de base identifiée, le code détermine l’emplacement de l’occurrence de la forme ; les formes sont ajoutées sur la page et sont organisées en cercle autour du hub. Une fois la forme placée à l’emplacement exact, la forme du lien identifiée ci-dessus est ajoutée sur la page. Son point de départ est relié à la forme du hub et son point de fin à la nouvelle forme de noeud. Ce procédé est répété pour chaque enregistrement du tableau, jusqu’à ce que le dessin soit terminé.

Page 420: MS Visio 2003 Guide du Développeur

406 C H A P I T R E 2 0

Intégration d’une solution Visio et d’une base de données

L’intégration d’une solution Visio avec une base de données exige une planification qui permette de synchroniser les dessins avec la base de données. Il est important de connaître la base de données à utiliser, les éléments à modifier, ainsi que le mode et le moment de la modification.

Vous pouvez, par exemple, développer une solution dans laquelle chaque forme de base correspond à une pièce référencée dans un catalogue de fabricant. Si vous stockez un numéro de référence en tant que propriété personnalisée de chaque forme de base, il devient plus facile de consulter les informations relatives aux pièces dans une version du catalogue stockée sous forme de base de données. En revanche, la correspondance entre la base de données et les dessins créés à partir de la solution n’est pas nécessairement 1-1 ; il peut en effet y avoir 20 occurrences d’une forme de base dans un dessin, toutes possédant le même numéro de référence. La suppression d’une forme dans le diagramme ne doit pas supprimer cette pièce de la base de données, mais une mise à jour de la base de données doit identifier les composants utilisés dans le dessin et qui ne sont plus disponibles.

Par ailleurs, pour vérifier l’exactitude d’un dessin, le développeur de solutions peut créer un modèle externe des composants et de leurs interconnexions, et stocker le modèle externe dans un référentiel de données ou le placer provisoirement en mémoire. Comme le modèle doit représenter à la fois l’inventaire des pièces et leurs interconnexions, il peut être composé de plusieurs tableaux liés. Dans ce modèle, chaque composant du dessin nécessite un identificateur unique en plus de son numéro de référence, afin que les composants identiques du dessin puissent être distingués les uns des autres dans le modèle. Le plus judicieux est de synchroniser le modèle externe avec le dessin en temps réel de manière à ce que, lorsque l’utilisateur ajoute des formes de composant dans le dessin, la solution puisse ajouter un noeud correct au modèle et se comporter de manière identique si l’utilisateur a supprimé une forme ou une connexion.

En revanche, la suppression d’une forme a généralement plus de conséquences que la simple suppression d’un enregistrement dans le tableau contenant l’ensemble des composants ; le tableau qui enregistre les connexions entre les composants devra également être modifié. En général, une opération effectuée dans le dessin correspond à une transaction à exécuter dans la base de données, non pas à une simple insertion ou suppression d’enregistrement.

De même, dans la solution d’une entreprise organisée en services, la suppression d’un poste de directeur de l’organigramme ne justifie pas, tant que la nouvelle organisation n’a pas été créée et approuvée par la direction, la suppression de l’enregistrement de l’employé de la base de données des ressources humaines de l’entreprise. A l’inverse, les organigrammes doivent être synchronisés avec un modèle de données central représentant la réorganisation.

Page 421: MS Visio 2003 Guide du Développeur

I N T É G R A T I O N D E D O N N É E S E T D ’ U N E S O L U T I O N V I S I O 407

Après la création des interactions entre une solution et une base de données, la solution peut apporter des modifications en effectuant les opérations suivantes :

• Elle gère ShapeAdded, ShapesDeleted, ConnectionsAdded, ConnectionsDeleted, TextChanged et les autres événements Visio et met à jour la base de données au fur et à mesure que l’utilisateur modifie le dessin.

• Elle gère les événements DocumentOpen et BeforeDocumentClose et effectue des mises à jour automatiques ou synchronise la base de données lorsque l’utilisateur ouvre et ferme le dessin.

• Elle crée un programme externe qui effectue une requête dans le dessin Visio pour extraire les données si nécessaire, par exemple à la demande de l’utilisateur.

• Elle stocke toutes les données de la solution dans une base de données externe et utilise les données associées à des formes Visio, comme une propriété personnalisée, sous la forme d’un attribut-clé permettant d’accéder aux enregistrements de la base de donnée externe.

L’Assistant Base de données livré avec le produit Visio permet d’ajouter des cellules définies par l’utilisateur et de lier des cellules de propriétés personnalisées aux champs de la base de données pour obtenir des solutions simples ou pour effectuer le prototype de solutions plus complexes. Pour accéder aux bases de données par l’intermédiaire d’ODBC (Open Database Connectivity) ou à l’aide du moteur Jet, vous pouvez utiliser la bibliothèque d’objets DAO (Data Access Objects) fournie par Microsoft. Vous pouvez aussi paramétrer la solution Visio pour qu’elle appelle un serveur Automation qui met à jour la base de données et la synchronise, ce qui vous permet d’avoir un contrôle plus précis sur l’intégrité de la base de données.

Page 422: MS Visio 2003 Guide du Développeur
Page 423: MS Visio 2003 Guide du Développeur

Sommaire

21Gestion des événements dans Visio

Un événement est un fait qui se produit. Dans Microsoft® Visio®, les événements résultent des actions de l’utilisateur : ouvrir ou fermer des documents, insérer ou supprimer des formes dans la page de dessin, modifier le texte ou les formules des formes. Il est très utile de savoir que ces événements se produisent : votre solution peut ainsi gérer des actions utilisateur qui seraient sinon difficiles à prévoir.

Vous pouvez gérer les événements dans un programme ou par l’intermédiaire des formules Visio. Comme pour toutes les solutions Visio, commencez par intégrer le maximum de la fonctionnalité dans des formules. Pour plus d’informations sur la gestion des événements à l’aide de formules, reportez-vous au chapitre 7, « Amélioration du comportement des formes »�

Visio propose deux modes de gestion des événements dans un programme :

• Dans Microsoft® Visual Basic® pour Applications (VBA) ou dans les programmes Microsoft® Visual Basic®, l’approche la plus simple consiste à utiliser le mot-clé WithEvents car il permet de déclarer des variables objet pouvant recevoir des événements. Cela s’appelle rédiger du code pour les événements. Le mot-clé WithEvents a été introduit dans VBA 5.0 (fourni avec Visio 4.5) et Visual Basic 5.0.

• Vous pouvez créer des objets Event Visio qui permettent de lancer un programme complémentaire ou de signaler à un programme le déclenchement d’un événement. Cette technique peut être utilisée dans tout environnement de développement. Elle représentait l’unique moyen de gérer les événements Visio via Automation dans les versions antérieures à VBA ou à Visual Basic 5.0.

Pour plus d’informations sur la gestion des événements dans un programme C++, reportez-vous au chapitre 27, « Programmation de Visio avec C++ »��

Présentation des événements ............................................................................... 410

Rédaction du code pour les événements ............................................................. 411

Objets Event Visio .................................................................................................. 420

Page 424: MS Visio 2003 Guide du Développeur

410 C H A P I T R E 2 1

Présentation des événements

Au cours des chapitres précédents, vous avez vu comment contrôler les objets Visio à l’aide d’Automation de manière à récupérer et à définir des propriétés, et à appeler des méthodes. Cette communication unidirectionnelle a des limites : le programme peut donner des instructions à Visio, mais ne peut pas savoir ce qui se passe dans Visio sans vérifier de manière explicite tous les cas de figure possibles. Les événements permettent aux objets et à leurs clients d’établir une communication bidirectionnelle.

La différence entre l’utilisation des événements d’un objet, d’une part, et celle des méthodes et des propriétés de cet objet, d’autre part, est la suivante : les propriétés et les méthodes sont définies et mises en place par Visio ; les événements, en revanche, sont définis par Visio, mais il vous incombe de rédiger le code qui permet de les mettre en oeuvre.

La figure suivante illustre comment un programme appelle Visio afin de mettre en oeuvre les propriétés et les événements, et comment Visio appelle ce programme afin de mettre en oeuvre les événements.

Interaction entre Visio et unprogramme client

Un événement comporte un sujet et une source, qui sont généralement des objets distincts. Le sujet d’un événement est l’objet sur lequel porte l’événement. Par exemple, le sujet d’un événement ShapeAdded est l’objet Shape qui est ajouté.

La source d’un événement est l’objet qui produit cet événement. La plupart des événements ont plusieurs sources potentielles. L’objet source sélectionné détermine la portée du déclenchement de l’événement : plus l’objet source est à un niveau élevé dans la hiérarchie des objets, plus sa portée est importante. Par exemple, si la source est un objet Page, l’événement ShapeAdded est déclenché chaque fois qu’une forme est insérée dans cette page. Si la source est l’objet Application, l’événement ShapeAdded est déclenché chaque fois qu’une forme est insérée dans l’une des pages d’un document ouvert dans Visio.

Programme client

Objet Visio

Propriétés etméthodes

Evénements

Page 425: MS Visio 2003 Guide du Développeur

G E S T I O N D E S É V É N E M E N T S D A N S V I S I O 411

Evidemment, plus un événement est déclenché souvent, plus il risque d’avoir des conséquences sur les performances de la solution. Il est donc conseillé, lorsque vous choisissez un objet source, de réfléchir à la portée de l’événement pour le gérer au mieux.

Les événements pouvant être déclenchés par un objet source constituent le groupe d’événements de cet objet. Vous pouvez les afficher dans l’explorateur d’objets de l’Editeur Visual Basic dans Microsoft Visual Basic pour Applications (VBA) ou dans Visual Basic. Un objet Visio pouvant déclencher des événements repère les membres de son groupe d’événements par le symbole d’un éclair. Pour rechercher des événements par objet ou par nom, ou pour afficher la liste complète des événements, reportez-vous à l’aide en ligne Référence du développeur (accessible via ? (Aide) > Référence du développeur) fournie avec Visio.

Rédaction du code pour les événements

Si vous avez déjà rédigé du code en Microsoft Visual Basic, vous avez sans doute déjà écrit des procédures d’événement. Une procédure d’événement contient du code qui s’exécute au déclenchement d’un événement. Par exemple, un bouton d’un formulaire Visual Basic comporte généralement une procédure permettant de gérer l’événement Click. La rédaction du code pour les événements dans l’environnement VBA de Visio est identique à celle du code pour les événements dans toute autre application hôte VBA (par exemple, dans toute application Microsoft® Office).

Chaque projet VBA dans Visio est conçu pour capturer les événements déclenchés par l’objet Document associé au projet (ThisDocument). Pour répondre aux événements déclenchés par d’autres objets Visio, vous pouvez déclarer des variables objet à l’aide du mot-clé WithEvents, qui met à disposition tous les événements définis pour un type d’objet donné et qui fournit la structure des procédures de gestion des événements du projet. Il ne vous reste plus qu’à rédiger le code pour les événements à gérer.

Vous devez déclarer les variables objet WithEvents dans des modules de classe. Vous pouvez les déclarer dans la classe ThisDocument, module de classe par défaut de tout projet VBA dans Visio, ou dans un autre module de classe que vous insérez dans le projet.

La rédaction du code pour des événements est également un moyen de gérer les événements déclenchés par des contrôles Microsoft® ActiveX® que vous avez insérés dans un projet. Pour plus d’informations sur la gestion des événements pour un contrôle ActiveX, reportez-vous au chapitre 23, « Utilisation de contrôles ActiveX dans une solution Visio »�

Page 426: MS Visio 2003 Guide du Développeur

412 C H A P I T R E 2 1

REMARQUE : la rédaction du code pour des événements à l’aide du mot-clé WithEvents est une fonctionnalité propre à VBA et à Visual Basic. Si vous rédigez un programme dans un autre environnement, reportez-vous à la section « Objets Event Visio », page 420, ou consultez votre documentation COM (Component Object Model) pour obtenir des informations sur la mise en oeuvre d’interfaces prenant en charge les objets connectables COM.

Toutes les informations fournies dans cette section sont également valables pour les projets Visual Basic autonomes, à l’exception suivante près : vous devez définir une référence à une bibliothèque de types Visio dans votre projet Visual Basic. Choisissez Projet > Références, puis sélectionnez Visio 2000 Type library (la bibliothèque de types Microsoft® Visio® 2000).

Gestion des événements déclenchés par ThisDocumentTous les projets VBA dans Visio comportent un module de classe ThisDocument qui répond automatiquement aux événements déclenchés par l’objet Document associé au projet.

Pour plus d’informations sur l’utilisation de l’Editeur Visual Basic, reportez-vous au chapitre 15, « Programmation dans Visio avec Microsoft VBA ».

Pour créer une procédure d’événement dans ThisDocument :

1 Double-cliquez sur ThisDocument dans l’explorateur de projet : la fenêtre de code associée au document apparaît. (Si l’explorateur de projet n’apparaît pas dans l’Editeur Visual Basic, choisissez Affichage > Explorateur de projet.)

La zone de liste dans l’angle supérieur gauche de la fenêtre de code est la zone des objets ; la zone de liste dans l’angle supérieur droit est la zone des procédures.

2 Cliquez sur Document dans la zone de liste des objets ; l’événement défini pour un objet Document apparaît dans la zone des procédures.

Page 427: MS Visio 2003 Guide du Développeur

G E S T I O N D E S É V É N E M E N T S D A N S V I S I O 413

3 Sélectionnez un événement dans la zone de liste des procédures : VBA crée alors une procédure d’événement vide dans laquelle vous pouvez rédiger le code de gestion de l’événement. Les procédures d’événement sont toujours intitulées object_event.

Fenêtre de code ThisDocument

A Zone des objetsB Structure de la procédureC Zone des procédures

Par exemple, le programme suivant gère deux événements, DocumentOpened et ShapeAdded, qui permettent de faire le suivi du nombre de formes venant de la forme de base appelée Carré et que l’utilisateur ajoute au dessin :

• Le gestionnaire d’événements DocumentOpened est exécuté lors de la création d’un document à l’aide du modèle contenant ce code. Le gestionnaire crée une variable de type entier, intSquares, qui stocke le décompte.

A B C

Page 428: MS Visio 2003 Guide du Développeur

414 C H A P I T R E 2 1

• Le gestionnaire d’événements ShapeAdded est exécuté chaque fois qu’une forme est insérée dans la page de dessin, qu’elle vienne d’un gabarit, qu’elle soit dessinée directement sur la page à l’aide d’un outil de dessin ou qu’elle soit collée depuis le Presse-Papiers de Windows. Le gestionnaire vérifie la propriété Forme de base du nouvel objet Shape et, si cette forme est basée sur la forme de base Carré, incrémente la valeur de la variable intSquares.

Pour gérer les événements déclenchés par ThisDocument (récapitulatif) :

1 Ouvrez l’Editeur Visual Basic en cliquant sur le bouton Editeur Visual Basic ( ��

de la barre d’outils Développeur ou choisissez Outils > Macros > Editeur Visual Basic.

2 Dans l’explorateur de projet, double-cliquez sur ThisDocument pour ouvrir la fenêtre de code correspondante.

3 Sélectionnez Document dans la zone de liste des objets : les événements déclenchés par un document apparaissent dans la zone des procédures.

4 Sélectionnez l’événement à gérer : Visio crée une procédure d’événement vide pour cet événement.

5 Remplissez la procédure d’événement en indiquant le code à exécuter lorsque l’événement se produit.

X2�����1����A���P���A�����1�����

��������J��������������

�������������������.������������1�34!�����������!���������

X���������������1��������1����A���P���A�

����J����� �'

�1����

�������������������.�����11�1�34!������������!�����

����������P����E����

X���������A�A�E�����1�����+���

����������P� �����"E����

X!A�+���������+����������+����1������"�

X�������Y�����������������+���������AA������������

�+�2�����������P����2���������$���

X!A�+���������+����1�����������i��Ab

�+�������P"2���� �#�J���#�$���

X���A����������������W����J�����A��P���A

����J����� �����J�����-�*

�1��+

�1��+

E��3���#2�����1����A��Z�#�L�����J����,�����+�������

�1����

Page 429: MS Visio 2003 Guide du Développeur

G E S T I O N D E S É V É N E M E N T S D A N S V I S I O 415

Déclaration d’une variable objet à l’aide du mot-clé WithEventsPour gérer les événements déclenchés par des objets Visio différents du document du projet, vous pouvez utiliser le mot-clé VBA WithEvents pour déclarer une variable objet correspondant à l’objet Visio dont vous voulez gérer les événements. L’exemple suivant décrit la définition d’une variable objet visant à gérer les événements déclenchés par un objet Page.

Dans ThisDocument, vous déclarez une variable objet en utilisant le mot-clé WithEvents et un type d’objet Visio :

En plus de permettre d’accéder aux propriétés et aux méthodes d’un objet, l’utilisation du mot-clé WithEvents dans cette déclaration donne à la variable objet la possibilité de gérer les événements déclenchés par l’objet Page auquel elle est associée. Tous les événements du groupe d’événements de l’objet sont déclenchés et vous fournissez le code de gestion des événements.

En déclarant cette variable WithEvents comme type Visio.Page, VBA peut identifier la bibliothèque de types (Visio) et le groupe d’événements (Page) à capturer. Désormais, lorsque vous sélectionnez pageObj dans la zone de liste des objets de l’Editeur Visual Basic, les événements déclenchés par l’objet Page apparaissent dans la zone des procédures.

Par exemple, la procédure d’événement suivante indique le nom des formes sélectionnées dans la fenêtre Exécution chaque fois qu’une forme est supprimée de la page active du projet, représentée par pageObj :

Pour que cette procédure soit exécutée, toutefois, vous devez lier l’objet déclaré (pageObj) à une occurrence de l’objet. Comme cette liaison doit être exécutée avant le déclenchement de l’événement BeforeShapeDelete, vous pouvez la placer dans une procédure d’événement qui sera exécutée avant BeforeShapeDelete, par exemple celle de l’événement DocumentOpened du document.

�������� �����������P����!����"����

����������������P.3�+�������������34!������������!�����

�����"���������"2���

�1����

�������������������.������������1�34!���1�������!���������

���������P� �����������

�1����

Page 430: MS Visio 2003 Guide du Développeur

416 C H A P I T R E 2 1

Une fois que vous avez terminé avec la référence d’objet, libérez la référence de variable. Cela correspond à ce qui se passe généralement dans le gestionnaire d’événements BeforeDocumentClose. Par exemple :

Pour plus d’informations sur le mot-clé WithEvents, consultez votre documentation Microsoft Visual Basic ou VBA.

Pour déclarer une variable objet WithEvents dans ThisDocument (récapitulatif) :

1 Ouvrez l’Editeur Visual Basic et double-cliquez sur l’objet ThisDocument dans l’explorateur de projet.

2 Dans la fenêtre de code, définissez la variable objet à l’aide du mot-clé Visual Basic WithEvents dans la section Général du module.

3 Sélectionnez l’objet dans la zone de liste des objets : les événements déclenchés par cet objet apparaissent dans la zone des procédures.

4 Sélectionnez l’événement à gérer : Visio crée une procédure d’événement vide pour cet événement.

5 Remplissez la procédure d’événement en indiquant le code à exécuter lorsque l’événement se produit.

6 Affectez la valeur de l’occurrence de l’objet à la variable objet.

7 Affectez la valeur Nothing à la variable une fois que vous avez terminé.

Définition d’une classe recevant des événementsVous pouvez accélérer le processus de traitement des événements déclenchés par un type précis d’objet Visio en définissant une classe destinée à recevoir les variables d’événement et le code de gestion de l’événement. La rédaction du code pour les événements dans un module de classe est très semblable à la rédaction du code pour les événements dans ThisDocument. Toutefois, lorsque vous utilisez un module de classe destiné à recevoir des événements, vous devez créer une occurrence de la classe et l’associer à un objet réel. (L’objet ThisDocument est instancié et lié à l’objet Document associé au projet par défaut.)

Lorsque vous gérez des événements dans un autre module de classe, vous rédigez du code à deux endroits, dans le module de classe et dans le programme :

• Le module de classe comporte des déclarations de variable WithEvents du niveau du module, du code dans des procédures d’événement (code pour les événements) et du code pour lier la variable aux objets Visio qui déclenchent les événements.

�������������������.3�+����������������34!���1�������!���������

���������P� �2������

�1����

Page 431: MS Visio 2003 Guide du Développeur

G E S T I O N D E S É V É N E M E N T S D A N S V I S I O 417

• Le programme (généralement ThisDocument) comporte des déclarations de variable du niveau du module du type de classe, et du code qui crée et attribue une occurrence de la classe à ces variables.

Code dans le module de classePour ajouter une classe à un projet, choisissez Insertion > Module de classe. Vous pouvez attribuer n’importe quel nom à cette classe. Vous allez placer dans cette classe la totalité du code de gestion des événements. Prenez l’exemple suivant : vous souhaitez gérer des événements provenant de Visio dans un projet (dans ce cas, l’objet source est un objet Application).

1 Dans le module de classe, déclarez une variable WithEvents du niveau du module à l’aide de l’instruction suivante :

2 Une fois que vous avez déclaré cette variable, appObj apparaît dans la zone des objets du module de classe. Lorsque vous le sélectionnez, les événements valides pour cet objet apparaissent dans la zone des procédures. Sélectionnez un événement dans cette zone : une procédure vide est ajoutée au module de classe et vous pouvez placer le code pour l’événement sélectionné. Par exemple, la solution peut collecter des informations relatives aux formes du dessin qu’elle traitera au déclenchement de l’événement NoEventsPending.

3 Vous devez associer la variable WithEvents à un objet source réel. Pour ce faire, utilisez l’instruction Set. La variable WithEvents est généralement attribuée dans la procédure Initialize du module de classe et paramétrée sur la valeur Nothing dans l’événement Terminate du module.

Code dans le programmeLe gestionnaire d’événements est installé, mais il ne sera pas activé tant que vous n’aurez pas défini et créé une occurrence de la classe.

1 Ajoutez une référence à la classe à l’aide de l’instruction suivante (généralement du niveau du module) :

�������� ���������P����!����"���������

�������P� ����������

����E�������*����E4���d�����

Page 432: MS Visio 2003 Guide du Développeur

418 C H A P I T R E 2 1

2 Créez une occurrence de la classe. Par exemple, si vous souhaitez répondre à des événements déclenchés par l’objet Application comme l’indique la section précédente, vous pouvez créer une occurrence du module de classe dans l’événement DocumentOpened du document. Pour créer une occurrence du module de classe, utilisez le mot-clé New :

Lorsque vous créez une occurrence de la classe, son événement Initialize est déclenché et la variable WithEvents est liée à un objet réel (reportez-vous à l’étape 3 de la procédure indiquée à la section précédente). Une fois que vous avez terminé avec l’occurrence de la classe, libérez-la en lui attribuant la valeur Nothing. Cela correspond à ce qui se passe généralement dans l’événement BeforeDocumentClose du programme :

Pour plus d’informations sur le mot-clé New, consultez votre documentation Visual Basic ou VBA.

Pour créer un module de classe dans un projet destiné à recevoir des événe-ments (récapitulatif) :

1 Insérez un module de classe dans le projet.

2 Déclarez une variable objet du niveau du module à l’aide du mot-clé WithEvents dans le module de classe.

3 Dans le module de classe, sélectionnez la variable objet dans la zone de liste des objets ; les événements qui peuvent être gérés par cette variable apparaissent dans la zone des procédures.

4 Sélectionnez l’événement à gérer et placez le code dans la structure de la procédure.

5 Créez une occurrence du module de classe dans le programme.

6 Paramétrez la variable WithEvents sur l’objet source dont vous souhaitez recevoir les événements.

Exemple de module de classe répondant aux événements L’exemple suivant présente un projet Visio qui utilise une variable WithEvents pour contrôler les événements se produisant dans Visio. Lorsque ce projet est exécuté, ce gestionnaire d’événements affiche le document et le nom de toutes les formes ajoutées à tous les documents ouverts dans Visio.

����E�������*� �2�O�E4���d�����

����E�������*� �2������

Page 433: MS Visio 2003 Guide du Développeur

G E S T I O N D E S É V É N E M E N T S D A N S V I S I O 419

Le projet définit une classe intitulée Listener. Dans la classe Listener, procédez de la manière suivante :

• Déclarez une variable WithEvents privée de type Visio.Application.

• Rédigez le code pour l’événement ShapeAdded de l’application.

• Liez la variable WithEvents à un objet Application lorsque la classe Listener est instanciée et annulez cette liaison lorsque la classe est terminée.

Dans ThisDocument :

• Définissez une variable de type Listener.

• Créez une occurrence de Listener lorsque le document entre en mode d’exécution, et libérez l’objet lorsque le document entre en mode de conception ou que le document est fermé.

X��1��1���������1����1������������A��������

�������� �������.�����!����"���������

����������������.��������I���

�����.�� ����������

�1����

����������������.$���������

�����.�� �2������

�1����

������������.�.�����11�1�34!������������!�����

�����"���������"��������"2���<�#C#<�����"2���

�1����

X��1��1����$�����������

�����.������������������

�������������������.&��E�1� ����1�34!���1�������!���������

�����.�������� �2�O��������

�1����

�������������������.������E�1� ����1�34!���1�������!���������

�����.�������� �2������

�1����

�������������������.3�+����������������34!���1�������!���������

�����.�������� �2������

�1����

Page 434: MS Visio 2003 Guide du Développeur

420 C H A P I T R E 2 1

Objets Event Visio

Un objet Event Visio associe un événement à une action, qu’il s’agisse de lancer un programme complémentaire ou de signaler à un objet du programme (également appelé objet récepteur ou récepteur d’événements) que l’événement s’est produit. La solution crée des objets Event décrivant les événements à gérer et indique à l’application Visio l’action qu’elle doit exécuter. Lorsque l’événement se produit, l’objet Event est déclenché et lance son action.

Vous devez commencer par déterminer le type d’objet Event nécessaire à votre solution. Quel est l’objet source ? Quels événements devez-vous recevoir ? Comment la solution va-t-elle répondre aux événements qu’elle reçoit ? Une fois que vous avez défini ces paramètres, créez un objet Event qui lance un programme complémentaire ou qui reçoit des notifications.

REMARQUE : dans les versions antérieures à Microsoft Visual Basic 5.0 et à Visual Basic pour Applications (VBA) 5.0, cette procédure était la seule façon de créer un gestionnaire d’événements dans Visio. Si vous développez des solutions dans un autre langage que VBA, cela reste généralement la meilleure technique. Mais si vous développez des solutions dans Visual Basic ou VBA 5.0 (ou versions ultérieures), vous préférerez peut-être rédiger du code pour les événements. Pour plus d’informations sur la rédaction du code pour les événements dans Visio, reportez-vous à la section « Rédaction du code pour les événements », page 411.

Définition de l’objet EventAvant de créer un objet Event, vous devez définir les paramètres suivants :

• La portée du déclenchement de l’objet Event.

• Le ou les événements que vous devez recevoir.

• L’action à exécuter au déclenchement de l’événement : exécution d’un programme complémentaire ou envoi d’une notification à un objet dans un programme en cours d’exécution.

Définition de la portéeLa portée détermine l’objet source dont la collection EventList reçoit l’objet Event. Tout objet comportant une collection EventList peut être source d’événements. Pour une question de performances, ajoutez l’objet Event à la collection EventList de l’objet le plus bas dans la hiérarchie qui peut déclencher l’objet Event dans la portée souhaitée.

Page 435: MS Visio 2003 Guide du Développeur

G E S T I O N D E S É V É N E M E N T S D A N S V I S I O 421

Indication du ou des événements déclenchant une actionVous indiquez l’événement qui vous intéresse en fournissant son code d’événement dans la méthode Add ou AddAdvise. Dans la bibliothèque de types Visio, les codes d’événement ont pour préfixe visEvt. Dans certains cas, le code d’événement est une combinaison de plusieurs codes. Par exemple, le code d’événement pour ShapeAdded est visEvtAdd + visEvtShape. Dans certains cas, vous pouvez combiner des codes de manière à indiquer un intérêt dans plusieurs événements par un même objet Event. Par exemple, le code d’événement visEvtAdd + visEvtPage + visEvtShape signale que vous êtes intéressé par ShapeAdded et par PageAdded.

Lors du déclenchement d’un objet Event, le moteur Visio transmet le code de l’événement qui s’est produit, même si le code d’événement de l’objet Event signale plusieurs événements. Pour reprendre le dernier exemple, lors de l’ajout d’une page, le moteur Visio transmet le code d’événement visEvtAdd + visEvtPage.

REMARQUE : Visual Basic et VBA renvoient un message d’erreur de dépassement lorsqu’ils exécutent des instructions utilisant visEvtAdd. Par exemple :

�������� ��������"�11�1�������� ���11�-���� ������,����d��P,�##,�##�

Les facteurs suivants génèrent un problème de dépassement :

• Le premier argument de la méthode AddAdvise est un nombre entier codé sur 2 octets.

• Comme visEvtAdd est déclaré comme membre d’une énumération de la bibliothèque de types Visio, il est traité comme un entier sur 4 octets.

• La valeur de visEvtAdd est &H8000.

• Visual Basic et VBA ne prennent pas en charge les valeurs arithmétiques sans signe.

Comme visEvtAdd est une valeur codée sur 4 octets, que Visual Basic et VBA considèrent comme positive, visEvtAdd+visEvtShape est traité comme 32768+64 = 32832, qui est en dehors de la plage des valeurs possibles pour une valeur avec signe codée sur 2 octets.

Si visEvtAdd est déclaré de manière explicite en tant que quantité codée sur 2 octets avec la valeur &H8000, Visual Basic et VBA la considèrent comme négative, et visEvtAdd+visEvtShape est traité comme –32768+64 = –32704, qui est dans la plage des valeurs avec signe codées sur 2 octets possibles.

Pour déclarer visEvtAdd en tant que valeur codée sur 2 octets dans un programme, ajoutez l’instruction suivante :

;��������������� ���11K� �L?T'''

Un autre moyen permettant d’utiliser visEvtAdd consiste à inclure Visconst.bas dans le projet. Pour localiser le fichier Visconst.bas, reportez-vous à la section « Matériaux de référence en ligne », page 4. Pour ajouter un fichier à un projet VBA, choisissez Fichier > Importer un fichier. Pour ajouter un fichier à un projet Visual Basic, choisissez Projet > Ajouter un fichier.

Page 436: MS Visio 2003 Guide du Développeur

422 C H A P I T R E 2 1

Choix de l’action à exécuterL’action à déclencher détermine la méthode à employer pour créer l’objet Event, Add ou AddAdvise. Une fois que vous avez choisi l’objet source, vous pouvez créer l’objet Event en l’ajoutant à la collection EventList de l’objet source.

• Pour exécuter un programme complémentaire ou un autre programme externe, créez un objet Event à l’aide de la méthode Add de la collection EventList de l’objet source.

• Pour envoyer une notification, créez un objet Event à l’aide de la méthode AddAdvise de la collection EventList de l’objet source. Vous devez également indiquer à Visio l’objet qu’il faut notifier. Cela correspond à une référence au récepteur d’événements.

Pour plus d’informations sur les méthodes Add et AddAdvise, reportez-vous à l’aide en ligne Référence du développeur (accessible via ? > Référence du développeur) fournie avec Visio.

Obtention d’informations concernant un objet EventUne fois que vous avez créé un objet Event, vous pouvez obtenir des informations le concernant en effectuant une requête sur ses propriétés (en suivant la procédure décrite dans l’aide en ligne Référence du développeur fournie avec Visio). Par ailleurs, la propriété EventInfo de l’objet Application fournit des informations supplémentaires sur certains événements après leur déclenchement. Par exemple, une fois que l’événement ShapesDeleted a été déclenché, vous obtenez les noms des formes supprimées de la propriété EventInfo.

Comme il n’existe qu’une propriété EventInfo pour de nombreux événements potentiels, vous devez préciser l’événement à gérer lorsque vous récupérez EventInfo. Pour ce faire, transmettez le numéro de séquence de l’événement (que Visio transmet en tant que troisième argument lorsqu’il appelle VisEventProc sur l’objet récepteur correspondant), ou transmettez visEvtIDMostRecent pour l’événement le plus récent. Si vous ne précisez aucune autre information pour l’événement, EventInfo renvoie une chaîne vide.

Pour plus d’informations sur les données transmises par un événement donné, effectuez une recherche à l’aide de cet événement dans l’aide en ligne Référence du développeur fournie avec Visio.

Page 437: MS Visio 2003 Guide du Développeur

G E S T I O N D E S É V É N E M E N T S D A N S V I S I O 423

Création d’un objet Event exécutant un programme complémentaireVous créez un objet Event qui lance un programme complémentaire à l’aide de la méthode Add de la collection EventList. Pour créer un objet Event qui lance un programme complémentaire, vous appelez la méthode Add avec les arguments suivants :

• Le code du ou des événements à gérer.

• Le code d’action visActCodeRunAddon.

• Le nom du programme complémentaire à exécuter.

• La chaîne d’arguments à transmettre au programme complémentaire lorsque l’objet Event est déclenché (facultatif).

Lors du déclenchement de l’objet Event, Visio transmet la chaîne d’arguments en tant qu’arguments de ligne de commande si le programme complémentaire est un fichier .EXE, ou en tant que champ lpCmdLineArgs de la structure VAOV2LSTRUCT transmise à un programme complémentaire mis en oeuvre par une bibliothèque Visio (VSL).

Par exemple, le code suivant crée un objet Event qui exécute le programme complémentaire Showargs.exe et transmet la chaîne « /args=Forme ajoutée ! » en tant qu’argument de ligne de commande. L’objet Event est ajouté à la collection EventList du document.

Lorsqu’une forme est insérée dans une page du document, l’événement ShapeAdded déclenche le lancement du programme complémentaire Showargs.exe, dont l’objectif est d’identifier la forme ajoutée avec la chaîne « Forme ajoutée ! ».

�����������)��.���1��

������������P����!����" ��������

����1����P����!����"��������

X�A�������������1������

X%��������������1APW�A�A�������A��W��.�!����"

����1����P� ��.�!����"���������"�11�##�

X������������������ ���������1�����1�������

������������P� �1����P" ��������

X�P����������P��� �����J����Y��A���������1A������������1YA�A������

��������P"�11���� �������-���� ���11,���������1�&���11��,�.

#�?���&;�" 7 #,�#C��� )�����P���A��9#

�1����

Page 438: MS Visio 2003 Guide du Développeur

424 C H A P I T R E 2 1

Persistance d’un objet Event exécutant un programme complémentaire Un objet Event exécutant un programme complémentaire peut être stocké dans un document Visio si la propriété PersistsEvents de l’objet source a la valeur TRUE. Cette opération est parfois appelée rendre un événement persistant. Un objet Event peut être stocké dans un document s’il répond aux conditions suivantes :

• L’action de l’objet Event doit être l’exécution d’un programme complémentaire. Les objets Event de notification ne peuvent pas être stockés. Si un objet Event peut être stocké, sa propriété Persistable a la valeur TRUE.

• La propriété PersistsEvents de l’objet source de l’événement doit avoir la valeur TRUE. Dans Visio 2000, c’est le cas des objets Document, Page et Master.

La persistance d’un objet Event dépend du paramétrage de sa propriété Persistent. Si la propriété Persistable de l’objet Event est vraie, Visio considère que l’objet doit être stocké dans le document ; la valeur d’origine de sa propriété Persistent est TRUE. Si vous ne souhaitez pas que Visio stocke l’objet Event, donnez la valeur FALSE à sa propriété Persistent.

REMARQUE : avant de tenter de modifier la propriété Persistent d’un objet Event, vérifiez que sa propriété Persistable a la valeur TRUE. Une erreur se produit si vous définissez la propriété Persistent d’un objet ne pouvant pas être persistant.

Création d’un objet Event envoyant une notificationUn objet Event envoyant une notification est créé à l’aide de la méthode AddAdvise de la collection EventList et peut envoyer une notification à un programme en cours d’exécution. La création de ce type d’objet Event diffère sur plusieurs points de celle d’objets exécutant un programme complémentaire :

• Vous définissez dans le programme l’objet (non-Visio) devant recevoir la notification. Ce type d’objet est parfois appelé récepteur de notification ou objet récepteur.

• Vous rédigez une procédure d’événement (VisEventProc) dans l’objet récepteur pour gérer les notifications à leur réception.

• Votre programme crée dans Visio des occurrences d’objet récepteur et Event lors de l’exécution. Comme ce type d’objet Event utilise des références, il ne peut pas être stocké dans un document Visio et doit être recréé à chaque exécution du programme.

Page 439: MS Visio 2003 Guide du Développeur

G E S T I O N D E S É V É N E M E N T S D A N S V I S I O 425

Le schéma suivant montre l’interaction entre le programme et les objets Visio lors de la transmission de notifications d’événement.

Interaction entre un récepteurd’événements client et un objet

source Visio

Dans ce schéma, la variable pSource est une référence à l’objet source dans Visio. Elle permet de récupérer une référence à la collection EventList de l’objet source, qui est associée à pEvtList.

Le programme utilise pEvtList.AddAdvise pour créer l’objet Event, qui est attribué à pEvt. A l’aide de AddAdvise, le programme transmet une référence à l’objet récepteur auquel Visio envoie une notification lors du déclenchement de l’objet Event.

Définition de l’objet récepteur de notificationUn objet récepteur est un objet non-Visio défini pour recevoir les notifications envoyées par Visio. Il est indispensable que l’objet récepteur soit programmable (c’est-à-dire qu’il prenne en charge l’interface Automation IDispatch) et qu’il mette à disposition une procédure d’événement appelée VisEventProc. Vous pouvez associer à l’objet récepteur toute autre fonctionnalité adéquate pour votre programme.

Vous pouvez structurer votre solution de plusieurs façons. Par exemple, vous pouvez créer les éléments suivants :

• Une classe pour chaque événement déclenché par un objet source.

• Une classe pour capturer tous les événements déclenchés par un seul objet source.

• Une classe pour capturer les événements déclenchés par plusieurs objets source.

• Une classe pour gérer un événement donné déclenché par plusieurs objets source.

Programme client

pEvt

Objetrécepteur

Objet sourceVisio

ObjetEventList

ObjetEvent

pSource

pEvtList

pSink

eventcode & pSink

pEvt

Page 440: MS Visio 2003 Guide du Développeur

426 C H A P I T R E 2 1

Pour créer un objet récepteur en Microsoft VBA ou en Visual Basic :

1 Choisissez Insertion > Module de classe dans le projet VBA ou Projet > Ajouter un module de classe dans le projet Visual Basic.

2 Donnez un nom au nouvel objet qui constitue votre objet récepteur.

Généralement, la valeur de la propriété Public de l’objet est TRUE, mais cela n’est pas obligatoire. Si vous le souhaitez, vous pouvez ajouter au code des méthodes prédéfinies telles que Initialize et Terminate, ou ajouter vos propres méthodes à la classe.

REMARQUE : les projets Visual Basic utilisant la méthode AddAdvise doivent être paramétrés en tant que projet ActiveX.EXE plutôt qu’en tant que projet Standard.EXE car ils doivent mettre à disposition des objets publics (objets récepteur). La propriété Instancing des classes servant d’objets récepteur doit généralement être paramétrée sur MultiUse.

Rédaction de la procédure d’événement VisEventProcDans le module de classe, rédigez une procédure d’événement intitulée VisEventProc pour gérer les notifications provenant de Visio. Rédigez le code dans la procédure VisEventProc de la manière adéquate pour le programme. Visio n’exige pas que vous conceviez le gestionnaire d’événements de façon particulière. Toutes les techniques de création de boucle dans la procédure sont disponibles. Par ailleurs, en fonction du nombre et de la catégorie des événements gérés par le programme, vous pouvez être amené à définir un objet récepteur différent pour chaque événement. Lors du déclenchement d’un objet Event, Visio appelle la procédure VisEventProc associée à l’objet récepteur correspondant.

Page 441: MS Visio 2003 Guide du Développeur

G E S T I O N D E S É V É N E M E N T S D A N S V I S I O 427

Vous devez déclarer la procédure VisEventProc avec les paramètres suivants :

Création d’un objet Event envoyant une notificationMaintenant que l’objet récepteur est défini pour votre programme, vous devez créer les objets Event à inclure dans la collection EventList de l’objet source dont vous sou-haitez recevoir les événements.

Pour créer un objet Event envoyant une notification :

1 Créez une occurrence de l’objet récepteur.

Vous pouvez utiliser la même occurrence de l’objet récepteur pour plusieurs objets Event ou utiliser plusieurs occurrences de l’objet récepteur.

2 Récupérez une référence à la collection EventList de l’objet source dans Visio.

3 Utilisez la méthode AddAdvise, et indiquez le code d’événement et une référence à l’objet récepteur.

AddAdvise comporte deux autres arguments. Le troisième argument est réservé à une utilisation ultérieure et doit être une chaîne Null (""). Le quatrième peut être une chaîne d’arguments destinés au gestionnaire d’événements. Visio les attribue à la propriété TargetArgs de l’objet Event. Lorsque le programme reçoit une notification, VisEventProc peut récupérer ces arguments dans l’objet Event qui l’a appelé.

�����������!�� ���������.

�������1�����������,�. X��1��1YA�A�������1���YA�A�������J�����1A������A

c�Y��P��� ����

�������P������P���,�. X&A+A�����W��Y��P���������1�����������������

X �������������������Y��P��� �����1A��������"

���������������,�. X�1����+��������J���1���Y��P��� �����1������

X����������� ��������"����Y�������1�������A�A�

X��1��,������5����������������J���1�1�����P���

X������P���A��W����������������������A�"�

X!��������I����A1��W��Y��P��� �����1��������

X��A1���!�� ���������������������

X�����" ��������"����)������1�"

��J2����������,�. X�AJ������1���YA�A�������������1��������

XA�A��������1A������A��1�������������������

X1��!����"

���P�����P������P���,�. X&A+A����������P���1���YA�A�������J������

X�Y��P����f��YA�A�����������������"

�����+�����!������ X����A�����1Y��+�������,��Y���4�����,�

X�������������������+�������"�������������1���

XA�A�������,����������������������2������"

�1����

Page 442: MS Visio 2003 Guide du Développeur

428 C H A P I T R E 2 1

Pour définir un objet récepteur et paramétrer une notification d’événement dans VBA ou Visual Basic (récapitulatif) :

1 Insérez un module de classe dans le projet.

2 Dans ce module de classe, rédigez une procédure d’événement intitulée VisEventProc.

Si vous utilisez l’instruction Implements suivante dans le module de classe, vous pouvez choisir IVisEventProc dans la zone de liste des objets et sélectionner VisEventProc dans la zone de liste des procédures.

Pour plus d’informations sur le mot-clé Implements, consultez votre documentation Visual Basic.

3 Dans la procédure VisEventProc, rédigez le code permettant de gérer les notifications provenant de Visio de la manière adéquate pour le programme.

4 Dans le programme, créez une occurrence du module de classe.

5 Récupérez une référence à la collection EventList de l’objet source.

6 Utilisez la méthode AddAdvise de la collection EventList pour créer l’objet Event.

Exemple de procédure VisEventProcLa procédure VisEventProc suivante utilise un bloc Select Case pour contrôler trois événements : DocumentSaved, PageAdded et ShapeDeleted. Les autres événements dépendent du cas par défaut (Case Else). Chaque bloc Case génère une chaîne (strDumpMsg) comportant le nom et le code de l’événement déclenché. Enfin, la procédure affiche cette chaîne dans une zone de message.

�����������!����"�!�� �������

�����������!�� ���������������1�����������,�.

�������P������P���,����������������,���J2����������,�.

���P�����P������P���,������+�����!������

���������E�����������

X��������YA�A�������1A������A

�������������������1�

�������� ����1��������

�����E��� �#�����#�L��������1��L�#�#

��������� �������-���� ���11�

�����E��� �#������11�1�#�L��������1��L�#�#

�������� ����1�����������

�����E��� �#�����������1�#�L��������1��L�#�#

����� ���

�����E��� �#�����#�L��������1��L�#�#

�1�������

X�++������������1���YA�A����������������1�

+� ���������4" ����$���"$���� ������E��

�1����

Page 443: MS Visio 2003 Guide du Développeur

G E S T I O N D E S É V É N E M E N T S D A N S V I S I O 429

Pour obtenir un exemple de programme créant des objets Event qui peuvent appeler cette procédure, reportez-vous à la section « Exemple d’objets Event envoyant des notifications », page 429.

Exemple d’objets Event envoyant des notifications Prenez l’exemple suivant : lorsque vous avez créé l’objet récepteur, vous avez intitulé le module de classe inséré dans le projet CEventSamp. Le code suivant crée une occurrence de l’objet récepteur CEventSamp, ainsi que des objets Event pour notifier les événements suivants : DocumentSaved, PageAdded et ShapesDeleted.

Lorsque l’événement PageAdded, ShapesDeleted ou DocumentSaved est déclenché, Visio appelle VisEventProc de l’objet récepteur g_sink. Pour obtenir un exemple de la procédure VisEventProc correspondante, reportez-vous à la section « Exemple de procédure VisEventProc », page 428�

X�A���������������1������������1Y��P������d�� ��������

�����.���d����� �������

����1����P����!����"��������

�����������)��.���1��

������������P����!����" ��������

X�A���������������1������������� �������

X�.���d������������������+��"

�����.���d� �2�O����������

X�A�������������1�����

X%������������!�������1APW�A�A�������A��W��.�!����

����1����P� ��.�!����"���������"�11�##�

X������������������ ���������1�����1�������

������������P� �1����P" ��������

X�P�����1�����P���� �����J�����������1�������+��������

X�P����������P��� ���������YA�A�������������������1

��������P"�11�1�������� ����1��������,��.���d,�##,�#���������

�������A"""#

X�P����������P��� ���������YA�A������������������1

��������P"�11�1�������� ����1�����������,��.���d,�##,�#)����

����A�"""#

X�P����������P��� ���������YA�A������������11�1

��������P"�11�1��������� �������-���� ���11�,��.���d,�##,�#�����

�P���A�"""#

�1����

Page 444: MS Visio 2003 Guide du Développeur

430 C H A P I T R E 2 1

Durée de vie d’un objet Event envoyant une notification Les objets Event créés à l’aide de la méthode AddAdvise persistent jusqu’à ce que l’un des événements suivants se produise :

• L’objet Event est supprimé à l’aide de la méthode Delete.

• Toutes les références à l’objet source sont libérées, notamment celles détenues indirectement par le biais d’une référence à la collection EventList de l’objet source ou à l’un des objets Event de la collection.

• Vous fermez Visio.

Lorsque vous fermez Visio, cette application émet un événement BeforeQuit, que le programme doit gérer en libérant toutes ses références aux objets source ou en exécutant toute autre tâche de nettoyage. Une fois que Visio émet BeforeQuit, toutes les références aux objets récepteur dans le programme sont libérées.

Page 445: MS Visio 2003 Guide du Développeur

Sommaire

22Personnalisation de l’interface utilisateur Visio

Pour simplifier l’exécution de votre programme ou de Microsoft® Visio®, vous pouvez personnaliser l’interface utilisateur Visio (IU). Vous pouvez, par exemple, ajouter un bouton de barre d’outils personnalisé ou une option de menu qui exécute la solution, ou encore supprimer des outils et des commandes de menu qui ne doivent pas être disponibles pendant l’exécution de la solution.

Vous pouvez modifier l’interface utilisateur Visio en effectuant l’une des opérations suivantes :

• Utilisez la commande Affichage > Barres d’outils > Personnaliser pour ajouter des commandes de menu et des outils intégrés qui n’apparaissent pas par défaut ou pour élaborer une barre d’outils personnalisée à partir de commandes et d’outils intégrés Visio. L’utilisateur peut également effectuer cette opération s’il a accès à la commande Affichage > Barres d’outils > Personnaliser.

• Insérez dans la solution du code permettant d’accéder aux objets Visio UIObject pour ajouter des options de menu, des outils ou des accélérateurs dans l’interface utilisateur Visio. Vous pouvez aussi utiliser des objets UIObject pour supprimer des options de menu ou des outils intégrés Visio pendant l’exécution de la solution.

• Créez un fichier d’interface utilisateur personnalisé (.vsu) qui ne contient que les options de menu et les boutons de barre d’outils propres à la solution, puis chargez ce fichier à chaque exécution de la solution. Le fichier d’interface utilisateur personnalisé contient les données de l’interface utilisateur ; il constitue un instantané de votre interface utilisateur personnalisée. Pour apporter des modifications importantes à l’interface utilisateur Visio, vous pouvez coder ces modifications dans un environnement de développement externe et enregistrer un fichier d’interface utilisateur personnalisé.

Eléments personnalisables ................................................................................... 432

Planification des modifications de l’interface utilisateur .................................... 440

Modifications apportées à l’interface utilisateur ................................................. 443

Utilisation des fichiers d’interface utilisateur personnalisée.............................. 457

Page 446: MS Visio 2003 Guide du Développeur

432 C H A P I T R E 2 2

Ce chapitre traite de la personnalisation de l’interface utilisateur Visio depuis un programme, par l’intermédiaire des objets UIObject ou d’un fichier .VSU. Pour plus d’informations sur l’utilisation de la commande Affichage > Barres d’outils > Personnaliser, reportez-vous à l’aide en ligne fournie avec Visio.

CONSEIL : si la solution est un programme externe qui utilise le moteur Visio comme composant (contrairement à un programme complémentaire qui est exécuté dans une copie de Visio), vous pouvez, si vous le souhaitez, masquer d’autres éléments que les menus et les barres d’outils. Vous pouvez masquer en intégralité la copie de Visio en paramétrant la propriété Application.Visible sur FALSE. Les objets Window disposent également de la propriété Visible pour que vous puissiez, si besoin est, masquer une fenêtre. Pour plus d’informations sur cette propriété Visible, recherchez « Visible » dans l’aide en ligne Référence du développeur (choisissez ? (Aide) > Référence du développeur) livré avec le produit Visio.

Eléments personnalisables

Vous pouvez personnaliser l’interface utilisateur Visio depuis un programme à l’aide des objets UIObject. De même que vous récupérez des objets Document pour les utiliser dans des documents ouverts dans une copie de Visio, vous pouvez aussi récupérer des objets UIObject pour utiliser les menus, les barres d’outils, les barres d’état et les accélérateurs de l’interface utilisateur Visio.

L’illustration suivante présente les objets UIObject du modèle d’objet Visio.

Objets UIObject du modèle d’objetVisio

De nombreux objets du modèle d’objet Visio correspondent aux éléments visibles d’une copie de Visio. Par exemple, un objet Menu peut représenter le menu Edition Visio et un objet MenuItem peut représenter la commande Copier située dans ce menu, un élément personnalisé qui exécute une macro ou un programme complémentaire, ou encore un sous-menu.

UIObject

UIObject

StatusBarStatusBars

ToolbarSetToolbarSets

AccelTableAccelTables

MenuSetMenuSets

StatusBarItemStatusBarItems

ToolbarToolbars

AccelItemAccelItems

MenuMenus

ToolbarItemToolbarItems

MenuItemMenuItems

MenuItem...MenuItems

Document

Application

BuiltInMenus

CustomMenus

BuiltInToolbars

CustomToolbars

ToolbarItemToolbarItems

StatusBarItemStatusBarItems

ObjetCollection

ExplicationStatusBars

ToolbarSets

AccelTables

MenuSets

StatusBarItems

Toolbars

AccelItems

Menus

ToolbarItems

MenuItems MenuItems

ToolbarItems

StatusBarItems

Page 447: MS Visio 2003 Guide du Développeur

P E R S O N N A L I S A T I O N D E L ’ I N T E R F A C E U T I L I S A T E U R V I S I O 433

De nombreux objets UIObjectcorrespondent aux élémentsvisibles d’une copie de Visio.

Récupération d’un objet UIObjectLes objets UIObject diffèrent des autres objets du modèle d’objet car la propriété « UIObject » n’est pas la seule à renvoyer un objet UIObject. Les propriétés BuiltInMenus, CustomMenus, BuiltInToolbars et CustomToolbars renvoient en effet chacune un objet UIObject qui représente des menus et des accélérateurs (BuiltInMenus ou CustomMenus), ou des barres d’outils et des barres d’état (BuiltInToolbars ou CustomToolbars).

Pour modifier une copie de l’interface utilisateur Visio intégrée, utilisez la propriété BuiltInMenus ou BuiltInToolbars de l’objet Application pour récupérer un objet UIObject. Par exemple, pour modifier une copie des menus intégrés Visio et récupérer un objet UIObject qui représente des menus et des accélérateurs Visio, commencez par ce code :

Pour récupérer un objet UIObject qui représente une copie des barres d’outils intégrées Visio :

A MenuB Barre d’outilsC Bouton de barre d’outils

D Barre d’étatE Elément de barre d’état

��������P����!����"%���P���

��������P� �!����"���������"3������E����

��������P����!����"%���P���

��������P� �!����"���������"3������$�������'�

Page 448: MS Visio 2003 Guide du Développeur

434 C H A P I T R E 2 2

Pour modifier une interface utilisateur personnalisée, utilisez la propriété CustomMenus ou CustomToolbars d’un objet Application ou Document afin d’obtenir un objet UIObject. Vous pouvez également utiliser ces propriétés pour déterminer si une interface utilisateur personnalisée est en vigueur, et si elle a été personnalisée par une autre solution ou par l’utilisateur. Par exemple :

Pour récupérer un objet UIObject qui représente les menus personnalisés d’un objet Document :

Un objet UIObject qui représente des menus (intégrés ou personnalisés) dispose de deux propriétés qui renvoient des collections : MenuSets et AccelTables. Un objet UIObject qui représente des barres d’outils (intégrées ou personnalisées également) dispose aussi de deux propriétés qui renvoient des collections : ToolbarSets et StatusBars.

REMARQUE : à la différence de la plupart des collections d’objets Visio, les collections qui représentent les objets UIObject sont indexées à partir de 0. Spécifiez un indice de 0 avec la propriété Item de la collection pour obtenir le premier élément de l’une des collections suivantes : AccelTables, AccelItems, MenuSets, Menus, MenuItems, StatusBars, StatusBarItems, ToolbarSets, Toolbars, ToolbarItems.

La branche UIObject du modèle d’objet Visio est plutôt élaborée, c’est la raison pour laquelle il est important de comprendre clairement les divers objets et leurs relations réciproques avant de les personnaliser. Les sections suivantes décrivent la hiérarchie des objets qui représentent les menus, les accélérateurs et les barres d’état Visio.

X!A�+���������1���������������1������������������A�

�+�$�����������"������E��������2�������$���

X!A�+����Y����������1������������������A��!����

�+�!����"���������"������E��������2�������$���

X%��������������������A�A�

�������%���P� �!����"���������"3������E����

���

X%��������������������������A��!����

�������%���P� �!����"���������"������E����

��������P����!����"%���P���

��������P� �$�����������"������E����

X&�������2�������������1���������Y����������������������A

Page 449: MS Visio 2003 Guide du Développeur

P E R S O N N A L I S A T I O N D E L ’ I N T E R F A C E U T I L I S A T E U R V I S I O 435

Objets relatifs aux menusDes fenêtres différentes (fenêtre de dessin, fenêtre ShapeSheet® ou fenêtre de gabarit) affichent des menus différents. Le tableau suivant répertorie les objets relatifs aux menus dans le modèle d’objet Visio.

Objets relatifs aux menus dans le modèle d’objet Visio

Objet Description

MenuSets Collection de tous les ensembles de menus Visio possibles. Pour récupérer une collection MenuSets, obtenez la propriété MenuSets d’un objet UIObject représentant des menus et des accélérateurs.

MenuSet Ensemble de menus disponibles dans une fenêtre. Par exemple, un objet MenuSet peut représenter l’ensemble des menus disponibles lorsqu’une fenêtre de dessin est active. Pour récupérer un objet MenuSet, utilisez la propriété ItemAtID d’une collection MenuSets et spécifiez l’ID du contexte souhaité. Pour accéder au tableau répertoriant les contextes et les identificateurs pouvant être utilisés avec ItemAtID, recherchez ItemAtID dans l’aide en ligne Référence du développeur (choisissez ? (Aide) > Référence du développeur) fournie avec Visio.

Tous les objets MenuSet correspondent à un certain contexte de fenêtre sauf un objet MenuSet qui représente un menu contextuel (qui apparaît lorsque vous cliquez avec le bouton droit sur une forme, une page ou une fenêtre de gabarit).

REMARQUE : dans Microsoft® Visio® 2000, la propriété Position d’un objet MenuSet permet d’indiquer si la barre de menus qu’il représente est ancrée (à gauche, à droite, en haut ou en bas) ou flottante. La propriété RowIndex permet d’indiquer l’emplacement de la barre de menus par rapport aux autres barres affichées dans la fenêtre Visio. Pour plus d’informations sur ces propriétés, recherchez-les dans l’aide en ligne Référence du développeur (choisissez ? (Aide) > Référence du développeur) fournie avec Visio.

Menus Collection des menus d’un ensemble. Par exemple, les options de la collection Menus peuvent représenter les menus Fichier, Edition et Options. Pour récupérer une collection Menus, récupérez la propriété Menus d’un objet MenuSet.

Menu Menu. Par exemple, les options d’un objet Menu qui représentent un menu Fichier peuvent être Ouvrir, Fermer et Edition. Pour récupérer un objet Menu, utilisez la propriété Item d’une collection Menus avec l’indice du menu souhaité. Les menus sont indexés dans l’ordre où ils apparaissent : de gauche à droite ou de haut en bas dans une copie de Visio. Par exemple, dans la plupart des fenêtres, le menu Fichier porte un indice de 0. Pour ajouter un objet Menu, utilisez la méthode Add ou AddAt d’une collection Menus.

MenuItems Ensemble des options d’un menu Visio. Pour récupérer une collection MenuItems, récupérez la propriété MenuItems d’un objet Menu.

Page 450: MS Visio 2003 Guide du Développeur

436 C H A P I T R E 2 2

Dans Visio 2000, les objets Menu et MenuItem possèdent tous les deux les mêmes propriétés :

• La propriété IconFileName qui spécifie l’icône à afficher avec l’option dans le menu.

• La propriété Style qui indique si le menu affiche l’icône et le texte, ou le texte seulement.

• La propriété State qui spécifie si l’option est active (s’il s’agit d’une icône) ou cochée (s’il n’y a que du texte).

• La propriété Enabled qui indique si la commande est grisée.

Pour plus d’informations sur ces propriétés, recherchez-les dans l’aide en ligne Référence du développeur fournie avec Visio.

MenuItem Option, élément ou commande d’un menu Visio. Pour récupérer un objet MenuItem, utilisez la propriété Item de la collection MenuItems avec l’indice de l’option souhaitée. Les options de menu sont indexées dans l’ordre où elles apparaissent dans le menu, c’est-à-dire de haut en bas. Par exemple, la commande Annuler du menu Edition Visio a un indice de 0.

Pour ajouter un objet MenuItem, utilisez la méthode Add ou AddAt de la collection MenuItems. La propriété CmdNum d’un objet MenuItem permet de spécifier un ID de commande correct, correspondant à la déclaration effectuée dans la bibliothèque de types Visio, ou 0 si l’élément est un séparateur. Si l’option exécute un programme, sa propriété AddOnName spécifie le nom d’une macro ou d’un programme exécutable lorsque l’utilisateur choisit cette option ; sa propriété AddOnArgs spécifie les arguments à transmettre.

Si une option Visio comporte un objet MenuItem qui représente ce sous-menu, elle dispose d’une collection MenuItems avec des objets MenuItem. La propriété CmdNum d’un objet MenuItem doit être paramétrée sur visCmdHierarchical, et les propriétés et méthodes restantes pouvant être utilisées sont : Caption, Index, MenuItems, Parent et Delete. Toutes les autres propriétés et méthodes sont ignorées.

Objets relatifs aux menus dans le modèle d’objet Visio (suite)

Objet Description

Page 451: MS Visio 2003 Guide du Développeur

P E R S O N N A L I S A T I O N D E L ’ I N T E R F A C E U T I L I S A T E U R V I S I O 437

Objets relatifs aux accélérateursUn accélérateur est une combinaison de touches qui, lorsqu’elle est utilisée, exécute une commande. Par exemple, l’accélérateur de la commande Copier est Ctrl+C, et l’accélérateur de la commande Coller est Ctrl+V. Le tableau suivant répertorie les objets relatifs aux accélérateurs du modèle d’objet Visio.

Objets relatifs aux barres d’outilsLes différentes fenêtres affichent des ensembles de barres d’outils différents. Par exemple, lorsqu’une fenêtre ShapeSheet® est active, les boutons de barre d’outils sont différents de ceux d’une fenêtre de dessin active. Le tableau suivant répertorie les objets relatifs aux barres d’outils du modèle d’objet Visio.

CONSEIL : dans Visio 2000, vous pouvez associer une barre d’outils personnalisée à un document Visio en utilisant le bouton Associer de la boîte de dialogue Personnaliser. Pour plus d’informations sur la création et l’association des barres d’outils, recherchez la boîte de dialogue Personnaliser dans l’aide en ligne fournie avec Visio.

Objets relatifs aux accélérateurs du modèle d’objet Visio

Objet Description

AccelTables Collection de toutes les tables d’accélérateurs Visio. Les accélérateurs diffèrent en fonction des fenêtres. Pour récupérer une collection AccelTables, récupérez la propriété AccelTables d’un objet UIObject.

AccelTable Table des accélérateurs disponibles pour une fenêtre. Les objets AccelTable existent seulement pour les contextes de fenêtre, comme la fenêtre de dessin, et ne sont pas disponibles pour les menus contextuels. Pour récupérer un objet AccelTable, utilisez la propriété ItemAtID d’une collection AccelTables et spécifiez l’ID du contexte souhaité.

AccelItems Collection d’accélérateurs dans une table d’accélérateurs. Pour récupérer une collection AccelItems, récupérez la propriété AccelItems d’un objet AccelTable.

AccelItem Elément d’accélérateur unique. Les éléments d’accélérateur, comme Ctrl+C (Copier) et Ctrl+V (Coller), sont disponibles lorsqu’une fenêtre de dessin est active. Pour récupérer un objet AccelItem, utilisez la propriété Item d’une collection AccelItems avec l’indice du menu souhaité.

REMARQUE : dans Visio 2000, l’objet AccelItem dispose désormais des propriétés AddOnName et AddOnArgs. Vous pouvez ainsi associer une macro ou un programme complémentaire Microsoft® Visual Basic® pour Applications (VBA) à un accélérateur. Dans les versions précédentes Visio, seules les commandes intégrées pouvaient être associées aux accélérateurs.

Page 452: MS Visio 2003 Guide du Développeur

438 C H A P I T R E 2 2

Objets relatifs aux barres d’outils du modèle d’objet Visio

Objet Description

ToolbarSets Collection de tous les ensembles de barres d’outils Visio possibles. Pour récupérer une collection ToolbarSets, récupérez la propriété ToolbarSets d’un objet UIObject qui représente des barres d’outils et des barres d’état.

Utilisez la propriété ShowToolbar de l’objet Application pour vérifier si les barres d’outils Visio sont visibles.

ToolbarSet Ensemble de barres d’outils disponibles dans un contexte de fenêtre. Par exemple, un objet ToolbarSet peut représenter l’ensemble des barres d’outils disponible lorsqu’une fenêtre ShapeSheet est active. Pour récupérer un objet ToolbarSet, utilisez la propriété ItemAtID d’une collection ToolbarSets et spécifiez l’ID du contexte souhaité.

Toolbars Collection de barres d’outils Visio dans un ensemble de barres d’outils. Pour récupérer une collection Toolbars, récupérez la propriété Toolbars d’un objet ToolbarSet.

Toolbar Barre d’outils Visio. Pour récupérer un objet Toolbar, utilisez la propriété Item d’une collection Toolbars avec l’indice de la barre d’outils souhaitée. Les barres d’outils intégrées sont indexées dans l’ordre où elles seraient initialement ancrées dans la fenêtre Visio si toutes les barres d’outils intégrées étaient visibles. Les barres d’outils personnalisées sont indexées dans l’ordre où elles sont ajoutées à la collection.

Pour ajouter une barre d’outils, utilisez la méthode Add ou AddAt d’une collection Toolbars.

La propriété Caption d’un objet Toolbar représente la légende qui apparaît dans le sous-menu de l’option de menu Affichage > Barres d’outils disponible dans la fenêtre de dessin Visio.

REMARQUE : dans Visio 2000, la propriété Position d’un objet Toolbar permet d’indiquer si la barre d’outils qu’elle représente est ancrée (à gauche, à droite, en haut ou en bas) ou flottante. La propriété RowIndex concerne l’emplacement de la barre d’outils par rapport aux autres barres affichées dans la fenêtre Visio. Pour plus d’informations sur ces propriétés, recherchez-les dans l’aide en ligne Référence du développeur en ligne (choisissez ? (Aide) > Référence du développeur) fournie avec Visio.

ToolbarItems Collection d’éléments d’une barre d’outils Visio. Pour récupérer une collection ToolbarItems, récupérez la propriété ToolbarItems d’un objet Toolbar.

ToolbarItem Contrôle d’une barre d’outils Visio. Pour récupérer un objet ToolbarItem, utilisez la propriété Item de la collection ToolbarItems avec l’indice de l’élément de barre d’outils souhaité. Les éléments de barre d’outils sont indexés dans l’ordre où ils apparaissent sur la barre d’outils, c’est-à-dire de gauche à droite. Pour la plupart des contextes, l’élément de barre d’outils Dessin vide a un indice de 0. Pour ajouter un élément à une barre d’outils, utilisez la méthode Add ou AddAt d’une collection ToolbarItems.

REMARQUE : dans Visio 2000, les objets ToolbarItem disposent d’une propriété Style qui concerne l’affichage (icône et texte, ou texte seulement). Les objets ToolbarItem disposent aussi d’une propriété State qui indique si l’élément apparaît « activé » (s’il a une icône) ou coché (s’il ne s’agit que de texte). Pour plus d’informations sur ces propriétés, recherchez-les dans l’aide en ligne Référence du développeur fournie avec Visio.

Page 453: MS Visio 2003 Guide du Développeur

P E R S O N N A L I S A T I O N D E L ’ I N T E R F A C E U T I L I S A T E U R V I S I O 439

Objets relatifs aux barres d’étatUne barre d’état affiche des informations sur le statut d’une forme, d’un menu ou d’un outil, comme l’emplacement du pointeur sur la page ou l’angle et la longueur d’une ligne. Le tableau suivant répertorie les objets relatifs aux barres d’état du modèle d’objet Visio.

Objets relatifs aux barres d’état du modèle d’objet Visio

Objet Description

StatusBars Collection de toutes les barres d’état Visio possibles. Pour récupérer une collection StatusBars, utilisez la propriété StatusBars d’un objet UIObject.

StatusBar Barre d’état d’un contexte de fenêtre. Par exemple, un objet StatusBar peut représenter la barre d’état affichée lorsqu’une forme est sélectionnée. Pour récupérer un objet StatusBar, utilisez la propriété ItemAtID d’une collection StatusBars et indiquez l’ID du contexte souhaité.

StatusBarItems Collection des éléments d’une barre d’état Visio. Pour récupérer une collection StatusBarItems, récupérez la propriété StatusBarItems d’un objet StatusBar.

StatusBarItem Elément d’une barre d’état Visio. Pour récupérer un objet StatusBarItem, utilisez la propriété Item de la collection StatusBarItems avec l’indice de l’élément de barre d’état souhaité. Les éléments de barre d’état sont indexés dans l’ordre où ils apparaissent sur une barre d’état, c’est-à-dire de gauche à droite. Par exemple, lorsqu’une forme en deux dimensions (2D) est sélectionnée, l’élément de la barre d’état correspondant à sa largeur apparaît à gauche et a un indice de 0.

REMARQUE : dans Visio 2000, les objets StatusBarItem disposent d’une propriété Style qui concerne l’affichage (icône et texte, ou texte seulement). Les objets StatusBarItem disposent également d’une propriété State qui indique si l’élément apparaît « activé » (s’il a une icône) ou coché (s’il ne s’agit que de texte). Pour plus d’informations sur ces propriétés, recherchez-les dans l’aide en ligne Référence du développeur fournie avec Visio.

Page 454: MS Visio 2003 Guide du Développeur

440 C H A P I T R E 2 2

Planification des modifications de l’interface utilisateur

Lorsque vous créez une interface utilisateur personnalisée, vous devez vous poser les questions suivantes :

• Allez-vous personnaliser une copie de l’interface utilisateur Visio intégrée ou une interface utilisateur personnalisée existante ? La réponse à cette question conditionne en effet la façon dont vous récupérez un objet UIObject, le modifiez et comment vous restaurez l’interface originale à la fin de l’exécution de la solution.

• L’interface utilisateur personnalisée doit-elle être disponible seulement pour certains documents Visio ou pour tous les documents d’une copie de Visio ? La réponse permet de déterminer sa portée, c’est-à-dire le contexte dans lequel votre interface utilisateur personnalisée est disponible.

• L’interface utilisateur personnalisée doit-elle être disponible seulement lorsqu’un document est actif dans une seule copie de Visio, ou à chaque démarrage de l’application Visio ? Cette réponse détermine sa persistance, c’est-à-dire la durée de la disponibilité de votre interface utilisateur personnalisée.

Différences entre la personnalisation d’une copie de l’interface utilisateur Visio intégrée et celle d’une interface personnaliséeAvant de personnaliser une interface utilisateur Visio, commencez par déterminer si l’interface utilisateur courante est l’interface utilisateur Visio intégrée ou une interface personnalisée. S’il s’agit d’une interface personnalisée, il est conseillé de modifier l’interface existante de votre solution, puis de la rétablir dans son état original, plutôt que de personnaliser l’interface utilisateur Visio intégrée.

Lorsque vous récupérez les barres d’outils ou les menus intégrés de Visio, vous récupérez en fait une copie, ou un instantané de l’interface utilisateur intégrée Visio que vous pouvez manipuler. L’interface utilisateur intégrée Visio d’origine reste intacte, de manière à ce que vous puissiez la restaurer ultérieurement. Lorsque vous récupérez une interface utilisateur personnalisée, vous récupérez l’interface active (y compris toutes les barres d’outils personnalisées éventuellement ajoutées), non pas une copie.

Pour déterminer l’interface utilisateur en cours d’utilisation, vérifiez les propriétés CustomMenus et CustomToolbars de tous les objets Document de la collection Documents. Vérifiez ensuite les mêmes propriétés de l’objet Application. Si un objet n’utilise pas d’interface utilisateur personnalisée, les deux propriétés renvoient Nothing, et vous pouvez, dans ce cas, simplement récupérer une copie de l’interface utilisateur Visio intégrée.

Si l’interface active est une interface utilisateur personnalisée, vous pouvez décider de la remplacer par la vôtre ou de lui ajouter simplement des éléments de votre interface.

Page 455: MS Visio 2003 Guide du Développeur

P E R S O N N A L I S A T I O N D E L ’ I N T E R F A C E U T I L I S A T E U R V I S I O 441

L’exemple suivant indique comment récupérer l’interface utilisateur active de votre document sans remplacer l’éventuelle interface utilisateur personnalisée de niveau application. Pour ajouter des éléments de l’interface utilisateur personnalisée, vous devez écrire du code supplémentaire.

Pour plus d’informations sur les propriétés CustomMenus et CustomToolbars, reportez-vous à l’aide en ligne Référence du développeur (choisissez ? (Aide) > Référence du développeur) fournie avec Visio.

Contrôle de la portée de l’interface utilisateurDe même que vous pouvez récupérer un objet UIObject de l’objet Document ou Application, vous pouvez appliquer les modifications de l’interface utilisateur personnalisée à l’objet Document ou Application en utilisant sa méthode SetCustomMenus ou SetCustomToolbars. La portée souhaitée détermine l’objet auquel vous appliquez vos modifications.

Vous pouvez décider que votre interface utilisateur personnalisée sera disponible pour un seul document ou pour l’application. Pour utiliser l’interface utilisateur personnalisée à l’échelle de l’application, appliquez-la à l’objet Application.

X!A�+���������1���������������1������������������A�

�+�$�����������"������E��������2�������$���

X!A�+����Y����������1������������������A��!����

�+�!����"���������"������E��������2�������$���

X%��������������������A�A�

�������%���P� �!����"���������"3������E����

���

X%��������������������������A��!����

�������%���P� �!����"���������"������E����"�����

�1��+

���

X%��������������������������A��1��+�����

�������%���P� �$�����������"������E����

�1��+

Page 456: MS Visio 2003 Guide du Développeur

442 C H A P I T R E 2 2

Pour utiliser l’interface utilisateur personnalisée uniquement lorsqu’un document est actif, appliquez l’interface utilisateur personnalisée à un objet Document. Cette méthode est celle que vous utilisez généralement lorsque vous programmez dans Microsoft Visual Basic pour Applications (VBA). L’exemple suivant indique comment paramétrer les menus personnalisés de l’objet ThisDocument :

Contrôle de la persistance de l’interface utilisateurL’approche à utiliser pour personnaliser l’interface utilisateur Visio dépend de l’étendue des modifications que vous avez l’intention d’apporter et de l’environnement de développement dans lequel vous programmez. En fonction de la portée des modifications de votre interface utilisateur, vous pouvez faire en sorte que les modifications soient en vigueur pendant qu’un document est actif, pendant l’exécution d’une copie de Visio ou à chaque lancement de l’application Visio.

Persistance de l’interface utilisateur lorsqu’un document est actifUn document peut disposer d’une interface utilisateur personnalisée prioritaire sur l’interface utilisateur (personnalisée ou intégrée) de l’application Visio. Par exemple, si un utilisateur crée un document à partir d’un modèle, vous pouvez ajouter un bouton de barre d’outils qui exécute un Assistant pour aider l’utilisateur à créer un dessin. Dès que l’utilisateur ferme le document, l’interface utilisateur intégrée reprend le pas jusqu’à ce qu’une interface utilisateur personnalisée soit définie pour l’application ou pour le document actif suivant.

Lorsque vous personnalisez l’interface utilisateur Visio à partir de VBA, vous travaillez généralement au niveau du document. Par conséquent, vous pouvez paramétrer l’interface utilisateur personnalisée de l’objet ThisDocument ou charger un fichier d’interface utilisateur personnalisée (.vsu) lorsque l’événement DocumentOpened se produit. De cette manière, l’interface utilisateur personnalisée persiste pendant qu’un document est actif. Pour plus d’informations sur les événements, reportez-vous au chapitre 21, « Gestion des événements dans Visio ».

Persistance de l’interface utilisateur pendant l’exécution d’une copie de VisioSi votre interface utilisateur doit persister au cours d’une seule copie de Visio, paramétrez l’interface utilisateur personnalisée de l’objet Application à partir d’une macro VBA ou d’un programme autonome.

��������P����!����"%���P���

X)�������������1������������A�A��!����

��������P� �!����"���������"3������E����

"""�X�����1�����1�+����������+���1��������������Y����+���

X�A+�����������������������A��1��$�����������

$�����������"���������E���������P

Page 457: MS Visio 2003 Guide du Développeur

P E R S O N N A L I S A T I O N D E L ’ I N T E R F A C E U T I L I S A T E U R V I S I O 443

Persistance de l’interface utilisateur à chaque lancement de l’application VisioSi vous souhaitez que les modifications de l’interface utilisateur remplacent l’interface utilisateur Visio de manière permanente, vous pouvez activer l’interface personnalisée de l’objet Application à chaque lancement de l’application Visio ou créer un fichier d’interface utilisateur personnalisée.

Après avoir créé un fichier d’interface utilisateur personnalisée, spécifiez le nom du fichier en paramétrant la propriété CustomMenusFile ou CustomToolbarsFile de l’objet Application. Le fichier d’interface personnalisée est alors chargé à chaque lancement de Visio, jusqu’à ce que vous choisissiez un autre fichier ou restauriez l’interface utilisateur intégrée de Visio. Pour plus d’informations, reportez-vous à la section « Mise en oeuvre des modifications apportées à l’interface utilisateur personnalisée », page 456.�

Modifications apportées à l’interface utilisateur

Après avoir choisi l’objet UIObject, la portée et la persistance de votre interface utilisateur personnalisée, vous pouvez commencer à modifier l’interface. Pour accéder à l’élément à supprimer ou vous positionner à l’emplacement où vous souhaitez ajouter un élément, vous devez naviguer dans le modèle d’objet Visio®. Pour ce faire, récupérez tout d’abord un objet UIObject, puis un menu, un accélérateur, une barre d’outils ou une barre d’état et enfin, les éléments à modifier. Après avoir modifié l’interface utilisateur, vous devez définir l’objet personnalisé UIObject de manière à ce que votre interface utilisateur prenne effet.

Récupération d’un objet MenuSet, ToolbarSet, AccelTable ou StatusBarPour récupérer un objet MenuSet, ToolbarSet, AccelTable ou StatusBar, utilisez la méthode ItemAtID de la collection appropriée et spécifiez l’ID de l’objet souhaité. Pour accéder à la liste des constantes que vous pouvez utiliser avec ItemAtID, recherchez « ItemAtID » dans l’aide en ligne Référence du développeur (choisissez ? (Aide) > Référence du développeur) fournie avec Visio.

Page 458: MS Visio 2003 Guide du Développeur

444 C H A P I T R E 2 2

Par exemple, le fragment de code suivant utilise la constante visUIObjSetDrawing pour récupérer un objet MenuSet qui représente les menus de la fenêtre de dessin :

L’exemple suivant utilise la constante visUIObjSetShapeSheet pour récupérer un objet ToolbarSet qui représente les barres d’outils de la fenêtre ShapeSheet® :

ID des constantes pour des contextes de fenêtreLe tableau suivant répertorie les constantes définies dans la bibliothèque de types Visio, et que vous pouvez indiquer à l’aide de ItemAtID pour les sept fenêtres principales. Les constantes des fenêtres qui représentent les menus contextuels, les palettes et les fenêtres contextuelles disponibles pour les objets MenuSet, ToolbarSet, AccelTable et StatusBar figurent dans l’aide en ligne Référence du développeur (choisissez ? (Aide) > Référence du développeur) fournie avec Visio.

��������P����!����"%���P���

�������������P����!����"E������

X&A��A�������P���%���P����������1����W����������1���������!�����

���A�A�

��������P� �!����"���������"3������E����

X&A��A��������+���������1���������1�����+��e���1��1�����

�������������P� �.

����P"E�������"�������1����%���P�����O����

��������P����!����"%���P���

���������������P����!����"$��������

X&A��A�������P���%���P����������1����W����������1��������1Y�������

���A�A���!����

��������P� �!����"���������"3������$�������'�

X&A��A��������+���������1��������1Y�������1�����+��e������������

���������������P� �.

����P"$���������"������������%���P�������������

ID des constantes des contextes de fenêtre

Ob

jets

M

en

uS

ets

Ob

jets

T

oo

lba

rSets

Ob

jets

S

tatu

sB

ars

Ob

jets

A

cce

lTa

ble

s

ID de constante Contexte

visUIObjSetNoDocument* Fenêtre Visio, aucun document ouvert

✔ ✔ ✔ ✔

visUIObjSetDrawing Fenêtre de dessin ✔ ✔ ✔ ✔

visUIObjSetStencil Fenêtre de gabarit ✔ ✔ ✔ ✔

visUIObjSetShapeSheet Fenêtre ShapeSheet® ✔ ✔ ✔ ✔

Page 459: MS Visio 2003 Guide du Développeur

P E R S O N N A L I S A T I O N D E L ’ I N T E R F A C E U T I L I S A T E U R V I S I O 445

* La constante visUIObjSetNoDocument est utilisée dans les versions antérieures à Visio 2000, SR-1. A partir de Visio 2000, SR-1, si aucun document n’est ouvert dans la fenêtre Visio, le jeu de contexte par défaut est visUIObjSetDrawing.

Ajout d’un menu et d’une option de menuAprès avoir récupéré un objet UIObject, vous pouvez ajouter des options à l’interface utilisateur ou en supprimer. Pour ajouter des options, parcourez la branche UIObject du modèle d’objet Visio pour récupérer la collection qui contient le type d’élément à ajouter, puis utilisez la méthode Add ou AddAt de cette collection.

L’exemple suivant ajoute un menu et une nouvelle option de menu disponibles lorsque la fenêtre de dessin Visio est active :

visUIObjSetIcon Fenêtre de modification d’icônes

✔ ✔ ✔ ✔

visUIObjSetInPlace Fenêtre d’édition in situ ✔ ✔

visUIObjSetPrintPreview Fenêtre d’aperçu avant impression

✔ ✔ ✔ ✔

��������P����!����"%���P���

��������������P����!����"E�������

�������������P����!����"E������

�����������P����!����"E����

����������P����!����"E���

���������������P����!����"E��������

��������������P����!����"E�������

X&A��A�������P���%���P����������1����W����������1������������A�A��

!����

��������P� �!����"���������"3������E����

X&A��A����������������E�������

��������������P� �����P"E�������

X&A��A���Y��P���E�������1�����+��e���1��1������<�&A��A�������������

�������������P �����������P"�������1����%���P�����O����

X&A��A����������������E����

�����������P� ����������P"E����

X�P��������������A�����������������)��e��

X����������J�����������������������������Y������������"

����������P� ��������P"�11���=�

������P"������� �#�A��#

ID des constantes des contextes de fenêtre

Ob

jets

M

en

uS

ets

Ob

jets

T

oo

lbarS

ets

Ob

jets

S

tatu

sB

ars

Ob

jets

A

ccelT

ab

les

ID de constante Contexte

Page 460: MS Visio 2003 Guide du Développeur

446 C H A P I T R E 2 2

Cette première partie d’exemple part du principe que le menu Fenêtre est toujours à sa position initiale, c’est-à-dire qu’il apparaît en septième position dans la barre des menus depuis la gauche de l’écran. L’ajout ou la suppression de menus modifie la position des autres menus.

La deuxième moitié de l’exemple, indiquée ci-dessous, ajoute une option au menu Démo et paramètre les propriétés de cette option. Pour plus d’informations, reportez-vous à la section « Paramétrage des propriétés d’une option », page 451.�

Pour ajouter une option au menu Démo ajouté dans l’exemple précédent, le code suivant utilise la méthode Add. Cette option ajoute l’option à la fin d’une collection. Cet exemple ajoute une seule option de menu, sa position n’a donc pas grande incidence. En revanche, si vous deviez ajouter une autre option à l’aide de la méthode Add, elle apparaîtrait également à la fin du menu. Pour contrôler l’endroit où l’option apparaît, utilisez la méthode AddAt et spécifiez la position ordinale de l’option.

La dernière instruction, ThisDocument.SetCustomMenus uiObj, indique à la copie de Visio d’utiliser les menus personnalisés lorsque le document est actif. Les modifications de l’interface utilisateur personnalisée ne sont pas conservées après la fermeture du document.

X&A��A����������������E��������

���������������P� �������P"E��������

X�P����������P���E�������������������������A��

��������������P� ������������P"�11

X�A+����������A�A��1��������������������1������

����������P"������� �# �A���������������1��L1A����������#

����������P"�11��2���� �#����" 7 #

����������P"�11������ �#C�!� )��#

����������P"E���?��� �# �A����I�����������1��1A����������#

X����A���!������+���J�Y�����������������������P���%���P�����������

���������A��

X��1����J������1����������������+

$�����������"���������E���������P

Page 461: MS Visio 2003 Guide du Développeur

P E R S O N N A L I S A T I O N D E L ’ I N T E R F A C E U T I L I S A T E U R V I S I O 447

Une option de menu peut être constituée d’une icône, de texte ou d’une icône avec du texte. Lorsqu’un utilisateur choisit l’affichage avec icône, cette dernière apparaît activée. Lorsque l’utilisateur choisit l’affichage du texte uniquement, l’option est cochée. Le fragment de code suivant indique comment définir les propriétés des trois options de menu (dénommées Option 1, Option 2 et Option 3) qui contiennent une icône (Smiley.ico) et du texte.

Comme l’indique l’exemple suivant, un programme peut parcourir les options d’un menu pour déterminer si elles sont sélectionnées :

���������������

)���� �*�$��F

X�P���������������1������

��������������P� �������P"E��������"�11

���������������P

X�A+�������������1������A���1�

"������� �#�����#�L������

X�A+�����Y��H��

"����)���2����#�Z[�����4"���#

X����A����Y������1������U��W����J�Y������++������Y��H���������

�����

"��4��� �!����"���3�����������1������

X������C1A���������Y�����

"������ ���+��� �*,�!����"���3�������O�,�!����"���3�����%�

X����A����Y������1������U��W����J�Y�������A����������1��

���J�Y����������A��������A�

"�11��2���� �#$�����������"��������#�L�������L�#�#

�1�����

2���

���������������

)���� �'�$��������P"E��������"������5�*

��������������P� �������P"E�����������

X�A+�����Y������1�������������A������A��������A�C1A�A��������A�

����������P"������ ���+��� �������5�*�,�.

!����"���3�������O�,�!����"���3�����%�

2���

Page 462: MS Visio 2003 Guide du Développeur

448 C H A P I T R E 2 2

Ajout d’une barre d’outils et d’un bouton de barre d’outilsVous pouvez ajouter un bouton à l’une des barres d’outils intégrées ou à une barre d’outils complètement personnalisée. La procédure suivante montre comment ajouter, dans le contexte de la fenêtre de dessin, un bouton à une copie des barres d’outils intégrées :

�����11$�����3�������

X!��������1Y��P����W���������1�������������

��������P����!����"%���P���

���������������P����!����"$��������

�����������������P����!����"$����������

������P2�O$�������������!����"$���������

X&A��A���Y��P���%���P����������������1Y������

��������P� �!����"���������"3������$�������'�

X&A��A���Y��P���$���������1�����+��e���1��1�����

���������������P� �����P"$���������"������������%���P�����O����

X&A��A����������������$����������

�����������������P� ������������P"$�������'�"$����������

X�P���������������������������������

������P2�O$���������� ��������������P"�11���'�

X�A+����������A�A��1�����������������1������1Y������

��P2�O$���������"������$���� �# �A������Y����������&����1��������#

��P2�O$���������"�11��2���� �#���1��"���#

��P2�O$���������"����$4�� �������$4�3%$$�2

��P2�O$���������"�����4� �*

X�A+�����Y��H���1�����������������1������1Y������

��P2�O$���������"����)���2����#1��"���#

X����A���!�����1������U��W����J�Y������������������������������

1Y����������������A��

$�����������"���������$�����������P

�1����

Page 463: MS Visio 2003 Guide du Développeur

P E R S O N N A L I S A T I O N D E L ’ I N T E R F A C E U T I L I S A T E U R V I S I O 449

Voici quelques remarques concernant cet exemple :

Set toolbarItemsObj = toolbarSetObj.Toolbars(0).ToolbarItems. L’application Visio ordonne les barres d’outils verticalement. Lorsque vous indiquez l’emplacement d’un objet Toolbar, 0 représente la barre d’outils la plus à l’extérieur.

Set objNewToolbarItem = toolbarItemsObj.AddAt(0). L’application Visio ordonne les options de la barre d’outils horizontalement. Cette instruction ajoute donc l’objet ToolbarItem ou le bouton à l’emplacement le plus à gauche sur la barre d’outils, si celle-ci est ancrée horizontalement, et à l’emplacement le plus élevé si la barre d’outils est ancrée verticalement.

objNewToolbarItem.CntrlType = visCtrlTypeBUTTON définit le type de bouton de barre d’outils à afficher. La propriété CntrlType permet également de définir les éléments de barre d’état. L’application Visio comprend d’autres constantes pour les boutons de barres d’outils par défaut, mais les boutons personnalisés ne peuvent utiliser que les constantes visCtrlTypeBUTTON, PALETTEBUTTON, PALETTEBUTTONNOMRU ou PALETTEBUTTONICON.

objNewToolbarItem.Priority = 1 donne à cet élément de barre d’outils la priorité la plus élevée. Les options de barre d’outils n’apparaissent pas tous dans toutes les résolutions. Sur les moniteurs à faible résolution, comme les moniteurs VGA, les éléments de barre d’outils à priorité faible n’apparaissent pas : seuls les éléments à priorité élevée sont affichés. Le nombre d’éléments affichés est proportionnel à la qualité de la résolution.

objNewToolbarItem.IconFileName "dvs.ico" récupère le fichier Dvs.ico contenant le bitmap pour que la barre d’outils apparaisse depuis le dossier situé sur le chemin des programmes complémentaires Visio ; ce chemin est indiqué dans l’onglet Chemins d'accès. Le fichier d’icône doit contenir une icône de 32 pixels par 32 et une icône de 16 pixels par 16. L’application Visio affiche l’icône de 16 pixels par 16 en mode « petite icône » et l’icône de 32 pixels par 32 en mode « grande icône ».

ThisDocument.SetCustomToolbars uiObj utilise les barres d’outils personnalisées lorsque le document est actif.

La procédure suivante indique comment ajouter une barre d’outils flottante nommée Test ; cette barre d’outils flottante ne peut pas être ancrée mais peut être masquée dans le contexte de la fenêtre de dessin. Le programme vérifie tout d’abord si le document ou la copie de Visio utilise les barres d’outils personnalisées et attribue un objet UIObject à la variable uiObj. Le programme récupère ensuite la collection Toolbars pour la fenêtre de dessin, ajoute la nouvelle barre d’outils et définit ses propriétés.

Page 464: MS Visio 2003 Guide du Développeur

450 C H A P I T R E 2 2

�����11$�������

��������P����%���P���

�������������P����$������

������������P����$�����

�����������������P����$����������

����������������P����$���������

X!A�+���������1���������������1��������1Y����������������A��

�+�$�����������"������$����������2�������$���

X!A�+�������Y�����������������1��������1Y����������������A��

�+�!����"���������"������$����������2�������$���

X%����������������1Y����������A�A��

��������P� �!����"���������"3������$�������'�

���

X%����������������1Y����������������A���1���Y���������

��������P� �!����"���������"������$������"�����

�1��+

���

X%����������������1Y����������������A���1��1�������

��������P� �$�����������"������$������

�1��+

X&A��A����������������$�������1�����������1�����+��e���1��1�����

�������������P� �����P"$���������"����������.

!����"���%���P�����O����"$������

X�P�������������1Y������

������������P� ����������P"�11

�������������P

X�A+������������1���������1Y������

"������� �#$���#

X������������������1Y�������+����������������1���A���F'',�0''

"��������� �!����"���3�)�������

"��+�� �F''

"$�� �0''

X����1����Y������

"���������� �!����"���3�2�?��I��������d�.

-�!����"���3�2�!���������d

X&��1������������������1Y��������������

"!������� �$��

X��������W��Y�����������1�����J������1Y�++������������1Y������

" �����1� �$��

�1�����

�1����

Page 465: MS Visio 2003 Guide du Développeur

P E R S O N N A L I S A T I O N D E L ’ I N T E R F A C E U T I L I S A T E U R V I S I O 451

Paramétrage des propriétés d’une optionAprès avoir ajouté une option, vous pouvez paramétrer ses propriétés. Par exemple, vous pouvez paramétrer la propriété Caption d’une option de menu pour définir le texte qui apparaît ou la méthode IconFileName d’une barre d’outils ou d’une option de menu pour indiquer l’icône à afficher et la récupérer. Cette opération extrait le bitmap du fichier d’icône et le stocke avec l’interface ; le fichier d’icône n’est ainsi plus nécessaire. Vous pouvez aussi modifier les propriétés d’une option existante.

Une option de menu ou un élément de barre d’outils disposent de deux propriétés déterminantes : CmdNum permet de spécifier l’ID de la commande associée à l’option, et AddOnName permet de spécifier un programme ou une macro à exécuter lorsque l’utilisateur choisit l’option de menu ou clique sur le bouton. Si le programme accepte les arguments de ligne de commande, ceux-ci peuvent être indiqués par l’intermédiaire de la propriété AddOnArgs. Pour plus d’informations sur les propriétés et sur les méthodes d’une option, recherchez cette option dans l’aide en ligne Référence du développeur (choisissez ? (Aide) > Référence Du Développeur) fournie avec Visio.

Caption correspond au texte qui apparaît dans un menu ou une option de menu. Pour afficher l’accélérateur avec l’option de menu, ajoutez-le au texte de la propriété Caption et insérez deux espaces entre le « \a » et le texte d’accélérateur. Par exemple :

Dans cet exemple, Ouvrir... est la légende de l’option de menu ; Ctrl+O est le texte de l’accélérateur, et \a sert à justifier à gauche le texte d’accélérateur. Le fait d’ajouter un texte d’accélérateur à la propriété Caption n’ajoute pas d’accélérateur à proprement parler et n’intervient que sur l’affichage. Vous pouvez ajouter des accélérateurs en utilisant les objets relatifs aux accélérateurs du modèle d’objet Visio.

Vous pouvez aussi spécifier d’autres propriétés comme celles de l’exemple suivant :

ActionText correspond au texte qui apparaît dans le menu Edition avec les commandes Annuler, Rétablir et Répéter. Il apparaît également dans tous les messages d’erreur ou dans les éventuelles info-bulles de la barre d’outils. MiniHelp correspond au message qui apparaît dans la barre d’état lorsque l’utilisateur immobilise le pointeur sur l’option.

#����"""[������-�#

����������P"������$���� �# �A������Y�����������A���*#

����������P"E���?��� �# �A������Y�����������A���*#

�����������P"a�4� �T X �������U�

�����������P"���� �$��

Page 466: MS Visio 2003 Guide du Développeur

452 C H A P I T R E 2 2

Key correspond à la valeur du code ASCII d’un accélérateur. Par exemple, le code ASCII de la touche Retour est 8, le code ASCII de la touche Echap est 27. Pour plus d’informations sur les codes ASCII, reportez-vous à l’aide en ligne du kit de développement SDK (Microsoft Platform Software Development Kit). Les propriétés Alt, Control et Shift modifient la propriété Key d’un accélérateur. Pour définir les propriétés d’un accélérateur, paramétrez une combinaison de modificateurs sur TRUE, spécifiez un code de touche, puis définissez la propriété CmdNum ou AddonName de l’option. Pour activer une commande accélératrice, appuyez sur la combinaison des modificateurs et sur la touche qui correspond au code.

La propriété CmdNum correspond à l’ID de commande d’une option. Chaque option de menu ou option de barre d’outils intégrée Visio représente une commande Visio et dispose d’un ID de commande. Par exemple, l’ID de la commande Afficher la feuille ShapeSheet est visCmdWindowShowShapeSheet ; l’ID de la commande de Afficher le gabarit de document est visCmdWindowShowMasterObjects. Pour obtenir la liste des ID de commande valides, reportez-vous à la bibliothèque de types Visio dans l’explorateur d’objets et recherchez « visCmd ».

CONSEIL : pour masquer l’interface utilisateur Visio mais pas la fenêtre Visio, paramétrez les propriétés ShowToolbar, ShowStatusBar et ShowMenus de l’objet Application sur FALSE pour masquer respectivement toutes les barres d’outils, les barres d’état et les menus.

Suppression d’options d’une interface utilisateurVous pouvez supprimer n’importe quel élément de l’interface utilisateur Visio, que cet élément fasse partie de l’interface utilisateur intégrée Visio ou qu’il y ait été ajouté (si vous souhaitez rendre une barre d’outils ou une option de menu temporairement indisponible en le grisant, paramétrez sa propriété Enabled sur FALSE).

La suppression d’une option ne supprime pas la fonctionnalité de cette option, mais seulement son accès. D’autres modes d’accès, comme les accélérateurs, peuvent rester disponibles. Par exemple, si vous supprimez la commande Copier du menu Edition, mais pas l’accélérateur (Ctrl+C), l’utilisateur peut toujours faire appel à la fonctionnalité de copie en appuyant sur Ctrl+C. Vous pouvez également supprimer la commande Afficher la feuille ShapeSheet du menu Fenêtre, mais si l’action du double-clic sur une forme a pour effet d’afficher la fenêtre ShapeSheet, cette fenêtre apparaît tout de même lorsque vous double-cliquez sur cette forme.

Page 467: MS Visio 2003 Guide du Développeur

P E R S O N N A L I S A T I O N D E L ’ I N T E R F A C E U T I L I S A T E U R V I S I O 453

CONSEIL : chaque option de menu et élément de barre d’outils intégré de Visio représente une commande Visio et comporte un ID de commande. Si vous souhaitez supprimer l’une de ces options Visio, vous pouvez l’identifier par son ID de commande. En revanche, la propriété CmdNum d’une option de menu ou d’une option de barre d’outils personnalisée permettant d’exécuter un programme ou une macro n’est associée à aucun ID de commande Visio. C’est pourquoi vous ne pouvez pas identifier l’élément par son ID de commande. Vous devez utiliser la chaîne de la propriété Caption d’une option de menu ou d’un élément de barre d’outils personnalisée pour le localiser.

Pour supprimer une option, utilisez sa méthode Delete. Par exemple, les instructions suivantes suppriment, dans la fenêtre de dessin, l’option Afficher la feuille ShapeSheet du menu Fenêtre pour la copie de Visio en cours d’exécution :

��������P����!����"%���P���

�������������P����!����"E������

���������������P����!����"E��������

���������������

��������P� �!����"���������"3������E����

�������������P� �.

����P"E�������"������������%���P�����O����

X&A��A����������)��e��

���������������P� ����������P"E�����=�"E��������

X&A��A���Y������1��������++��������+�����������������W��Y��1��1����

c��A�A���12��"

X������������J���+����������������������������������A���1��!����"

)���� �'�$�������������P"������5*

�+������������P���"��12��� �.

�����1���1�O���O����������$���

�����������P���"������

����)�

�1��+

2�����

X&��������������������A�A��1��!����������������+������������������A�

!����"���������"���������E���������P

Page 468: MS Visio 2003 Guide du Développeur

454 C H A P I T R E 2 2

Suppression d’une option de barre d’outilsLa macro suivante indique comment supprimer, dans le contexte de la fenêtre de dessin, le bouton Vérificateur d'orthographe de la barre d’outils intégrée Visio :

����������$�����3��������

��������P����!����"%���P���

���������������P����!����"$��������

�����������������P����!����"$����������

����������������P����!����"$���������

���������������� X!�������1��������

X&A��A���Y��P���%���P����������������1Y������

��������P� �!����"���������"3������$�������'�

X&A��A���Y��P���$���������1�����+��e���1��1�����

���������������P� �����P"$���������"������������%���P�����O����

X&A��A����������������$����������

�����������������P� ������������P"$�������'�"$����������

X&A��A���Y��P�����������$���������

X �����1���A�J��������1��A��U�����������1Y����������A�A���1��!����,

X��������I����U��W��Y������1������1Y�������!A�+�������1Y��������"

X��������1��A��U����������1Y����������������A�,������5���

X������������������Y������!A�+�������1Y��������"

)���� �'�$���������������P"������5�*

X&A��A���Y��P���$�����������������1���������������

����������������P� ��������������P���

X!A�+�������Y������1������1Y�����������������������������

X!A�+�������1Y���������

�+�������������P"��12��� ������1$������������$���

����)�

�1��+

2�����

X�������������������������

������������P"������

X����A��I�!�����1������U��W����J�Y�����������������������������

X1Y����������������A������J������1����������������+

$�����������"���������$�����������P

�1����

Page 469: MS Visio 2003 Guide du Développeur

P E R S O N N A L I S A T I O N D E L ’ I N T E R F A C E U T I L I S A T E U R V I S I O 455

Suppression d’un accélérateurLa macro suivante indique comment supprimer, du contexte de la fenêtre de dessin, l’accélérateur de l’Editeur Visual Basic :

����������������������

��������P����!����"%���P���

���������$������P����!����"�����$����

����������������P����!����"����������

���������������P����!����"���������

���������������

X&A��A���Y��P���%���P���������������1������������A�A�

��������P� �!����"���������"3������E����

X����A����Y��P��������$������P����������+���������1��������1��1�����

���������$������P� �����P"�����$�����"������������%���P�����O����

X&A��A����������������1Y���A�A�����

����������������P� ������$������P"����������

X&A��A���Y���A�A�����1���YA1�����!������3��������

X����������������������1������A�A�������������A���

X������J����������������I������"

)���� �'�$��������������P"������5�*

���������������P� �������������P"�������

�+������������P"��12��� �!����"�����1$����&��!3 �$���

����)�

�1��+

2�����

X�������Y���A�A����

�����������P"������

X����A���!�����1������U��W����J�Y�����������������������������

X���������A�����J������1����������������+"

$�����������"���������E���������P

�1����

Page 470: MS Visio 2003 Guide du Développeur

456 C H A P I T R E 2 2

Mise en oeuvre des modifications apportées à l’interface utilisateur personnaliséeL’étape finale du processus de personnalisation de l’interface utilisateur Visio consiste à paramétrer l’interface utilisateur personnalisée d’un objet. L’interface utilisateur personnalisée est ainsi appliquée à la copie de Visio. Les modifications que votre programme apporte à un objet UIObject apparaissent dans la copie de Visio après cette étape.

Pour appliquer les modifications de l’interface utilisateur personnalisée, utilisez les méthodes SetCustomMenus ou SetCustomToolbars de l’objet Document ou Application et spécifiez l’objet UIObject représentant votre interface utilisateur personnalisée. Par exemple, l’instruction suivante permet de paramétrer les menus pour un document :

Pour paramétrer les barres d’outils personnalisées pour tous les documents d’une copie de Visio, utilisez cette instruction :

Si vous modifiez un objet UIObject qui représente les barres d’outils ou les menus personnalisés actifs au cours de l’exécution d’une copie de Visio, utilisez la méthode UpdateUI de l’objet UIObject pour afficher vos modifications :

$�����������"���������E���������P

!����"���������"���������$�����������P

X&A��A���Y��P���%���P��������������������������A�

��������P� �!����"���������"������E����

"""X������������1����1�����A��W��Y����+�������������A�

X���J���������1�+���������W��Y����+�������������A�

����P"%1���%�

Page 471: MS Visio 2003 Guide du Développeur

P E R S O N N A L I S A T I O N D E L ’ I N T E R F A C E U T I L I S A T E U R V I S I O 457

Utilisation des fichiers d’interface utilisateur personnalisée

Le fichier d’interface utilisateur Visio (VSU) est un moyen de sauvegarder l’interface utilisateur personnalisée d’une copie de Visio à une autre. Si votre solution apporte des modifications importantes à l’interface utilisateur Visio et si les utilisateurs n’apporteront vraisemblablement pas d’autres modifications par l’intermédiaire d’autres solutions, le fichier VSU constitue certainement le moyen le plus efficace d’obtenir une interface utilisateur personnalisée.

Fichier Custom.vsuVisio 2000 utilise un fichier VSU pour conserver les personnalisations de l’utilisateur. La première fois qu’un utilisateur personnalise l’interface utilisateur Visio à l’aide de la commande Affichage > Barres d’outils > Personnaliser, la copie de Visio prend un instantané de l’interface utilisateur active (notamment les personnalisations fournies par les solutions Visio) et, lorsque l’utilisateur quitte Visio, la stocke dans un fichier appelé Custom.vsu dans le dossier du profil de l’utilisateur.

Si votre solution utilise un fichier .vsu pour fournir une interface utilisateur personnalisée, vous devez retenir les informations suivantes :

• Si le système utilisateur comporte un fichier Custom.vsu, les propriétés CustomMenus et CustomToolbars de l’objet Application renvoient un objet UIObject au lieu de renvoyer Nothing (dans les versions précédentes de Visio, CustomMenus et CustomToolbars renvoyaient un objet UIObject seulement si l’interface utilisateur Visio avait été personnalisée par un programme).

• Le fichier Custom.vsu de l’utilisateur est un instantané de l’interface utilisateur, quelle qu’elle soit, qui est activée lorsque l’utilisateur personnalise l’interface. Si une solution personnalise l’interface utilisateur Visio, et si l’utilisateur crée une barre d’outils personnalisée, le fichier Custom.vsu de l’utilisateur correspond à l’interface utilisateur de la solution à laquelle s’ajoutent les modifications de l’utilisateur. Si une solution recharge ensuite son fichier .vsu original, la copie de Visio semble « perdre » les personnalisations de l’utilisateur.

• Si le fichier Custom.vsu est supprimé, la copie de Visio rétablit les personnalisations de l’utilisateur à partir des données de ressource internes et recrée le fichier lorsque l’utilisateur quitte le programme la fois suivante.

Si votre solution Visio est la seule exécutée sur plusieurs installations Visio, pensez à donner au fichier d’interface utilisateur de cette solution le nom de Custom.vsu, puis à l’installer dans le dossier des données de l’application approprié afin de distribuer une interface utilisateur personnalisée Visio dans toute l’entreprise.

Page 472: MS Visio 2003 Guide du Développeur

458 C H A P I T R E 2 2

Enregistrement d’un fichier d’interface utilisateur personnaliséeSi vous avez apporté des modifications importantes à l’interface utilisateur et si vous avez l’intention d’enregistrer votre interface utilisateur personnalisée dans un fichier VSU, utilisez la méthode SaveToFile de l’objet UIObject. Par exemple :

Chargement d’un fichier d’interface utilisateur personnaliséeVous pouvez charger un fichier d’interface utilisateur personnalisée en paramétrant l’interface personnalisée de l’objet Application. Vous pouvez aussi charger un fichier d’interface utilisateur personnalisée (.vsu) au déclenchement d’un événement, comme l’ouverture d’un document.

Pour charger le fichier d’interface utilisateur personnalisée d’un objet Application, paramétrez les propriétés suivantes de l’objet sur le nom de ce fichier :

• CustomMenusFile : paramétrez cette propriété pour les menus personnalisés et les accélérateurs.

• CustomToolbarsFile : paramétrez cette propriété pour les barres d’outils et les barres d’état personnalisées.

Par exemple, pour charger un fichier d’interface utilisateur personnalisée à chaque lancement de l’application Visio, utilisez cette instruction :

Vous devez paramétrer ces propriétés de l’objet Application une fois seulement. Ces propriétés définissent la valeur des entrées CustomMenusFile et CustomToolbarsFile dans le registre de Microsoft® Windows® et indiquent à l’application Visio l’emplacement du fichier d’interface personnalisée correspondant. Si aucun chemin n’est spécifié, l’application Visio effectue une recherche dans les dossiers du chemin des programmes complémentaires Visio, spécifié dans l’onglet Chemins d'accès. Si le fichier indiqué ne peut pas être localisé, ou si la clé de registre est supprimée ou modifiée, l’application Visio reprend l’interface utilisateur Visio intégrée.

Pour charger un fichier d’interface utilisateur personnalisée au déclenchement d’un événement, comme l’ouverture d’un document, placez le code dans l’événement approprié de l’objet Document.

����P"����$�)����#�Z[�����[���������[�++���[���������"���#�

!����"���������"������$������)���� �.

#�Z[�����[���������[�++���[���������"���#

Page 473: MS Visio 2003 Guide du Développeur

P E R S O N N A L I S A T I O N D E L ’ I N T E R F A C E U T I L I S A T E U R V I S I O 459

Pour charger un fichier d’interface utilisateur personnalisée à chaque ouverture de document, utilisez cette instruction dans l’événement DocumentOpened de l’objet Document :

Si vous programmez dans un environnement de développement externe comme Microsoft® Visual Basic®, vous pouvez charger un fichier d’interface utilisateur personnalisée, le modifier, puis enregistrer les modifications du fichier.

Pour charger un fichier d’interface utilisateur personnalisée, utilisez la méthode LoadFromFile. Par exemple :

Restauration de l’interface utilisateur intégrée VisioSi votre solution personnalise l’interface utilisateur Visio, il est conseillé de restaurer l’interface utilisateur d’origine lorsque l’exécution de cette solution s’achève. Si votre solution a détecté des menus personnalisés ou des barres d’outils personnalisées dans le système de l’utilisateur, ou si l’utilisateur a personnalisé l’interface utilisateur pendant l’exécution de la solution, il doit annuler ses modifications en supprimant les éléments ajoutés et en restaurant ceux qu’il a supprimés.

Si aucune autre personnalisation ne doit être conservée, vous pouvez effacer les barres d’outils et les menus personnalisés pour rapidement restaurer l’interface utilisateur intégrée Visio. L’effacement des menus et des barres d’outils personnalisés ne supprime pas le fichier Custom.vsu de l’utilisateur, mais entraîne l’interruption de son utilisation par l’application Visio.

Pour restaurer les menus et les accélérateurs intégrés de Visio, utilisez la méthode ClearCustomMenus de l’objet Document (ou Application). Pour restaurer les barres d’outils et les barres d’état intégrées de Visio, utilisez la méthode ClearCustomToolbars de l’objet Document (ou Application). Par exemple, pour effacer les menus personnalisés d’un objet Document, utilisez cette instruction :

$�����������"������E����)���� ��#�Z[�����[���������[�++���[���������"���#

%���P"���1)��)����#�������"���#

"""�X�����1�����1�+����������+���1��������������Y����+���

����P"����$�)����#�Z[�����[���������[�++���[���������"���#

$�����������"����������E����

Page 474: MS Visio 2003 Guide du Développeur

460 C H A P I T R E 2 2

Par exemple, pour effacer les barres d’outils personnalisées de l’objet Application, utilisez cette instruction :

A l’ouverture suivante du document ou à l’exécution suivante d’une copie de Visio, l’interface utilisée est l’interface utilisateur intégrée de Visio.

!����"���������"����������$������

Page 475: MS Visio 2003 Guide du Développeur

Sommaire

23Utilisation de contrôles ActiveXdans une solution Visio

Vous pouvez ajouter des contrôles Microsoft® ActiveX® directement dans des dessins Microsoft® Visio® (version 5.0 ou ultérieure) afin de rendre votre solution Visio interactive. Vous pouvez, par exemple, ajouter des contrôles de boîte de dialogue Microsoft® Windows® standard, comme des boutons sur lesquels il suffit de cliquer une fois, des cases à cocher ou des zones de liste. Vous pouvez également utiliser des contrôles personnalisés, que vous développez ou que vous achetez, afin d’incorporer des fonctionnalités plus complexes, comme des animations.

Ajout de contrôles ActiveX à une solution Visio ................................................. 462

Gestion des événements d’un contrôle................................................................ 466

Utilisation des contrôles à l’exécution ................................................................. 467

Distribution de contrôles ActiveX dans une solution Visio ................................ 469

Exemple de contrôles ActiveX qui interagissent avec des formes.................... 470

Page 476: MS Visio 2003 Guide du Développeur

462 C H A P I T R E 2 3

Ajout de contrôles ActiveX à une solution Visio

L’utilisation de contrôles ActiveX dans des solutions Visio permet de créer une interface utilisateur cohérente avec des solutions basées sur d’autres applications Windows. Les contrôles étant sur la page de dessin, l’utilisateur peut travailler librement sur des contrôles et des formes Visio dans un dessin.

Utilisation du mode créationLorsque vous travaillez avec des contrôles ActiveX dans un dessin Visio, vous basculez entre les modes création et exécution. En mode création, vous pouvez insérer des contrôles, les déplacer et les redimensionner, et définir leurs propriétés. En mode exécution, vous pouvez utiliser ces contrôles : cliquez sur un bouton de commande pour exécuter son gestionnaire d’événements Click, par exemple. Pour d’autres tâches, il importe peu que Visio soit en mode création ou exécution (tous les autres outils et commandes Visio s’utilisent de la même façon dans les deux modes).

Le mode du document est synchronisé avec celui du projet Microsoft® Visual Basic® pour Applications (VBA) correspondant. Le document et son projet sont ainsi toujours dans le même mode. Quand un document est en mode création, aucun de ses objets (y compris ses contrôles) n’émet d’événements.

Un document Visio est par défaut en mode exécution à son ouverture, à moins que la protection contre les virus de macro ne soit activée dans Visio. Pour passer en mode création, vérifiez que la barre d’outils Développeur est affichée. Si ce n’est pas le cas, choisissez Affichage > Barres d'outils > Développeur. Cliquez ensuite sur le bouton Mode Création qui apparaît en clair pour indiquer que Visio est en mode création.

REMARQUE : si la protection contre les virus de macro est activée, l’utilisateur est invité à activer ou à désactiver les macros à l’ouverture d’un document. Si l’utilisateur désactive les macros, le document est ouvert en mode création, et il est impossible de passer en mode exécution à moins de fermer le document et de l’ouvrir de nouveau en activant les macros. Pour activer la protection contre les virus de macro, choisissez Outils > Options, cliquez sur l’onglet Options avancées, puis sélectionnez ou désélectionnez l’option Protection anti-virus macro.

Insertion d’un contrôle dans un dessinAvant d’insérer un contrôle ActiveX dans un dessin Visio, le contrôle doit être installé sur votre système. Certains contrôles peuvent également nécessiter une licence de création pour être utilisés dans les applications que vous développez.

Page 477: MS Visio 2003 Guide du Développeur

U T I L I S A T I O N D E C O N T R Ô L E S A C T I V E X D A N S U N E S O L U T I O N V I S I O 463

Vous insérez un contrôle en le sélectionnant dans la boîte de dialogue Contrôles, qui répertorie tous les contrôles ActiveX installés sur votre système, notamment ceux installés par d’autres applications. De telles applications fournissent généralement une licence d’exécution pour les contrôles ActiveX qu’elles contiennent. La licence d’exécution vous autorise à utiliser ces contrôles dans l’application qui les contient, mais pas à les insérer dans des applications que vous développez. Pour insérer ce type de contrôle dans vos applications, vous devez disposer d’une licence de création. Pour plus d’informations, reportez-vous à la section « Distribution de contrôles ActiveX dans une solution Visio », page 469.

Pour insérer un contrôle ActiveX dans un dessin :

1 Cliquez sur le bouton Insérer un contrôle ( ) de la barre d’outils Développeur.

2 Dans la boîte de dialogue Contrôles, sélectionnez un contrôle, par exemple Microsoft Forms 2.0 CommandButton.

Boîte de dialogue Contrôles

3 Cliquez sur OK pour insérer le contrôle dans la page de dessin.

4 Le cas échéant, déplacez et redimensionnez le contrôle.

Un contrôle sélectionné est doté de poignées de sélection vertes, comme une forme sélectionnée, et vous pouvez le déplacer et le redimensionner de la même façon.

Contrôle sélectionné

Page 478: MS Visio 2003 Guide du Développeur

464 C H A P I T R E 2 3

5 Le cas échéant, modifiez le contrôle et définissez ses propriétés.

Pour modifier un contrôle, double-cliquez dessus. Un contrôle activé de cette façon pour la modification sur place se présente de la même façon dans Visio et dans tous les conteneurs ActiveX. Pour définir les propriétés d’un contrôle, utilisez l’Editeur Visual Basic ( ).

Contrôle activé pour lamodification sur place

Après l’insertion d’un contrôle dans un dessin, son utilisation est très similaire à celle d’une forme Visio. Par exemple, vous pouvez couper ou copier, puis coller le contrôle, le dupliquer en maintenant la touche Ctrl enfoncée et en faisant glisser le pointeur, ou le transformer en forme de base en le faisant glisser vers un gabarit.

Conseils destinés aux développeurs de contrôles La première fois que vous insérez un contrôle dans un dessin Visio, VBA crée une « bibliothèque de types fusionnée » pour ce contrôle et le stocke dans le répertoire Temp dans un fichier portant l’extension .exd. Si vous modifiez ensuite le contrôle, commencez par supprimer le fichier .EXD avant d’essayer d’insérer de nouveau le contrôle. Si un message d’erreur apparaît lorsque vous insérez un contrôle après l’avoir modifié, supprimez le fichier .EXD caché pour résoudre ce problème.

Si le contrôle prend en charge l’interface IClassFactory2, le moteur Visio utilise cette interface lorsque vous essayez d’insérer une nouvelle occurrence de ce contrôle. Par conséquent, cette insertion ne réussit que sur les systèmes sur lesquels le contrôle fait l’objet de la licence adéquate. Si le contrôle ne prend pas en charge IClassFactory2, le moteur Visio utilise l’interface IClassFactory pour instancier le contrôle, et la licence n’a aucune incidence.

Définition de l’ordre de tabulation des contrôlesLorsque Visio est en mode exécution, appuyez sur la touche Tab pour passer d’un contrôle à un autre dans la page de dessin. Si vous ajoutez plusieurs contrôles à un dessin, il est intéressant de pouvoir activer les contrôles dans un ordre logique.

L’ordre de tabulation des contrôles correspond à leur ordre d’empilement sur la page de dessin, en commençant par le contrôle de dernier plan. A l’origine, il s’agit de l’ordre dans lequel vous avez inséré les contrôles dans le dessin, le contrôle le plus récent figurant au premier plan.

Page 479: MS Visio 2003 Guide du Développeur

U T I L I S A T I O N D E C O N T R Ô L E S A C T I V E X D A N S U N E S O L U T I O N V I S I O 465

Pour modifier l’ordre d’empilement des contrôles, utilisez les commandes suivantes du menu Forme :

• Rapprocher

• Premier plan

• Eloigner

• Arrière-plan

Utilisation des propriétés d’ambiance de Visio dans des contrôlesSi vous développez des contrôles ActiveX pour Visio, vous pouvez tirer parti des propriétés d’ambiance définies par Visio. Un contrôle utilise les propriétés d’ambiance d’une application pour conserver une apparence cohérente avec les autres contrôles d’un document. Par exemple, la propriété BackColor indique la couleur de l’intérieur d’un contrôle.

Pour obtenir la liste des propriétés d’ambiance de Visio :

• Dans la fenêtre de l’Editeur Visual Basic, cliquez avec le bouton droit sur l’explorateur d’objets et choisissez Afficher les membres cachés dans le menu contextuel, puis sélectionnez IVAmbients dans la liste Classes.

Les propriétés d’ambiance sont en lecture seule.

Impression d’un dessin sans contrôlePour que l’utilisateur puisse imprimer un dessin mais pas les contrôles, effectuez l’une des opérations ci-dessous :

• Sélectionnez les contrôles, choisissez Format > Comportement, puis cochez l’option Forme non imprimable.

• Attribuez le même calque à tous les contrôles et définissez-le comme non imprimable.

Pour plus d’informations sur les calques, reportez-vous au chapitre 11, « Réorganisation des formes d’un dessin ».

Protection des contrôles contre les modificationsLorsque vous distribuez une solution contenant des contrôles, vous pouvez autoriser les utilisateurs à modifier les formes dans le dessin, mais vous ne souhaitez généralement pas qu’ils puissent modifier les contrôles. Vous pouvez protéger les contrôles contre les modifications des utilisateurs, même en mode création, en verrouillant les formes et en protégeant le document.

Page 480: MS Visio 2003 Guide du Développeur

466 C H A P I T R E 2 3

Pour protéger les contrôles contre les modifications :

1 Sélectionnez les contrôles dans le dessin.

2 Choisissez Format > Protection, puis cochez l’option Contre la sélection.

3 Choisissez Affichage > Fenêtres > Drawing Explorer pour afficher la fenêtre Drawing Explorer™.

4 Dans la fenêtre Drawing Explorer, cliquez avec le bouton droit sur le document et choisissez Protéger le document dans le menu contextuel, puis cochez la case Formes.

5 Pour plus de sécurité, définissez un mot de passe dans la boîte de dialogue Protéger le document.

L’utilisateur peut saisir le dessin, mais pas les contrôles.

Gestion des événements d’un contrôle

Après avoir ajouté un contrôle ActiveX à la page de dessin, vous pouvez gérer les divers événements émis par le contrôle (par exemple, si vous insérez un bouton de commande, vous pouvez gérer son événement Click). Pour gérer les événements d’un contrôle, vous devez rédiger des procédures d’événement dans le projet Microsoft Visual Basic pour Applications (VBA) du dessin Visio contenant le contrôle, comme vous le faites pour les événements Visio.

Pour rédiger une procédure d’événement d’un contrôle :

1 Dans la fenêtre de code de l’Editeur Visual Basic associée à ThisDocument, sélectionnez un contrôle dans la zone de liste des objets.

2 Sélectionnez l’événement à gérer dans la zone de liste des procédures.

3 Remplissez la procédure d’événement dans la fenêtre de code.

Par exemple, la procédure d’événement suivante d’un bouton de commande supprime une forme du dessin Visio si un utilisateur sélectionne le nom de la forme dans un contrôle de zone de liste et clique sur le bouton de commande :

�����������������13�����*.����d���

���������������!����"����

�+�����3��*"������1���/ '�$���

������������ �.

����������"����������3��*"$����

�������"������

�1��+

�1����

Page 481: MS Visio 2003 Guide du Développeur

U T I L I S A T I O N D E C O N T R Ô L E S A C T I V E X D A N S U N E S O L U T I O N V I S I O 467

Utilisation des contrôles à l’exécution

Un contrôle ActiveX propose généralement des propriétés et des méthodes que vous pouvez utiliser au moment de l’exécution pour intégrer le contrôle à votre programme. Par exemple, un contrôle de zone de liste est doté d’une propriété ListIndex qui renvoie l’indice de l’élément sélectionné et d’une propriété Text qui renvoie le texte de l’élément à cet indice.

A propos des noms de contrôleUn contrôle est associé à deux noms : un nom Visio et un nom VBA. A l’origine, ces noms identiques sont constitués du type de contrôle associé à un nombre entier qui rend le nom unique. Par exemple, le premier contrôle de zone de liste que vous insérez dans un dessin reçoit le nom ListBox1 et vous pouvez utiliser ce nom pour faire référence à ce contrôle dans le code VBA et dans Visio. Visio utilise d’autres conventions de nom pour ses formes. Pour plus d’informations sur les conventions de nom, reportez-vous au chapitre 16, « Utilisation des objets Visio Document, Page et Shape ».

Bien qu’ayant à l’origine la même valeur, les deux noms sont distincts du point de vue de la programmation et ne sont pas interchangeables :

• Utilisez le nom d’objet VBA d’un contrôle pour faire référence à ce dernier dans le code VBA. Pour modifier ce nom, définissez la propriété Name du contrôle dans la fenêtre des propriétés de VBA dans l’Editeur Visual Basic. Vous ne pouvez pas utiliser le nom d’objet VBA d’un contrôle pour récupérer un objet Shape d’une collection Visio, comme la collection Shapes ; vous devez pour cela utiliser la propriété Shape.Name du contrôle (par exemple, ListBox1.Shape.Name).

• Utilisez le nom Visio d’un contrôle pour récupérer l’objet Shape représentant le contrôle dans une collection Visio, comme OLEObjects ou Shapes. Pour modifier ce nom, utilisez la zone Nom dans la boîte de dialogue Spécial dans Visio (sélectionnez le contrôle et choisissez Format > Spécial) ou définissez la propriété Shape.Name du contrôle dans VBA. Vous ne pouvez pas utiliser le nom Visio d’un contrôle pour faire référence à ce dernier dans le code VBA.

CONSEIL : pour des raisons pratiques, vous pouvez, si vous modifiez la valeur par défaut d’un nom, changer l’autre nom afin que les noms VBA et Visio d’un contrôle restent identiques.

Page 482: MS Visio 2003 Guide du Développeur

468 C H A P I T R E 2 3

Récupération d’un contrôle de la collection OLEObjectsVous pouvez récupérer l’objet Shape représentant un contrôle de la collection OLEObjects d’un objet Document, Page ou Master Visio. Vous pouvez également récupérer un contrôle de la collection Shapes d’une page ou d’une forme de base, mais il est beaucoup plus rapide d’utiliser la collection OLEObjects car elle ne contient que des objets liés ou incorporés, alors que la collection Shapes inclut également toutes les formes Visio (donc un plus grand nombre d’objets).

La collection OLEObjects contient un objet OLEObject représentant chaque objet lié ou incorporé dans un document, une page ou une forme de base Visio, ainsi que tous les contrôles ActiveX. La propriété Object d’un objet OLEObject renvoie une référence à l’objet lié ou incorporé, que vous pouvez utiliser pour accéder aux propriétés et aux méthodes de l’objet.

Vous pouvez extraire un contrôle de la collection OLEObjects via son indice au sein de la collection ou par le nom attribué au contrôle dans Visio. A l’origine, ce nom est identique au nom d’objet VBA du contrôle, comme l’explique la section précédente « A propos des noms de contrôle », page 467. Par exemple, les instructions suivantes permettent de récupérer une forme nommée ListBox1 :

Pour effectuer la même opération sur tous les contrôles, bouclez sur la collection OLEObjects et vérifiez la propriété ForeignType de chaque objet OLEObject pour voir si la partie visTypeIsControl est définie. Si ForeignType et visTypeIsControl ont la valeur TRUE, l’objet est un contrôle ActiveX.

�����.�������������P���

�����.�������� �.

��������"�� ��P�����#����3��*#�"��P���

Page 483: MS Visio 2003 Guide du Développeur

U T I L I S A T I O N D E C O N T R Ô L E S A C T I V E X D A N S U N E S O L U T I O N V I S I O 469

Distribution de contrôles ActiveX dans une solution Visio

Microsoft Visual Basic pour Applications (VBA), dans Microsoft® Visio® 2000, inclut les contrôles Microsoft Forms 2.0 ActiveX, qui comprennent les contrôles de boîte de dialogue standard comme les boutons, les cases à cocher, les zones de texte et les zones de liste modifiable. Vous pouvez distribuer ces contrôles très simplement avec une solution Visio car ils sont inclus dans Visio (aucune installation spéciale ni licence supplémentaire n’est nécessaire).

Vous pouvez vous procurer d’autres contrôles en installant Visual Basic ou C++, en téléchargeant des contrôles depuis Internet ou en achetant des modules externes. La distribution d’une solution contenant de tels contrôles peut être un peu plus complexe :

• Les contrôles pouvant déjà se trouver sur le système de l’utilisateur, le programme d’installation de votre solution doit vérifier si le contrôle est déjà installé et, s’il ne l’est pas, l’installer et l’enregistrer sur le système de l’utilisateur.

• De tels contrôles sont généralement livrés avec une licence de création de façon à ce que vous puissiez les utiliser dans les projets de développement ; ils peuvent nécessiter une licence d’exécution pour leur distribution.

Pour plus d’informations sur l’installation, l’enregistrement et les licences des contrôles de sociétés tierces, reportez-vous à la documentation destinée aux développeurs, fournie avec le contrôle.

Page 484: MS Visio 2003 Guide du Développeur

470 C H A P I T R E 2 3

Exemple de contrôles ActiveX qui interagissent avec des formes

Pour comprendre l’interaction des contrôles ActiveX avec une forme Visio, consultez l’exemple suivant qui illustre un dessin comportant un contrôle de zone de liste modifiable qui répertorie plusieurs éléments : le nom des formes du dessin, des zones de texte affichant du texte et certaines propriétés personnalisées d’une forme sélectionnée, ainsi qu’un bouton de commande permettant de mettre à jour une forme sélectionnée selon les nouvelles valeurs des zones de texte. Le dessin tient également à jour le total des coûts et des durées de toutes les formes de diagramme de flux de processus de la page, en actualisant les totaux lors de l’ajout, de la suppression ou de la modification de formes.

Dessin utilisant descontrôles ActiveX pour

interagir avec des formes

Page 485: MS Visio 2003 Guide du Développeur

U T I L I S A T I O N D E C O N T R Ô L E S A C T I V E X D A N S U N E S O L U T I O N V I S I O 471

L’exemple de code suivant illustre le gestionnaire d’événements ComboBox1_Change. Ce dernier sélectionne une forme dans le dessin et affiche ses propriétés personnalisées dans des zones de texte lorsque l’utilisateur sélectionne le nom de cette forme dans la zone de liste modifiable :

����������������3��*.��������

X�Y����������������J�A�����������A��1Y����������

������2������������

��� ��;�$�������Z

�+����������3��������1��$���

X`���������������+���<�A��1��1APW�W��YA�A���������������������

�������

�1��+

X�A+���������1������������+����J�����������������1��������������

X������"���������������������U�,�������W��YA��J�����������,��U��

X�����A���������A�������1������"

��������3��������1� �$��

X�Y����1����������������������������Y��P������1�O�1A+�����

X�����3��*"$���������������1�O.���������������1�"� �����������������

X�������������1Y�++�������Y���������������,�������������������J������

X�������+����J�����A�A��A��������A�"

��2���� ������3��*"$���

X�A�����������Y���A���������������A�A�

���������1�O"�����������

���������1�O"�����������������"��������2����,����������

���������������"��������2����

$���3��*"$���� �"$���

$���3��0"$���� �)�����"������#�"��h�#�"&������%,�#������#�

$���3��F"$���� �)�����"������#�"1�A�#�"&��������� ����1E���,�.

#((('����"#�

�1�����

�������

�����Z

X�A+�����Y��1������������1�J���J�������������2Y������%��1������

X�������������

��������3��������1� �)����

�1����

Page 486: MS Visio 2003 Guide du Développeur

472 C H A P I T R E 2 3

Ce gestionnaire d’événements effectue les opérations suivantes :

1 Il désélectionne tous les éléments du dessin.

2 Il sélectionne la forme dont le nom correspond à la valeur de la propriété Text du contrôle ComboBox1. Si le dessin ne contient pas de forme de ce type, le gestionnaire s’interrompt.

3 Il attribue à la propriété Text du contrôle TextBox1 la propriété Text de la forme.

4 Il attribue à la propriété Text du contrôle TextBox2 la valeur de la propriété personnalisée Coût de la forme, sous la forme d’une valeur monétaire.

5 Il attribue à la propriété Text du contrôle TextBox3 la valeur de la propriété personnalisée Durée de la forme, sous forme de minutes.

La variable globale bInComboBoxChanged indique si le gestionnaire ComboBox1_Change est appelé pour la première fois. Le fait de désélectionner et de sélectionner une forme déclenche des événements Window_SelectionChanged. Toutefois, dans cet exemple, le gestionnaire de cet événement définit la propriété ComboBox1.Text, qui déclenche un événement ComboBox1_Change et entraîne une nouvelle exécution du gestionnaire ComboBox1_Change. Le gestionnaire définissant la variable bInComboBoxChanged à la première exécution peut ignorer les opérations de sélection la deuxième fois, empêchant ainsi le programme d’entrer dans une boucle récursive.

Il est également possible d’éviter de telles boucles en définissant la propriété EventsEnabled de l’objet Application afin de désactiver la gestion des événements pendant que le gestionnaire effectue des opérations qui déclencheraient normalement des événements et entraîneraient l’exécution incorrecte des gestionnaires. Toutefois, cette méthode n’est pas recommandée car elle désactive tous les événements pour la copie du moteur Visio, risquant ainsi d’entraîner des interférences avec d’autres solutions exécutées sur le système de l’utilisateur (notamment si une erreur dans la solution l’empêche de réactiver les événements). A moins d’être certain que cette solution sera la seule à traiter des événements Visio, utilisez la technique de variable globale indiquée dans l’exemple précédent.

Page 487: MS Visio 2003 Guide du Développeur

Sommaire

24Utilisation du gestionnaire d’annulation de Visio dans votre programme

Dans un document Microsoft® Visio®, les modifications s’effectuent soit par l’utilisateur, soit par un programme Automation. L’utilisateur annule ou rétablit des modifications dans le programme ou dans l’interface utilisateur à l’aide de la méthode Undo ou Redo. Chaque occurrence Visio contient un gestionnaire d’annulation qui effectue le suivi des actions pouvant être annulées ou rétablies dans toute l’application. Une action annulable peut être une opération quelconque qui modifie ou change l’état d’un document. Les files d’attente des actions pouvant être annulées ou rétablies sont appelées des piles.

Le gestionnaire d’annulation de Visio permet de gérer avec souplesse les actions annulables sous la forme d’actions discrètes ou de regrouper plusieurs actions annulables en une seule unité gérable dans les piles d’annulation et de rétablissement sous la forme d’une action annulable unique. Pour ce faire, le moteur Visio crée un domaine d’annulation.

Par ailleurs, si votre solution gère un modèle parallèle ou un modèle avec ombre portée représentant les données associées aux formes du dessin, vous pouvez créer des unités d’annulation qui se placent dans le gestionnaire d’annulation de Visio pour que les données et les dessins restent synchronisés. Les unités d’annulation contiennent les actions nécessaires à l’annulation ou au rétablissement des modifications apportées au document.

REMARQUE : dans les versions précédentes de Microsoft® Visio® 2000, chaque action exécutée dans un programme complémentaire était une action annulable unique dans l’application Visio. Si l’utilisateur choisissait Annuler, seule l’action la plus récente était annulée.

Dans Visio 2000, la séquence d’actions exécutées par un programme complémentaire appelée depuis l’application Visio est automatiquement gérée comme une action annulable unique. Si l’utilisateur choisit Annuler, toutes les actions exécutées dans le programme complémentaire sont annulées. Pour plus d’informations, reportez-vous à la section « Fonctionnement du gestionnaire d’annulation de Visio avec un programme complémentaire », page 475.

Le gestionnaire d’annulation de Visio .................................................................. 474Création de domaines d’annulation dans votre programme complémentaire ..................................................................................................... 477Création d’unités d’annulation.............................................................................. 479Exemple de création d’une unité d’annulation qui gère des données non-Visio .......................................................................................... 481

Page 488: MS Visio 2003 Guide du Développeur

474 C H A P I T R E 2 4

Le gestionnaire d’annulation de Visio

Le moteur Visio crée une unité d’annulation pour chaque commande Visio qui modifie l’état d’un document. L’unité d’annulation est un moyen de décrire ce qui a changé ; elle regroupe toutes les informations nécessaires pour annuler une modification décidée ou non par l’utilisateur.

Pour chaque action annulable exécutée par un utilisateur dans l’interface, l’occurrence Visio crée une unité d’annulation qui apparaît dans la liste Annuler de la barre d’outils Standard et dans le menu Edition. A chaque action annulable correspond une unité d’annulation.

Liste des actions annulables dansl’interface utilisateur

Les programmes complémentaires et les actions dans l’interface utilisateur sont gérés différemment. L’utilisateur qui exécute un programme complémentaire à partir du menu des macros appréhende généralement cette action comme il envisage le déplacement d’une forme sur une page, c’est-à-dire en tant qu’une action annulable unique. L’utilisateur préfère certainement annuler toutes les modifications de programme complémentaire en une seule action. Pour cette raison, chaque fois qu’un programme complémentaire est appelé depuis l’application Visio, les actions annulables du programme sont regroupées dans un domaine d’annulation et sont présentées à l’utilisateur sous la forme d’une action annulable unique.

Pour plus d’informations sur la création de vos propres domaines d’annulation, reportez-vous à la rubrique « Création de domaines d’annulation dans votre programme complémentaire », page 477.

Présentation des options de Annuler/RétablirChaque copie de Visio inclut un gestionnaire d’annulation qui permet de gérer les piles d’annulation et de rétablissement. Lorsqu’un utilisateur choisit Annuler, le gestionnaire de Visio prend la dernière unité d’annulation ajoutée à la pile d’annulation ; cette unité d’annulation exécute alors ses actions et crée un objet correspondant dans la pile de rétablissement.

Page 489: MS Visio 2003 Guide du Développeur

U T I L I S A T I O N D U G E S T I O N N A I R E D ’ A N N U L A T I O N D E V I S I O D A N S V O T R E P R O G R A M M E 475

Par exemple, si l’utilisateur exécute trois actions sur la page de dessin, le gestionnaire d’annulation de Visio doit globalement ressembler à l’illustration suivante :

Etat des piles d’annulation/derétablissement après trois actions

annulables

Si l’utilisateur sélectionne ensuite Annuler ou si votre programme appelle la méthode Undo de l’objet Application, le gestionnaire d’annulation de Visio doit apparaître comme dans l’illustration suivante :

Etat des piles d’annulation/derétablissement après l’annulation

d’une action

Fonctionnement du gestionnaire d’annulation de Visio avec un programme complémentaire En général, un programme complémentaire effectue plusieurs actions annulables : par exemple, il peut changer la couleur du remplissage de toutes les formes présentes sur une page. Si cette modification ne convient pas et que l’utilisateur souhaite l’annuler, il s’attend à ce que la sélection de l’option Annuler restaure le dessin dans l’état dans lequel il était avant l’exécution du programme complémentaire.

Pour cette raison, le moteur Visio regroupe en une seule action annulable la séquence d’actions entreprises par votre programme complémentaire. Chaque fois qu’un programme complémentaire est appelé depuis une occurrence Visio, un domaine d’annulation est lancé. Ce domaine d’annulation s’achève lorsque le programme complémentaire se termine. Tout ce qui figure à l’intérieur de ce domaine est considéré comme une seule action annulable.

1 2 3

Gestionnaire d’annulation

annulation rétablissement

31 2

Gestionnaire d’annulation

annulation rétablissement

Page 490: MS Visio 2003 Guide du Développeur

476 C H A P I T R E 2 4

Par exemple, si votre programme complémentaire exécute trois commandes Visio, la pile d’annulation doit ressembler, après exécution du programme complémentaire, à l’illustration suivante :

Etat des piles d’annulation/derétablissement après lancement

d’un programme complémentairequi exécute trois actions

annulables

Si, par la suite, l’utilisateur choisit d’annuler les changements apportés par votre programme complémentaire, il ne voit qu’une seule commande dans la liste des annulations de la barre d’outils Standard, les trois actions sont annulées et la file d’attente des annulations ressemble à l’exemple suivant :

Etat des piles d’annulation/derétablissement après la sélection

de l’option Annuler pour unprogramme complémentaire quiexécute trois actions annulables

CONSEIL : chaque fois que vous exécutez une action annulable dans un gestionnaire d’événements, cochez tout d’abord la propriété IsUndoingorRedoing de l’objet Application. Vous devez exécuter des actions annulables seulement lorsque cet indicateur est False. Si IsUndoingorRedoing renvoie la valeur True, le gestionnaire d’événements est appelé à la suite d’une action Annuler ou Rétablir ; si des actions annulables sont exécutées, la pile des rétablissements est détruite.

1 2 3

Gestionnaire d’annulation

piled’annulation

pile derétablissement

Domaine A

Gestionnaire d’annulation

piled’annulation

pile derétablissement

123

Domaine A

Page 491: MS Visio 2003 Guide du Développeur

U T I L I S A T I O N D U G E S T I O N N A I R E D ’ A N N U L A T I O N D E V I S I O D A N S V O T R E P R O G R A M M E 477

Création de domaines d’annulation dans votre programme complémentaire

Dans certains cas, le moteur Visio ne peut pas gérer automatiquement les actions annulables dans votre programme complémentaire. Si, par exemple, votre programme complémentaire est un programme autonome, le moteur Visio ne peut pas détecter le début et la fin de son exécution. De la même manière, si votre programme est exécuté sans mode particulier, le moteur ne peut pas connaître toutes les opérations effectuées par votre programme complémentaire. Pour cette raison, le moteur Visio met à disposition des mécanismes vous permettant de créer vos propres domaines d’annulation.

Outre le regroupement des opérations en actions annulables uniques, vous pouvez aussi utiliser des domaines d’annulation pour déterminer si les événements que vous recevez dans votre programme proviennent de vos propres actions. Pour ce faire, créez des domaines d’annulation, puis cochez chaque ID de domaine dans vos gestionnaires d’événements.

Création d’un domaine d’annulationPour créer un domaine d’annulation, utilisez les méthodes BeginUndoScope et EndUndoScope de l’objet Application. Vous pouvez créer plusieurs domaines dans votre programme complémentaire et les imbriquer.

La méthode BeginUndoScope ouvre un nouveau domaine et renvoie un ID qui lui correspond. Pendant que le domaine est ouvert, le gestionnaire d’annulation de Visio lui attribue toutes les nouvelles unités d’annulation ajoutées à la pile. Le moteur Visio met également en file d’attente l’événement EnterScope de manière à ce qu’il transmette ultérieurement à votre programme l’ID du domaine et sa description.

Notez les instructions suivantes lors de la création des domaines d’annulation :

• Les appels BeginUndoScope et EndUndoScope doivent être équilibrés.

• Les domaines d’annulation doivent être ouverts et fermés à l’intérieur d’une fonction ou d’une sous-routine. Si vous laissez votre domaine d’annulation ouvert, les actions utilisateur peuvent être consignées au milieu du domaine.

La méthode EndUndoScope englobe un argument True ou False qui indique si vous souhaitez accepter ou annuler les modifications apportées dans le domaine. Vous pouvez utiliser cette méthode comme technique pour annuler les modifications si vous décidez (ou si l’utilisateur décide) d’annuler le programme complémentaire.

Pour plus d’informations sur les méthodes BeginUndoScope et EndUndoScope, reportez-vous à l’aide en ligne Référence du développeur (choisissez ? (Aide) > Référence du développeur) fournie avec Visio.

Page 492: MS Visio 2003 Guide du Développeur

478 C H A P I T R E 2 4

Association d’événements à un domaine d’annulation Vous pouvez utiliser un domaine d’annulation pour déterminer si les événements que vous recevez sont le résultat d’une action entreprise par votre programme complémentaire.

Lorsque vous ouvrez un domaine d’annulation avec la méthode BeginUndoScope, l’ID du domaine est renvoyée et l’événement EnterScope est déclenché. Lorsque vous fermez le domaine d’annulation avec la méthode EndUndoScope, l’événement ExitScope se déclenche. Tous les événements que vous provoquez lorsque votre domaine d’annulation est ouvert se déclenchent entre les événements EnterScope et ExitScope.

Lorsque vous recevez des événements, vous pouvez utiliser l’ID du domaine si un événement est le résultat d’une action entreprise dans votre domaine d’annulation.

Pour déterminer si votre domaine d’annulation a provoqué un événement :

1 Enregistrez dans une variable du programme l’ID du domaine renvoyé depuis la méthode BeginUndoScope.

2 Lorsque vous recevez un événement dans le gestionnaire d’événements, récupérez la propriété IsInScope de l’objet Application en lui transmettant l’ID du domaine que vous avez sauvegardé.

3 Si la propriété IsInScope renvoie True, l’événement est le résultat d’une action que vous avez entreprise dans votre domaine d’annulation.

4 Créez un gestionnaire d’événements pour l’événement ExitScope et effacez la variable de l’ID du domaine une fois le domaine fermé.

Page 493: MS Visio 2003 Guide du Développeur

U T I L I S A T I O N D U G E S T I O N N A I R E D ’ A N N U L A T I O N D E V I S I O D A N S V O T R E P R O G R A M M E 479

Création d’unités d’annulation

Si votre solution gère tous les types de modèle de conceptualisation parallèle contenant des données associées aux formes présentes dans votre dessin, il est important que le modèle représente correctement l’état du dessin.

Pour vous assurer que vos dessins et modèles restent synchronisés, vous pouvez ajouter des unités d’annulation dans le gestionnaire d’annulation de Visio. Une unité d’annulation est un modèle COM (Component Object Model) prenant en charge l’interface IVBUndoUnit Visio (ou l’interface IOleUndoUnit dans un objet COM en cours). Il contient les actions nécessaires pour annuler ou rétablir les modifications dans une source externe de données qui reflètent les modifications dans le dessin.

L’interface IVBUndoUnit Visio est conçue pour permettre aux programmeurs Microsoft® Visual Basic® pour Applications (VBA) et Visual Basic de créer leurs propres unités d’annulation et de les placer dans le gestionnaire d’annulation de Visio. Pour créer une unité d’annulation, vous devez mettre en oeuvre cette interface, ainsi que toutes ses procédures publiques, dans un module de classe que vous insérez dans votre projet. Cette partie décrit la création d’une unité d’annulation pour la mise en oeuvre de l’interface IVBUndoUnit dans un projet VBA.

Pour plus d’informations sur la mise en oeuvre des interfaces dans VBA ou Visual Basic, recherchez l’instruction Implements dans votre documentation Visual Basic. Pour plus d’informations sur IVBUndoUnit, reportez-vous à la bibliothèque de types Visio.

Création d’une unité d’annulation Deux approches sont possibles pour la création d’une unité d’annulation :

• Vous pouvez créer un objet unique qui gère l’annulation et le rétablissement.

• Vous pouvez créer deux objets, un qui gère l’annulation et l’autre qui gère le rétablissement.

Cette section et la suivante, « Exemple de création d’une unité d’annulation qui gère des données non-Visio », page 481, décrivent une unité d’annulation unique qui gère l’annulation et le rétablissement.

Page 494: MS Visio 2003 Guide du Développeur

480 C H A P I T R E 2 4

Pour créer une unité d’annulation :

1 Insérez un module de classe dans votre projet VBA qui met en oeuvre la classe IVBUndoUnit. Il s’agit d’une unité d’annulation. Pour ce faire, utilisez le mot-clé Implements :

Dans ce module de classe, vous devez mettre en oeuvre toutes les procédures publiques de IVBUndoUnit. Une fois que vous avez codé l’instruction Implements, IVBUndoUnit apparaît dans la zone Objet de votre fenêtre de code.

2 Dans la zone Objet, sélectionnez IVBUndoUnit.

Comme le décrit le tableau suivant, à chaque procédure à mettre en oeuvre correspond une procédure type disponible dans la zone des procédures.

����������!����"�!3%�1�%���

Procédures IVBUndoUnit

Nom de la procédure Description

Description Cette propriété renvoie une chaîne décrivant l’unité d’annulation. Cette chaîne apparaît dans la liste Annuler de la barre d’outils Standard.

Do Cette méthode fournit les actions nécessaires pour annuler et rétablir votre action.

Si vous créez un seul objet pour l’annulation et le rétablissement, cette procédure gère l’état annulé ou rétabli et ajoute une unité d’annulation dans la pile opposée.

Si la méthode Do est appelée avec le pointeur Nothing, l’unité doit exécuter l’action d’annulation mais ne doit rien placer dans la pile d’annulation ou de rétablissement.

OnNextAdd Cette méthode est appelée lorsque l’unité d’annulation suivante du même domaine est ajoutée à la pile d’annulation. Lorsqu’une unité d’annulation reçoit une notification OnNextAdd, elle indique en retour à l’objet de création qu’elle ne peut plus insérer des données dans cette unité d’annulation.

UnitSize Cette propriété renvoie la taille approximative de la mémoire (en octets) de l’unité d’annulation plus les ressources qu’elle a allouées. Le moteur Visio peut utiliser cette taille au moment où il doit prendre la décision de purger la file d’attente d’annulation. Cette valeur est facultative et peut être égale à 0.

UnitTypeCLSID Cette propriété renvoie une valeur de chaîne qui peut contenir un CLSID pour identifier vos unités d’annulation. Vous pouvez utiliser le même CLSID pour vos différentes unités d’annulation et utiliser différentes valeurs dans la procédure UnitTypeLong. Cette valeur est facultative et peut être une chaîne Null ou vide.

UnitTypeLong Cette propriété renvoie une valeur au format Long que vous pouvez utiliser pour identifier vos objets. Cette valeur est facultative et peut être égale à 0.

Page 495: MS Visio 2003 Guide du Développeur

U T I L I S A T I O N D U G E S T I O N N A I R E D ’ A N N U L A T I O N D E V I S I O D A N S V O T R E P R O G R A M M E 481

Ajout d’une unité d’annulation dans le gestionnaire d’annulation de Visio Quel que soit l’emplacement du programme où vous exécutez une action dans votre modèle parallèle, vous devez ajouter une copie de votre unité d’annulation qui peut annuler ou rétablir votre action. Ainsi, si les modifications de votre programme complémentaire sont annulées, l’action est appelée avec tout ce qui figure dans la pile d’annulation.

Pour ajouter une unité d’annulation dans le gestionnaire d’annulation de Visio :

• Appelez la méthode AddUndoUnit de l’objet Application et transmettez-lui, à l’aide du mot-clé New, une copie de votre classe d’unités d’annulation.

Par exemple, si le module de classe que vous avez inséré dans le projet s’intitule MonUnité_A_Annuler :

Pour plus d’informations sur le mot-clé New, reportez-vous à la documentation Visual Basic.

Exemple de création d’une unité d’annulation qui gère des données non-Visio

L’exemple suivant présente la création d’une unité d’annulation synchronisant un dessin et un modèle parallèle : ici, une simple variable appelée m_nCount représente le nombre de formes dans le dessin. Cette variable est incrémentée chaque fois qu’une forme est ajoutée au dessin.

Le module de classe appelé VBAUndoUnit contient la logique permettant d’augmenter ou de diminuer cette variable si l’événement ShapeAdded est, par la suite, annulé ou rétabli. VBAUndoUnit contient un indicateur permettant de gérer l’état annulé ou rétabli de cet événement. L’indicateur est initialisé sur False car cet objet est initialement placé dans la pile d’annulation. Après avoir été appelé la première fois, il déclenche la logique d’annulation, son état passe à TRUE et l’objet se place dans la pile de rétablissement.

L’exemple utilise la fenêtre Exécution de l’Editeur Visual Basic pour afficher la façon dont ce projet conserve la synchronisation entre le dessin et les données.

���������"�11%�1�%����2�O�E��%���A.�.������

Page 496: MS Visio 2003 Guide du Développeur

482 C H A P I T R E 2 4

Dans le gestionnaire d’événements ShapeAdded, le premier bloc de code est contenu dans le module de classe ThisDocument. Le programme incrémente m_nCount de 1, puis ajoute l’unité d’annulation à la pile d’annulation du gestionnaire d’annulation de Visio. Comme le moteur Visio crée automatiquement un domaine lorsque le gestionnaire d’événements est appelé, votre unité d’annulation est exécutée si l’utilisateur décide d’annuler la forme qu’il vient d’ajouter au dessin.

ThisDocument contient aussi des procédures permettant d’augmenter et de diminuer la variable par incréments.

��������.��������������

�������������������.�����11�1�34!������������!�����

�+�2������������"��%�1�����&�1�����$���

XE�������������������I���A�����1�������������������������

��������E�1���!�

�����"�����#����������Z�;��E�1���!�� �#�L�;��E�1���!�

X�P�������������A�1Y�����������J���������CA�������������������

���������"�11%�1�%����2�O�!3�%�1�%���

�1��+

�1����

�������������������E�1���!���

�.������� ��.�������-�*

�1����

�������������������E�1���!���

�.������� ��.�������5�*

�1����

�������)��������;��E�1���!�����������

;��E�1���!�� ��.������

�1�)�������

Page 497: MS Visio 2003 Guide du Développeur

U T I L I S A T I O N D U G E S T I O N N A I R E D ’ A N N U L A T I O N D E V I S I O D A N S V O T R E P R O G R A M M E 483

Désormais, le code dans VBAUndoUnit est le suivant :

����������!����"�!3%�1�%���

��������.�%�1�������3������

X�.�%�1�������������1�������J������������Y������������������A�

X1Y�����������1�����������1Y��������������1��A������������"����J��

X���������I����������"�11%�1�%�������������U��+���,�����

X���������1��!3�%�1�%�����������A��1�����������1Y����������"

X���J����Y�����������������,�����A���1������������A�"

X!����������I������������1��������������I��!3%�1�E�����"�11

X�+���J����Y����A�1Y�������������������A��1�����������1�

XA������������"����J������������I�����A���1����,������A������I

X�Y��1��������������I��!3%�1�E�����"�11��+���J����Y����A

X1Y������������������1�����������1Y����������"

X���J�Y��������A�1Y��������������������1�����������1Y����������,

X�.�%�1����1����e���)���������������A�������Y������������������"

X���J�������A���1������������A�����J����Y����A�1Y��������������

X����+AA�������������1��A������������,������������I��Y��1������

X����.�%�1����1�������$��"�!��������������I��.�%�1����������A�����)����

X����Y����A�1Y��������������������1Y���1�1�����������1Y����������"

X���1��������������U�,���������������������� �1%�1���������,

X@)����@��,�����A���1�����1��!3�%�1�%�����������A�"

X�����A�A��!3%�1�E�������������A�A�����2������"������������,

X!3�%�1�%�������1�������������1Y�P�������������A�1Y�����������W������

XJ�����A�A�����+AA��1�������������������1Y����������"�

X!A�+��I����P����J���E�� �#���2������#�1����������A���1����"�

����������������.��������I���

�����"�����#!3�%�1�%�����AA�"""#

�1����

����������������.$���������

�����"�����#!3�%�1�%������1A�"""#

�1����

�����������4�;����!3%�1�%���.��������������������

�����"�����#!3�%�1�%���"���������#

�!3%�1�%���.���������� �#!3�%�1�%���#

�1�����4

������������!3%�1�%���.���34!���E������!3%�1�E������

X����������A���������������������1���Y��1�������1YA����Z

�+���.�%�1�����$���

X&A�������Y����������������Z

$�����������"��������E�1���!�

���

X��������Y����������������Z

$�����������"��������E�1���!�

�1��+

Page 498: MS Visio 2003 Guide du Développeur

484 C H A P I T R E 2 4

Exemple de code (suite)

X����������������1���Y��1�������1YA����Z

�.�%�1���� �2����.�%�1���

�+�2����E�����2��������$���

X�P���������������������1�������1��!3�%�1�%����1����������

X���A�

E�"�11�E�

�����"�����#!3�%�1�%���"������A��! ��������������1Y����������#

���

X$������A�A�����A�55�������������������"""

�����"�����#!3�%�1�%���"������A���2��������������1Y����������#

�1��+

X���+��������A��������1���Y�������������������������������1��

X�����������;��E�1���!�

�����"�����#�U��!3�%�1�%���"���5�;��E�1���!�� �#�L�.��

$�����������";��E�1���!�

�1����

������������!3%�1�%���.��2����11��

X��2����11��������A�����1���Y�P����W��������1Y�����������1���Y����A�

���������

�����"�����#!3�%�1�%���"��2����11#

�1����

�����������4�;����!3%�1�%���.%�����I�����������

X%�����I��1��������4�����������������1�����J������A�1���A�����

X������������1���Y����A�1Y��������������1����������J�Y�����������"

X�����������������W�!�����1��1A��1��1����������f������A�������

1�������e�������A���1������A����"�

�����"�����#!3�%�1�%���"%�����I�#

�!3%�1�%���.%�����I�� �B

�1�����4

�����������4�;����!3%�1�%���.%���$4�����������������

X&������I��������S���������������������

X�1����+�����������A�"

X�����������A1�I����������4���1Y����A�,����������I�����4�

XW������������e������S��������,�W����1������J������������������I�1��

X��������1��������������������1Y�����"

�����"�����#!3�%�1�%���"%���$4������#

�!3%�1�%���.%���$4������� �2���

�1�����4

�����������4�;����!3%�1�%���.%���$4���������������

X&����4�I��������S������������������������1����+�����������A�"�!���

X%���$4������"

�����"�����#!3�%�1�%���"%���$4�����#

�!3%�1�%���.%���$4������ �'

�1�����4

Page 499: MS Visio 2003 Guide du Développeur

Sommaire

25Distribution d’une solutionVisio Automation

Si vous développez un programme destiné à être diffusé, vous devez sélectionner les modèles, les gabarits et les dessins à distribuer avec votre programme, choisir le fichier Microsoft® Visio® dans lequel vous allez stocker le programme Microsoft® Visual Basic® pour Applications (VBA) et préparer l’installation des fichiers. Vous devez également choisir le mode d’exécution du programme par l’utilisateur et les arguments à indiquer au moment du lancement. Vous pouvez également créer un programme chargé d’installer une application externe autonome, ses gabarits et modèles, et une aide en ligne dans les dossiers appropriés.

Le présent chapitre explique où installer les fichiers pour utiliser les chemins par défaut de Visio, décrit comment un utilisateur peut exécuter votre programme et énumère les questions à envisager lors de la diffusion du programme. Pour plus d’informations sur la création de fichiers d’aide et de programmes d’installation, reportez-vous à la documentation de votre environnement de développement. Pour plus d’informations sur l’association d’une aide en ligne à des formes, reportez-vous au chapitre 13, « Diffusion de gabarits et de modèles ».

Installation d’une solution Visio............................................................................ 486

Contrôle de l’exécution d’un programme............................................................ 488

Diffusion d’un programme .................................................................................... 491

Page 500: MS Visio 2003 Guide du Développeur

486 C H A P I T R E 2 5

Installation d’une solution Visio

Si vous diffusez votre solution sous la forme d’un programme VBA ou d’un seul fichier exécutable (.EXE), il ne sera pas nécessaire de créer un programme pour l’installer. En revanche, si votre solution inclut un fichier .EXE, des gabarits, des modèles ou un fichier d’aide, un programme d’installation peut aider l’utilisateur à mettre en oeuvre votre solution aisément et correctement.

La présente section décrit l’installation des fichiers de votre solution. Pour plus d’informations sur la création d’un programme d’installation, reportez-vous à la documentation de votre environnement de développement.

Détermination des chemins et dossiers des fichiers VisioLorsque vous installez votre solution, installez les fichiers de votre programme et de Visio dans les dossiers des chemins indiqués dans l’onglet Chemins d'accès (accessible via Outils > Options > Chemins d'accès).

Onglet Chemins d’accès

Par défaut, le dossier \Solutions et ses sous-dossiers constituent le chemin des modèles, des gabarits, des fichiers d’aide et des programmes complémentaires. Par exemple, installez les modèles contenant les macros VBA dans le dossier \Solutions ou dans l’un de ses sous-dossiers.

Vous pouvez également ajouter des dossiers ou les modifier afin d’y inclure les dossiers personnalisés que vous créez. Pour indiquer plusieurs dossiers, séparez-les par des points-virgules. Par exemple, vous pouvez redéfinir le chemin des programmes complémentaires de manière à obtenir « Solutions;DVS ».

Page 501: MS Visio 2003 Guide du Développeur

D I S T R I B U T I O N D ’ U N E S O L U T I O N V I S I O A U T O M A T I O N 487

REMARQUE : si un chemin est incomplet, Visio effectue la recherche dans le dossier des fichiers de programme de Visio. Par exemple, si le fichier exécutable Visio est installé dans c:\Visio, et si le chemin des programmes complémentaires est « progcomp;d:\Progcomp », Visio recherche les programmes complémentaires dans c:\Visio\Progcomp, dans d:\Progcomp et dans leurs sous-dossiers.

Vous pouvez également connaître les chemins utilisés sur le système de l’utilisateur en lisant les propriétés suivantes de l’objet Application : AddonPaths, StartupPaths, DrawingPaths, StencilPaths, FilterPaths, TemplatePaths et HelpPaths.

Par exemple, pour lire la propriété AddonPaths :

Mode de recherche des chemins de fichier de VisioLes fichiers placés dans les dossiers d’un chemin Visio défini apparaissent dans certains menus et dans les boîtes de dialogue de l’interface utilisateur. Si vous installez vos fichiers de solution dans les dossiers des chemins Visio appropriés, vous pouvez tirer parti de ce comportement. Par exemple :

• Les programmes complémentaires stockés dans les dossiers indiqués par le chemin des fichiers complémentaires de Visio indiqué dans l’onglet Chemins d'accès apparaissent dans la boîte de dialogue Macros et dans le sous-menu Macros, de même que les macros VBA associées au document ouvert.

• Les fichiers de modèle stockés dans les dossiers indiqués par le chemin de modèles de Visio apparaissent dans les boîtes de dialogue Choisir le type de dessin et Ouvrir un fichier, ainsi que dans le menu Fichier > Nouveau.

• Les gabarits stockés dans les dossiers indiqués par le chemin des gabarits de Visio sont répertoriés dans le menu Fichier > Ouvrir un gabarit et dans la boîte de dialogue Ouvrir un gabarit.

Chemins à utiliser pour installer les fichiers de votre programme

Fichier à installer Chemin Visio à utiliser

Programme (.exe) Chemin des programmes complémentaires

Bibliothèque Visio (.vsl) Chemin des programmes complémentaires

Aide en ligne (.hlp ou .chm) des programmes ou des formes

Chemin des aides

Gabarit (.vss) Chemin des gabarits

Modèle (.vst) Chemin des modèles

������� �!����"���������"�11�������

Page 502: MS Visio 2003 Guide du Développeur

488 C H A P I T R E 2 5

Contrôle de l’exécution d’un programme

Vous pouvez exécuter un programme de diverses façons selon le type de programme développé et les dossiers d’installation des fichiers de programmes externes. Cette section répertorie certaines des options à votre disposition.

Exécution d’un programme au lancement de Visio Pour exécuter votre programme chaque fois que Visio est lancé, placez le fichier exécutable (.EXE) ou de bibliothèque Visio (.VSL) du programme dans le dossier de démarrage Visio défini dans l’onglet Chemins d'accès.

Exécution d’un programme depuis le sous-menu Macros ou la boîte de dialogue MacrosPour permettre l’exécution de votre programme (fichier .EXE ou .VSL, ou macro VBA) depuis la boîte de dialogue Macros, installez le fichier .EXE ou .VSL du programme externe dans le chemin des programmes complémentaires indiqué dans l’onglet Chemins d'accès. Tous les programmes de ce chemin apparaissent dans la boîte de dialogue Macros et dans le sous-menu Macros au côté des macros VBA publiques stockées dans le document Visio ouvert.

Boîte de dialogue Macros

Page 503: MS Visio 2003 Guide du Développeur

D I S T R I B U T I O N D ’ U N E S O L U T I O N V I S I O A U T O M A T I O N 489

Association d’un programme à une cellule de la section Actions ou EvénementsVous pouvez exécuter un programme quand l’utilisateur déclenche un événement en double-cliquant sur une forme ou en sélectionnant une option du menu contextuel de cette forme. Pour exécuter un programme depuis le menu contextuel d’une forme, entrez une formule utilisant la fonction RUNADDON de Visio dans la cellule Action d’une ligne de la section Actions de la forme et entrez le texte de l’option de menu dans la cellule Menu. La fonction RUNADDON peut exécuter tous les programmes complémentaires et les macros de votre projet VBA. Par exemple :

Ligne Action d’unesection Actions d’une forme

En l’absence de chemin complet, Visio recherche le programme dans le chemin des programmes complémentaires indiqué dans l’onglet Chemins d'accès.

Vous pouvez également associer une action à une forme dans la boîte de dialogue Action (accessible lorsque la fenêtre ShapeSheet® est active) en cliquant sur une cellule Action et en choisissant Modifier > Action.

Boîte de dialogue Action

Pour transmettre des arguments de ligne de commande à votre programme, optez pour la fonction RUNADDONWARGS de Visio, qui n’est pas utilisable avec les programmes VBA, mais seulement avec les programmes complémentaires. Par exemple, pour exécuter un programme externe appelé monprog.exe :

�&%2����2��&;��#�����"���#,�#��������#�

Page 504: MS Visio 2003 Guide du Développeur

490 C H A P I T R E 2 5

Pour exécuter un programme lors du calcul d’une cellule Evénements, placez la formule dans la cellule Evénements de l’événement qui doit activer ce programme.

Section Evénements de lafenêtre Feuille ShapeSheet

Par exemple, pour exécuter une macro VBA lorsque l’utilisateur insère une forme de base dans un dessin, placez la formule suivante dans la cellule CréationEvén de la section Evénements de la forme de base :

Pour exécuter une macro VBA quand un utilisateur double-clique sur une forme, placez la même formule dans la cellule EvénDblClic de la section Evénements de cette forme. Vous pouvez également définir l’événement de double-clic d’une forme dans l’onglet Action du double-clic (accessible via Format > Comportement > Action du double-clic), en choisissant Exécuter une macro, puis en sélectionnant la macro dans la liste déroulante.

Onglet Action du double clic de laboîte de dialogue Comportement

Pour plus d’informations sur la réponse aux événements de la section Evénements, reportez-vous au chapitre 7, « Amélioration du comportement des formes ».

���� � &.� �#E����������#�

Page 505: MS Visio 2003 Guide du Développeur

D I S T R I B U T I O N D ’ U N E S O L U T I O N V I S I O A U T O M A T I O N 491

Exécution d’un programme lorsque l’utilisateur sélectionne une commande de menu ou clique sur un bouton de la barre d’outilsVous pouvez ajouter des commandes de menu ou des éléments de barre d’outils personnalisés à l’interface utilisateur de Visio, et les utiliser pour exécuter vos programmes. Pour plus d’informations, reportez-vous au chapitre 22, « Personnalisation de l’interface utilisateur Visio ».

Exécution d’un code VBA dans des procédures de gestion d’événementVous pouvez exécuter un code VBA en plaçant du code dans le module de classe ThisDocument, sous la procédure d’événement appropriée. Par exemple, pour exécuter un code à l’ouverture d’un document, entrez votre code dans la procédure d’événement DocumentOpened.

Voici quelques-uns des événements de document gérés : BeforeDocumentClose, BeforePageDelete, BeforeShapeDelete, BeforeSelDelete (avant la suppression d’un groupe de formes), ShapeAdded, DocumentCreated, DocumentOpened, DocumentSaved et DocumentSavedAs.

Pour plus d’informations sur les réponses aux événements d’objets, reportez-vous au chapitre 21, « Gestion des événements dans Visio ».

Diffusion d’un programme

Les fichiers à diffuser dépendent du type de solution créé. En général, si vous créez un programme VBA stocké dans un modèle, il suffit de distribuer le modèle et ses gabarits (et les fichiers auxquels le programme VBA fait éventuellement référence). Si vous créez un programme externe, il peut être nécessaire de diffuser le fichier exécutable (.EXE), un modèle et des gabarits. Si vous créez un programme complémentaire, il suffit peut-être de diffuser le fichier .EXE ou le fichier de bibliothèque Visio (.VSL). Si vous diffusez des formes Visio, vous devez garder à l’esprit les restrictions liées au droit d’auteur.

Diffusion de programmes Microsoft VBA Les programmes VBA sont stockés dans un modèle, un gabarit ou un dessin Visio. En général, le seul fichier à distribuer est un modèle (.VST) ou un dessin (.VSD) et ses gabarits (.VSS). Si le projet VBA fait référence à d’autres fichiers Visio, vous devez également les diffuser. Un programme VBA ne comporte pas de fichier de programme distinct.

Page 506: MS Visio 2003 Guide du Développeur

492 C H A P I T R E 2 5

Le schéma ci-dessous décrit les éléments éventuels d’une solution VBA.

Solution VBA et ses éléments :modèle, gabarit et macros VBA

Lorsque l’utilisateur crée un document à partir d’un fichier Visio, Visio copie le programme VBA dans le nouveau document ; les éventuelles références à des gabarits identiques ou à d’autres fichiers Visio sont également dupliquées.

Taille des fichiers de dessin dans une solution Microsoft VBALe choix de l’emplacement de stockage de votre programme VBA peut avoir une incidence sur la taille du fichier de dessin. Vous pouvez stocker votre programme dans un modèle, un gabarit ou un dessin. Veuillez prendre en compte les éléments suivants.

Bien que pratique à diffuser, un modèle contenant beaucoup de code VBA peut augmenter très sensiblement la taille des dessins car le code du modèle est recopié dans tous les dessins créés à partir de ce dernier. Un tel modèle peut également compliquer la maintenance ou la mise à jour d’une solution, car chaque dessin comporte alors une copie du code.

Si le code est destiné à aider l’utilisateur à créer un dessin, et s’il n’est pas réutilisé par la suite, le modèle est probablement le meilleur endroit pour le stocker. Cependant, vous pouvez également placer la majeure partie du code dans un gabarit Visio (.VSS) et l’appeler depuis le modèle. Cette méthode permet de limiter la taille des fichiers de dessin et facilite la maintenance car il suffit de diffuser une nouvelle version du gabarit pour mettre à jour votre solution.

REMARQUE : si vous faites référence au code d’un gabarit depuis un autre projet VBA, Visio ouvre automatiquement ce gabarit qui n’est pas visible. Vous ne pouvez pas le fermer tant qu’un projet VBA y faisant référence est ouvert.

Page 507: MS Visio 2003 Guide du Développeur

D I S T R I B U T I O N D ’ U N E S O L U T I O N V I S I O A U T O M A T I O N 493

Utilisation de noms universels dans une solutionDans Microsoft® Visio® 2000, vous pouvez associer un nom universel aux formes, formes de base, pages, styles, lignes ou calques en plus de leurs noms locaux. Un nom local est le nom, tel que le nom d’une forme, qui apparaît dans l’interface utilisateur. Si votre solution Automation est localisée (traduite dans une autre langue), ces noms sont généralement changés en fonction du pays dans lequel l’élément correspondant est exécuté.

Les noms universels sont des noms qui ne sont pas modifiés lorsque la solution est localisée. Ils n’apparaissent pas dans l’interface utilisateur ; seuls les clients Automation peuvent accéder aux objets Visio par le biais de leur nom universel. En utilisant ces noms dans votre code source, vous pouvez exécuter ce dernier sans le modifier et éviter de prendre en charge plusieurs versions de votre solution.

La première fois que vous nommez un objet, dans l’interface utilisateur ou via Automation, le nom universel est par défaut identique au nom local. Une fois que le nom d’origine est attribué :

• Toute modification de nom effectuée dans l’interface utilisateur a une incidence uniquement sur le nom local.

• Vous ne pouvez accéder aux noms universels ou les modifier que via l’interface Automation.

Les propriétés et les méthodes que vous pouvez utiliser dans votre code source pour faire référence au nom universel d’un objet sont stockées dans la bibliothèque de types Visio, accompagnées du suffixe « U ».

Pour identifier les propriétés et les méthodes faisant référence à des noms universels :

1 Dans l’explorateur d’objets, sélectionnez la classe que vous utilisez, par exemple, Page.

2 La liste des membres de la classe répertorie plusieurs propriétés et méthodes qui utilisent le nom universel de l’objet Page, à savoir DropManyU, GetFormulasU et NameU.

Pour plus d’informations sur l’utilisation de ces propriétés et de ces méthodes, effectuez une recherche à l’aide de la propriété ou de la méthode correspondante dans l’aide en ligne Référence du développeur (accessible via ? (Aide) > Référence du développeur) fournie avec Visio. Par exemple, pour plus d’informations sur la méthode GetFormulasU, recherchez la méthode GetFormulas.

Informations importantes concernant les licencesLes gabarits, les formes de base, les modèles et le code source inclus dans les produits Visio sont soumis à un copyright de Visio Corporation concernant le matériel, et sont protégés par les lois américaines sur le copyright et les dispositions des traités internationaux.

Page 508: MS Visio 2003 Guide du Développeur

494 C H A P I T R E 2 5

Cette situation a les conséquences suivantes pour les développeurs de solutions : vous ne pouvez pas diffuser les formes de base protégées fournies avec un produit Visio dans un autre objectif que la consultation ou la modification d’un dessin contenant ces formes de base, sauf si l’utilisateur détient la licence d’un produit Visio incluant ces formes de base. Cette disposition s’applique également aux formes créées par modification ou adaptation des formes de base protégées.

Par exemple, vous ne pouvez pas fournir une forme d’un gabarit de Microsoft® Visio® 2000, Technical Edition, à un utilisateur disposant de Microsoft® Visio® 2000, Professional Edition, (car il ne possède pas de copie légale du gabarit Technical Edition contenant la forme de base).

Les fichiers de constantes et fonctions globales Microsoft® Visual Basic® et C++ situés dans le dossier \DVS du CD-ROM de Visio sont également soumis à un copyright. Vous pouvez intégrer ces fichiers dans vos projets et les utiliser pour créer des programmes exécutables, mais vous ne pouvez pas les diffuser si les développeurs destinataires ne disposent pas de la licence d’un produit Visio contenant ces fichiers.

Vous pouvez protéger les formes que vous créez en fournissant des informations de copyright dans la boîte de dialogue Spécial associée à la forme de base ou à toute occurrence de cette forme de base. Pour ouvrir la boîte de dialogue Spécial, sélectionnez une forme, puis choisissez Format > Spécial. Vous ne pouvez effectuer cette opération qu’une seule fois par forme (sauf si vous cliquez sur Annuler immédiatement après). Aucune modification ultérieure des informations de copyright d’une forme n’est autorisée.

REMARQUE : pour plus d’informations sur la licence des formes de base et des produits Visio, reportez-vous à l’accord de licence Visio fourni avec Visio.

Page 509: MS Visio 2003 Guide du Développeur

Sommaire

26Programmation de Visio avec Microsoft Visual Basic

Les chapitres précédents du manuel Developing Visio Solutions étaient consacrés au développement de programmes dans l’environnement de Microsoft® Visual Basic® pour Applications (VBA) de Microsoft® Visio®. Le présent chapitre traite des questions propres à la création de programmes externes pour contrôler Visio à l’aide de l’environnement de développement Microsoft® Visual Basic®.

Pour plus d’informations sur le modèle d’objet de Visio, représentant les objets, les propriétés et les méthodes proposés par le moteur Visio via Automation, reportez-vous au chapitre 14, « Automation et le modèle d’objet de Visio ».

Récupération d’une copie de Visio ....................................................................... 496

Création d’un document Visio............................................................................... 501

Gestion des erreurs dans Microsoft Visual Basic ................................................ 502

Interprétation de la chaîne de commande envoyée par Visio à votre programme ........................................................................................................503

Utilisation de la bibliothèque de types de Visio dans les projetsMicrosoft Visual Basic .................................................................................................506

Migration de Microsoft Visual Basic à VBA.......................................................... 507

Page 510: MS Visio 2003 Guide du Développeur

496 C H A P I T R E 2 6

Récupération d’une copie de Visio

Les programmes externes contrôlant Visio par le biais d’Automation doivent interagir avec une copie de Visio. Selon l’usage du programme, vous pouvez lancer une nouvelle copie de Visio ou utiliser une copie en cours d’exécution.

Création d’un objet ApplicationAprès avoir déclaré une variable objet Visio pour un objet Application, vous pouvez utiliser la fonction CreateObject dans une instruction Set pour créer l’objet et l’associer à la variable objet qui permet ensuite de contrôler la copie :

La création d’un objet Application exécute une nouvelle copie de Visio, même si d’autres copies existent déjà.

Vous pouvez également utiliser la fonction CreateObject pour créer une copie de Visio invisible :

Vous pouvez ensuite utiliser la propriété Visible de l’objet Application pour contrôler la visibilité de la copie.

REMARQUE : vous pouvez utiliser l’objet InvisibleApp uniquement avec la fonction CreateObject. Si vous essayez de l’utiliser avec la fonction GetObject, cela échouera. L’objet InvisibleApp n’est pas disponible dans les versions Visio antérieures à Microsoft® Visio® 2000.

�����!����� ��������P����#!����"���������#�

�����!����� ��������P����#!����"����������#�

Page 511: MS Visio 2003 Guide du Développeur

P R O G R A M M A T I O N D E V I S I O A V E C M I C R O S O F T V I S U A L B A S I C 497

Récupération d’un objet ApplicationVous pouvez utiliser la fonction GetObject pour accéder à un objet Application correspondant à une copie de Visio en cours d’exécution. Exemple :

La virgule indique que le premier argument de GetObject, à savoir le chemin d’un fichier, a été omis. Cette virgule est indispensable car, dans certains cas, un nom de fichier doit être le premier argument de GetObject. Cependant, pour accéder à une copie de Visio, vous devez omettre l’argument du nom de fichier ; sinon, une erreur se produit. Pour plus d’informations, recherchez les données concernant GetObject dans votre documentation Microsoft Visual Basic.

Si plusieurs copies de Visio sont en cours d’exécution, GetObject renvoie la copie active. Lorsqu’un programme est exécuté sous la forme de programme complémentaire ou par double-clic sur une forme, la copie active est celle à partir de laquelle le programme a été lancé. Dans le cas contraire, il s’agit de la dernière copie exécutée ou activée. Si aucune copie de Visio n’est exécutée, l’utilisation de GetObject provoque une erreur.

Libération d’un objet ApplicationUne copie d’application vit jusqu’à ce que vous utilisiez la méthode Quit ou que l’utilisateur la ferme. Vous pouvez prévoir la gestion des erreurs ou utiliser des événements pour faire face à cette dernière situation qui peut se produire à tout moment durant l’exécution de votre programme.

Pour plus d’informations sur la gestion des événements, reportez-vous au chapitre 21, « Gestion des événements dans Visio »�

Exemple d’utilisation d’un objet Application dans un programme Microsoft Visual BasicLa sous-routine Visual Basic suivante crée un objet Application exécutant une copie de Visio, et génère un dessin en ouvrant un modèle et un gabarit. Cette sous-routine suit les étapes ci-dessous :

1 Exécution d’une copie de Visio.

2 Création d’un document fondé sur le modèle Diagramme de base.vst.

3 Placement d’une occurrence de la forme de base Rectangle du gabarit Formes de base.vss sur la page de dessin.

4 Insertion de la chaîne « Bonjour à tous ! » dans la forme de rectangle de la page de dessin.

5 Enregistrement du document.

6 Fermeture de la copie de Visio.

�����!����� �;����P����,�#!����"���������#�

Page 512: MS Visio 2003 Guide du Développeur

498 C H A P I T R E 2 6

����?�������1���

X!��������1Y��P����W���������1�������������

�����!��������!����"��������� X���������1��!����

����1�����P����!����"��������� X���������������������1��

X�Y��������

����1����P����!����"�������� X���������W��������

���������P����!����"�������� X;�������������������+����1�

X����

����������P����!����"E���� X)����1�������W����A�

���������P����!����"����� X�����������������1��1�������

��������P����!����"���� X�����W��������

��������P����!����"���� X���������1�����+����1������

X���������

X�A�I��������������1��!����,�������J�Y���1�������������������1�

X��1U���1������"�!��������I��++�������������A�������e���������

X���������1��!���������1APW���������1Y��A�������<

X�������������������������������"

�����!����� ��������P����#�����"���������#�

����1�����P� ��!����"���������

X�A�I����1�������������������1����1U���1��1��������1�������J��

X�������������J�����������������)�����1������"

����1����P� �1�����P"�11�#���������1������"���#�

���������P� ��!����"��������������"�����

X%����������1��������������������������������1����������A��

X1Y��1����1����������������������������*"

��������P� ������P"�����*�

���������P� ��!����"����������#���������1������"���#�

����������P� ������P"E������#&��������#�

X���A�I�����������������������1��������"

X�������1���A�����������������������1���Y�����������������P���

X����A�����������"

��������P� �����P"���������P,�B"08,�8"8�

X�A+������I����������1����������

����P"$���� �#3��P���W������9#

X �������I����1���������J�����I�!����"����������������������

X������"����1������!��������S�����������+�������1���Y��������"

1����P"�������#�����"��1#

E��3���#������������A�9#,�,�#3��P���W������9#

�!����"`���

�1����

Page 513: MS Visio 2003 Guide du Développeur

P R O G R A M M A T I O N D E V I S I O A V E C M I C R O S O F T V I S U A L B A S I C 499

CreateObject est une fonction Visual Basic qui crée un objet Automation (dans le présent exemple, CreateObject exécute une nouvelle copie de Visio et renvoie un objet Application qui représente la copie, qui est associée à la variable appVisio). Les six instructions Set suivantes créent des références aux autres objets du programme en accédant aux propriétés des objets récupérés précédemment. Vous remarquez de nouveau la progression effectuée dans le modèle d’objet de Visio : objet Application, collection Documents, objet Document, collection Pages, puis objet Page.

L’instruction Set docObj = docsObj.Add("Diagramme de base.vst") utilise la méthode Add pour ouvrir un modèle et l’ajouter à la collection Documents. Pour plus d’informations sur l’ajout d’objets Document, reportez-vous à la section « Création d’un document Visio », page 503��

L’instruction appVisio.Quit utilise la méthode Quit pour fermer la copie Visio associée à appVisio.

Raccourcis d’utilisation d’une copie de VisioEn cas d’échec de CreateObject ou de GetObject (par exemple, si Visio n’est pas installé sur le système sur lequel CreateObject est appelé ou si GetObject ne peut pas localiser une copie en cours d’exécution), une erreur se produit. La fonction vaoGetObject de Visreg.bas remplace avantageusement CreateObject et GetObject, car elle comprend la gestion des erreurs dans les situations suivantes :

• Si une copie de Visio est déjà en cours d’exécution, vaoGetObject l’associe à g_appVisio et renvoie visOK. g_appVisio est une variable globale gérée dans Visreg.bas.

• Si aucune copie n’est en cours d’exécution, vaoGetObject appelle CreateObject pour en lancer une, associe cette dernière à g_appVisio, puis renvoie visOK.

• Si Visio n’est pas installé ou si une erreur se produit, vaoGetObject renvoie visError. Les constantes visOK et visError sont définies dans Visreg.bas.

Visreg.bas contient une bibliothèque de fonctions permettant d’optimiser l’utilisation de copies de Visio. Cette bibliothèque gère la variable globale g_appVisio. Pour utiliser la bibliothèque de fonctions, ajoutez Visreg.bas à votre projet Visual Basic et utilisez g_appVisio pour faire référence à l’objet Application.

Pour ajouter Visreg.bas à ce projet Visual Basic, choisissez Projet > Ajouter un fichier.

L’exemple suivant utilise vaoGetObject pour récupérer une copie de Visio. Si aucune copie n’est en cours d’exécution, le code en lance une. Si cette opération échoue, un message apparaît.

��������������

�+����;����P������6/�����a�$���

E��3����#����������1��������!����#�

�1��+

�1����

Page 514: MS Visio 2003 Guide du Développeur

500 C H A P I T R E 2 6

Utilisation du descripteur de fenêtre d’une copiePour mieux contrôler une copie de Visio, récupérez son descripteur de fenêtre. Vous pourrez ensuite gérer sa fenêtre de cadre de la même manière que pour les autres applications Microsoft® Windows®. Par exemple, vous pouvez réduire la copie pendant que le programme crée un dessin complexe afin d’éviter le rafraîchissement de l’écran.

La propriété WindowHandle32 de l’objet Application renvoie le descripteur de fenêtre (HWND) de la fenêtre principale (ou cadre) d’une copie. Vous pouvez utiliser le HWND avec des appels standard aux API (Application Programming Interfaces) de Windows pour récupérer certains descripteurs. Par exemple, vous pouvez transmettre le descripteur de fenêtre à GetWindowTask pour récupérer le descripteur de tâche Visio.

Pour plus d’informations sur l’utilisation des appels aux API de Windows, reportez-vous à votre documentation Microsoft Visual Basic.

Interactions avec d’autres programmesDurant l’exécution de votre programme, vous pouvez récupérer la liste des programmes disponibles dans le moteur Visio ou installer un autre programme en accédant à la collection Addons d’un objet Application. Cette collection contient un objet Addon pour chaque programme des dossiers définis par les propriétés AddonPaths et StartupPaths de l’objet Application ou Addon, ainsi que pour ceux qui sont ajoutés dynamiquement par d’autres programmes.

Les programmes représentés par les objets Addon sont répertoriés dans le sous-menu Macros et dans la boîte de dialogue Macros de Visio. Vous pouvez ajouter un programme en utilisant la méthode Add de la collection Addons de l’objet Application. Une fois ajouté, ce programme demeure dans la collection jusqu’à la fermeture de la copie de Visio.

Pour connaître le nom d’un objet Addon, lisez sa propriété Name ; pour vérifier s’il peut être exécuté, accédez à sa propriété Enabled. Un fichier .EXE est toujours activé ; en revanche, un programme d’une bibliothèque Visio peut ne pas l’être. Pour plus d’informations, reportez-vous au chapitre 27, « Programmation de Visio avec C++ ».

Pour exécuter un autre programme, utilisez la méthode Run de l’objet Addon correspondant, en indiquant les arguments nécessaires ou une chaîne Null.

Pour plus d’informations sur les objets Addon, leurs méthodes et leurs propriétés, reportez-vous à l’aide en ligne Référence du développeur (accessible via ? (Aide) > Référence du développeur) fournie avec Visio.

�����11�����P� �!����"���������"�11���

�����11����P� ��11�����P"�11�#�Z[���[�����"���#�

Page 515: MS Visio 2003 Guide du Développeur

P R O G R A M M A T I O N D E V I S I O A V E C M I C R O S O F T V I S U A L B A S I C 501

Création d’un document Visio

Après avoir récupéré un objet Application représentant une copie de Visio, vous pouvez créer ou ouvrir un document.

Pour créer un document depuis un programme :

1 Accédez à la propriété Documents de l’objet Application pour récupérer sa collection Documents.

2 Utilisez la méthode Add de la collection Documents pour créer le document.

Pour fonder le nouveau document sur un modèle, indiquez le nom de fichier du modèle n argument de la méthode Add. Par exemple, l’instruction suivante crée un document basé sur le modèle Diagramme de base qui accompagne Visio :

Si vous ne précisez pas le chemin du fichier de modèle, le moteur Visio recherche ce dernier dans les dossiers indiqués dans la zone Modèles de l’onglet Chemins d’accès (accessible via Outils > Options). Pour consulter les paramètres de chemin en cours, lisez la propriété TemplatePaths de l’objet Application. Pour plus d’informations sur l’utilisation de l’onglet Chemins d’accès, effectuez une recherche dans l’aide en ligne de Visio.

L’objet Application comporte une propriété pour chacun des dossiers répertoriés dans l’onglet Chemins d’accès. Par exemple, la propriété TemplatePaths correspond au dossier Modèles de l’onglet. Vous pouvez accéder à ces propriétés pour connaître les chemins courants ou les définir pour modifier ces chemins. Pour plus d’informations, reportez-vous à l’aide en ligne Référence du développeur (accessible via ? (Aide) > Référence du développeur) fournie avec Visio.

Dans l’exemple précédent, l’échelle de dessin, les styles et les paramètres de document du nouveau fichier sont définis dans Diagramme de base.vst. Ce modèle comporte un gabarit (Formes de base.vss) dans son espace de travail. C’est pourquoi la création d’un document entraîne l’ouverture du gabarit en lecture seule dans la fenêtre de gabarit et l’ajout du fichier de gabarit à la collection Documents de la copie.

Pour créer un document sans utiliser de modèle, indiquez une chaîne Null ("") comme argument à la place du nom de fichier. Le fichier dispose alors de l’échelle de dessin, des styles et des paramètres de document par défaut de Visio. Aucun gabarit n’est ouvert.

����1����P� ��!����"���������"�11�#���������1������"���#�

Page 516: MS Visio 2003 Guide du Développeur

502 C H A P I T R E 2 6

Gestion des erreurs dans Microsoft Visual Basic

Lorsqu’une erreur se produit durant l’exécution d’un programme, Microsoft Visual Basic génère un message d’erreur et interrompt l’exécution. Vous pouvez éviter beaucoup d’erreurs en testant les hypothèses dont dépend le code avant son exécution. Vous pouvez intercepter et traiter les erreurs en utilisant l’instruction On Error dans le programme. Pour plus d’informations sur On Error, reportez-vous à votre documentation Visual Basic.

Cette section décrit une situation courante liée à l’exécution d’une copie de Visio depuis un programme externe. Des erreurs peuvent se produire dans un grand nombre de situations. Pour plus d’informations sur les situations courantes dans lesquelles des erreurs se produisent, reportez-vous à la section « Gestion des erreurs », page 315.�

Si la présence d’une copie de Visio est nécessaire pour votre programme, il est conseillé de s’assurer de son existence. Le projet Visual Basic suivant rédige du code pour l’événement Click associé à deux contrôles de bouton de commande dans un formulaire Visual Basic.

X�����������J��I�������������,��Y���1����������1���Y����������������1�

X!����������������A�"�%�����������������1�J���������+��������

X;����P������A�����W��A����������������������1��!����"

�����������������1*.����d��

��� ��&������2���

�������P����!����"���������

�������P� �;����P����,�#�����"���������#�

�+����P����2�������$���

E��3���#�����������������������1��!����"#

���

E��3���#���1����������Z�#�L����P"��������

�1��+

�1����

Page 517: MS Visio 2003 Guide du Développeur

P R O G R A M M A T I O N D E V I S I O A V E C M I C R O S O F T V I S U A L B A S I C 503

Interprétation de la chaîne de commande envoyée par Visio à votre programme

Lorsqu’un programme exécutable (.EXE) est lancé, il reçoit une chaîne de commande de l’environnement qui l’exécute. La chaîne de commande envoyée par le moteur Visio définit Visio comme l’environnement de lancement du programme et peut, outre les arguments du programme, contenir des valeurs permettant de récupérer certains objets. Les valeurs de la chaîne dépendent du mode d’exécution du programme (depuis le sous-menu Macros ou depuis une formule, avec ou sans arguments).

Exécution du programme depuis le sous-menu MacrosSi le programme est exécuté depuis le sous-menu Macros (l’utilisateur le sélectionne alors dans le sous-menu Macros ou dans la boîte de dialogue Macros), la chaîne de commande que le moteur Visio transmet au programme se présente comme suit :

La partie significative de la chaîne de commande est /visio, que vous pouvez utiliser pour vérifier que le programme a bien été lancé depuis le moteur Visio et non depuis un environnement incorrect. instanceHandle est l’identificateur de fenêtre de la copie de Visio depuis laquelle le programme est exécuté.

X�����������J��I�������������,�����������������������������������1�

c!����������AA������������1���������������������A�"

X�Y���������1��������������"�%�����������������1�J���������+�������

X�������P������A�����W��A���������������1��!����"����J�Y����

X�������������������1��!����������AA�,����I����1���������������������Y���

X1����������1�������������������J����Y������������Y���������������"

�����������������10.����d��

��� ��&������2���

�������P����!����"���������

�������P� ��������P����#�����"����������#�

�+����P����2�������$���

E��3���#����A������1Y�������������1��!�������A����A"#

���

E��3���#���1����������Z�#�L����P"��������

���P"!������� �$��

�1��+

�1����

(suite)

#C����� ��������?��1��#

Page 518: MS Visio 2003 Guide du Développeur

504 C H A P I T R E 2 6

Exécution du programme lors du calcul d’une formuleLors du calcul d’une formule utilisant la fonction RUNADDON, la chaîne de commande envoyée par le moteur Visio au programme dépend de l’objet qui contient la formule. Les exemples suivants présentent la chaîne de commande que votre programme reçoit lorsqu’une formule appartenant à un objet Shape, Master ou Style est calculée.

Formule de forme utilisant RUNADDONSi une formule de forme utilise la fonction RUNADDON pour lancer le programme lors de son calcul, la chaîne de commande envoyée par le moteur Visio au programme se présente comme suit :

Des parties de la chaîne de commande identifient les objets contenant la forme dont la formule a lancé le programme.

• docIndex est l’indice de l’objet Document.

Vous pouvez utiliser cette valeur pour récupérer l’objet Document correspondant dans sa collection. Exemple :

• pagIndex est l’indice de l’objet Page.

Vous pouvez utiliser cette valeur pour récupérer l’objet Page correspondant dans sa collection. Exemple :

• NameID est la propriété NameID de la forme dont la formule a été calculée.

Vous pouvez utiliser cette valeur pour récupérer l’objet Shape correspondant dans sa collection. Exemple :

C����� ��������?��1���C1�� 1����1���C��� ����1���C���� 2�����

����1����P� ��!����"���������"�����1����1���

��������P� ��!����"���������"�����1����1���"����������1���

��������P� �.�

�!����"����������1����1���"����������1���"������2������

Page 519: MS Visio 2003 Guide du Développeur

P R O G R A M M A T I O N D E V I S I O A V E C M I C R O S O F T V I S U A L B A S I C 505

Formule de forme de base utilisant RUNADDONSi la formule calculée est dans une forme de base plutôt que dans une forme d’une page de dessin, la chaîne de commande se présente comme suit :

• masterIndex est l’indice de l’objet Master.

Dans ce cas, vous pouvez récupérer l’objet Shape de la manière suivante :

Formule de style utilisant RUNADDONSi la formule calculée est dans un style plutôt que dans une forme ou une forme de base, la chaîne de commande se présente comme suit :

Dans ce cas, vous pouvez récupérer l’objet Style de la manière suivante :

Exécution du programme à l’aide d’argumentsSi une formule de cellule utilise la fonction RUNADDONWARGS pour exécuter le programme, la chaîne de commande inclut les arguments indiqués :

Si la propriété AddOnArgs d’une commande de menu ou d’un bouton de barre d’outils contient des arguments, la chaîne de commande se présente comme suit :

La chaîne arguments peut contenir n’importe quelle valeur utile pour votre programme. N’oubliez cependant pas que la chaîne de commande ne peut pas excéder 127 caractères, indicateurs compris (/visio=, /doc=, /page= et /shape, par exemple). Dans la pratique, les arguments ne peuvent donc pas dépasser 50 caractères. Si la chaîne de commande dépasse les 127 caractères, une erreur se produit et Visio n’exécute pas le programme.

C����� ��������?��1���C1�� 1����1���C����� �������1���C���� 2�����

��������P� �.

�!����"����������1����1���"E�������������1���"������2������

C����� ��������?��1��F0�C1�� 1����1���C��4�� 2�����

������4����P� ��!����"����������1����1���"��4����2������

C����� ��������?��1���C1�� 1����1���C��� ����1���C���� �����"���

��������

C����� ��������?��1�����������

Page 520: MS Visio 2003 Guide du Développeur

506 C H A P I T R E 2 6

Exécution du programme depuis le dossier StartupSi le programme est exécuté depuis le dossier Startup de Visio, la chaîne de commande comprend également l’indicateur /launch.

Analyse de la chaîne de commandeL’analyse correspond à la décomposition des instructions en unités syntaxiques. Une chaîne de caractères est ainsi décomposée en une série de composants d’un traitement plus aisé.

Pour récupérer et analyser une chaîne de commande, utilisez les fonctions prévues à cette fin dans votre environnement de développement. Dans Microsoft Visual Basic, par exemple, utilisez Command pour récupérer la chaîne de commande et des fonctions de chaîne comme Mid et StrComp, pour l’analyser.

Utilisation de la bibliothèque de types de Visio dans les projets Microsoft Visual Basic

La bibliothèque de types de Visio contient la description des objets, des méthodes, des propriétés, des événements et des constantes mis à disposition par le moteur Visio. Vous utilisez la bibliothèque de types de Visio pour définir les types d’objet et les constantes Visio dans votre programme. L’utilisation des types d’objet de Visio active une liaison préliminaire et accélère l’exécution du programme.

Lorsque vous créez des programmes avec Visio 4.5 ou une version ultérieure, vous pouvez établir une référence à la bibliothèque de types de Visio. Pour établir une référence à la bibliothèque de types de Visio dans Microsoft Visual Basic, choisissez Projets > Références et sélectionnez cette bibliothèque dans la liste des références disponibles.

La bibliothèque de types de Visio contient des constantes symboliques globales utilisables dans les arguments et les valeurs renvoyées par les propriétés et les méthodes. La plupart des arguments des propriétés et des méthodes sont des valeurs numériques. L’utilisation de ces constantes peut faciliter le développement et la lecture de votre code.

Imaginons par exemple que vous souhaitiez savoir quel type de fenêtre est représenté par un objet Window. La propriété Type de l’objet Window renvoie un entier qui correspond au type de fenêtre. Par exemple, si vous établissez une référence à la bibliothèque de types de Visio dans votre projet, vous pouvez utiliser la constante visDrawing, au lieu de la valeur 1, pour vérifier le type de la fenêtre.

C����� ��������?��1���C������

Page 521: MS Visio 2003 Guide du Développeur

P R O G R A M M A T I O N D E V I S I O A V E C M I C R O S O F T V I S U A L B A S I C 507

Pour obtenir la liste des constantes d’une méthode ou d’une propriété, recherchez cette dernière dans l’aide en ligne Référence du développeur (accessible via ? (Aide) > Référence du développeur) fournie avec Visio.

REMARQUE : les versions précédentes de Visio ne comportaient pas de bibliothèque de types ; c’est pourquoi toutes les constantes étaient définies dans Visconst.bas. Visconst.bas et la bibliothèque de types de Visio contiennent des constantes globales. Si vous utilisez Visconst.bas au lieu de la bibliothèque de types de Visio, vous ne pouvez pas utiliser les types d’objet Visio (vous devez utiliser le type de variable Object générique). Par exemple, vous ne pouvez pas utiliser l’instruction ����1�����P����!����"��������� pour définir des variables ; vous devez utiliser ����1�����P������P��� . Les constantes de Visconst.bas sont regroupées par usage. Les exemples de cet ouvrage partent du principe que vous avez établi une référence à la bibliothèque de types de Visio. Pour inclure Visconst.bas ou tout autre fichier Visual Basic dans votre projet, choisissez Projet > Ajouter un fichier.

Migration de Microsoft Visual Basic à VBA

Si vous envisagez de migrer de Microsoft Visual Basic à Microsoft Visual Basic pour Applications (VBA), voici quelques questions à garder à l’esprit :

• Qui utilisera votre solution et de quelle version de Visio les utilisateurs disposeront-ils ?

Les programmes VBA ne sont pas compatibles avec les versions précédentes Visio. Si vous ouvrez dans Visio 4.0 un document créé dans Visio 4.5 ou dans une version ultérieure, Visio ouvre le dessin, mais les programmes VBA ne sont pas accessibles (il n’y a pas de sous-menu Macros). Les utilisateurs ne pourront pas exécuter vos programmes VBA.

• Les types d’objet de Visio ne sont pas compatibles avec les versions antérieures à Visio 4.5. Si vos utilisateurs se servent de versions précédentes de Visio, n’utilisez ni la bibliothèque de types de Visio, ni les types d’objet de Visio. Pour utiliser les constantes Visio dans votre programme, incluez Visconst.bas dans votre projet en choisissant Projet > Ajouter un fichier.

Page 522: MS Visio 2003 Guide du Développeur

508 C H A P I T R E 2 6

Si vous décidez de migrer votre application de Visual Basic à VBA, voici quelques éléments que vous devez vérifier dans votre programme :

• Supprimez les références CreateObject, GetObject et vaoGetObject de votre code.

Les références à l’objet Application ne sont pas nécessaires quand vous développez dans l’environnement VBA du moteur Visio. Si vous programmez dans l’environnement de développement VBA d’une autre application, comme Microsoft® Excel, ces références sont nécessaires pour récupérer ou créer une copie de Visio. En revanche, quand vous programmez dans le moteur Visio, il est déjà en cours d’exécution.

• Transférez le code.

Quels sont les composants utilisés dans votre code ? Utilisez-vous des contrôles personnalisés absents de VBA ? Utilisez-vous des formulaires Visual Basic ? Vérifiez si VBA prend en charge ces formulaires et ces contrôles personnalisés. Dans l’affirmative, vous pouvez importer les formulaires des projets Visual Basic dans un projet VBA et y ajouter des contrôles personnalisés. Dans le cas contraire, vous pouvez créer un formulaire utilisateur dans VBA et faire du copier-coller entre les éléments du projet de Visual Basic et de VBA.

• Vérifiez le code ouvrant les modèles et les gabarits.

Les programmes VBA sont stockés dans les fichiers Visio. Si vous stockez votre programme VBA dans un modèle qui ouvre les gabarits contenant les formes utilisées dans le programme, il n’est pas nécessaire d’ouvrir le modèle et les gabarits dans le programme : ils sont déjà ouverts, tout comme une copie de Visio est déjà en cours d’exécution.

Page 523: MS Visio 2003 Guide du Développeur

Sommaire

27Programmation de Visio avec C++

Tous les clients prenant en charge le modèle COM (Component Object Model) OLE peuvent accéder aux objets Microsoft® Visio® et les manipuler. Plusieurs environnements de développement disponible dans le commerce, comme Microsoft® Visual Basic®, masquent les nouveaux détails de COM, ce qui convient à de nombreux développeurs. Cependant, si vous êtes prêt à travailler plus étroitement avec COM, vous pouvez développer en C ou C++ des programmes contrôlant des copies de Visio.

Le présent chapitre part du principe que vous êtes familiarisé avec les concepts de programmation OLE, comme COM, la récupération de pointeurs vers des interfaces et l’appel de fonctions d’interface. Vous devez également connaître le langage de programmation C++. Pour plus d’informations sur OLE, reportez-vous à la documentation OLE du Kit de développement Microsoft. Pour plus d’informations sur C++, reportez-vous à la documentation C++.

Le présent chapitre décrit la mise à disposition des objets Visio pour Automation sous l’angle du modèle COM. Il présente certains services de support de base fournis par Visio pour faciliter le développement de programmes contrôlant Visio en C++, puis explique comment développer une bibliothèque Visio (VSL), DLL spéciale chargée à l’exécution par Visio.

Pour plus d’informations sur la recompilation de programmes pour utiliser les nouveaux services ou sur la programmation de Visio en C, reportez-vous au fichier Lisezmoi.txt stocké dans le dossier \DVS\Libraries\C-CPP lorsque vous installez le produit Visio avec la référence du développeur.

Mise à disposition des objets dans Visio ............................................................. 510

Prise en charge de C++ dans Visio........................................................................ 511

Gestion des événements Visio dans les programmes C++ ................................ 520

Bibliothèques Visio (VSL) ...................................................................................... 524

Page 524: MS Visio 2003 Guide du Développeur

510 C H A P I T R E 2 7

Mise à disposition des objets dans Visio

Les objets proposés par Visio sont des objets COM (Component Object Model). Les concepts d’interface avec un objet et de référence à une interface sont essentiels à la création de ce modèle. Si vous utilisez les fichiers C++ fournis avec Microsoft® Visio® 2000 et décrits plus loin dans ce chapitre, vous ne programmerez pas à ce niveau. Cependant, il peut être utile de comprendre dans les grandes lignes ce qui se passe en coulisse.

Pour illustrer les concepts d’interface avec un objet et de référence à une interface, voici un exemple simple, exprimé en pseudocode :

ipAppObj = <référence à une interface avec un objet application Visio>//Récupérer la collection DocumentsipDocsObj = ipAppObj->Documents()//Récupérer le premier documentipDocObj = ipDocsObj->Item(1)

Vous remarquez les similitudes entre les attributions de cet exemple et l’attribution d’objets en Microsoft® Visual Basic® pour Applications. Vous pouvez en déduire qu’à partir d’une référence à une interface avec un objet Document, le programme peut obtenir de la même manière une référence à une interface avec un objet Page, puis un objet Shape, etc. Les propriétés et les méthodes proposées par ces objets correspondent exactement à celles décrites dans les chapitres précédents de ce manuel.

L’état du programme après l’exécution de ce code est décrit dans la figure ci-dessous, qui applique les conventions courantes de représentation des objets COM. Le programme de contrôle a récupéré des références aux interfaces avec trois objets mis à disposition par Visio. Les flèches sont les références, les cercles sont les interfaces et les rectangles situés dans la copie de Visio sont les objets.

Etat du projet après accès à unobjet Document

A Programme contrôlant VisioB Interface COMC Copie de Visio

ipAppObj

ipDocsObj

ipDocObj

A B C

ObjetApplication

CollectionDocuments

Objet Document(élément 1)

Page 525: MS Visio 2003 Guide du Développeur

P R O G R A M M A T I O N D E V I S I O A V E C C + + 511

OLE fournit de nombreux types d’interface ; certaines prennent en charge la liaison et l’incorporation de document et le stockage de données persistantes. Un pointeur d’interface OLE fait référence aux données qui représentent l’objet détenant l’interface. Une interface fait également référence à un ensemble de fonctions qui effectuent les actions décrites dans cette interface pour l’objet concerné. Après avoir établi une référence à une interface avec un objet, vous pouvez appeler les méthodes définies dans l’interface pour cet objet.

Les interfaces mises à disposition par Visio sont des interfaces doubles. Dans une interface double, les premières entrées de l’interface sont identiques à celles d’une interface standard IDispatch, la principale interface utilisée pour la mise en oeuvre d’Automation. Les méthodes IDispatch sont suivies par des entrées correspondant aux méthodes et aux propriétés offertes par l’objet. Une interface double comporte des méthodes ou des propriétés pouvant être appelées indirectement via les méthodes IDispatch ou directement via les méthodes « doubles ».

Les fonctions IDispatch définissent un protocole permettant la liaison tardive, à savoir la liaison de l’exécution, entre les contrôleurs Automation et les serveurs Automation. Cependant, si un serveur Automation fournit une bibliothèque de types et met en oeuvre des interfaces doubles (comme Visio), il permet la liaison précoce, c’est-à-dire la liaison à la compilation. Les performances du contrôleur Automation s’en trouvent généralement améliorées, car le programme effectue moins d’appels de méthodes à l’exécution. Pour plus d’informations sur les interfaces doubles, reportez-vous à la documentation OLE du Kit de développement Microsoft.

Prise en charge de C++ dans Visio

Les interfaces Automation avec les objets Visio sont définies dans le fichier Visio.h du dossier \DVS\Libraries\C-CPP\Vao.inc. Ce fichier contient une définition d’interface OLE standard pour chaque objet Visio. Pour contrôler Visio par Automation à partir d’un programme en C++, ajoutez Visio.h aux fichiers source du projet.

Visio 2000 fournit également des services sous la forme de classes wrapper facilitant la programmation de Visio en C++. Ces classes sont dites wrapper car elles encapsulent ou enveloppent (to wrap en anglais) le code nécessaire à certaines tâches, comme l’accès et la libération de pointeurs d’interface et la manipulation de chaînes. Le principal avantage de ces classes est le suivi des appels AddRef et Release, à l’aide de constructeurs, de destructeurs et d’opérateurs d’affectation C++. En outre, les valeurs et les arguments renvoyés sont automatiquement enveloppés dans une classe wrapper si nécessaire.

Page 526: MS Visio 2003 Guide du Développeur

512 C H A P I T R E 2 7

Outre les fichiers à utiliser dans votre programme, le dossier \C-CPP contient des exemples de projet illustrant l’utilisation des classes wrapper et des récepteurs d’événement. Le fichier Lisezmoi.txt de ce dossier comporte des informations détaillées sur le contenu du dossier et des instructions sur la compilation des exemples de projet. Il peut être utile d’étudier ces projets avant de développer vos programmes.

Utilisation des classes wrapperPour utiliser les classes wrapper, ajoutez Visiwrap.h aux fichiers source du projet. Ce fichier se trouve dans le dossier \DVS\Libraries\C-CPP\ Vao_inc. Si vous utilisez ce fichier, il n’est pas nécessaire d’ajouter Visio.h, car Visiwrap.h est déjà inclus. Les classes wrapper utilisent les conventions suivantes :

• Les noms de classe wrapper comportent le préfixe CVisio. Par exemple, la classe wrapper d’un objet Page est CVisioPage.

• Les propriétés sont accessibles par l’intermédiaire de méthodes comportant le préfixe get (lecture de la propriété) ou put (définition de la propriété). Par exemple, les méthodes de la propriété Name sont getName et putName. Dans Visio.h, les méthodes correspondantes contiennent un trait de soulignement entre le préfixe et le nom de la méthode : get_Name et put_Name. Recherchez le mot-clé « Name » dans l’aide en ligne Référence du développeur (accessible via ? (Aide) > Référence du développeur) fournie avec Visio.

Un programme utilisant les classes wrapper de Visio peut inclure une partie de code semblable à celui présenté dans l’exemple suivant. A partir du fichier d’exemple Generic.cpp, ce programme crée un document basé sur Exemple.vst, place deux formes de base et les connecte. La fonction vaoGetObjectWrap, définie dans Visiwrap.h, récupère la copie de Visio en cours d’exécution ou en lance une si nécessaire. Pour des raisons de concision, la gestion des erreurs a été omise.

Cet exemple utilise également les classes d’aide VBstr et VVariant, définies dans Helpers.h.

• VBstr : classe simplifiant l’utilisation des variables BSTR qui servent à la transmission des chaînes transmises par Automation.

• VVariant : classe simplifiant l’utilisation des variables VARIANT qui sont l’équivalent Automation des unions C++.

Page 527: MS Visio 2003 Guide du Développeur

P R O G R A M M A T I O N D E V I S I O A V E C C + + 513

Visiwrap.h contient Helpers.h ; par conséquent, si vous utilisez les classes wrapper, vous pouvez également utiliser celles d’aide. Pour plus d’informations sur les classes d’aide, reportez-vous aux commentaires de Helpers.h.

?& �%�$ � �2� &&�&<

�!������������� �<

�!������������� 1���<

�!������������ 1��<

�!��������� ����<

�!�������� ���<

�!�������� ����<

�!�������� ����*<

�!����E����� ������<

�!����E���� �����<

�!������������ �������<

�!�������� ����<

�!�������� ����*<

"""

�+��!��.�%�� ���9 ����;����P���������

CC;�����������1Y����

������%<

"""

CC�P��������1�������������������1��+������#������"���#����A��A��

�������1��1�����

� ��"����������1����<

CC!3�����������������1Y��1��1���4��3�$&

� �1���"�11�!3���#������"���#�,�1���<

� �1��"�����������<

CC!!��������������������1Y��1��1���4��!�&��2$

� �����"�����!!������*��,�����<

CC&A��A���������������������U��+����1�������W����A�

� �1���"�����!!������#������"���#�,���������<

� ��������"E�������������<

� �������"�����!!������#��1�#�,�������<

� ����"��������,�G"',�G"',������<

CC&A��A�����1����U���+����1�����������Y���A�

� �������"�����!!������#�����#�,�������<

� ����"��������,�F"',�F"',�����*�<

CC�������������1����+���������������1��1�����

� �����"������!3���#�����������"7B#�,������<

� �����*"������!3���#�������1������H��"7*#�,�����*�<

� �����*";���$�������<

"""

]

Page 528: MS Visio 2003 Guide du Développeur

514 C H A P I T R E 2 7

Interfaces situées derrière les classes wrapperLe fichier Visio.h définit les objets proposés par Visio dans une syntaxe de déclaration d’interface OLE standard. Les classes wrapper définies dans Visiwrap.h appellent les méthodes de ces interfaces. Par exemple, la classe wrapper CVisioApplication est déclarée dans Visiwrap.h de la manière suivante. Remarquez les déclarations de méthode de ActiveDocument, ActivePage, etc., après le deuxième indicateur d’accès VW_PUBLIC.

������)�&��!��������������Z��������!����%�d��O�

\

!�.�%3���Z

�!�����������������Z��!����%�d��O�����\�]

�!���������������������!�������������L�������Z��!����%�d��O��������\�]

�!���������������������!����������)�&�@�����,�3�����������&�����������4 �)��� �

Z��!����%�d��O�������%2a2��2������,��������&�����������4���\�]

�������!��������������)�&�L������ ���������!��������������)�&�L������

\��+���L�����9 �������

��4��������";��%�d��O������<

�����@����<�]

�������!��������������)�&�L������ ���������!����������)�&�@�������

\��+�������%2a2��2�������9 �;��%�d��O������

��4��������%2a2��2��������<

�����@����<�]

�������j�!�����������������\�]

�!����������)�&�@�;��������������\���������!����������)�&�@���;��%�d��O����<�]

�������!����������)�&�@�����\���������!����������)�&�@���;��%�d��O����<�]

CC�A����������1������A���1���!�������������

!�.�%3���Z�

?& �%�$�����������������!�������������)�&�L���<

?& �%�$�������������!���������)�&�L���<

?& �%�$����������1�O��!�������1�O�)�&�L���<

?& �%�$������������!��������������)�&�L���<

?& �%�$������������!��������������)�&�L���<

"""

Page 529: MS Visio 2003 Guide du Développeur

P R O G R A M M A T I O N D E V I S I O A V E C C + + 515

L’interface de l’objet Application correspondante est déclarée dans Visio.h de la manière suivante :

Tous les objets mis à disposition par Visio sont déclarés de manière similaire dans Visio.h. Les diverses macros de cette déclaration, qui n’apparaissent pas dans cet exemple, permettent d’inclure Visio.h dans des fichiers source C ou C++.

Comme toutes les interfaces Visio sont issues de IDispatch, elles présentent toutes les méthodes suivantes :

• QueryInterface

• AddRef

• Release (pour IUnknown)

Ces méthodes sont suivies par les suivantes :

• GetTypeInfoCount

• GetTypeInfo

• GetIDsOfNames

• Invoke (pour IDispatch)

Pour plus d’informations sur ces méthodes OLE standard, reportez-vous à la documentation OLE. Les méthodes restantes sont proposées par l’objet Application de Visio (get_ActiveDocument, get_ActivePage, etc.). Elles correspondent aux méthodes et aux propriétés décrites dans le reste du présent manuel, et sont utilisées dans les programmes Microsoft Visual Basic.

�!����������Z���������������

\

�����Z

�������C@�M����������NM����NM�1N�@C�?& �%�$��$�E $?������$:� ����.����������������

C@�M�����NM���N�@C��!���������..&��.)�&�@..&��.)�&�@�1��&���� �'<

�������C@�M����������NM����NM�1N�@C�?& �%�$��$�E $?������$:� ����.������������

C@�M�����NM���N�@C��!�����..&��.)�&�@..&��.)�&�@�1��&���� �'<

�������C@�M����������NM����NM�1N�@C�?& �%�$��$�E $?������$:� ����.���������1�O��

C@�M�����NM���N�@C��!���1�O�..&��.)�&�@..&��.)�&�@�1��&���� �'<

�������C@�M����������NM����NM�1N�@C�?& �%�$��$�E $?������$:� ����.�����������

C@�M�����NM���N�@C��!����������..&��.)�&�@..&��.)�&�@�1��&���� �'<

�������C@�M����������NM����NM�1N�@C�?& �%�$��$�E $?������$:� ����.�����������

C@�M�����NM���N�@C��!����������..&��.)�&�@..&��.)�&�@�1��&���� �'<

"""�

]<

Page 530: MS Visio 2003 Guide du Développeur

516 C H A P I T R E 2 7

Pour plus d’informations sur une méthode, consultez l’aide en ligne Référence du développeur fournie avec Visio. Par exemple, pour plus d’informations sur la méthode get_ActiveDocument déclarée dans l’exemple précédent, recherchez « ActiveDocument ».

Récupération d’un objet Application VisioL’exemple de programme de Generic.cpp, reproduit dans la section « Utilisation des classes wrapper », page 512��commence par le code suivant :

Cette étincelle met le feu aux poudres. Pour utiliser Visio, il vous faut un objet Application, qui est récupéré par vaoGetObjectWrap.

VaoGetObjectWrap appelle la fonction vaoGetObject, déclarée dans Ivisreg.h et mise en oeuvre dans Ivisreg.cpp. Si vous n’utilisez pas de classe wrapper, vous pouvez appeler vaoGetObject directement. Pour savoir ce que fait vraiment vaoGetObject, lisez le code source.

Les services définis dans Ivisreg.h et permettant de manipuler une copie de Visio équivalent à ceux offerts par le fichier Visreg.bas utilisable avec Visual Basic. Ces fichiers permettent notamment de lancer une nouvelle copie de Visio ou de définir un objet Application pour la copie active de Visio.

Valeurs renvoyées par les méthodes de VisioToutes les méthodes déclarées dans Visio.h sont définies de manière à renvoyer une valeur HRESULT indiquant si l’exécution de la méthode a réussi. La valeur HRESULT renvoyée par une méthode de Visio.h est transmise par la méthode équivalente de la classe wrapper correspondante définie dans Visiwrap.h.

Si une méthode réussit, elle renvoie NOERROR. Pour vérifier le résultat d’une méthode, les développeurs utilisent généralement SUCCEEDED(hResult). L’exemple de programme contient une macro appelée check_valid vérifiant le résultat de la méthode. Cette macro est présentée plus loin dans cette section.

De nombreuses méthodes génèrent également une valeur de sortie indépendamment de la valeur HRESULT renvoyée. Par exemple, la méthode ActiveDocument de la classe wrapper CVisioApplication génère une référence à un objet Document. Par convention, la valeur de sortie d’une méthode est écrite dans le dernier argument de cette dernière. Le dernier argument transmis à ActiveDocument est ainsi une référence à un objet CVisioDocument où la méthode peut écrire une référence à l’objet Document.

��������������� <�

�+��!��.�%�� ���9 ����;����P���������

CC;�����������1Y����

������%<

Page 531: MS Visio 2003 Guide du Développeur

P R O G R A M M A T I O N D E V I S I O A V E C C + + 517

Valeurs renvoyées sous forme de référence d’objetDe nombreuses méthodes renvoient une référence d’objet comme valeur de sortie. Cette valeur est en réalité un pointeur d’interface OLE, qui devra être libéré le moment venu, comme tous les pointeurs d’interface.

• Si vous utilisez des classes wrapper, la valeur renvoyée est un objet d’une autre classe wrapper, comme CVisioDocument mentionné précédemment, dans lequel h est le pointeur d’interface encapsulé. Quand l’objet est hors de portée, le pointeur d’interface de Visio qu’il détient est automatiquement libéré.

• Si vous n’utilisez pas de classe wrapper, le pointeur d’interface est détenu directement par votre programme, qui doit le libérer expressément le moment venu.

En cas d’échec d’une méthode renvoyant une référence d’objet, la valeur de sortie varie là encore selon que vous utilisez ou non des classes wrapper.

• Si vous utilisez des classes wrapper, vous obtenez toujours un objet de la classe wrapper correcte, mais le pointeur d’interface détenu par cet objet est NULL. L’appel de la fonction IsSet pour cet objet renvoie FALSE.

• Si vous n’utilisez pas de classe wrapper, le pointeur d’interface est NULL ; vous pouvez donc simplement le tester.

Même si la méthode réussit, il peut être nécessaire de tester le paramètre de sortie. Par exemple, si ActiveDocument est appelé alors qu’aucun document n’est ouvert, une valeur HRESULT de succès et un pointeur d’interface NULL sont renvoyés (avec ou sans encapsulage). En effet, aucune erreur ne s’est produite ; l’absence de document ouvert est un état parfaitement normal que l’appelant doit prendre en compte. Les diverses méthodes Active* ont ce comportement ; il vous faut donc vérifier que leur valeur de sortie n’est pas NULL avant de poursuivre. En revanche, les diverses méthodes Item et Add renvoient toujours une référence non NULL si elles réussissent.

La macro check_valid, définie dans Generic.cpp, teste les deux possibilités. Une fonction utilisant check_valid doit fournir une étiquette CU où sont effectués les travaux de nettoyage.

(1�+��������d.����1��,���P� [

�+�9�%�� � �����RR�9����P�"��������� [

������%<

Page 532: MS Visio 2003 Guide du Développeur

518 C H A P I T R E 2 7

Valeurs renvoyées sous forme de chaînePlusieurs méthodes renvoient une chaîne à l’appelant. La méthode Name de l’objet Shape (getName de CVisioShape ou get_Name de IVShape) en est un exemple. Toutes les chaînes que les méthodes Visio reçoivent ou renvoient sont du type BSTR, qui est composé de caractères de 16 bits dans les programmes Microsoft® Win32®. Visio attribue de la mémoire aux chaînes renvoyées ; l’appelant est ensuite chargé de libérer cette mémoire.

Les classes wrapper définies dans Visiwrap.h assurent la libération de la mémoire pour les chaînes. Si, en revanche, vous n’utilisez pas de classe wrapper, n’oubliez pas d’appeler SysFreeString pour libérer les chaînes renvoyées par Visio.

Arguments transmis aux méthodes VisioLa transmission d’arguments aux méthodes Visio ne pose pas de difficultés :

• Les arguments entiers sont déclarés de type short ou long, selon qu’il s’agit d’une valeur de 2 ou de 4 octets.

• Les arguments à virgule flottante sont déclarés de type double.

• Les valeurs booléennes sont transmises sous la forme d’entiers de type short ou VARIANT_BOOL.

• Les pointeurs d’objet, tels que BSTR ou VARIANT utilisés comme argument méritent de plus amples explications.

Arguments sous forme de pointeurs d’objetCertaines méthodes nécessitent des pointeurs d’objet ; d’autres nécessitent un pointeur vers un type d’objet Visio. Par exemple, la méthode GlueTo de l’objet Cell reçoit un argument qui doit faire référence à un autre objet Cell.

D’autres méthodes recevant des pointeurs d’objet ne sont pas aussi difficiles. Par exemple, la méthode Drop de l’objet Page accepte une référence à un objet à placer, car vous pouvez déposer une forme de base ou une forme sur une page.

Le moyen le plus simple de transmettre un pointeur d’objet à une méthode est de lui céder une référence à un objet de la classe wrapper adéquate. Par exemple, transmettez une référence à CVisioCell comme argument de la méthode GlueTo.

Les interfaces définies dans Visio.h déclarent les pointeurs d’objet par rapport aux interfaces correspondantes. Par exemple, Visio.h déclare GlueTo comme pointeur vers une interface IVCell. La méthode Drop n’est pas limitée à un objet particulier ; c’est pourquoi Visio.h déclare que Drop reçoit un IUnknown, ce qui signifie en langage OLE que Drop accepte une référence à n’importe quel objet. En interne, la méthode Drop détermine l’objet à placer en demandant à l’objet qui lui a été transmis une interface IDataObject. L’interface que vous transmettez à Drop n’est pas forcément une interface avec un objet Visio.

Page 533: MS Visio 2003 Guide du Développeur

P R O G R A M M A T I O N D E V I S I O A V E C C + + 519

Arguments sous forme de chaîneToutes les chaînes transmises à Visio doivent être de type BSTR. La classe d’aide VBstr, définie dans Helpers.h, est très pratique pour transmettre des chaînes aux copies de Visio. VBstr assure l’attribution de mémoire lors de la création de la chaîne et libère cette mémoire lorsque le VBstr est détruit. Si vous n’utilisez pas VBstr, n’oubliez pas d’appeler SysFreeString pour libérer la mémoire attribuée aux chaînes.

Par exemple, l’instruction suivante utilise un VBstr pour transmettre un nom de cellule à la méthode Cells d’un objet CVisioShape. Dans cette instruction, cell est une variable de type CVisioCell :

Arguments VARIANTCertaines méthodes de Visio reçoivent des arguments non limités à un certain type. Par exemple, si vous transmettez l’entier 5 à la méthode Item d’une collection Documents, elle renvoie une référence au cinquième document de la collection. Si, en revanche, vous transmettez à la même méthode une chaîne correspondant à un nom de document, elle renvoie une référence à un document portant ce nom (en admettant que ce document soit ouvert).

OLE définit une structure de données appelée VARIANT pour transmettre ce type d’arguments. La classe d’aide VVariant, définie dans Helpers.h, est fort utile pour transmettre des arguments VARIANT à une copie de Visio. Par exemple, comparez les deux instructions suivantes :

La première instruction transmet la valeur 1 (un entier) à la méthode Item d’une collection Pages. La seconde transmet « Poste » (une chaîne) à la méthode Item d’une collection Masters. Dans ces instructions, page et master sont respectivement des variables de type CVisioPage et CVisioMaster.

�� �����"������!3���#�����������"7B#�,������<

�� �����"�����!!������*��,�����<

�� �������"�����!!������#�����#�,�������<

Page 534: MS Visio 2003 Guide du Développeur

520 C H A P I T R E 2 7

Gestion des événements Visio dans les programmes C++

Pour gérer des événements Visio à partir d’un programme en C++, vous pouvez utiliser des objets Event. Un objet Event associe un événement à une action, pour exécuter un programme complémentaire ou notifier un autre objet, appelé objet récepteur, que l’événement s’est produit. Pour plus d’informations sur le fonctionnement des objets Event et leur mise en oeuvre dans les programmes Microsoft Visual Basic, reportez-vous au chapitre 21, « Gestion des événements dans Visio ».�

Les protocoles utilisés par le moteur Visio pour prendre en charge le style WithEvents Visual Basic du gestionnaire d’événements sont les protocoles IConnectionPoint standard fournis par des contrôles et utilisés par des conteneurs de contrôle. Comme alternative à l’utilisation des objets Event, un programme C++ peut recevoir des événements d’une copie Visio à l’aide des protocoles IConnectionPoint, mais il doit mettre en oeuvre la totalité de l’interface de groupe d’événements déclarée pour le type d’objet Visio à partir duquel il souhaite recevoir des événements. Pour plus d’informations sur IConnectionPoint et les interfaces liées, reportez-vous à votre documentation COM.

Les sujets traités dans cette section décrivent comment recevoir des événements Visio dans des programmes C++ à l’aide d’objets Event établis par des appels destinés à EventList.Add ou à EventList.AddAdvise. Ce protocole étant propre à Visio, un programme C++ n’a pas besoin de mettre en oeuvre la totalité des interfaces de groupe d’événements ; au contraire, il peut enregistrer uniquement les événements qui lui sont utiles plutôt que tous les événements d’un groupe d’événements, contrairement à IConnectionPoint.

Mise en oeuvre d’un objet récepteurLa gestion des événements Visio dans un programme C++ est globalement la même que dans un programme Microsoft Visual Basic, à quelques détails près :

• L’objet récepteur du programme C++ doit être un objet COM mettant l’interface IDispatch à disposition.

Page 535: MS Visio 2003 Guide du Développeur

P R O G R A M M A T I O N D E V I S I O A V E C C + + 521

• L’interface IDispatch doit fournir une méthode appelée VisEventProc et comportant la signature suivante :

Lorsque vous appelez AddAdvise pour créer l’objet Event, vous transmettez un pointeur vers l’interface IUnknown ou IDispatch avec l’objet récepteur.

Utilisation de CVisioAddonSinkAu lieu de mettre en oeuvre votre propre objet récepteur, vous pouvez utiliser la classe CVisioAddonSink proposée par Visio 2000. Cette classe est déclarée dans le fichier Addsink.h du dossier \DVS\Libraries\C-CPP\Vao_inc.

Pour utiliser CVisioAddonSink :

1 Ajoutez Addsink.h aux fichiers source du projet. Si vous utilisez les classes wrapper définies dans Visiwrap.h, passez cette étape.

2 Ecrivez une fonction de rappel pour recevoir les notifications d’événement envoyées par l’objet récepteur.

3 Appelez CoCreateAddonSink avec un pointeur vers votre fonction de rappel et l’adresse d’une interface IUnknown. CoCreateAddonSink crée une occurrence d’objet récepteur connaissant votre fonction de rappel et écrit un pointeur vers l’interface IUnknown avec l’objet récepteur à l’adresse indiquée.

4 Récupérez une référence à la collection EventList de l’objet Visio dont vous souhaitez recevoir des notifications.

5 Appelez la méthode AddAdvise de la collection EventList récupérée à l’étape 4 avec l’interface IUnknown obtenue à l’étape 3 et le code d’événement de l’événement Visio qui vous intéresse. Lorsque l’événement se produit, la copie de Visio appelle votre fonction de rappel.

6 Lorsque vous n’utilisez plus l’objet récepteur, libérez-le.

����������������� �� ��

!�"� #���� $ %%&'��'���()�)����� �*+�����')�����,�

-.�/�#���0"1 ���+��$ %%��� �+�����-.�/�#���+��(23� �*+�

%%')�����,���()�)�����

�!�"� '#���� -�$ %%-��'���()�)����� �*+�����')�����,�

�!�"� '#��*$ %%4+�)�'���)*+�����'���()�)�����

-.�/�#���0"1 ���+23�� $ %%��� �+�����-.�/�#���+�����+3� �'�

%%�()�)�����

�0"-04� ��5 �-�6 %%-�6�� ��������)��� ������7)�)������ �+�

%%�� �5 �

Page 536: MS Visio 2003 Guide du Développeur

522 C H A P I T R E 2 7

L’exemple de programme Generic.cpp utilise CVisioAddonSink pour gérer deux événements : DocumentCreated et ShapeAdded. Le programme déclare une fonction de rappel pour chacun d’eux. La signature de la fonction de rappel doit être conforme à VISEVENTPROC, qui est défini dans Addsink.h. L’exemple suivant présente l’une des déclarations. Pour avoir un exemple d’une utilisation de cette fonction, reportez-vous à Generic.cpp.

?& �%�$��$�E $?������$:� �&������2���+4)��!������

�%�d��O��)�&@ ����d,

��&� O ����,

�%�d��O��)�&@ ������,

���&� � ������,

���&� 1O ������J,

�%�d��O��)�&@ ����P���,

!�&��2$ ����� ����<

Page 537: MS Visio 2003 Guide du Développeur

P R O G R A M M A T I O N D E V I S I O A V E C C + + 523

Pour créer l’objet récepteur, le programme récupère la collection EventList de l’objet Application (représenté par la variable app de type CVisioapplication), appelle CoCreateAddonSink pour créer l’objet récepteur, et appelle AddAdvise dans l’objet EventList pour créer l’objet Event dans la copie de Visio. Le programme définit un indicateur, bFirstTime, pour vérifier que les objets Event ne sont créés qu’une seule fois au cours de l’exécution du programme. L’identificateur de l’objet Event est stocké dans la variable statique stc_nEventID pour une utilisation ultérieure. L’appel AddAd-vise crée une seconde référence à l’objet récepteur ; le programme peut alors libérer pSink :

Les objets Event créés avec AddAdvise subsistent jusqu’à la suppression de l’objet Event, la libération de toutes les références à l’objet source ou la fermeture de la copie de Visio. Si votre programme doit effectuer des travaux de nettoyage avant la fermeture de la copie de Visio, utilisez l’événement BeforeQuit.

Si CVisioAddonSink est utilisé dans une bibliothèque Visio (VSL), son gestionnaire de fermeture doit appeler Event.Delete.

����������� ���.� ������� ���� ���������<

�%�d��O��)�&@ ���d� �2%��<

�%�d��O��)�&@ ���������d� �2%��<

�������3��� �)���$���� �$&% <

�!������������� �<

�!���� �������� �����<

������ ���� �����<

"""

�+���)���$����LL���%�� � ���" ������������������

\

�)���$��� �)��� <

�+���%�� � ����������11�����d�&������2���+4)��!����,�L���d���

\

�+���%�� � �������"�11�1�������� ����1���������,

!!���������d�,�!3���##�,�!3���##�,���������

\

�����"���L���.� �������<

]

CC�������A���1���11�1�����A�����,�!��������������1A����������

A+A�����W��Y��P���A�����

CC�����Y��P���1YA�A������"����d�����e������AA

���d5/&��������<

���d �2%��<

]

"""

]

Page 538: MS Visio 2003 Guide du Développeur

524 C H A P I T R E 2 7

Bibliothèques Visio (VSL)

Une bibliothèque Visio (VSL) est une DLL (Dynamic-Link Library) d’un type particulier, chargée par le moteur de Visio à l’exécution, et susceptible de mettre en oeuvre un ou plusieurs programmes complémentaires de Visio (programmes utilisant Automation pour contrôler les copies de Visio.

Un programme complémentaire mis en oeuvre par une bibliothèque Visio peut interagir avec les objets Visio de la même manière qu’un programme prenant la forme d’un fichier exécutable (EXE) ou d’un code dans le projet VBA (Visual Basic pour Applications de Microsoft) d’un document, et un utilisateur peut s’en servir de la même façon. Les programmes complémentaires mis en oeuvre dans un fichier VSL présentent des avantages sur les programmes exécutables en ce qui concerne les performances et l’intégration. Par exemple, un fichier VSL est exécuté dans le même processus que la copie de Visio. Cependant, il est impossible de lancer une bibliothèque Visio depuis l’Explorateur de Windows, contrairement aux exécutables.

Est considéré comme bibliothèque Visio tout fichier pourvu de l’extension .vsl et situé dans les chemins des programmes complémentaires et de démarrage. Pour installer une VSL, copiez le fichier dans l’un des répertoires définis comme chemin des programmes complémentaires ou de démarrage. Lorsque vous relancez une copie de Visio, les programmes complémentaires mis en oeuvre par cette VSL sont disponibles dans cette copie.

Les fichiers nécessaires au développement d’une VSL sont dans le dossier \DVS\Libraries\C-CPP. Ce dossier contient également :

• Les fichiers source et .MAK d’une VSL simple décrits dans le fichier Lisezmoi.txt du dossier C-CPP.

• Le fichier MyAddon.cpp du dossier \Samples\MyAddon contenant une interface de développement de votre VSL.

• Le dossier \Libraries\C-CPP\Wizards, contenant deux versions de Microsoft® Visual Studio® AppWizard qui génère des projets MFC VSL : MFC5_VSL.awx à utiliser avec MFC (Microsoft Foundation Classes) version 5.0 et MFC4_VSL.awx à utiliser avec MFC version 4.x. Le fichier Wizards.txt indique les répertoires dans lesquels copier les fichiers AWX et recommande des paramètres de projet et de création utiles.

Avantages des bibliothèques VisioToutes choses égales par ailleurs, une VSL est plus rapide qu’un programme exécutable. Une VSL est une DLL ; c’est pourquoi elle est chargée dans l’espace de processus de la copie de Visio qui l’utilise. Les appels d’une VSL vers une copie de Visio ne franchissent pas la limite du processus, comme c’est le cas lorsqu’un programme exécutable appelle une copie de Visio.

Page 539: MS Visio 2003 Guide du Développeur

P R O G R A M M A T I O N D E V I S I O A V E C C + + 525

En outre, une VSL étant exécutée dans le même processus que la copie de Visio, il lui est bien plus simple d’ouvrir une boîte de dialogue modale par rapport au processus exécutant la copie de Visio. Lorsque deux fichiers exécutables fonctionnent (à savoir un programme complémentaire et une copie de Visio), il est difficile pour l’un d’entre eux d’afficher une boîte de dialogue modale pour l’autre. Un programme complémentaire exécutable peut certes afficher une boîte de dialogue ; cependant, l’utilisateur peut utiliser la fenêtre de Visio et modifier l’état de Visio pendant que la boîte de dialogue est ouverte.

Il est également plus simple d’ajouter des fenêtres définies dans les solutions en tant que fenêtres enfant des fenêtres Visio en utilisant la méthode Add d’une collection Windows. Pour ce faire, créez un HWND et utilisez WindowHandle32 de la fenêtre ajoutée avec Windows.Add en tant que parent HWND. L’utilisation des HWND de processus différents en tant que fenêtres parent peut rencontrer des dysfonctionnements, sauf dans des scénarios de conteneur in situ.

Architecture d’une bibliothèque VisioUne VSL n’est autre qu’une DLL standard offrant un point d’entrée dont le nom est obligatoirement VisioLibMain.

La copie de Visio charge les VSL grâce à LoadLibrary et les libère avec FreeLibrary. Si votre VSL n’est pas installée dans le dossier Startup de Visio, elle ne doit pas comporter de conditions sur le moment de son chargement. En effet, ces VSL ne sont chargées dans la copie de Visio que lorsque c’est nécessaire. Si une copie de Visio charge une VSL, elle ne lui applique pas FreeLibrary tant que la copie est ouverte.

Le fichier VDLLmain.c constitue une application par défaut de DllMain, point d’entrée de DLL standard appelé par Windows au chargement et au déchargement de la DLL. Le fichier Vao.c met en oeuvre plusieurs autres fonctions qui peuvent vous être utiles ; certaines sont citées dans les paragraphes qui suivent.

Une fois que la copie de Visio a chargé une VSL, des appels occasionnels sont effectués à la procédure VisioLibMain de cette dernière. L’un des arguments transmis par la copie de Visio à VisioLibMain est un code de message indiquant à la VSL la raison de l’appel. Tous les messages émis par Visio sont définis dans Vao.h.

Le prototype à utiliser pour VisioLibMain est disponible dans Vao.h :

�4�1�+���&��!��&�,�)�&@���!��&�< CC��1������4A������������

CC����A��������1��!����

�4�1�+���&��!��E�;,�)�&@���!��E�;< CC��1��1����������1���������

CC����A��������1��!����

(1�+����!���3�..�1��� CC���A1���1������1��������

CC���A��������1��!����

CC�������4��1��!�������E����1����������+����W�!��)%2�

�4�1�+�!��&���!���3�!��)%2����!��E�;,��&�,��!����<

Page 540: MS Visio 2003 Guide du Développeur

526 C H A P I T R E 2 7

Une procédure VisioLibMain classique se présente donc ainsi :

Cette procédure VisioLibMain gère spécifiquement les messages V2LMSG_RUN et V2LMSG_ENUMADDONS. D’autres messages sont transmis à VAOUtil_DefVisMainProc, fonction qui met en oeuvre des réponses génériques aux messages. Le résultat de VLIBUTL_hModule est le descripteur de module de la VSL.

Déclaration et enregistrement de programmes complémentairesLorsque la copie de Visio envoie le message V2LMSG_ENUMADDONS à la procédure VisioLibMain d’une VSL, il demande la description des programmes complémentaires mis en oeuvre par la VSL.

Le fichier Lib.c met en oeuvre un exemple de VSL, dont le code source explique comment une VSL enregistre les programmes complémentaires. L’opération comporte deux étapes : tout d’abord, Lib.c définit une structure de données décrivant ses programmes complémentaires ; ensuite, en réponse à V2LMSG_ENUMADDONS, Lib.c transmet cette structure de données à la copie de Visio qui a émis le message.

(�����1��#���"�#

!��&��!���3�!�������E�����!��E�;�OE��,���&��O����,���!����������

\

!��&�������� �!��&�.�%�� ��<

�O������OE���

\

�����!0�E�;. 2%E����2�Z

CC��1��1Y�������������1���������������A���������1��!��

���d<

�����!0�E�;.&%2Z

CC��1��1Y��A�������1�������������A��������1���Y�1�����O����

���d<

1�+����Z

CC&A������A�A�J���1��1A���������W�OE��

CC���A1����1Y��1��!��%���.��+!��E����������!��3%$�.�E�1���

CC�A������������1�������"�

������ �!��%���.��+!��E�������OE��,�O����,������,�

!��3%$�.�E�1������<

���d<

]<

����������<

]

Page 541: MS Visio 2003 Guide du Développeur

P R O G R A M M A T I O N D E V I S I O A V E C C + + 527

Lib.c met en oeuvre un programme complémentaire. Le code suivant est situé en début de fichier :

La structure VAOREGSTRUCT est déclarée dans Vao.h. Vous trouverez dans ces fichiers des commentaires et des déclarations fournissant des informations complémentaires sur les champs de la structure.

La copie de Visio demande à une VSL d’exécuter un programme complémentaire en indiquant le numéro d’ordre de ce dernier (valeur unique identifiant le programme complémentaire dans le fichier). Le tableau stc_myAddons déclare un programme complémentaire dont le numéro d’ordre est 1 (DEMO_ADDON_ORDINAL). Si Lib.c mettait en oeuvre deux programmes complémentaires au lieu d’un, stc_myAddons aurait deux entrées au lieu d’une, chaque entrée correspondant à un numéro d’ordre unique.

Le programme complémentaire déclaré est présenté dans l’interface utilisateur de Visio sous le nom de « VSL Automation Demo ». Si vous comptez faire traduire votre programme, ne déclarez pas son nom dans le code, comme dans notre exemple. Lisez ce nom dans une ressource de chaîne et initialisez dynamiquement VAOREGSTRUCT.

VAO_ENABLEALWAYS indique à Visio que ce programme complémentaire doit être considéré comme activité en permanence. D’autres politiques d’activation peuvent être déclarées. Par exemple, de nombreux programmes complémentaires ne nécessitent pas d’être exécutés avant l’ouverture d’un document. Ces programmes peuvent déclarer la politique d’activation VAO_NEEDSDOC. Ils sont alors indisponibles lorsqu’aucun document n’est ouvert. Lorsqu’un programme est exécuté, il peut vérifier qu’un document est ouvert. Plusieurs politiques d’activation statiques similaires à VAO_NEEDSDOC sont déclarées dans Vao.h.

(1�+����� E�.����2.�&��2���*

�&�!�$ �!��& ;�$&%�$����.�4�11���MN�

\

\

� E�.����2.�&��2��, CC�1�����1����������������A�������

!��.���$$�.����$��2, CC��������������A������������������1����

CC���!����

!��. 2�3� ����:�, CC��������������A���������������P���

CC�����A

', CC��������������J��

', CC&A���A�W��������������������A����

#!������������������#, CC2���1����������������A�������

],

]<

Page 542: MS Visio 2003 Guide du Développeur

528 C H A P I T R E 2 7

Vao.h contient aussi une politique appelée VAO_ENABLEDYNAMIC. Pour déterminer si le programme complémentaire est activé, la copie de Visio envoie V2LMSG_ISAOENABLED à un programme activé dynamiquement. Ce programme peut se déclarer activé ou désactivé selon ses propres critères.

Le dernier aspect de VAOREGSTRUCT concerne l’exécution automatique d’un programme complémentaire au lancement d’une copie de Visio. Pour qu’un programme complémentaire mis en oeuvre par un exécutable soit lancé au démarrage, il suffit de placer le fichier exécutable dans l’un des répertoires définis dans le chemin de démarrage de Visio.

Les programmes complémentaires mis en oeuvre dans une VSL peuvent être exécutés au démarrage si le champ invokeOnMask de leur VAOREGSTRUCT contient VAO_INVOKE_LAUNCH. Cette constante permet à un même fichier VSL de mettre en oeuvre plusieurs programmes complémentaires, dont certains sont exécutés automatiquement au lancement d’une copie de Visio.

En soi, VAOREGSTRUCT est une simple structure de données dont l’existence n’est pas très parlante pour une copie de Visio. Lorsqu’une copie de Visio envoie V2LMSG_ENUMADDONS à une VSL, la bibliothèque doit répondre en transmettant à la copie de Visio un pointeur vers le tableau de VAOREGSTRUCT décrit précédemment, afin que les données qui y sont contenues soient accessibles à la copie de Visio. Pour ce faire, Lib.c applique un utilitaire mis en oeuvre dans Vao.c. Le code se présente ainsi :

Pour plus d’informations sur l’effet de ce code, consultez les sources dans Vao.c.

Exécution d’un programme complémentaireUne copie de Visio adresse V2LMSG_RUN à une VSL pour exécuter l’un des programmes complémentaires. Le numéro d’ordre du programme est transmis dans le paramètre wParam.

La copie de Visio n’émet V2LMSG_RUN qu’après avoir déterminé que le programme est activé, en fonction de la politique d’activation déclarée dans la structure d’enregistrement de ce programme. Si la politique d’activation du programme est VAO_ENABLEDYNAMIC, la VSL aura déjà répondu par VAORC_L2V_ENABLED au message V2LMSG_ISAOENABLED reçu de la copie de Visio.

������ �!��%���.&�������11����

����!��!0��$&%�$�������5/O������,

���.�4�11���,

��I��+����.�4�11����C��I��+�!��& ;�$&%�$��<

Page 543: MS Visio 2003 Guide du Développeur

P R O G R A M M A T I O N D E V I S I O A V E C C + + 529

Outre le numéro d’ordre du programme à exécuter, la copie de Visio transmet un pointeur vers un VAOV2LSTRUCT avec le message V2LMSG_RUN. VAOV2LSTRUCT est défini de la manière suivante dans un fichier Vao.h :

Cette structure indique le descripteur d’occurrence de la copie de Visio émettant le message, ce qui peut être utile. Les membres lpfunc et lpArgs sont utilisés par d’autres fonctions dans Vao.c. Dans le membre lpCmdLineArgs, la copie de Visio transmet une chaîne d’arguments au programme complémentaire. Il s’agit de la chaîne que la copie de Visio transmettrait au programme complémentaire similaire mis en oeuvre sous la forme d’un exécutable.

Vous serez parfois intéressé par le membre wSessID, qui est l’identificateur attribué par la copie de Visio à la « session » associée au V2LMSG_RUN émis. Par exemple, vous pouvez utiliser wSessID si votre programme complémentaire lance une activité non modale.

La plupart des programmes complémentaires exécutent une action modale en réponse à V2LMSG_RUN : ils reçoivent le message, effectuent une opération, puis rendent le contrôle à la copie de Visio. Sauf indication contraire, la session est considérée comme terminée par la copie de Visio lorsque le contrôle lui est rendu par le programme complémentaire.

Le pseudocode correspondant à ce cas classique se présenterait comme suit :

case V2LMSG_RUN:wParam est l’ordinal du prog.comp. à exécuter.Exécuter le code des opérations effectuées par le prog. comp. avec l’ordinal wParam

Vous allez probablement instancier des objets Visio et appeler les méthodes et lespropriétés de ces objets. Vous pouvez utiliser les services C++ décrits dans lasection précédente comme si le code se trouvait dans un fichier .EXE.

if (l’opération a réussi)renvoyer VAORC_SUCCESS;

elserenvoyer VAORC_XXX; // Voir vao.h

!��. E3 ���3� .�$&%�$

\

?�2�$�2� �!������< CC���������1���Y������������������1�

CC!����

��!��)%2� �+���< CC�1�����1������1����!����

��&� O������< CC���1������������

��!��� ����< CC&A���A�W��������������������A����

���$& ���1�������< CC���������1��������1��������1�

]�!��!0��$&%�$,�)�&@���!��!0��$&%�$<

Page 544: MS Visio 2003 Guide du Développeur

530 C H A P I T R E 2 7

Parfois, en réponse à V2LMSG_RUN, un programme complémentaire lance une activité qui ne prend pas fin lorsque le programme rend le contrôle à la copie de Visio. Ces activités sont dites non modales. Par exemple, un programme complémentaire peut ouvrir une fenêtre qui reste ouverte indéfiniment.

Si votre programme complémentaire met en oeuvre une activité non modale, il doit mémoriser l’identificateur de session transmis avec V2LMSG_RUN. Le pseudocode de ce programme complémentaire se présenterait comme suit :

case V2LMSG_RUN:wParam est l’ordinal du prog. comp. à exécuter.Exécuter le code pour lancer une activité non modale.

Par exemple, ouvrir une fenêtre et stocker son descripteur.if (l’opération a réussi)

{stocker lParam->wSessID où vous pouvez le lire ultérieurement.renvoyer VAORC_L2V_MODELESS;}

elserenvoyer VAORC_XXX; // Voir vao.h

Vous remarquerez la valeur renvoyée VAORC_L2V_MODELESS, qui indique à la copie de Visio que la session continue, bien que la VSL ait terminé le traitement du message V2LMSG_RUN.

Une session non modale lancée de cette manière se poursuit jusqu’à ce que la VSL y mette fin ou que la copie de Visio qui lui est associée soit fermée.

Si la VSL met fin à la session (si, par exemple, la fenêtre ouverte est fermée), elle exécute la même action avec la fonction VAOUtil_SendEndSession. Le paramètre wSessID contient l’ID de la session de fermeture :

VAOUtil_SendEndSession(wSessID); //wSessID: ID de la session qui finit

A sa fermeture, la copie de Visio envoie V2LMSG_KILLSESSION à toutes les sessions ouvertes. Avec V2LMSG_KILLSESSION, la copie de Visio transmet VAOV2LSTRUCT dont le champ wSessID indique l’identificateur de la session à interrompre. La VSL doit répondre en mettant fin à la session indiquée et en effectuant les travaux de nettoyage.

Page 545: MS Visio 2003 Guide du Développeur

Sommaire

APropriétés, méthodes etévénements classés par objet

Cette annexe répertorie par ordre alphabétique les objets Automation de Microsoft® Visio®. Pour plus d’informations concernant un objet, une propriété, une méthode ou un événement, reportez-vous à l’aide en ligne Référence du développeur (accessible via ? (Aide) > Référence du développeur) fournie avec Visio.

Propriétés, méthodes et événements classés par objet ..................................... 532

Page 546: MS Visio 2003 Guide du Développeur

532 A N N E X E A

Propriétés, méthodes et événements classés par objet

Objets Propriétés Méthodes Evénements

<Global> ActiveDocumentActivePageActiveWindowAddons

ApplicationDocumentsVBEWindows

<ThisDocument> AlternateNamesApplicationBottomMarginCategoryClassIDColorsCompanyContainerCreatorCustomMenusCustomMenusFileCustomToolbarsCustomToolbarsFileDefaultFillStyleDefaultLineStyleDefaultStyleDefaultTextStyleDescriptionDocumentSheetEventListFontsFullNameGestureFormatSheetHyperlinkBaseIndexInPlaceKeywordsLeftMarginManagerMastersMasterShortcuts

ModeNameObjectTypeOLEObjectsPagesPaperHeightPaperSizePaperWidthPathPersistsEventsPrintCenteredHPrintCenteredVPrintFitOnPagesPrintLandscapePrintPagesAcrossPrintPagesDownPrintScaleProgIDReadOnlyRightMarginSavedSavePreviewModeStatStylesSubjectTemplateTitleTopMarginVBProjectVersion

ClearCustomMenusClearCustomToolbarsClearGestureFormatSheetCloseDropExecuteLineFollowHyperlinkOpenStencilWindowParseLinePrintSaveSaveAsSaveAsExSetCustomMenusSetCustomToolbars

BeforeDocumentCloseBeforeDocumentSaveBeforeDocumentSaveAsBeforeMasterDeleteBeforePageDeleteBeforeSelectionDeleteBeforeStyleDeleteDesignModeEnteredDocumentChangedDocumentCreatedDocumentOpenedDocumentSavedDocumentSavedAsMasterAddedMasterChangedPageAddedPageChangedRunModeEnteredShapeAddedShapeParentChangedStyleAddedStyleChanged

AccelItem AddonArgsAddonNameAltCmdNum

ControlKeyParentShift

Delete

AccelItems CountItem

Parent Add

AccelTable AccelItemsParent

SetIDTableName

Delete

AccelTables CountItem

ItemAtIDParent

AddAddAtID

Addon ApplicationEnabledIndex

NameObjectType

Run

Addons ApplicationCount

ItemObjectType

AddGetNames

Page 547: MS Visio 2003 Guide du Développeur

P R O P R I É T É S , M É T H O D E S E T É V É N E M E N T S C L A S S É S P A R O B J E T 533

Application ActiveActiveDocumentActivePageActiveWindowAddinsAddonPathsAddonsAlertResponseApplicationAutoLayoutBuiltInMenusBuiltInToolbarsCommandLineCurrentScopeCustomMenusCustomMenusFileCustomToolbarsCustomToolbarsFileDeferRecalcDocumentsDrawingPathsEventInfoEventListEventsEnabledFilterPathsHelpPathsInstanceHandle32IsInScopeIsUndoingOrRedoing

LanguageLiveDynamicsObjectTypeOnDataChangeDelayPathPersistsEventsProcessIDProductNameProfileNamePromptForSummaryScreenUpdatingShowMenusShowProgressShowStatusBarShowToolbarStartupPathsStatStencilPathsTemplatePathsToolbarStyleTraceFlagsUndoEnabledUserNameVBEVersionVisibleWindowHandle32Windows

AddUndoUnitBeginUndoScopeClearCustomMenusClearCustomToolbarsConvertResultDoCmdEndUndoScopeEnumDirectoriesFormatResultPurgeUndoQueueMarkerEventQuitRedoSaveWorkspaceAsSetCustomMenusSetCustomToolbarsUndo

AfterModalAppActivatedAppDeactivatedAppObjectActivatedAppObjectDeactivatedBeforeDocumentCloseBeforeDocumentSaveBeforeDocumentSaveAsBeforeMasterDeleteBeforeModalBeforePageDeleteBeforeQuitBeforeSelectionDeleteBeforeShapeDeleteBeforeStyleDeleteBeforeWindowClosedBeforeWindowPageTurnBeforeWindowSelDeleteCellChangedConnectionsAddedConnectionsDeletedDesignModeEnteredDocumentChangedDocumentCreatedDocumentOpenedDocumentSavedDocumentSavedAsEnterScopeExitScopeFormulaChangedMarkerEventMasterAddedMasterChangedMustFlushScopeBeginningMustFlushScopeEndedNoEventsPendingPageAddedPageChangedRunModeEnteredSelectionAddedSelectionChangedShapeAddedShapeChangedShapeParentChangedStyleAddedStyleChangedTextChangedViewChangedVisioIsIdleWindowActivatedWindowChangedWindowOpenedWindowTurnedToPage

Propriétés, méthodes et événements classés par objet (suite)

Objets Propriétés Méthodes Evénements

Page 548: MS Visio 2003 Guide du Développeur

534 A N N E X E A

Cell ApplicationColumnContainingRowDocumentErrorEventListFormulaFormulaForceIsConstantIsInheritedLocalNameNameObjectTypePersistsEventsResult

ResultForceResultFromIntResultFromIntForceResultIntResultIUResultIUForceResultStrRowRowNameSectionShapeStatStyleUnits

GlueToGlueToPosTrigger

CellChangedFormulaChanged

Characters ApplicationBeginCharCountCharPropsCharPropsRowDocumentEndEventListFieldCategoryFieldCodeFieldFormatFieldFormula

IsFieldObjectTypeParaPropsParaPropsRowPersistsEventsRunBeginRunEndShapeStatTabPropsRowTextTextAsString

AddCustomFieldAddFieldCopyCutPaste

TextChanged

Color ApplicationBlueDocumentFlagsGreen

IndexObjectTypePaletteEntryRedStat

Colors ApplicationCountDocument

ItemObjectTypeStat

Connect ApplicationDocumentFromCellFromPartFromSheetIndex

ObjectTypeStatToCellToPartToSheet

Connects ApplicationCountDocumentFromSheet

ItemObjectTypeStatToSheet

Curve ApplicationClosedEnd

ObjectTypeStart

PointPointAndDerivatives

Propriétés, méthodes et événements classés par objet (suite)

Objets Propriétés Méthodes Evénements

Page 549: MS Visio 2003 Guide du Développeur

P R O P R I É T É S , M É T H O D E S E T É V É N E M E N T S C L A S S É S P A R O B J E T 535

Document AlternateNamesApplicationBottomMarginCategoryClassIDColorsCompanyContainerCreatorCustomMenusCustomMenusFileCustomToolbarsCustomToolbarsFileDefaultFillStyleDefaultLineStyleDefaultStyleDefaultTextStyleDescriptionDocumentSheetEventListFontsFullNameGestureFormatSheetHyperlinkBaseIndexInPlaceKeywordsLeftMarginManagerMastersMasterShortcuts

ModeNameObjectTypeOLEObjectsPagesPaperHeightPaperSizePaperWidthPathPersistsEventsPrintCenteredHPrintCenteredVPrintFitOnPagesPrintLandscapePrintPagesAcrossPrintPagesDownPrintScaleProgIDReadOnlyRightMarginSavedSavePreviewModeStatStylesSubjectTemplateTitleTopMarginVBProjectVersion

ClearCustomMenusClearCustomToolbarsClearGestureFormatSheetCloseDropExecuteLineFollowHyperlinkOpenStencilWindowParseLinePrintSaveSaveAsSaveAsExSetCustomMenusSetCustomToolbars

BeforeDocumentCloseBeforeDocumentSaveBeforeDocumentSaveAsBeforeMasterDeleteBeforePageDeleteBeforeSelectionDeleteBeforeStyleDeleteDesignModeEnteredDocumentChangedDocumentCreatedDocumentOpenedDocumentSavedDocumentSavedAsMasterAddedMasterChangedPageAddedPageChangedRunModeEnteredShapeAddedShapeParentChangedStyleAddedStyleChanged

Propriétés, méthodes et événements classés par objet (suite)

Objets Propriétés Méthodes Evénements

Page 550: MS Visio 2003 Guide du Développeur

536 A N N E X E A

Documents ApplicationCountEventList

ItemObjectTypePersistsEvents

AddGetNamesOpenOpenEx

BeforeDocumentCloseBeforeDocumentSaveBeforeDocumentSaveAsBeforeMasterDeleteBeforePageDeleteBeforeSelectionDeleteBeforeShapeDeleteBeforeStyleDeleteCellChangedConnectionsAddedConnectionsDeletedDesignModeEnteredDocumentChangedDocumentCreatedDocumentOpenedDocumentSavedDocumentSavedAsFormulaChangedMasterAddedMasterChangedPageAddedPageChangedRunModeEnteredSelectionAddedShapeAddedShapeChangedShapeParentChangedStyleAddedStyleChangedTextChanged

Event ActionApplicationEnabledEventEventListID

IndexObjectTypePersistablePersistentTargetTargetArgs

DeleteTrigger

EventList ApplicationCountItem

ItemFromIDObjectType

AddAddAdvise

Font ApplicationAttributesCharSetDocumentID

IndexNameObjectTypePitchAndFamilyStat

Fonts ApplicationCountDocumentItem

ItemFromIDObjectTypeStat

Propriétés, méthodes et événements classés par objet (suite)

Objets Propriétés Méthodes Evénements

Page 551: MS Visio 2003 Guide du Développeur

P R O P R I É T É S , M É T H O D E S E T É V É N E M E N T S C L A S S É S P A R O B J E T 537

Hyperlink AddressApplicationDescriptionExtraInfoFrameIsDefaultLinkName

NewWindowObjectTypeRowShapeStatSubAddress

AddToFavoritesCopyCreateURLDeleteFollow

Hyperlinks ApplicationCountItem

ObjectTypeShapeStat

Add

Layer ApplicationCellsCDocumentEventListIndexMaster

NameObjectTypePagePersistsEventsRowStat

AddDeleteRemove

Layers ApplicationCountDocumentEventListItem

MasterObjectTypePagePersistsEventsStat

Add

Master AlignNameApplicationBaseIDConnectsDocumentEventListHiddenIconSizeIconUpdateIDIndexIndexInStencilLayersMatchByName

NameNewBaseIDObjectTypeOLEObjectsOneDPageSheetPatternFlagsPersistsEventsPromptShapesSpatialSearchStatUniqueID

BoundingBoxCenterDrawingCloseCreateShortcutDeleteDrawBezierDrawLineDrawNURBSDrawOvalDrawPolylineDrawRectangleDrawSplineDropDropManyExportExportIconGetFormulasGetResultsImportImportIconInsertFromFileInsertObjectLayoutOpenOpenDrawWindowOpenIconWindowSetFormulasSetResults

BeforeMasterDeleteBeforeSelectionDeleteBeforeShapeDeleteCellChangedConnectionsAddedConnectionsDeletedFormulaChangedMasterChangedSelectionAddedShapeAddedShapeChangedShapeParentChangedTextChanged

Propriétés, méthodes et événements classés par objet (suite)

Objets Propriétés Méthodes Evénements

Page 552: MS Visio 2003 Guide du Développeur

538 A N N E X E A

Masters ApplicationCountDocumentEventList

ItemObjectTypePersistsEventsStat

AddDropGetNames

BeforeMasterDeleteBeforeSelectionDeleteBeforeShapeDeleteCellChangedConnectionsAddedConnectionsDeletedFormulaChangedMasterAddedMasterChangedSelectionAddedShapeAddedShapeChangedShapeParentChangedTextChanged

MasterShortcut AlignNameApplicationDocumentDropActionsIconSizeIDIndexIndexInStencil

NameObjectTypePromptShapeHelpStatTargetDocumentNameTargetMasterName

DeleteExportIconImportIconOpenIconWindow

MasterShortcuts ApplicationCountDocument

ItemObjectTypeStat

DropGetNames

Menu ActionTextAddonArgsAddonNameBuiltInCaptionCmdNumCntrlIDCntrlTypeEnabledFaceIDHelpContextIDHelpFileIndexIsHierarchical

IsSeparatorMDIWindowMenuMenuItemsMiniHelpPaletteWidthParentPrioritySpacingStateStyleTypeSpecific1TypeSpecific2Visiblewidth

DeleteIconFileName

Propriétés, méthodes et événements classés par objet (suite)

Objets Propriétés Méthodes Evénements

Page 553: MS Visio 2003 Guide du Développeur

P R O P R I É T É S , M É T H O D E S E T É V É N E M E N T S C L A S S É S P A R O B J E T 539

MenuItem ActionTextAddonArgsAddonNameBuiltInCaptionCmdNumCntrlIDCntrlTypeEnabledFaceIDHelpContextIDHelpFileIndexIsHierarchical

IsSeparatorMenuItemsMiniHelpPalletteWidthParentPrioritySpacingStateStyleTypeSpecific1TypeSpecific2VisibleWidth

DeleteIconFileName

MenuItems CountItem

ParentParentItem

AddAddAt

Menus CountItem

Parent AddAddAt

MenuSet BuiltInCaptionEnabledHeightLeftMenusParent

PositionProtectionRowIndexSetIDTopVisibleWidth

Delete

MenuSets CountItem

ItemAtIDParent

AddAddAtID

OLEObject ApplicationClassIDForeignTypeObject

ObjectTypeProgIDShapeStat

OLEObjects ApplicationCountItem

ObjectTypeStat

Propriétés, méthodes et événements classés par objet (suite)

Objets Propriétés Méthodes Evénements

Page 554: MS Visio 2003 Guide du Développeur

540 A N N E X E A

Page ApplicationBackgroundBackPageBackPageAsObjBackPageFromNameConnectsDocumentEventListIDIndex

LayersNameObjectTypeOLEObjectsPageSheetPersistsEventsShapesSpatialSearchStat

AddGuideBoundingBoxCenterDrawingDeleteDrawBezierDrawLineDrawNURBSDrawOvalDrawPolylineDrawRectangleDrawSplineDropDropManyExportGetFormulasGetResultsImportInsertFromFileInsertObjectLayoutOpenDrawWindowPastePrintSetFormulasSetResults

BeforePageDeleteBeforeSelectionDeleteBeforeShapeDeleteCellChangedConnectionsAddedConnectionsDeletedFormulaChangedPageChangedSelectionAddedShapeAddedShapeChangedShapeParentChangedTextChanged

Pages ApplicationCountDocumentEventList

ItemObjectTypePersistsEventsStat

AddGetNames

BeforePageDeleteBeforeSelectionDeleteBeforeShapeDeleteCellChangedConnectionsAddedConnectionsDeletedFormulaChangedPageAddedPageChangedSelectionAddedShapeAddedShapeChangedShapeParentChangedTextChanged

Path ApplicationClosedCount

ItemObjectType

Paths ApplicationCount

ItemObjectType

Propriétés, méthodes et événements classés par objet (suite)

Objets Propriétés Méthodes Evénements

Page 555: MS Visio 2003 Guide du Développeur

P R O P R I É T É S , M É T H O D E S E T É V É N E M E N T S C L A S S É S P A R O B J E T 541

Row ApplicationCellContainingSectionCountEventListIndex

NameObjectTypePersistsEventsShapeStatStyle

CellChangedFormulaChanged

Section ApplicationCountEventListIndexObjectType

PersistsEventsRowShapeStatStyle

CellChangedFormulaChanged

Selection ApplicationContainingMasterContainingPageContainingShapeCountDocumentEventListFillStyleFillStyleKeepFmtItemItemStatusIterationMode

LineStyleLineStyleKeepFmtObjectTypePersistsEventsPrimaryItemStatStyleStyleKeepFmtTextStyleTextStyleKeepFmt

BoundingBoxBringForwardBringToFrontCombineConvertToGroupCopyCutDeleteDeselectAllDrawRegionDuplicateExportFitCurveFlipHorizontalFlipVerticalFragmentGroupIntersectJoinLayoutReverseEndsRotate90SelectSelectAllSendBackwardSendToBackSubtractTrimUngroupUnion

Propriétés, méthodes et événements classés par objet (suite)

Objets Propriétés Méthodes Evénements

Page 556: MS Visio 2003 Guide du Développeur

542 P R O P R I É T É S , M É T H O D E S E T É V É N E M E N T S C L A S S É S P A R O B J E T

Shape ApplicationAreaIUCellExistsCellsCellsRowIndexCellsSRCCellsSRCExistsCharactersCharCountClassIDConnectsContainingMasterContainingPageContainingShapeData1Data2Data3DistanceFromDistanceFromPointDocumentEventListFillStyleFillStyleKeepFmtForeignTypeFromConnectsGeometryCountHelpHitTestHyperlinkHyperlinksIDIndexLayerLayerCount

LengthIULineStyleLineStyleKeepFmtMasterNameNameIDObjectObjectIsInheritedObjectTypeOneDParentPathsPathsLocalPersistsEventsProgIDRowCountRowExistsRowsCellCountRowTypeSectionSectionExistsShapesSpatialNeighborsSpatialRelationSpatialSearchStatStyleStyleKeepFmtTextTextStyleTextStyleKeepFmtTypeUniqueID

AddHyperlinkAddNamedRowAddRowAddRowsAddSectionBoundingBoxBringForwardBringToFrontCenterDrawingConvertToGroupCopyCutDeleteDeleteRowDeleteSectionDrawBezierDrawLineDrawNURBSDrawOvalDrawPolylineDrawRectangleDrawSplineDropDropManyDuplicateExportFitCurveFlipHorizontalFlipVerticalGetFormulasGetResultsGroupImportInsertFromFileInsertObjectLayoutOpenDrawWindowOpenSheetWindowReverseEndsRotate90SendBackwardSendToBackSetBeginSetCenterSetEndSetFormulasSetResultsTransformXYFromTransformXYToUngroupUpdateAlignmentBoxXYFromPageXYToPage

BeforeSelectionDeleteBeforeShapeDeleteCellChangedFormulaChangedSelectionAddedShapeAddedShapeChangedShapeParentChangedTextChanged

Propriétés, méthodes et événements classés par objet (suite)

Objets Propriétés Méthodes Evénements

Page 557: MS Visio 2003 Guide du Développeur

P R O P R I É T É S , M É T H O D E S E T É V É N E M E N T S C L A S S É S P A R O B J E T 543

Shapes ApplicationContainingMasterContainingPageContainingShapeCountDocument

EventListItemItemFromIDObjectTypePersistsEventsStat

CenterDrawing

StatusBar BuiltInCaptionParent

ProtectionSetIDStatusBarItems

Delete

StatusBarItem ActionTextAddonArgsAddonNameBuiltInCaptionCmdNumCntrlIDCntrlTypeEnabledFaceIDHelpContextIDHelpFileIndexIsHierarchical

IsSeparatorMiniHelpPaletteWidthParentPrioritySpacingStateStatusBarItemsStyleTypeSpecific1TypeSpecific2VisibleWidth

DeleteIconFileName

StatusBarItems CountItem

ParentParentItem

AddAddAt

StatusBars CountItem

ItemAtIDParent

AddAddAtID

Style ApplicationBasedOnCellExistsCellsDocumentEventListFillBasedOnHiddenIDIncludesFill

IncludesLineIncludesTextIndexLineBasedOnNameObjectTypePersistsEventsSectionStatTextBasedOn

DeleteGetFormulasGetResultsSetFormulasSetResults

BeforeStyleDeleteStyleChanged

Styles ApplicationCountDocumentEventListItem

ItemFromIDObjectTypePersistsEventsStat

AddGetNames

BeforeStyleDeleteStyleAddedStyleChanged

Propriétés, méthodes et événements classés par objet (suite)

Objets Propriétés Méthodes Evénements

Page 558: MS Visio 2003 Guide du Développeur

544 A N N E X E A

Toolbar BuiltInCaptionEnabledHeightIndexLeftParent

PositionProtectionRowIndexToolbarItemsTopVisibleWidth

Delete

ToolbarItem ActionTextAddonArgsAddonNameBuiltInCaptionCmdNumCntrlIDCntrlTypeEnabledFaceIDHelpContextIDHelpFileIndexIsHierarchical

IsSeparatorMiniHelpPaletteWidthParentPrioritySpacingStateStyleToolbarItemsTypeSpecific1TypeSpecific2VisibleWidth

DeleteIconFileName

ToolbarItems CountItem

ParentParentItem

AddAddAt

Toolbars CountItem

Parent AddAddAt

ToolbarSet CaptionParent

SetIDToolbars

Delete

ToolbarSets CountItem

ItemAtIDParent

AddAddAtID

UIObject AccelTablesCloneDisplayKeysInTooltipsDisplayTooltipsFlavorLargeButtons

MenuAnimationStyleMenuSetsNameStatusBarsToolbarSets

LoadFromFileSaveToFileUpdateUI

Propriétés, méthodes et événements classés par objet (suite)

Objets Propriétés Méthodes Evénements

Page 559: MS Visio 2003 Guide du Développeur

P R O P R I É T É S , M É T H O D E S E T É V É N E M E N T S C L A S S É S P A R O B J E T 545

Window ApplicationCaptionDocumentEventListIndexIsEditingOLEIsEditingTextMasterMasterShortcutObjectTypePagePageAsObjPageFromNameParentPersistsEvents

SelectionShowConnectPointsShowGridShowGuidesShowPageBreaksShowRulersStatSubTypeTypeViewFitVisibleWindowHandle32WindowsWindowStateZoom

ActivateAddToGroupCloseCombineCopyCutDeleteDeselectAllDockedStencilsDuplicateFragmentGetViewRectGetWindowRectGroupIntersectJoinPasteRemoveFromGroupScrollScrollViewToSelectSelectAllSetViewRectSetWindowRectSubtractTrimUnion

BeforeWindowClosedBeforeWindowPageTurnBeforeWindowSelDeleteSelectionChangedViewChangedWindowActivatedWindowChangedWindowTurnedToPage

Windows ApplicationCountEventList

ItemObjectTypePersistsEvents

AddArrange

BeforeWindowClosedBeforeWindowPageTurnBeforeWindowSelDeleteSelectionChangedViewChangedWindowActivatedWindowChangedWindowOpenedWindowTurnedToPage

Propriétés, méthodes et événements classés par objet (suite)

Objets Propriétés Méthodes Evénements

Page 560: MS Visio 2003 Guide du Développeur
Page 561: MS Visio 2003 Guide du Développeur

Sommaire

BIndices de section, de ligneet de cellule ShapeSheet

Cette annexe répertorie les cellules, les lignes et les sections de la fenêtre ShapeSheet® associées aux formes, aux styles, aux pages et aux documents. Elle répertorie également les constantes d’indice correspondantes que vous pouvez utiliser dans un programme pour accéder aux sections, aux lignes et aux cellules à l’aide d’Automation, ainsi que les constantes d’indice que vous pouvez utiliser pour accéder aux paramètres des tabulations.

Pour rechercher la valeur d’une constante, utilisez l’explorateur d’objets de l’Editeur Visual Basic. Lorsque vous sélectionnez une constante dans la liste Membres de, la valeur de cette constante apparaît dans le volet des détails. Pour afficher la fenêtre ShapeSheet associée à un objet, cliquez sur cet objet, puis choisissez Fenêtre > Afficher la feuille ShapeSheet.

CONSEIL : pour accéder plus rapidement à la fenêtre ShapeSheet, choisissez Outils > Options, cliquez sur l’onglet Options avancées, puis cochez la case Exécuter sous le mode développeur dans la zone Paramètres développeurs. Lorsque le mode développeur est activé, le menu contextuel qui apparaît lorsque vous cliquez avec le bouton droit sur un objet affiche la commande Afficher la feuille ShapeSheet.

Indices de section, de ligne et de cellule associés aux formes .......................... 548

Indices de section, de ligne et de cellule associés aux styles ............................ 554

Indices de section, de ligne et de cellule associés aux pages ............................ 554

Indices de section, de ligne et de cellule associés aux documents ................... 556

Cellules de tabulation et types de ligne ............................................................... 557

Page 562: MS Visio 2003 Guide du Développeur

548 A N N E X E B

Les sections sont répertoriées par ordre alphabétique et les cellules sont regroupées par section. Dans les sections dotées d’un nombre variable de lignes, comme la section Actions, les lignes sont indexées par la constante de ligne. Pour créer une référence à une ligne, ajoutez un décalage sous la forme d’un nombre entier à la constante de l’indice de ligne, en partant de 0 pour la première ligne. Pour faire référence à une cellule d’une ligne, utilisez le même nombre entier dans le nom de cellule. Par exemple, utilisez Actions.Action[i].

Pour plus d’informations sur l’utilisation des références de cellule dans les formules, effectuez une recherche dans l’aide en ligne à l’aide des mots-clés « formules:références de cellule ». Pour plus d’informations sur l’accès aux cellules à partir d’un programme, reportez-vous au chapitre 17, « Automatisation des formules »�

Indices de section, de ligne et de cellule associés aux formes

Le tableau suivant répertorie les sections, les lignes et les cellules de la fenêtre ShapeSheet®, avec les constantes de l’indice de cellule, de ligne et de section correspondant.

Indices de section, de ligne et de cellule associés aux formes

Section ou ligne Cellule Indice de section Indice de ligne Indice de cellule

<sans nom>1 RubriqueAideCopyright

visSectionObject visRowHelpCopyright visObjHelpvisCopyright

Section Points de fin 1D2

DépartXDépartYFinYFinY

visSectionObject visRowXForm1D vis1DbeginXvis1DbeginYvis1DendXvis1DendY

Section Actions Actions.Action[i]Actions.Menu[i]Actions.Message[i]Actions.Ci Actions.Di

visSectionAction visRowAction + i visActionActionvisActionMenuvisActionPromptvisActionCheckedvisActionDisabled

Section Alignement3

AlignGaucheAlignCentreAlignDroiteAlignHautAlignMilieuAlignBas

visSectionObject visRowAlign visAlignLeftvisAlignCenter visAlignRight visAlignTop visAlignMiddle visAlignBottom

Page 563: MS Visio 2003 Guide du Développeur

I N D I C E S D E S E C T I O N , D E L I G N E E T D E C E L L U L E S H A P E S H E E T 549

Section Caractères

Car.Police[i]Car.Taille[i]Car.Echelle[i]Car.Espacement[i]Car.Couleur[i]Car.Style[i]Car.Maj/min[i]Car.Pos[i]Car.Barré[i]Car.LigneSDouble[i]Car.Ligne de séparation[i]Car.Perpendiculaire[i]Car.Locale[I]4

visSectionCharacter visRowCharacter + i visCharacterFontvisCharacterSizevisCharacterFontScalevisCharacterLetterspacevisCharacterColorvisCharacterStylevisCharacterCasevisCharacterPosvisCharacterStrikethruvisCharacterDblUnderlinevisCharacterOverlinevisCharacterPerpendicularvisCharacterLocale

Section Points de connexion

Connections.XiConnections.Yi Connections.DirX[i]Connections.DirY[i]Connections.Type[i]Connections.AutoGen[i]

visSectionConnectionPts visRowConnectionPts + i visXvisYvisCnnctDirXvisCnnctDirYvisCnnctTypevisCnnctAutoGen

Section Points de contrôle

Points de contrôle.XiPoints de contrôle.YiPoints de contrôle.XDyn[i]Points de contrôle.YDyn[i]Points de contrôle.XCon[i]Points de contrôle.YCon[i]Points de contrôle.CanGlue[i]Points de contrôle.Message[i]

visSectionControls visRowControl + i visCtlXvisCtlYvisCtlXDynvisCtlYDynvisCtlXConvisCtlYConvisCtlGluevisCtlTip

Section Propriétés personnalisées

Prop.Nom.LibelléProp.Nom.MessageProp.Nom.NomProp.Nom.TypeProp.Nom.FormatProp.Nom.Valeur5

Prop.Nom.InvisibleProp.Nom.Vérifier

visSectionProp visRowProp + i visCustPropsLabelvisCustPropsPromptvisCustPropsSortKeyvisCustPropsTypevisCustPropsFormatvisCustPropsValuevisCustPropsInvisvisCustPropsAsk

Section Evénements

LeTexteEvénDblClicEvénDblClicCréationEvén

visSectionObject visRowEvent visEvtCellTheTextvisEvtCellDblClickvisEvtCellXFModvisEvtCellDrop

Section Format de remplissage

RemplArrPlanMotifRemplRemplPremPlan OmbArrPlanMotifOmbrageOmbPremPlan

visSectionObject visRowFill visFillBkgndvisFillPatternvisFillForegndvisFillShdwBkgndvisFillShdwPatternvisFillShdwForegnd

Section Infos sur l'image externe6

LargeurImageHauteurImageDécalImageYDécalImageX

visSectionObject visRowForeign visFrgnImgWidthvisFrgnImgHeightvisFrgnImgOffsetYvisFrgnImgOffsetX

Indices de section, de ligne et de cellule associés aux formes (suite)

Section ou ligne Cellule Indice de section Indice de ligne Indice de cellule

Page 564: MS Visio 2003 Guide du Développeur

550 A N N E X E B

Section Géométriei

Géométrie.NoFillGéométrie.NoLineGéométrie.AucunAffGéométrie.NoSnap

visSectionFirstComponent + i visRowComponent visCompNoFillvisCompNoLinevisCompNoShowvisCompNoSnap

Ligne DéplacerVers(section Géométrie)

Géométrie.XjGéométrie.Yj

visRowVertex + j visXvisY

Ligne TraitVers(section Géométrie)

Géométrie.XjGéométrie.Yj

visRowVertex + j visXvisY

Ligne ArcVers(section Géométrie)

Géométrie.XjGéométrie.YjGéométrie.Aj

visRowVertex + j visXvisYvisBow

Ligne ArcElliptiqueVers(section Géométrie)

Géométrie.XjGéométrie.YjGéométrie.AjGéométrie.BjGéométrie.CjGéométrie.Dj

visRowVertex + j visXvisvisControlvisControlvisEccentricityAnglevisAspectRatio

Ligne PolyligneVers(section Géométrie)

Géométrie.XjGéométrie.YjGéométrie.Aj

visRowVertex + j visvisvisPolylineData

Ligne NURBSVers(section Géométrie)

Géométrie.XjGéométrie.YjGéométrie.Aj Géométrie.Bj Géométrie.Cj Géométrie.Dj Géométrie.Ej

visRowVertex + j visXvisYvisNURBSKnotvisNURBSWeightvisNURBSKnotPrevvisNURBSWeightPrevvisNURBSData

Ligne DébutSpline(section Géométrie)

Géométrie.XjGéométrie.Yj Géométrie.Aj Géométrie.Bj Géométrie.Cj Géométrie.Dj

visRowVertex + j visXvisYvisSplineKnotvisSplineKnot2visSplineKnot3visSplineDegree

Ligne NoeudSpline(section Géométrie)

Géométrie.XjGéométrie.Yj Géométrie.Aj

visRowVertex + j visXvisYvisSplineKnot

Ligne LigneInfinie(section Géométrie)

Géométrie.X1Géométrie.Y1Géométrie.A1Géométrie.B1

visRowVertex visInfiniteLineX1visInfiniteLineY1visInfiniteLineX2visInfiniteLineY2

Ligne Ellipse(section Géométrie)

Géométrie.X1Géométrie.Y1Géométrie.A1Géométrie.B1Géométrie.C1Géométrie.D1

visRowVertex visEllipseCenterXvisEllipseCenterYvisEllipseMajorXvisEllipseMajorYvisEllipseMinorXvisEllipseMinorY

Indices de section, de ligne et de cellule associés aux formes (suite)

Section ou ligne Cellule Indice de section Indice de ligne Indice de cellule

Page 565: MS Visio 2003 Guide du Développeur

I N D I C E S D E S E C T I O N , D E L I G N E E T D E C E L L U L E S H A P E S H E E T 551

Section Infos sur le collage

AttacheTypeLienInsécableDébActionFinAction

visSectionObject visRowMisc visGlueTypevisWalkPrefvisBegTriggervisEndTrigger

Section Propriétés de groupe7

ModeSélectionModeAffichageCibleModifTexteCibleMagnétismeCibleADéposerPasDéplacEnfants

visSectionObject visRowGroup visGroupSelectModevisGroupDisplayModevisGroupIsTextEditTargetvisGroupIsSnapTargetvisGroupIsDropTargetvisGroupDontMoveChildren

Section Liens hypertexte

Lien hypertexte.Nom.DescriptionLien hypertexte.Nom.AdresseLien hypertexte.Nom.Sous-adresseLien hypertexte.Nom.CadreLien hypertexte.Nom.NouvelleFenêtreLien hypertexte.Nom.Valeur par défaut

visSectionHyperlink visRow1stHyperlink + i visHLinkDescriptionvisHLinkAddressvisHLinkSubAddressvisHLinkExtraInfovisHLinkNewWinvisHLinkDefault

Section Propriétés d'image8

ContrasteLuminositéGammaEstomperAccentuerSupprBruit

visSectionObject visRowImage visImageContrastvisImageBrightnessvisImageGammavisImageBlurvisImageSharpenvisImageDenoise

Section Appartenance au calque

ElémentCalque visSectionObject visRowLayerMem visLayerMember

Section Format de trait

EpaisseurTraitCouleurTraitMotifTraitDépartFlècheFinFlècheCouleurTraitTailleFlècheDépartTailleFlècheFinArrondissement

visSectionObject visRowLine visLineWeightvisLineColorvisLinePatternvisLineBeginArrowvisLineEndArrowvisLineEndCapvisLineBeginArrowSizevisLineEndArrowSizevisLineRounding

Section Divers PasPoignObjNonImprimablePasPoingCtlPasRectSélMseAJourRectSélMasquerTexteTypeObjRetourDynSansDynSourceDépôtCommentaire

visSectionObject visRowMisc visNoObjHandlesvisNonPrintingvisNoCtlHandlesvisNoAlignBoxvisUpdateAlignBoxvisHideTextvisLOFlagsvisDynFeedbackvisNoLiveDynamicsvisDropSourcevisComment

Indices de section, de ligne et de cellule associés aux formes (suite)

Section ou ligne Cellule Indice de section Indice de ligne Indice de cellule

Page 566: MS Visio 2003 Guide du Développeur

552 A N N E X E B

Section Paragraphe

Para.RetrPrem[i]Para.RetrGche[i]Para.RetrDroit[i]Para.EspTrait[i]Para.EspAvant[i]Para.EspAprès[i]Para.HorzAlign[i]Para.Puce[i]Para.ChaînePuce[i]

visSectionParagraph visRowParagraph + i visIndentFirstvisIndentLeftvisIndentRightvisSpaceLinevisSpaceBeforevisSpaceAftervisHorzAlignvisBulletIndexvisBulletString

Section Protection

VerrLargeurVerrHauteurVerrDéplacXVerrDéplacYVerrAspectVerrSupprimerVerrDébutVerrFinVerrPivoterVerrDécouperVerrModifVtxVerrModifTexteVerrFormatVerrGroupeVerrCalcLHVerrSélection

visSectionObject visRowLock visLockWidthvisLockHeightvisLockMoveXvisLockMoveYvisLockAspectvisLockDeletevisLockBeginvisLockEndvisLockRotatevisLockCropvisLockVtxEditvisLockTextEditvisLockFormatvisLockGroupvisLockCalcWHvisLockSelect

Section Montage Montage.XiMontage.Yi Montage.Ai Montage.Bi Montage.Ci Montage.Di

visSectionScratch visRowScratch + i visScratchXvisScratchYvisScratchAvisScratchBvisScratchCvisScratchD

Section Mise en pg. formes

PerméableFormeXPerméableFormeYPerméableFormePlaceCodeFixeFormeCodeTracéFormeStylePositionFormeDirDévTraitLienXDirDévTraitLienYCodeFixeLienCodeDévTraitLienStyleDévTraitLien

visSectionObject visRowShapeLayout visSLOPermXvisSLOPermYvisSLOPermeablePlacevisSLOFixedCodevisSLOPlowCodevisSLORouteSylevisSLOJumpDirXvisSLOJumpDirYvisSLOConFixedCodevisSLOJumpCodevisSLOJumpStyle

Section Transformation de la forme

AxeXAxeYLargeurHauteurAxeLocXAxeLocYAngleRetournementXRetournementYModeRedim

visSectionObject visRowXFormOut visXFormPinXvisXFormPinYvisXFormWidthvisXFormHeightvisXFormLocPinXvisXFormLocPinYvisXFormAnglevisXFormFlipXvisXFormFlipYvisXFormResizeMode

Indices de section, de ligne et de cellule associés aux formes (suite)

Section ou ligne Cellule Indice de section Indice de ligne Indice de cellule

Page 567: MS Visio 2003 Guide du Développeur

I N D I C E S D E S E C T I O N , D E L I G N E E T D E C E L L U L E S H A P E S H E E T 553

1 Cette section et ses cellules n’apparaissent pas dans la fenêtre ShapeSheet. 2 Cette section n’est disponible que pour les formes 1D.3 Cette section n’est disponible que pour les formes collées à un ou à plusieurs repères/formes.4 Cette cellule n’apparaît pas dans la fenêtre ShapeSheet.5 Valeur est la cellule par défaut et peut être omise dans la référence de cellule.6 Cette section n’est disponible que pour les objets liés ou incorporés.7 Cette section n’est disponible que pour les groupes.8 Cette section n’est disponible que pour les bitmaps.9 Cette section n’est disponible que si vous avez inséré un champ dans un bloc de texte.10La variable j représente un taquet de tabulation dans cette section.

Section Tabulations

Tabulations.ij 10

Tabulations.ij 10

visSectionTab visRowTab + i (j*3) + visTabPos(j*3) + visTabAlign

Section Format de bloc de texte

AlignVerticalMargeHautMargeBasMargeGaucheMargeDroiteArrPlanTexteDirectionTexteTaquetTabDéfaut

MargeGauche visRowText visTxtBlkVerticalAlignvisTxtBlkTopMarginvisTxtBlkBottomMarginvisTxtBlkLeftMarginvisTxtBlkRightMarginvisTxtBlkBkgndvisTxtBlkDirectionvisTxtBlkDefaultTabStop

Section Champs de texte9

Champs.Type[i]Champs.Format[i]Champs.Valeur[i]Champs.ModeEdition[i]Champs.UICat[i]Champs.UICod[i]Champs.UIFmt[i]

visSectionTextField visRowField + i visFieldTypevisFieldFormatvisFieldCellvisFieldEditModevisFieldUICategoryvisFieldUICodevisFieldUIFormat

Section Transformation du texte

AxeXTexteAxeYTexteLargeurTxtHauteurTxtAxeLocXTexteAxeLocYTexteAngleTexte

visSectionObject visRowTextXForm visXFormPinXvisXFormPinYvisXFormWidthvisXFormHeightvisXFormLocPinXvisXFormLocPinYvisXFormAngle

Section Cellules personnalisées

Util.Nom.Valeur5

Util.Nom.MessagevisSectionUser visRowUser + i visUserValue

visUserPrompt

Indices de section, de ligne et de cellule associés aux formes (suite)

Section ou ligne Cellule Indice de section Indice de ligne Indice de cellule

Page 568: MS Visio 2003 Guide du Développeur

554 A N N E X E B

Indices de section, de ligne et de cellule associés aux styles

Le tableau suivant répertorie les sections, les lignes et les cellules de la fenêtre ShapeSheet® associées à un style, avec les constantes pour les indices de section, de ligne et de cellule correspondants.

Les sections et les cellules associées à un style et auxquelles vous pouvez faire référence sont pour la plupart les mêmes que celles associées à une forme et auxquelles vous pouvez faire référence : sections Protection, Divers, Propriétés de groupe, Format de trait, Format de remplissage, Caractères, Paragraphe, Tabulations, Format de bloc de texte, Evénements, Propriétés d'image et Mise en page formes. Pour plus d’informations sur ces sections et cellules, reportez-vous à la section « Indices de section, de ligne et de cellule associés aux formes », page 548.�Vous pouvez également créer une référence à la section et aux cellules répertoriées dans ce tableau, associées à un style.

REMARQUE : pour afficher la fenêtre ShapeSheet associée à un style, ouvrez la fenêtre DrawingTM Explorer (accessible via Affichage > Fenêtres > Drawing Explorer), recherchez un style, cliquez dessus avec le bouton droit, puis choisissez Afficher la feuille ShapeSheet dans le menu contextuel.

Indices de section, de ligne et de cellule associés aux pages

Le tableau suivant répertorie les sections, les lignes et les cellules de la fenêtre ShapeSheet® associées à une page de dessin, avec des constantes pour les indices de section, de ligne et de cellule correspondants.

Les sections et les cellules associées à une page et auxquelles vous pouvez faire référence sont pour la plupart les mêmes que celles associées à une forme et auxquelles vous pouvez faire référence : sections Actions, Propriétés personnalisées, Liens hypertexte, Montage et Cellules personnalisées. Pour plus d’informations sur ces sections et cellules, reportez-vous à la section « Indices de section, de ligne et de cellule associés aux formes », page 548. Vous pouvez également créer une référence aux sections et aux cellules répertoriées dans ce tableau, associées à une page.

Indices de section, de ligne et de cellule associés aux styles

Section ou ligne Cellule Indice de section

Indice de ligne Indice de cellule

Section Propriétés de style

ActiverPropsTexteActiverPropsTraitsActiverPropsRempMasquerPourAppl

visSectionObject visRowStyle visStyleIncludesTextvisStyleIncludesLinevisStyleIncludesFillvisStyleHidden

Page 569: MS Visio 2003 Guide du Développeur

I N D I C E S D E S E C T I O N , D E L I G N E E T D E C E L L U L E S H A P E S H E E T 555

REMARQUE : pour afficher la fenêtre ShapeSheet associée à une page, vérifiez qu’aucun élément de la page n’est sélectionné, puis choisissez Fenêtre > Afficher la feuille ShapeSheet. Si vous travaillez en mode développeur, vous pouvez cliquer avec le bouton droit sur la page, puis choisir Afficher la feuille ShapeSheet dans le menu contextuel.

Indices de section, de ligne et de cellule associés aux pages

Section ou ligne Cellule Indice de section Indice de ligne Indice de cellule

Section Calques Calques.Nom[i]Calques.Visible[i]Calques.Print[i]Calques.Actif[i]Calques.Locked[i]Calques.Magn[i]Calques.Colle[i]Calques.Couleur[i]Calques.NameUniv[i]1

visSectionLayer visRowLayer + i visLayerNamevisLayerVisiblevisLayerPrintvisLayerActivevisLayerLockvisLayerSnapvisLayerGluevisLayerColorvisLayerNameUniv

Section Mise en page StypePlaceProfPlaceCodeTracéRedimPageDynamDésacActiverGrilleCtrlCommeEntréeTailleBlocXTailleBlocYEspacementXEspacementYStylePositionDirDévTraitPageXDirDévTraitPageYTraitVersNoeudXTraitVersNoeudYTraitVersTraitXTraitVersTraitYFacteurDévTraitXFacteurDévTraitYCodeDévTraitStyleDévTraitAjustTraitDepuisAjustTraitVers

visSectionObject visRowPageLayout visPLOPlaceSylevisPLOPlaceDepthvisPLOPlowCodevisPLOResizePagevisPLODynamicsOffvisPLOEnableGridvisPLOCtrlAsInputvisPLOBlockSizeXvisPLOBlockSizeYvisPLOAvenueSizeXvisPLOAvenueSizeYvisPLORouteSylevisPLOJumpDirXvisPLOJumpDirYvisPLOLineToNodeXvisPLOLineToNodeY visPLOLineToLineXvisPLOLineToLineYvisPLOJumpFactorXvisPLOJumpFactorYvisPLOJumpCodevisPLOJumpStylevisPLOLineAdjustFromvisPLOLineAdjustTo

Section Propriétés de la page

LargeurPageHauteurPageEchellePageEchelleDessinDécalOmbrXDécalOmbrYTypeTailleDessinTypeEchelleDessinInterdireMagnét

visSectionObject visRowPage visPageWidthvisPageHeightvisPageScalevisPageDrawingScalevisPageShdwOffsetXvisPageShdwOffsetYvisPageDrawSizeTypevisPageDrawScaleTypevisPageInhibitSnap

Page 570: MS Visio 2003 Guide du Développeur

556 A N N E X E B

1 Cette cellule n’apparaît pas dans la fenêtre ShapeSheet.

Indices de section, de ligne et de cellule associés aux documents

Les sections et les cellules associées à un document et auxquelles vous pouvez faire référence sont pour certaines les mêmes que celles associées à une forme et auxquelles vous pouvez faire référence : sections Propriétés personnalisées, Liens hypertexte, Montage et Cellules personnalisées. Pour plus d’informations sur ces sections et cellules, reportez-vous à la section « Indices de section, de ligne et de cellule associés aux formes », page 548. Vous pouvez également créer une référence aux sections et aux cellules répertoriées dans ce tableau, associées à un document.

REMARQUE : pour afficher la fenêtre ShapeSheet® associée à un document, ouvrez la fenêtre Drawing™ Explorer (accessible via Affichage > Fenêtre > Drawing Explorer), cliquez avec le bouton droit sur ce document, puis choisissez Afficher la feuille ShapeSheet dans le menu contextuel.

Section Règles et grille OrigineRègleXOrigineRègleYDensitéRègleXDensitéRègleYOrigineGrilleXOrigineGrilleYDensitéGrilleXDensitéGrilleYEspacementGrilleXEspacementGrilleY

visSectionObject visRowRulerGrid visXRulerOriginvisYRulerOriginvisXRulerDensityvisYRulerDensityvisXGridOriginvisYGridOriginvisXGridDensityvisYGridDensityvisXGridSpacingvisYGridSpacing

Indices de section, de ligne et de cellule associés aux pages (suite)

Section ou ligne Cellule Indice de section Indice de ligne Indice de cellule

Indices de section, de ligne et de cellule associés aux documents

Section ou ligne Cellule Indice de section

Indice de ligne Indice de cellule

Section Propriétés de doc

QualitéAperçuPortéeAperçuFormatSortieApercuVerrouil

visSectionObject visRowDoc visDocPreviewQualityvisDocPreviewScopevisDocOutputFormatvisDocLockPreview

Page 571: MS Visio 2003 Guide du Développeur

I N D I C E S D E S E C T I O N , D E L I G N E E T D E C E L L U L E S H A P E S H E E T 557

Cellules de tabulation et types de ligne

Les paramètres de tabulation associés au texte d’une forme sont accessibles à partir d’un programme par l’indice de section, de ligne et de cellule. Dans les produits Microsoft® Visio®, vous pouvez afficher et modifier les paramètres de tabulation en choisissant Format > Texte, puis en cliquant sur Tabulations ou en utilisant la section Tabulations de la fenêtre ShapeSheet®.

La section Tabulations comporte une ligne pour chaque groupe de tabulations défini pour la forme. Chaque ligne contient trois cellules pour chaque taquet de tabulation défini dans cette ligne, le maximum étant 60 taquets de tabulation. Les cellules de la totalité de la ligne sont indexées à partir de 0.

REMARQUE : la position du jème taquet de tabulation (j>0) est stockée dans la cellule ((j-1)*3) + visTabPos. L’alignement du jème taquet de tabulation est stocké dans la cellule ((j-1)*3) + visTabAlign.

Le nombre de tabulations pouvant être définies dépend du type de ligne de tabulation. Vous pouvez modifier ce type de ligne en définissant la propriété RowType de l’objet Shape associée à la ligne et à la section de tabulation sur l’une des constantes de libellé de ligne dans le tableau suivant.

Indice de section Indice de ligne Indice de cellule

visSectionTab visRowTab + i 0 ... 180

Indice Description Indice Description

0 Nombre de tabulations actives dans la ligne 6 Réservé

1 Position de la première tabulation … …

2 Code d’alignement de la première tabulation 178 Position de la 60ème tabulation

3 Réservé 179 Code d’alignement de la 60ème tabulation

4 Position de la seconde tabulation 180 Réservé

5 Code d’alignement de la seconde tabulation 6 Réservé

Constante Description

visTagTab0 Zéro taquet de tabulation

visTagTab2 Zéro, un ou deux taquets de tabulation

visTagTab10 De zéro à dix (10) taquets de tabulation

visTagTab60 De zéro à soixante (60) taquets de tabulation

Page 572: MS Visio 2003 Guide du Développeur
Page 573: MS Visio 2003 Guide du Développeur

Glossaire

Action : 1. Elément de menu défini par l’utilisateur et associé à une forme. Lorsque la forme est sélectionnée, l’élément apparaît dans le menu contextuel et dans le sous-menu Actions du menu Forme. 2. Programme ou commande d’application Microsoft® Visio® qui s’exécute en réponse à un événement.

Activité sans mode : activité du programme qui ne se termine pas lorsque le contrôle renvoie à Visio. Par exemple, un programme complémentaire peut ouvrir une fenêtre sans mode ; cette fenêtre reste ouverte après la fin du programme complémentaire.

Angle de rotation : angle de l’orientation d’un système de coordonnées locales par rapport à son système de coordonnées parent. L’angle de rotation est spécifié dans la cellule Angle de la section Transformation de la forme.

Application contrôleur : dans Automation, application (votre programme par exemple) qui utilise les objets mis à disposition par une application fournisseur comme Visio. L’application contrôleur crée les occurrences des objets, puis paramètre leurs propriétés ou appelle leurs méthodes pour que les objets servent l’application.

Application fournisseur : application qui fournit des objets pouvant être contrôlés par l’intermédiaire d’Automation. Une application fournisseur rend les objets accessibles pour d’autres applications et fournit, ou met à disposition, les propriétés et les méthodes qui les contrôlent.

Application serveur : application qui fournit des objets pouvant être contrôlés par l’intermédiaire d’Automation. Une application fournisseur rend les objets accessibles pour d’autres applications et fournit, ou met à disposition, les propriétés et les méthodes qui les contrôlent.

Argument : constante, variable ou expression transmise à une procédure, comme une fonction.

Arrière-plan : page apparaissant derrière une autre page dans un dessin. Les formes insérées dans la page d’arrière-plan apparaissent sur la page de premier plan, mais ne peuvent être ni sélectionnées ni modifiées si la page d’arrière-plan n’a pas été activée en premier.

Assistant : programme complémentaire qui automatise certaines tâches à partir d’informations fournies par l’utilisateur.

Page 574: MS Visio 2003 Guide du Développeur

560 G L O S S A I R E

Attraction : capacité des formes, des repères et des lignes de la grille d’attirer les formes et d’autres éléments que vous déplacez et redimensionnez.

Attribut : élément de formatage, comme une couleur de trait, de remplissage ou une épaisseur de trait que vous pouvez appliquer aux formes. Un style peut comporter plusieurs attributs.

Automation : moyen par lequel une application peut incorporer ou étendre les fonctionnalités d’une autre application en utilisant ses objets. Auparavant plus connu sous le nom d’OLE Automation.

Axe : point autour duquel une forme ou un bloc de texte pivote. Lorsque vous sélectionnez une forme en deux dimensions (2D) avec l’outil Rotation, son centre de rotation est marqué d’un signe plus entouré d’un cercle. L’axe d’une forme exprimé dans les coordonnées parent (les cellules AxeX et AxeY de la section Transformation de la forme) définit l’emplacement de la forme sur la page de dessin. Egalement appelé centre de rotation.

Barre d’outils : rangée de cases, de boutons et d’outils apparaissant au-dessous de la barre de menus dans la fenêtre de l’application Visio. Pour sélectionner les barres d’outils à afficher et pour créer des barres d’outils personnalisées, choisissez Affichage > Barres d’outils.

Barre de formule : partie d’une fenêtre ShapeSheet® dans laquelle vous saisissez une formule pour la cellule ShapeSheet sélectionnée. Vous pouvez aussi saisir des formules directement dans une cellule.

Bibliothèque : la bibliothèque de types Visio est un fichier qui contient les définitions des objets, des propriétés, des méthodes, des événements et des constantes que Visio met à disposition d’Automation.

Bibliothèque de types Visio : fichier contenant les définitions des objets, des propriétés, des méthodes, des événements et des constantes que l’application Visio met à la disposition d’Automation.

Bibliothèque de types : fichier contenant les définitions des objets, des propriétés, des méthodes et des constantes que l’application Visio met à la disposition d’Automation.

Bibliothèque Visio : bibliothèque de liaison dynamique (DLL) chargée lors de l’exécution de l’application Visio et pouvant mettre en oeuvre un ou plusieurs programmes complémentaires Visio. Les bibliothèques Visio sont identifiées par l’extension .vsl.

Bitmap : image stockée sous la forme d’un motif de points. Une photographie ou un graphique numérisé que vous créez dans un programme de dessin est stocké sous la forme d’un bitmap.

Page 575: MS Visio 2003 Guide du Développeur

G L O S S A I R E 561

Bloc de texte : zone de texte associée à une forme, affichée lorsque vous cliquez sur cette dernière avec les outils Texte ou Bloc de Texte, ou que vous la sélectionnez pour y saisir des caractères. Vous pouvez modifier la taille d’un bloc de texte, le déplacer et le faire pivoter selon le système de coordonnées locales de sa forme.

Calque : catégorie nommée de formes. Vous pouvez organiser les formes de votre dessin en les attribuant à des calques. Vous pouvez afficher, modifier, imprimer ou verrouiller des calques de manière sélective. Vous pouvez également contrôler l’accrochage et le collage des formes d’un calque. Les calques n’ont pas d’incidence sur l’ordre d’empilement des objets dans une page.

Centre de rotation : point autour duquel une forme ou un bloc de texte pivote. Lorsque vous sélectionnez une forme en deux dimensions (2D) avec l’outil de rotation, son centre de rotation est marqué d’un signe plus entouré d’un cercle. Par défaut, le centre de rotation est situé au centre de la forme. Vous pouvez déplacer le centre de rotation à l’aide de l’outil de rotation.

Chaîne : séquence de zéro, un ou plusieurs caractères entre guillemets : « voici un exemple de chaîne ». Pour une meilleure lisibilité, certaines interfaces utilisateur peuvent automatiquement ajouter et supprimer des guillemets.

Champ : emplacement dans un texte qui affiche des informations, comme des dimensions, des dates et des heures dans un format déterminé. Un champ peut afficher la date et l’heure auxquelles un dessin est imprimé, l’angle de rotation d’une forme ou le résultat d’une formule que vous écrivez. Les champs sont automatiquement mis à jour lorsque vous modifiez un dessin. Un champ peut aussi lire des informations depuis Lotus Notes.

Chemin : série de segments contigus de lignes, d’arcs ou de splines. Une forme peut avoir plusieurs chemins.

Collage forme à forme : type de comportement de collage dans lequel le point de fin d’un lien peut se déplacer d’un point de connexion à un autre lorsque les formes connectées sont déplacées. Aussi appelé collage dynamique.

Collage point à point : type de comportement de collage dans lequel le point de fin d’un lien reste fixé à un point de connexion donné, même en cas de déplacement de la forme à laquelle il est collé.

Colle : propriété des formes permettant à ces dernières de rester liées les unes aux autres, même si vous en déplacez une. L’opération de collage est directionnelle : si la forme A est collée à la forme B, cette dernière n’est pas collée à la forme A.

Contrôle : objet que vous pouvez placer dans un formulaire utilisateur ou dans un dessin et qui possède son propre ensemble de propriétés, de méthodes et d’événements, par exemple un bouton de barre d’outils.

Contrôle ActiveX : objet que vous pouvez placer dans un formulaire utilisateur ou dans un dessin et qui possède son propre ensemble de propriétés, de méthodes et d’événements, par exemple, un bouton de barre d’outils.

Page 576: MS Visio 2003 Guide du Développeur

562 G L O S S A I R E

Coordonnées : paire de nombres qui indique la position d’un point par rapport à l’origine d’une forme, d’un groupe ou de la page. La coordonnée x indique la position horizontale et la coordonnée y la position verticale.

Coordonnées de la page : système de coordonnées dont l’origine est le coin inférieur gauche d’une page de dessin.

Coordonnées locales : système de coordonnées dont l’origine est le coin inférieur gauche du plan largeur-hauteur de la forme. La géométrie d’une forme est exprimée en coordonnées locales.

Coordonnées parent : système de coordonnées du parent d’une forme. Si la forme est dans un groupe, le système de coordonnées parent est le système de coordonnées locales du groupe. Si la forme n’est pas dans un groupe, le système de coordonnées parent est le système de coordonnées de la page.

Corde : ligne qui relie les points de fin d’un arc.

Couleur personnalisée : couleur d’un dessin Visio stockée avec une forme sous la forme d’une valeur RVB ou TSL plutôt que sous la forme d’un indice sur la palette de couleurs du document. Une couleur personnalisée est enregistrée avec la forme à laquelle elle est appliquée.

Courbure : distance qui sépare le point central d’un arc de cercle du point central de la corde de l’arc.

Dessin : ensemble de toutes les formes situées sur une page de premier plan ajoutées à toutes les formes situées sur des pages d’arrière-plan attribuées.

Document actif : document en cours pouvant être modifié dans une copie de Visio.

Domaine d’annulation : séquence d’unités d’annulation qui sont marquées par un début et une fin.

Domaine d’influence : partie d’une spline, exprimée en nombre de noeuds de spline, dont la courbure dépend d’un point de contrôle unique.

Echelle de dessin : rapport entre l’unité de mesure de la page et la distance réelle qu’elle représente. Par exemple, un centimètre équivaut à un mètre. Voir aussi Echelle.

Echelle de la page : nombre d’unités de page qui représentent le nombre d’unités de dessin indiquées dans l’échelle du dessin. Par exemple, si l’échelle du dessin est 1 cm = 1 m, l’échelle de la page est 1 cm.

Empilement : ordre dans lequel les formes se superposent les unes aux autres sur la page, ou ordre dans lequel elles sont sélectionnées. Vous pouvez modifier l’ordre d’empilement via les commandes du menu Forme.

Endpoint : poignée de sélection carrée à l’extrémité d’une forme 1D sélectionnée (ligne, arc ou autre). Le point de début de la forme est doté d’un x. Le point de fin situé à la fin de la forme est doté d’un signe plus (+).

Page 577: MS Visio 2003 Guide du Développeur

G L O S S A I R E 563

Espace de travail : 1. Fichier contenant la liste des documents et des fenêtres à ouvrir, ainsi que la taille et l’emplacement des fenêtres. Les fichiers d’espace de travail portent l’extension .vsw. 2. Zone d’un fichier .vsd, .vss ou .vst stockant ces informations.

Evénement : fait qui se produit dans une copie de Visio, comme la modification d’une formule ou la suppression d’une page.

Expression : combinaison de constantes, d’opérateurs, de fonctions et de références aux cellules ShapeSheet® qui aboutit à une valeur.

Feuille de calcul ShapeSheet : données qui définissent une forme, un groupe, un repère, un point de repère ou une page. Par exemple, une feuille de calcul ShapeSheet® décrit les dimensions d’une forme, ainsi que l’angle, le centre de rotation et les styles qui déterminent l’aspect de cette forme. Les feuilles de calcul ShapeSheet peuvent contenir des formules qui définissent le comportement de la forme lorsqu’elle est déplacée ou redimensionnée et la façon dont elle répond à des événements. La feuille de calcul ShapeSheet est affichée dans une fenêtre ShapeSheet et est accessible par l’intermédiaire de l’interface de programmation Automation de Visio.

Feuille de page : feuille de calcul ShapeSheet® qui représente une page.

Fichier de dessin : fichier stockant un ou plusieurs dessins Visio. Les fichiers de dessin portent l’extension .vsd. Ils peuvent contenir une ou plusieurs pages. Chaque fichier de dessin possède son propre gabarit, appelé gabarit de document, contenant toutes les formes de base que vous utilisez sur les pages de dessin de ce fichier, même si vous les avez supprimées de la page de dessin. Vous pouvez afficher le gabarit de document en choisissant Fenêtre > Afficher le gabarit de document.

Filet de sélection : outil permettant de sélectionner plusieurs formes à la fois à l’aide de l’outil Pointeur en définissant une zone rectangulaire regroupant toutes les formes à sélectionner.

Fonction : procédure qui nécessite des arguments et renvoie une valeur. Si une fonction ne nécessite aucun argument, elle doit être suivie de parenthèses vides ( ). L’application Visio inclut les fonctions mathématiques, trigonométriques, géométriques, logiques, statistiques, d’événement, de date et d’heure, de couleur, etc.

Format : 1. Modification de l’apparence visuelle d’une forme (épaisseur et couleur des lignes, couleur et motif présents à l’intérieur de la forme, police, etc.). Vous pouvez modifier le format d’une forme en lui appliquant un style ou en modifiant ses attributs. Voir aussi Attribut, Style. 2. Apparence visuelle d’une forme.

Formatage local : attributs de formatage, comme la largeur de trait, la couleur de remplissage ou la taille de police que vous appliquez à une forme sélectionnée à l’aide de la commande correspondante du menu Format : trait, Remplissage ou Texte. Le formatage local est très utile si vous souhaitez donner un aspect unique à une forme ou à quelques formes seulement. Les modifications apportées au formatage d’un style remplacent le formatage local à moins que vous ne préserviez explicitement les substitutions locales.

Page 578: MS Visio 2003 Guide du Développeur

564 G L O S S A I R E

Forme : 1. Objet ouvert ou fermé, créé à l’aide des commandes et des outils de dessin Visio. 2. Ensemble de formes regroupées. 3. Occurrence d’une forme de base déplacée dans un dessin. 4. Dans un programme, élément représenté par un objet Shape (forme, groupe, repère, point de repère, feuille d’une page de dessin ou forme de base).

Forme 1D : ligne droite que vous tracez à l’aide des outils de dessin de Visio, ou forme dotée d’un point de début et d’un point de fin, que vous pouvez coller entre deux formes pour les lier. Une forme 1D se comporte comme une ligne.

Forme 2D : forme dotée de huit poignées de sélection qui vous permettent de redimensionner la forme de manière proportionnelle. La plupart des formes fermées, comme les rectangles et les ellipses, sont 2D. Une forme 2D se comporte comme une case.

Forme dessinée : forme créée à l’aide des outils de dessin de Visio.

Forme multiple : forme fusionnée comprenant plusieurs sections géométriques. Les formes multiples sont créées à l’aide de la commande Combinaison ou Jonction (choisissez Forme > Opérations).

Forme positionnable : forme en deux dimensions (2D) paramétrée pour utiliser les liens routables et la disposition automatique. Si une forme est paramétrée comme étant positionnable, un lien routable peut la détecter et éviter de la croiser. Vous pouvez paramétrer une forme comme positionnable dans la boîte de dialogue Comportement en sélectionnant Disposer et repositionner. Si vous collez un lien routable, comme le Lien Dynamique, à une forme 2D, Visio définit automatiquement la forme 2D comme étant positionnable.

Formulaire : dans un projet Microsoft® Visual Basic® ou Visual Basic pour Applications (VBA), fichier avec l’extension .frm contenant les contrôles de l’interface utilisateur, comme les boutons de commande et les zones de texte.

Formulaire utilisateur : dans un projet Microsoft Visual Basic ou Visual Basic pour Applications (VBA), fichier avec l’extension .frm contenant les contrôles de l’interface utilisateur, comme les boutons de commande et les zones de texte.

Formule : expression saisie dans une cellule ShapeSheet® et qui renvoie une valeur.

Formule basée sur la hauteur : formule dont la valeur varie seulement avec la hauteur de la forme.

Forme de base : forme figurant dans un gabarit, que vous pouvez utiliser autant de fois que vous le souhaitez pour créer des dessins. Lorsque vous insérez dans la page de dessin une forme d’un gabarit, la forme constitue une occurrence de la forme de base.

Page 579: MS Visio 2003 Guide du Développeur

G L O S S A I R E 565

Formule héritée : formule stockée dans un style ou dans une forme de base mais utilisée par une occurrence comme si la formule était stockée localement avec la forme. Une modification apportée dans une formule au style ou à la forme de base a une incidence sur toutes les formes qui héritent de la formule et n’ont pas de formule locale de substitution. La modification d’un style remplace une formule locale à moins que vous ne les préserviez explicitement.

Formule locale : formule stockée localement dans la cellule d’une forme au lieu d’être héritée d’une forme de base ou d’un style. Une formule locale remplace les modifications dans la cellule correspondante de la forme de base dont la forme est une occurrence. Aussi appelée substitution locale.

Gabarit : ensemble de formes de base associé à un type de dessin Visio ou modèle. Les gabarits ouverts avec un modèle sont ancrés par défaut à gauche de la fenêtre de dessin. Vous pouvez ouvrir des fichiers de gabarit (.vss) indépendamment d’un modèle.

Gabarit ancré : gabarit associé à une fenêtre de dessin et qui suit le déplacement de la fenêtre de dessin. Par défaut, les gabarits sont ancrés dans la partie gauche de la fenêtre. Vous pouvez les rendre flottants ou les ancrer dans la partie droite de la fenêtre de dessin.

Gabarit autonome : fichier Visio portant l’extension .vss contenant une collection de formes de base et généralement appelé un gabarit. A la différence d’un gabarit de document, un gabarit autonome n’est pas accompagné d’un dessin.

Gabarit de document : gabarit contenant la copie d’une forme de base utilisée sur une page du fichier. Les formes de base du gabarit de document permettent de dessiner leurs occurrences dans le fichier de dessin. Le gabarit de document est stocké dans un fichier de dessin ou de modèle.

Gabarit flottant : gabarit qui apparaît dans une fenêtre distincte toujours située au premier plan par rapport aux autres fenêtres Visio. Par défaut, les gabarits sont ancrés dans la partie gauche de la fenêtre de dessin. Vous pouvez les rendre flottants ou les ancrer dans la partie droite de la fenêtre de dessin.

Géométrie : organisation de sommets et de segments qui définissent un chemin.

Graduation : division entre les lignes de la grille et entre les intervalles de la règle. Les choix possibles sont Fin, Normal et Epais.

Grille : lignes verticales et horizontales, espacées à intervalles réguliers sur la page de dessin, mais n’apparaissant pas à l’impression. La grille vous permet d’aligner les formes plus facilement et de les positionner avec précision.

Groupe : forme composée de plusieurs formes. Vous pouvez déplacer ou dimensionner les groupes en tant qu’unité unique, mais chaque membre du groupe conserve son apparence et ses propriétés d’origine. Un groupe peut également comprendre des groupes et des objets appartenant à d’autres applications.

Page 580: MS Visio 2003 Guide du Développeur

566 G L O S S A I R E

Icône de forme de base : représentation d’une forme de base qui apparaît sur un gabarit. Vous sélectionnez une forme de base en cliquant sur son icône.

Image de format : chaîne de caractères qui spécifie le format d’affichage du résultat d’une expression, par exemple une valeur de propriété personnalisée ou la sortie d’un champ texte. Par exemple, l’image de format « m/j/aa » affiche la date sous le format 12/31/99.

Info-bulles : informations affichées lorsque vous immobilisez le pointeur de la souris sur un élément de la barre d’outils, sur l’icône d’une forme de base dans un gabarit ou sur la poignée de contrôle d’une forme.

Lien : toute forme 1D que vous pouvez coller entre deux formes d’un dessin pour les lier, dans un dessin. Vous pouvez également utiliser des lignes et d’autres formes en tant que liens. Voir aussi Colle, Forme 1D.

Lien routable : lien en une dimension (1D) qui change automatiquement son chemin pour éviter de traverser les formes positionnables en deux dimensions (2D) situées entre les deux formes que le lien relie. Lorsque vous sélectionnez un lien routable, il affiche les points intermédiaires et les sommets que vous pouvez déplacer pour modifier le chemin du lien manuellement. Le Lien dynamique est un lien routable.

Lien universel : forme de base du gabarit Formes de base programmée pour relier deux points sans passer traverser les formes qu’il relie. Par défaut, une occurrence du lien universel est créée lorsque vous utilisez l’outil Lien et la commande Lier les formes.

Ligne infinie : ligne contenant des cellules qui définissent deux points du système de coordonnées locales et permettant à Visio de paramétrer une ligne sur une longueur indéfinie. Les repères sont définis comme des lignes infinies.

Lignes de grille : lignes verticales et horizontales à peine visibles qui apparaissent dans la fenêtre de dessin lorsque la grille est activée. Vous pouvez utiliser des lignes de grille pour vous aider à positionner avec précision les formes.

Losange : poignée qui apparaît entre deux segments sur une forme composée de plusieurs segments, ou à l’extrémité d’un segment. Vous pouvez remodeler une forme ou un lien en faisant glisser ses losanges.

Macro : 1. Programme Microsoft Visual Basic pour Applications (VBA) qui augmente les fonctionnalités de l’application Visio par l’intermédiaire de références Automation aux objets, aux méthodes et aux propriétés de Visio. 2. Procédure qui ne nécessite aucun argument et qui est contenue dans un module au sein d’un projet stocké dans un modèle, un gabarit ou un dessin Visio.

Méthode : procédure qui agit sur un objet.

Page 581: MS Visio 2003 Guide du Développeur

G L O S S A I R E 567

Mode création : état de l’application Visio qui vous permet d’insérer des contrôles ActiveX sur une page de dessin, de déplacer, de redimensionner les contrôles et de paramétrer leurs propriétés. Le mode de création n’a aucun incidence sur les autres commandes et outils Visio ; en revanche, lorsqu’un document est en mode création, aucun de ses objets (notamment les contrôles) ne crée d’événements.

Mode exécution : état de l’application Visio vous permettant d’utiliser les contrôles ActiveX insérés en mode création. Par exemple, vous pouvez cliquer sur un bouton de commande pour exécuter son gestionnaire d’événement Click. Le mode exécution n’a pas d’incidence sur les autres commandes et outils Visio. Un document Visio est ouvert par défaut en mode exécution, sauf si une protection antivirus est définie pour les macros.

Modèle : fichier Visio pouvant ouvrir plusieurs fichiers et plusieurs fenêtres, et pouvant contenir les styles et les paramètres d’un type de dessin, par exemple, l’échelle et la grille. Vous pouvez créer un dessin comportant les styles et les paramètres d’un modèle en ouvrant le fichier de modèle. Les fichiers de modèle portent l’extension .vst.

Modèle de procédure : instructions de départ et de fin automatiquement insérées dans la fenêtre de code lorsque vous spécifiez une procédure Function, Property ou Sub dans la boîte de dialogue d’insertion de procédure

Module : dans un projet Microsoft Visual Basic ou Visual Basic pour Applications (VBA), code constitué d’un ensemble de déclarations suivies de procédures. Un module standard contient seulement des déclarations et des définitions de procédure, de type et de données.

Module de classe : dans un projet Microsoft Visual Basic ou Visual Basic pour Applications (VBA), module contenant la définition d’une classe (ses propriétés et ses méthodes).

Mosaïque : 1. Technique permettant d’imprimer les pages de dessin de très grand format sur plusieurs feuilles de papier pour former un seul dessin. 2. Technique permettant d’afficher les fenêtres dans la fenêtre principale de Visio.

Multiplicité : nombre d’itérations d’un noeud spline.

Noeud : nombre réel qui marque sur une spline la frontière entre les parties polynomiales.

Noeud de spline : nombre réel qui délimite les parties polynomiales d’une spline.

Nom local : nom d’une forme, forme de base, d’une page, d’un style, d’une ligne ou d’un calque qui apparaît dans l’interface utilisateur ; les objets ont également un nom universel accessible uniquement aux clients Automation.

Page 582: MS Visio 2003 Guide du Développeur

568 G L O S S A I R E

Nom universel : nom d’une forme, d’une forme de base, d’une page, d’un style, d’une ligne ou d’un calque utilisé par les clients Automation ; les objets peuvent aussi avoir des noms locaux qui sont utilisés dans des versions localisées d’une solution Automation. Les noms universels permettent de conserver le même code source dans les versions localisées.

Non-mise à l’échelle : comportement d’une forme qui n’est pas redimensionnée en fonction de l’échelle de dessin d’une page. L’application Visio ne met pas les formes à l’échelle lorsque l’échelle du dessin dépasse le rapport huit.

NURBS (nonuniform rational B-spline) : forme fréquemment utilisée pour représenter mathématiquement des courbes semblables à celles dessinées à l’aide de l’outil Dessin à main levée.

Objet : élément de programme qu’une application fournisseur met à la disposition, via Automation, d’une application contrôleur. Dans Visio, les objets sont hiérarchiquement reliés comme l’indique le modèle d’objet Visio.

Objet Event : objet Visio que vous créez pour gérer les événements Visio. Un objet Event associe un événement et une action, soit pour exécuter un programme complémentaire, soit pour informer un objet de votre programme que l’événement s’est produit. Lorsque l’événement se produit, l’objet Event s’active et déclenche l’action.

Objet récepteur : dans un programme Microsoft Visual Basic pour Applications (VBA), classe qui reçoit des événements déclenchés par un certain type d’objet de l’application Visio. Dans un programme autonome Visual Basic, C ou C++, objet destinataire de la notification envoyée par un objet Event Visio et qui établit une communication bidirectionnelle entre une solution autonome et une copie de Visio. Egalement appelé récepteur d’événement, récepteur de notification.

Occurrence : 1. Forme basée sur la forme de base. 2. Image d’application de Microsoft® Windows®.

Opérateur : symbole représentant ou exécutant une opération mathématique ou logique.

Origine : point (0,0) d’un système de coordonnées cartésien. Dans Visio, l’origine est toujours le coin inférieur gauche du système de coordonnées d’une forme, d’un groupe ou d’une page. Les dimensions d’une forme, comme sa largeur et sa hauteur, ainsi que le centre de rotation, sont mesurés à partir de son origine. L’emplacement d’une forme par rapport à son parent (un groupe ou une page) est mesuré à partir de l’origine du parent.

Origine de la grille : point qui définit la disposition des lignes de la grille sur la page de dessin. Une ligne de grille verticale et une ligne de grille horizontale passent par l’origine de la grille, toutes les autres lignes de grille étant dessinées à des intervalles réguliers à partir de ces lignes de référence. Par défaut, l’origine de la grille se situe dans le coin inférieur gauche de la page de dessin.

Page 583: MS Visio 2003 Guide du Développeur

G L O S S A I R E 569

Page : zone imprimable de la fenêtre de dessin contenant un dessin. Une page peut être une page de premier plan ou d’arrière-plan. A chaque page sont attribués un format (correspondant généralement au format de papier standard) et une échelle (que le programme Visio préconfigure pour les différents types de dessin).

Page de dessin non mise à l’échelle : page de dessin dont l’échelle est de 1:1.

Page active : page de dessin en cours pouvant être modifiée dans un document Visio.

Page de dessin : zone imprimable d’une fenêtre de dessin contenant un dessin. Une page peut être de premier plan ou d’arrière-plan. Chaque page possède des dimensions qui correspondent généralement à une taille de papier standard et comporte une échelle.

Paire nombre unité : expression composée d’un nombre et d’une dimension. Par exemple, « 1 cm » est une paire nombre unité.

Paramétrique : caractéristique d’une forme dans un dessin Visio ayant la possibilité de régler sa géométrie et d’autres attributs en fonction des valeurs de certains paramètres.

Parent : niveau immédiatement supérieur dans la hiérarchie du système de coordonnées. Si une forme est un membre ou un groupe, son parent est le groupe. Si une forme n’est pas le membre d’un groupe, son parent est la page de dessin.

Persistance : durée de vie d’une variable, d’une procédure ou d’un objet. Par exemple, un objet peut persister pendant l’exécution de l’application Visio. Un objet pouvant stocker les objets Event d’une session Visio à l’autre est un objet qui persiste aux événements.

Pile d’annulation : région de la mémoire réservée où sont stockées les unités d’annulation.

Plan largeur-hauteur : rectangle orthogonal d’un espace de coordonnées local dont un coin a pour coordonnées (0,0) et le coin opposé correspond à (largeur,hauteur).

Poignée : contrôle qui apparaît lorsque vous sélectionnez une forme. Vous pouvez utiliser des poignées pour modifier une forme. Les poignées varient en fonction de la forme que vous sélectionnez et de l’outil de sélection que vous utilisez. Par exemple, lorsque vous sélectionnez une forme avec l’outil Pointeur, l’application fait apparaître des poignées de sélection que vous pouvez déplacer pour changer la taille et les proportions de la forme. Lorsque vous sélectionnez une forme avec l’outil Rotation, les poignées de rotation qui apparaissent vous permettent de faire pivoter la forme.

Poignée de contrôle : poignée qui contrôle le comportement d’une forme. Par exemple, vous pouvez créer une poignée de contrôle pour que l’utilisateur puisse ajuster l’arrondi des angles, modifier la forme d’une flèche ou créer un lien directement depuis une forme 2D.

Page 584: MS Visio 2003 Guide du Développeur

570 G L O S S A I R E

Poignée de direction : poignée qui apparaît sur un point de connexion sélectionné pour indiquer sa direction. La poignée de direction détermine si la forme pivote lorsqu’elle est collée à une autre forme.

Poigné de rotation : poignée circulaire qui apparaît au coin du rectangle de sélection d’une forme lorsque vous sélectionnez la forme avec l’outil de rotation. Le déplacement d’une poignée de rotation modifie l’angle de rotation de la forme.

Poignée de sélection : poignée carrée qui apparaît sur une forme sélectionnée à l’aide de l’outil Pointeur. Les poignées de sélection indiquent que vous pouvez déplacer ou redimensionner la forme.

Poignée d’excentricité : cercle qui apparaît à chaque extrémité d’une ligne en pointillé lorsque le point de contrôle d’un arc d’ellipse est sélectionné avec l’outil Crayon. Le déplacement d’une poignée d’excentricité change l’angle et l’amplitude de l’excentricité d’un arc.

Point de connexion : point situé sur une forme, auquel un autre point de connexion peut être collé. Vous pouvez créer des points de connexion à l’intérieur ou à l’extérieur de la forme, ou sur son périmètre, à l’aide de l’outil Point de connexion. Chaque point de connexion de la forme est signalé par une coche (×) bleue lorsque l’option Points de connexion est cochée dans le menu Affichage.

Point de contrôle : 1. Poignée circulaire qui apparaît sur une ligne, un arc ou une spline (ou un segment de ligne, d’arc ou de spline) lorsque la forme est sélectionnée avec l’outil Crayon. Vous pouvez déplacer un point de contrôle pour modifier la courbure d’un arc ou d’une ellipse. 2. Point ayant une influence sur la courbure d’un segment de spline.

Point de départ : poignée de sélection au début d’une forme 1D. Le point de départ porte la marque ×. Egalement appelé point de début.

Point de repère : lignes de référence que vous pouvez faire glisser sur la page de dessin afin de positionner les formes avec précision. Le point de repère à partir de l’angle supérieur gauche de la fenêtre de dessin, à l’intersection des règles verticale et horizontale.

Point zéro : 1. Emplacement du 0 sur la règle horizontale ou verticale. 2. d’intersection dans la fenêtre de dessin des points zéro de chaque règle. Par défaut, le point zéro est le coin inférieur gauche de la page de dessin.

Point d’ancrage : point fixe qui ancre une ligne « élastique » dont l’autre extrémité est reliée à une poignée de contrôle. Les points d’ancrage sont visibles seulement lorsque les effets dynamiques sont désactivés dans un document. Dans ce cas, la ligne élastique s’étire et se rétrécit pour donner un effet de retour lorsque l’utilisateur déplace la poignée de contrôle, sans que cela intervienne sur le comportement de la poignée.

Polygone de contrôle : série de segments d’une ligne droite qui relient tous les points de contrôle d’une seule spline.

Page 585: MS Visio 2003 Guide du Développeur

G L O S S A I R E 571

Polyligne : série contiguë de segments de ligne représentés dans un dessin Visio par une ligne Polyligne dans une section Géometrie de la forme. Les lignes représentées sous la forme d’une ligne Polyligne équivalent aux lignes représentées sous la forme d’une séquence de lignes TraitVers, mais une ligne Polyligne est plus efficace. Dans les dessins Visio, les dessins importés contiennent souvent des polylignes.

Portée : étendue de persistance d’une variable, d’une procédure ou d’un objet dans un programme d’exécution. La portée d’un élément dépend généralement de l’emplacement à partir duquel il est déclaré. Par exemple, la portée d’une variable déclarée dans une procédure est la procédure même. En d’autres termes, que lorsque la procédure termine son exécution, la variable sort.

Premier plan : page supérieure d’un dessin. Les formes insérées dans la page de premier plan apparaissent devant celles de la page d’arrière-plan. Elles ne sont pas visibles lorsque vous modifiez la page d’arrière-plan du dessin.

Procédure : séquence nommée d’instructions exécutées en tant qu’unité. Function, Property et Sub sont des types de procédure.

Procédure d’événement : dans un programme Microsoft Visual Basic ou Visual Basic pour Applications (VBA), code exécuté lorsqu’un événement se produit. Par exemple, un bouton situé dans un formulaire Visual Basic dispose généralement d’une procédure d’événement pour gérer l’événement Click.

Programme complémentaire : programme qui, par l’intermédiaire de références Automation, étend l’application Visio aux objets, aux méthodes et aux propriétés Visio.

Projet : dans Microsoft Visual Basic pour Applications (VBA), code que vous rédigez et qui est enregistré avec un fichier Visio. Vous pouvez créer seulement un projet pour un document Visio, mais ce projet peut comporter n’importe quel nombre de modules, de modules de classe et de formulaires utilisateur.

Propriété : attribut nommé d’un objet. Les propriétés définissent les caractéristiques de l’objet comme la taille, la couleur et l’emplacement à l’écran, ou l’état d’un objet (activé ou désactivé).

Propriété personnalisée : données définies par l’utilisateur et associées à une forme. Par exemple, les propriétés personnalisées d’une forme représentant la partie d’un moteur identifient son numéro de pièce, son prix et le nombre de ses composants en stock.

Rapport de huit : règle de manipulation des occurrences de forme dont l’échelle est différente de celle de la page de dessin. Si le facteur qui différencie l’échelle de dessin de la forme de base et l’échelle de la page de dessin est inférieur ou égal à huit, la forme est mise à l’échelle en fonction des paramètres de la page de dessin. Si ce facteur est supérieur à huit, la forme n’est pas mise à l’échelle.

Page 586: MS Visio 2003 Guide du Développeur

572 G L O S S A I R E

Récepteur d’événements : dans un programme Microsoft Visual Basic pour Applications (VBA), classe qui reçoit les événements déclenchés par un type d’objet de Visio. Dans un programme autonome Visual Basic, C ou C++, objet qui reçoit la notification envoyée par un objet Event Visio et qui permet une communication bidirectionnelle entre une solution autonome et une copie de Visio.

Récepteur de notification : dans un programme Microsoft Visual Basic pour Applications (VBA), classe qui reçoit les événements activés par un type spécifique d’objet de l’application Visio. Dans un programme autonome Visual Basic, C ou C++, objet destinataire de la notification envoyée par un objet Event Visio et qui établit une communication bidirectionnelle entre une solution autonome et une copie de Visio.

Rectangle de sélection : ligne en pointillé formant un rectangle autour des formes ou des objets sélectionnés issus d’autres applications.

Redimensionner : modifier les dimensions d’une forme.

Référence de cellule : référence utilisée dans les formules d’une feuille de calcul ShapeSheet® pour calculer la valeur d’une cellule d’après la valeur d’une autre cellule.

Remplissage : couleur et/ou motif situés à l’intérieur d’une forme fermée. Le remplissage par défaut pour les formes Visio est blanc uni.

Repère : lignes de référence que vous pouvez faire glisser sur la page de dessin afin de positionner les formes avec précision. Vous pouvez faire glisser le repère horizontal à partir de la règle horizontale, le repère vertical à partir de la règle verticale.

Segment : ligne droite, arc ou partie d’une spline.

Sélection : formes sélectionnées dans un dessin et modifiables. Les formes sélectionnées sont dotées de poignées de sélection. La sélection fait également référence au texte sélectionné dans un bloc. Lorsque vous pouvez modifier un texte sélectionné, il est mis en surbrillance.

Sélection primaire : première forme sélectionnée dans une sélection multiple, indiquée sur la page de dessin par des poignées de sélection vertes. Lorsqu’une sélection multiple est combinée, le formatage de la sélection primaire est appliqué à la nouvelle forme. Dans un objet Selection, la sélection primaire est le premier élément dans la collection Shapes de l’objet.

Sous-sélection : sélection de chacune des formes d’un groupe.

Spline : courbe tracée à main levée, basée sur une équation polynomiale.

Spline non périodique : spline avec points de fin définis. Si le point de départ et le point de fin d’une spline coïncident, la spline est fermée.

Spline périodique : spline fermée sans points de fin définis.

Style : ensemble nommé d’attributs enregistré avec un modèle ou un fichier de dessin. Voir aussi Attribut, Format.

Page 587: MS Visio 2003 Guide du Développeur

G L O S S A I R E 573

Technologie SmartShapes : la technologie SmartShapes® permet de personnaliser le comportement d’une forme avec des formules de la feuille de calcul ShapeSheet®.

Unité de dessin : dimensions qui reflètent la taille réelle des objets représentés par les formes dans un dessin Visio. Par exemple, dans un dessin architectural qui utilise l’échelle 1 cm = 1 m, l’unité de dessin est le mètre.

Unité de page : dimensions qui reflètent la taille des formes telles qu’elles sont dessinées sur une page de dessin Visio. Par exemple, dans un dessin architectural qui utilise l’échelle 1 cm = 1 mètre, l’unité de page est le centimètre.

Unité d’angle : unité dans laquelle les angles sont exprimés dans les cellules ShapeSheet®.

Unité d’annulation : occurrence d’une classe qui regroupe les informations nécessaires à l’inversion d’une action exécutée par un utilisateur dans l’interface utilisateur ou par un client Automation.

Unités explicites : unité de mesure indiquée sous la forme d’une paire nombre unité et concernant l’affichage du résultat. Dans une feuille de calcul ShapeSheet®, par exemple, la valeur « 3 mm » apparaît toujours sous la forme « 3 mm ».

Unité implicite : unité de mesure indiquée sous la forme d’une paire nombre unité et concernant l’affichage du résultat dans un système de mesure déterminé. Ce système peut ne pas coïncider avec l’unité saisie à l’origine. Par exemple, l’expression « 1 [po.,d] » spécifie que la valeur est au départ interprétée comme un pouce, mais le d indique que le résultat est affiché à l’aide de l’unité de dessin par défaut de la page courante. Si l’unité de dessin est le centimètre, la feuille de calcul ShapeSheet® affiche « 2,54 ».

Unité interne : unité de mesure que l’application Visio utilise en interne pour stocker les valeurs de dimension. Les unités internes de l’application Visio sont les pouces pour les mesures linéaires et les radians pour les mesures angulaires.

Unité par défaut : unité de mesure utilisée pour afficher une valeur dans une cellule ShapeSheet® si aucune unité n’est explicitement spécifiée. Les unités par défaut d’un dessin et de la page sont les propriétés d’une page de dessin. Les unités par défaut de texte et d’angle sont les paramètres de l’application.

Valeur booléenne : type de données ayant deux valeurs possibles : TRUE (vrai) ou FALSE (faux). Lorsque les types numériques sont convertis en valeurs booléennes, 0 devient FALSE et toutes les autres valeurs deviennent TRUE.

Verrouillage : paramètre qui limite les moyens dont disposent les utilisateurs pour modifier une forme. Par exemple, un verrouillage sur une poignée de sélection empêche l’utilisateur de redimensionner une forme à l’aide d’une poignée de ce type.

Zoom : degré de grossissement d’un dessin dans la fenêtre de dessin. Un dessin affiché en 100 % a la même taille que lorsqu’il est imprimé, sauf si vous réduisez ou agrandissez la sortie imprimée dans la boîte de dialogue Mise en page.

Page 588: MS Visio 2003 Guide du Développeur
Page 589: MS Visio 2003 Guide du Développeur

Index

Symboles!ShapeCount, variable 400(= ) Signe égal en préfixe des formules

ShapeSheet 83

Nombres128 bits, valeur 328

AAccélérateur, suppression 455AccelItem, objet 437AccelItems, collection 285AccelTable, objet 437, 444AccelTables, collection 285Accepter les formes insérées, option 116Action

annulable 473cellule 139commande 138, 139

Actions. Voir noms des actions spécifiques

Actions au déplacement des raccourcis de la forme de base 269

Actions au déplacement, champ 269Actions, section 66, 68, 138, 145ActionText, propriété 451Activate, méthode 291ActiveDocument, propriété 319ActivePage, propriété 324Activer les effets dynamiques 136ActiveWindow, propriété 313ActiveX, contrôles 461

ajout 462attribution d’un nom 467avec les formes 472définition des tabulations 465distribution 469exécution 467gestion des événements 466mode création 464

propriétés d’ambiance 465protection 466récupération 468

Activité non modale 529Add, méthode 325AddAdvise, méthode 422, 425, 427, 430,

523AddAt, méthode 439AddNamedRow, méthode 393Addon, objet 500AddOnArgs, propriété 505AddOnName, propriété 451AddonPaths, propriété 487, 500Addons, collection 500AddRef, méthode 512, 516AddRow, méthode 349AddSection, méthode 349, 351Addsink.h 523AddUndoUnit, méthode 481Affichage des formules, commande 71Afficher la feuille ShapeSheet,

commande 65, 66Afficher le gabarit de document,

commande 54, 66Afficher les accoudoirs, commande 145Afficher les membres cachés,

commande 465Aide

en ligne 4fichiers 261, 487HTML Help (fichiers .chm) 266identificateurs de contexte 266

Ajout aux dessinscontrôles 464contrôles ActiveX 461, 462création 338pages 325

Ajout d’options de menu, exemple 480Ajout d’un menu et d’une option de

menu (exemple) 447

Ajout d’une option de menu au menu Démo (exemple) 447

Ajout d’une section Géométrie, exemple 352

Ajouter au groupe, commande 116Ajouter la forme aux groupes à

l’insertion, option 116Ajouter une poignée de contrôle à la

forme, option 184Ajouter une procédure, boîte de

dialogue 300Alignement

cellule 386section 68

Analyse 506ANG360( ), fonction 199Angle

champ 100normalisé 199protection de la cellule Angle 102rotation 78, 193variables 192

AngleTexte, cellule 181, 198ANGLEVERSPAR, formules 170Appartenance au calque, section 68, 232APPELER_CE, fonction 154Application, objet

création 496dans le modèle d’objet Visio 279dans un exemple Visual Basic 416dans un modèle d’objet de Visio 282exemple dans Visual Basic 497interfaces 432, 441libération 497personnalisation 434propriétés 284récupération 319, 497, 516références 306

Application, propriété 308Arc, outil 40, 104

Page 590: MS Visio 2003 Guide du Développeur

576 I N D E X

ArcElliptiqueVers, ligne 104, 107Arcs

Voir aussi Splinescontrôle des courbes 103conversion 108elliptiques 103, 104, 106, 107, 108

Arcs elliptiques 108ArcVers, ligne 106Arguments

Voir aussi noms des méthodes ou des propriétés spécifiques

chaîne 519définition de valeurs 289exécution de programmes 505fonctions 73ID uniques 395pointeur d’objet 518transmission 518VARIANT 519

Arrière-plan, pages 58, 367Voir aussi Pages

ATTEINDREPAGE, fonction 140, 154Attraction

vers la géométrie des formes 176Attribution de noms

Voir aussi noms des objets spécifiquesformes de base 262, 263

AucunAff, cellules 129, 145Automation

Voir aussi noms des langages de programmation spécifiques

concepts COM 509connexions 375dans les dessins 357description 279développeurs 25extraction 396programmation pour l’application

Visio 293références de bibliothèque 305serveur 20, 30

Automation dans les solutionsattribution de noms 493diffusion 485intégration 29, 30langages de programmation 20mise en oeuvre de la conception 29utilisation 20

Automation et les objetsformes 29, 391

modèles 29utilisation 20

Automatisation des ventes sur le terrain, exemple 13

Autonomes, gabaritsVoir aussi Gabarits

Autonomes, programmesVoir aussi Programmes

Axeblocs de texte 180conséquence du retournement 99conséquences de la rotation 100coordonnées 92cube en 3D 122déplacement 228déplacement autour 93, 101déplacement par rapport à l’axe 121formules 64personnalisation 226poignée de contrôle du texte 184

AxeLocX et AxeLocY, cellules 92, 101Voir aussi AxeX et AxeY, cellules

AxeLocXTexte et AxeLocYTexte, cellules 181

AxeX et AxeY, cellules 70, 71, 92, 93, 94, 101

Voir aussi AxeLocX et AxeLocY, cellules

AxeXTexte et AxeYTexte, cellules 181, 193, 198

BB-splines 111BackColor, propriété 465BackPage, propriété 367Barre de formule 64, 73Barres d’outils 454

ajout 449suppression 454

Basé sur, option 208Basées sur la hauteur

formes 89, 96formules 94, 95

BaseID, propriété 395Bases de données

accès 152Assistant 30, 152dans les solutions Visio 29intégration de solutions 407liaison personnalisée 151

BeforeDocumentClose, événement 407, 416

BeforeQuit, événement 430BeforeShapeDelete, événement 24BeginUndoScope, méthode 477Bézier, courbes 330

Voir aussi Courbes, SplinesBibliothèques 31, 303, 305, 306, 525

de symboles CAO 46de types 303, 305, 507de types Visio 303, 305, 306dossier 5dynamiques 524Visio (.vsl) 31, 284, 303, 524, 525,

526, 529Bidimensionnelles, formes. Voir Formes

2DBitmaps 45Bloc de texte droit, largeur 195Bloc de texte, outil 183Blocs de texte

affichage des résultats relatifs au format 198

conception 179coordonnées 180dans les formes 179, 180, 181décalage 198droits 195positionnement 183quantité de texte 188redimensionnement 186, 187restriction 187rotation 192, 194test 204

Boîte 2D 159Boîtes de dialogue. Voir noms des boîtes

de dialogue spécifiquesBonjour à tous !, exemple de

programme 338Bonjour.vsd 309, 319, 339Booléennes, valeurs 150, 366Boucles 286, 287, 355, 400Boulon, exemple de forme 15Boutons de barre d’outils

ajout 449pour lancer les programmes 491

Boutons de barre d’outils personnalisée 449

B-splinesVoir aussi Splines

Page 591: MS Visio 2003 Guide du Développeur

I N D E X 577

BSTR, méthodes 518, 519BuiltInMenus, propriété 434BuiltInToolbars, propriété 434Bulle avec poignée de contrôle, exemple

138Bulle, forme 134Bureau Windows, lancement de Visio 30Bus, forme 161

CC/C++, programmes

Voir aussi Programmescontrôles 469copyright 494fichiers dans le dossier DVS 512gestion des événements 521programmation 279, 509

Cadenas pour les formes 102Calcul d’un total, exemple 22Calculées sur la base de la hauteur

formes 97formules 97

Calculspour la courbure des arcs 109pour le rayon des arcs 109

Calque, boîte de dialogue 233Calque, indice 371

Voir aussi Indices d’objets, propriétésCalques

Voir aussi Pagesattribution 230attribution de formes 230, 231attribution de formes de base 231,

233avec formes 229, 230, 231description 59, 230, 371formes 59identification 371, 372modification des paramètres 374optimisation 231section 68suppression 231utilisation 371

Canalisation, formes 167Caption, propriété 451Caractères, section 68, 182, 191C-CPP, dossier 512CD-ROM, matériaux de référence 4Cell, objet

automatisation des dessins 341

collage 380dans le modèle d’objet Visio 342formules 345propriété Error 314

Cells, propriétéformatage 322formules 342récupération 343

CellsC, propriété 374CellsSRC, propriété 342, 355, 374Cellule MseAJourRectSél 242Cellules

Voir aussi noms des cellules spécifiques

collage 386dans la section Evénements 153formules 72, 84, 342, 346invisibles 129Montage 83unités de mesure 79verrouillage 94

Cellules définies par l’utilisateur, sectionajout de cellules 82conventions de nom 75section Montage 81

Cellules personnalisées, sectiondescription 68

Centre de rotation. Voir AxeChaîne 200, 518

de caractères 393, 396de commande 503, 506de texte 150propriété 150renvoyée 396

Chaise, forme 132, 143Champ

boîte de dialogue 202codes 333

Champs de texte, section 68, 198, 199Characters, propriété 332Chemins

description 88fichiers Visio 277formes créées par fusion 128installation des fichiers 487liens repositionnables 163outil Crayon 39recherche de fichiers 487

Chemins d’accès 487boîte de dialogue 277

onglet 488CHM 487

Voir aussi Fichiers d’aideChr$, fonction 332CibleADéposer, cellule 116ClearCustomMenus, méthode 460Clipart, importation 44CLS 302CmdNum, propriété 452CntrlType, propriété 449Coché, cellule 140, 141CoCreateAddonSink 523Code

Voir aussi Programmescopyright 53, 494écriture 401examen 399, 405extraction de données 391, 396interface utilisateur 432lisibilité 2mise en oeuvre 411portable 260protection 316rédaction 495source 53transfert 507

CodeDévTraitLien, cellule 245CodeFixeForme, cellule 178CodeTracéForme, cellule 245Coins, commande 104Collage 157, 169

Voir aussi Liens, Collage des formescomportement 170connexions 172, 380dessins avec connexions 384dynamique 170, 388formes 169, 381, 384, 386, 388paires de cellules 386poignées de sélection 386points de repère 387règles 385repères 239spécifications 171statique 170

CollagePossible, cellule 133, 135Colle

Voir aussi Liens, Collage de formesCollections

Voir aussi noms des collections spécifiques

Page 592: MS Visio 2003 Guide du Développeur

578 I N D E X

itération 286, 355référence aux objets 285suppression d’objets 287vérification des objets 314

Coller le raccourci, commande 269Coller sur Géométrie des formes 176Colors, collection 285COM (Component Object Model) 280,

316Combinaison de formes

Voir aussi Formes regroupées, Formes multiples, Formes

Combinaison, commande 42, 127, 144Voir aussi Formes multiples

Combine, méthode 366Combinées, formes 113, 126Commande Menu pour lancer les

programmes 491Commande, bouton de contrôle 301Commandes cochées 141Component Object Model (COM) 279,

316, 509Comportement

boîte de dialogue 116cellules 135, 137

ComportementX et ComportementY, cellules 135, 138, 184

Composant de référence d’objetVoir aussi Références

Composées, références d’objet 288Concaténation 288Conception de forme

à l’aide d’Automation 29composants 10conformité aux spécifications 17planification 27

Conception de solutioncréation 15dans les dessins 11mise en oeuvre 29objets Visio 21utilisabilité 25

Configuration de pages, exemple 369Connect, objet

utilisation 377Connecteurs, création 157ConnectionsAdded, événement 407ConnectionsDeleted, événement 407Connects

collection 377

propriété 377Connexion de formes 117, 377

exemple dans un diagramme de flux 389

Connexion de formes 1Dautomation 380liens 157

Connexion de formes 2D, automation 380

Connexion, données. Voir DonnéesConnexions

analyse 378, 379, 381collage 172conséquences sur le regroupement

117dans les solutions Visio 375formes 1D et 2D 380itération 381, 382récupération de cellules 380utilisation 377

Conserver le formatage local, option 216Constantes

Voir aussi noms des propriétés ou des constantes spécifiques

dans la bibliothèque 507globales 303libellé de ligne 557pour les connexions 380

ContainingMaster, propriété 366ContainingPage, propriété 366ContainingShape, propriété 366Conteneurs 76Contrôle de recalcul 84Contrôles

ajout 301, 462attribution d’un nom 467collection OLEObjects 468contrôles de section 67définition de l’ordre de tabulation

465dénomination 302distribution 469exécution 467gestion des événements 466interaction avec les formes 472mode création 464ordre d’empilement 465personnalisation 461propriétés d’ambiance 465protection 466

Contrôles, barre d’outils 301Contrôles, boîte de dialogue 464Contrôles, section 68

Voir aussi Poignées de contrôleContrôleur

application 20Automation ActiveX 31

Conversionformes 46formes 1D en 2D 159

Convertir en groupe, commande 46Convertir les bibliothèques CAO, boîte

de dialogue 46Coordonnées

conséquence du retournement 99dans les blocs de texte 180de page 362formes 89formules basées sur la hauteur 95locales 89, 90, 92, 118modification 71parent 90, 92, 118poignées de contrôle 135point zéro 90pour les sommets 89sur la page 89, 118types 89

Copie de Visiocréation 496dans un objet Application 501descripteur de fenêtre 500exécution d’autres programmes 496gestion des erreurs 499, 502récupération 497utilisation de raccourcis 499

Copie des éléments d’une forme 41Copy, méthode 291, 331, 366Copyright 50, 53, 494Cordes 105CorelDRAW! (.cdr) 45Couleurs

copie 218définition de RVB 217définition de TSL 217gestion 217indices 217personnalisation 217

Count, propriété 285, 286Coupure, commande 43Courbes 103

Page 593: MS Visio 2003 Guide du Développeur

I N D E X 579

Voir aussi Arcs, SplinesCourbures des arcs 104, 105, 109Crayon, outil 40, 47, 71CreateDrawing, procédure 361CreateObject, fonction 496, 499

Voir aussi GetObject, fonctionCréation d’un exemple d’unité

d’annulation 482Création d’un processus de

développement 25Création de dessins à partir de données,

exemple 429Création de formes

formes fermées 41par fusion 42répétition d’éléments 41

CréationEvén, cellule 153Cubes en 3D 121, 122, 123Custom.vsu 457CustomMenus, propriété 434CustomMenusFile, propriété 459CustomToolbars, propriété 434Cut, méthode 331, 366CVisioAddOnSink, classe d’aide 523CVisioApplication, classe wrapper 512CVisioCell, argument 518CVisioDocument

classe wrapper 515objet 516

CVisioMaster 519CVisioPage 519

DDAO (Data Access Objects - objets

d’accès aux données) 30, 407Data Access Objects (DAO) 407Data1, Data2 et Data3, propriétés 333Date/heure, propriété 150DébAction, cellule 170Décaler, commande 43Déclenchement des événements 156DEFF, fonction 139, 143, 145, 154Définir le style, commande 208, 210, 213Définir les propriétés personnalisées,

boîte de dialogue 147Définir les styles, boîte de dialogue 208,

209, 214, 321Degrés d’angle 199Delete, méthode 331, 366, 373DeleteSection, méthode 353DeleteShapesFlag, argument 373

Délimitation d’une forme, zone 177Démarrage, programmes. Voir

ProgrammesDénomination

styles 214DensitéGrilleX et DensitéGrilleY,

cellules 233DépartFlèche, cellule 220DépartX et DépartY, cellules 117DEPENDDE, fonction 152, 154Désactivé, cellule 140, 142Description

propriété 320, 480zone 311

DeselectAll, méthode 365Dessin à main levée, outil 40

Voir aussi SplinesDessin, pages

Voir aussi PagesDessins

à partir de formes de base 358association de fichiers d’aide 485avec Automation 357avec connexions 381enregistrement 62, 323extraction de données 396impression 322mis à l’échelle 57ouverture 61partage de données 391répondant aux spécifications 17taille des fichiers 492

Developing Visio Solutions sur CD-ROM 4

Développeurbarre d’outil 65ressources 5

Devise, propriété 151Diagramme de base, modèle 501Diagramme de flux, gabarit 210Diagrammes avec connexions 377

analyse 381Automation 375création 384, 385lignes de repère 381obtention d’informations 378

Diffusion de formespeaufinage 259, 260performances 261

Dim, instruction 400

DirDévTraitLienX et DirDévTraitLienY, cellules 245

Dissociation 50, 115Dissocier, commande 50, 115Divers, section 68DLL (Dynamic link libraries) 31, 509,

524Voir aussi Bibliothèques

DllMain 526Do, procédure 480Document, gabarits 18Document, objet

comparaison 309contrôle de la portée 442dans le modèle d’objet Visio 317dans un modèle d’objet de Visio 282dans une collection Masters 359description 282, 318formules 341, 342personnalisation 432, 434propriétés 284récupération 319ThisDocument 309

Document, propriété 284, 319, 321Documentation de gabarit, Assistant 5DocumentOpened

événement 407gestionnaire d’événements 414

Documentsactifs 318, 319collection 282, 284, 286, 309, 319, 359contenant plusieurs pages 59création 501éléments 56enregistrement 62, 297, 323format d’un fichier Visio 60impression 322modification 65ouverture 57, 61partage de données 391propriété 284récupération d’informations 320

Domaine d’annulationassociation d’événements 478création avec des programmes

complémentaires 477description 473vérification 478

Donnéeset formes 391exportation 400

Page 594: MS Visio 2003 Guide du Développeur

580 I N D E X

intégration avec des programmes 391

liaison personnalisée 151propriétés personnalisées 147récupération 396vérification de la collection 400

Dossiers Visio d’installation des solutions 487

Doubles, variablesVoir aussi Variables

DrawBezier, méthode 331Drawing Explorer 207, 209DrawingPaths, propriété 487DrawLine, méthode 330DrawNURBS, méthode 331DrawOval, méthode 330DrawPolyline, méthode 331DrawRectangle, méthode 330DrawSpline, méthode 331Droits d’auteur sur les formes 50Drop, méthode 331, 335, 360DropMany, méthode 360DropManyU, méthode 493Duplicate, méthode 331, 366Duration, propriété 150DWG, fichiers 47, 111Dynamiques, liens 177DynamiqueX et DynamiqueY, cellules

135, 136, 184

EEchelle de dessin

section 253Echelle personnalisée, option 253Echelles de dessin

configuration 253description 249facteurs 252pour les formes de base 253règle du rapport huit 254test 263utilisabilité 251, 252

Ecriture seulement, propriétés. Voir Propriétés

Editeur de propriétés personnalisées 151Editeur Visual Basic

configuration des options 295démarrage 295enregistrement de projets 297exécution de macros 311

exécution du code 311Gestionnaire de compléments 316navigation dans le projet 296utilisation 294

Ellipse, outil 40Elliptiques, arcs 108

Voir aussi ArcsEMETTRESON, fonction 154En ligne, aide 4Enabled, propriété 436, 453Encapsulated PostScript (.eps) 45EndUndoScope, méthode 477Enlever du groupe, commande 116Enregistrement de dessins 297Enregistrement de données

dans d’autres programmes 398sur le disque 398

EnterScope, événement 477, 478EpaisseurTrait, cellule 206, 208Equations. Voir FormulesError, fonction 314Espace de travail 57

enregistrement 62enregistrer sous 62liste 60, 271, 277ouverture 61

EspacementGrilleX et EspacementGrilleY, cellules 233

Etiquettes de ligne, constantes 350EVALTEXT, fonction 189EvénDblClic, cellule 153Evénements

Voir aussi noms des événements spécifiques

associés à des actions 420code de module de classe 417de déclenchement 85déclenchant une action 420déclenchement 412, 414définition d’une classe 417exécution 491gestion 409indexation par objet 532initialisation 418mise en oeuvre du code 411persistance 424procédures 413, 466protocole 520réception 293section 68, 153, 154

utilisation avec un domaine d’annulation 478

vérification 478Event, objet

création 427définition 420exécution 422exécution d’un programme

complémentaire 423notification 425, 430persistance 424portée 420propriétés 409, 410, 422

EventInfo, propriété 422EventList, collection 420, 422, 523EventList.Add 520EventList.AddAdvise 520EventsEnabled, propriété 472EvénXFMod, cellule 153, 170Excel 284Excentricité

arcs 37, 106, 108poignées 37

EXD, fichiers 464EXE, fichiers 31, 423, 487Exécuter sous le mode développeur,

option 65, 66, 174Exécuter Sub/UserForm 311Exécution

fenêtre 400mode 462

Exécution de programmesau démarrage 488avec des arguments 505calcul de formules 504depuis le dossier Startup 506depuis le menu Macros 503en contexte 313options 488

Exemple de première procédure Sub dans le module 297

ExemplesVoir aussi noms des exemples

spécifiquesajout d’options de menu 480ajout d’un menu et d’une option de

menu 447, 480ajout d’une menu et d’une option de

menu 447

Page 595: MS Visio 2003 Guide du Développeur

I N D E X 581

ajout d’une option de menu au menu Démo 447

ajout d’une section Géométrie 352automatisation des ventes sur le

terrain 13bulle avec poignée de contrôle 138configuration de pages 369connexion de formes dans un

diagramme de flux 389création d’un dessin à partir de

données 401création d’un groupe de cubes en 3D

122création d’une unité d’annulation

482création de dessins à partir de

données 429extraction de données depuis le

dessin 396forme de piscine 251formes d’équipement réseau 17formes de flèche 19formes de racks 17groupe Ilot cuisine 119itération dans des connexions 381,

382itération dans la collection Pages 368modification de la géométrie des

formes 143module de classe répondant à des

événements 419objet Application en Visual Basic

416, 497personnalisation des formules d’une

flèche 97plans d’aménagement 231, 328positionnement des formes dans un

dessin 361première procédure Sub dans le

module 297programme Bonjour à tous ! 338propriétés personnalisées pour une

liste de contrôle de stock 147récupération d’objets Layer 372redimensionnement d’une flèche 95réorganisation d’un bureau 10réorganisation d’un service 10surveillance de la consommation

électrique 22

surveillance des événements et calcul d’un total 22

système de sécurité 14, 30ExitScope, événement 478Explicite, type de données. Voir Types de

donnéesExplorateur d’objets 303, 304Explorateur de dessin 65Explorateur de projet 302, 309

fenêtre 296Explorateur Windows, lancement de

Windows 30Exportation de fichier, commande 302Exporter un fichier, boîte de dialogue

315Extraction de données 11, 29, 30, 396

depuis un exemple de dessin 396Extrémités de trait 220, 221

personnalisées 227

FFenêtre de dessin de la forme de base 55Fenêtre de modification d’icônes 271Fichiers

Voir aussi Documentsdéplacement des modèles 278en lecture seule 57, 62en lecture-écriture 62enregistrement 62exécutables 31, 423, 487format d’un fichier Visio 60lecture-écriture 62ouverture 61recherche des chemins 487

Fichiers de dessinextraction des données d’un modèle

11gabarit de document 52styles par défaut 207utilisation des objets 318validation des règles d’un modèle 11

Fichiers de symboles, plusieurs 46FillStyle, propriété 334FillStyleKeepFmt, propriété 334FilterPaths, propriété 487FinAction, cellule 170Fixes, grilles 233, 236

Voir aussi GrillesFlèche, formes 161Fonctions

Voir aussi noms des fonctions spécifiques

dans les formules 73exécution des actions 154nouvelles 3

For, bouclesVoir aussi Count, propriété

For...Next, instruction 400ForeignType, propriété 468Format

cellule 202menu 104, 126

Format de bloc de texte, section 68, 182, 203

Format de caractère, section 181Format de remplissage, section 68, 71Format de trait, section 68, 71FORMAT, fonction 79, 201Formatage

Voir aussi Stylesapplication 207chaînes 200conservation 216formes regroupées 126occurrence des formes de base 212protection 334résultats 198résultats cohérents 213texte 181

FORMATEX, fonction 199, 200Forme de base, menu 55Forme de bulle 134Forme non imprimable, option 465Formes

Voir aussi noms des actions ou des formes spécifiques, Géométrie, Formes de base, Formes multiples, SmartShapes

accrochage à la grille 234affichage 70ajout 133, 149, 174, 332, 365ajout de poignées de contrôle 132ajout de points de connexion 174ajout de propriétés personnalisées

149alignement 237améliorations 131anatomie 18, 34angles arrondis 102, 104attributs 18

Page 596: MS Visio 2003 Guide du Développeur

582 I N D E X

collage 169, 381, 386, 388comportement 16, 246composants 16conception 260, 261connexion 117, 172, 377, 405copie 331copyright 261couleur 217, 219couper 331création 15, 33, 39, 330cubes en 3D 123définition de la portée 366déplacement 70, 88, 93, 348détermination des connexions 378,

379développement 18, 25dissociation 50, 115duplication 331fermées 35, 41formules 71fusion 113, 114, 128, 144groupes 41, 115, 116, 239importation 44insertion dans une page 358interaction 472largeur 199liaison de données 391liens dynamiques 177limitation du texte 188masquage 129mise à l’échelle 264mise en page automatique 243modélisation 8modifications 47, 331non mise à l’échelle 254optimisation 110options de mise en page 244ouvertes 35performances 261personnalisation 260planification 260poignées de contrôle 132, 134positionnables 161positionnement 92, 361positionnement sur une grille par

magnétisme 233propriétés 19protection 126redimensionnement 88, 120, 121,

190, 191

reformatage 210regroupées 38, 41, 116, 330retournement 98, 101rotation 98, 101sélection 363styles 209, 334suppression 331, 365système de coordonnées 89test 204, 261unités de mesure 78utilisation de boucles 400verrouillage 94, 102

Formes 1DVoir aussi Liens, Formescollage 385comparaison avec les formes 2D 158comportement 36conversion 159description 157galerie 161points de fin 37repositionnables 161, 162utilisabilité 158

Formes 2DVoir aussi Liens, Formesaccrochage à la grille 234collage 385comparaison avec les formes 1D 158comportement 36conversion 159description 157positionnables 161, 162utilisabilité 158

Formes d’équipement réseau, exemples 17

Formes d’un dessin, formes de base 54Formes de base

Voir aussi Groupes, Formesattribution à des calques 230, 232attribution d’un nom 263, 270attribution de calques 231attribution de noms 262automation des dessins 358automatisation des dessins 17BaseID 395cohérence 262, 263conception 27copyright 53création 51, 52, 54, 331création pour les grilles 234

de document 16fichiers d’aide 266icônes 263ID uniques 395insertion dans une page 360modification 55, 66, 185, 270motifs 220nettoyage 270organisation sur des calques 59paramétrage des unités 235peaufinage 259poignées de contrôle 132propriétés personnalisées 148, 151provenant d’autres programmes 54raccourcis 269récupération 359reformatage 211règle de rapport huit 255réutilisation 52test 262, 263texte 180utilisation des calques 371utilisation des échelles 249, 253, 254,

256, 257, 263, 265, 266vérification des éléments 263

Formes de cercle 104, 105, 107Formes de composant

axe parent 121cubes en 3D 125protection 126

Formes de flèche, exemple 19Formes de membre 121, 125, 126Formes de racks, exemples 17Formes fusionnées

Voir aussi Combinaison de formes, Regroupement de formes, Formes multiples

Formes individuellesredimensionnement 121

Formes liéesVoir aussi Collage de formes

Formes multiplesVoir aussi Combinaison de formes,

CheminsFormes, propriétés 19FormeValide, procédure 369Formula, propriété 345FormulaForce, propriété 290, 347Formulaires utilisateur 298, 301, 302Formule de forme de base, calcul 505

Page 597: MS Visio 2003 Guide du Développeur

I N D E X 583

Formule de style, calcul 505Formules

Voir aussi noms des formules spécifiques

affichage 63associées aux arcs 103associées aux formes 18, 27, 71, 80,

94Automation 86basées sur la hauteur 94commandes apparaissant en grisé

142contrôle des emplacements 88dans la section Géométrie 97dans les cellules de la section

Evénement 152dans les cellules définies par

l’utilisateur 81dans les cellules libellées 66dans les dessins automatisés 341dans les groupes 115, 116, 117des pages 325éléments 63, 72formules et géométrie 87, 90gestion des événements 409héritées 18, 71, 81, 126, 208, 356identification 81intelligentes 161, 192, 366liens avec angle 164, 165lisibilité 2menus contextuels 141modification 64, 65, 73, 209personnalisées 168points de connexion 170pour le déplacement des formes 93,

348pour les arcs 109pour les grilles 235, 236pour les poignées de contrôle 132,

133pour les unités 78, 79protection 84, 126, 139, 203, 347redimensionnement 121, 190résultats 198, 346, 347rotation inverse 191saisie 73test des blocs de texte 204

Formules associées aux objetsaffichage 64, 65modification 64

Formules d’événementdescription 152liste 152optimisation 156simulation 153

Formules relatives aux formes 1Den fonction de la hauteur 167formules intelligentes 161

Fragment, méthode 366Fragmentation, commande 42FreeLibrary, fonction 526FRM 302FromCell, propriété 380FromConnects, propriété 377FromPart, propriété 380, 381, 382FromSheet, propriété 378, 379, 381, 382FullName, propriété 320Function, procédure 300Fusion

création de formes 42formes 113, 114, 126, 129, 144, 145

Fusionnées, formes 128

GGabarits

Voir aussi Document, gabarits, Formes de base, Modèles

ajout de nouvelles formes de base 54autonomes 52, 211conception 27copyright 53couleur 218création 51, 53, 54création de calques 231de document 52diffusion 485enregistrement 62, 297exécution 261fichier 318fichiers d’aide 267formats de fichier 60installation 277locaux 18migration 507modification 211motifs personnalisés 220nettoyage 271obtention de gabarits modifiables 55ouverture 53, 54, 57, 61, 66peaufinage 259

récupération 359stockage 492styles 213test 262, 272, 273, 274

Gabarits de document 52Générer automatiquement une icône à

partir des données de la forme 271

Generic.cpp 512, 516Géométrie

formules 81lignes 71, 91, 350

Géométrie des formes 15, 110commandes des menus contextuels

143description 88formules 87, 90masquage 129optimisation 110points d’ancrage 136

Géométrie, plusieurs sections 110Géométrie, section

Voir aussi noms des cellules spécifiques

ajout 67, 351chemins 88considérations relatives aux formes

34description 68formes créées par fusion 113, 126formes fusionnées 144formules 89, 90, 97, 124groupes 41ligne ArcVers, cellules 106modification des objets 47poignées de contrôle 135remplissage des formes 128

GeometryCount, propriété 355Gestion des erreurs 313, 502Gestionnaire

d’annulation 473, 475, 476, 479, 480, 481

d’événements 414, 472de compléments 316

GetFormulasU, méthode 493GetIDsOfNames, méthode 516GetObject, fonction 497GETREF, fonction 85GetResults, méthode 346GetTypeInfo, méthode 516

Page 598: MS Visio 2003 Guide du Développeur

584 I N D E X

GetTypeInfoCount, méthode 516GETVAL, fonction 85GetViewRect, méthode 362GetWindowTask, propriété 500Global, objet

dans un modèle d’objet de Visio 282description 307récupération 319utilisation 306

Globalement unique, ID (GUID). Voir GUID, ID unique

Globales, constantesVoir aussi Constantes

Globales, variablesVoir aussi Variables

GlueTo, méthode 380, 384, 388, 518GlueToPos, méthode 384, 388Graphiques

fichiers 44, 45images 44objets 45vectoriels 45

Grillesaffichage 233comparaison avec les repères 237création 233espacement 233fixes 233, 236lignes de repère 237masquage 233paramétrage des unités de la grille

235points 102stockage de formules 235variables 233, 236

Group, méthode 335Groupe d’événements 411Groupe Ilot cuisine, exemple 119Grouper

commande 41, 115Groupes

Voir aussi Collections, Formes multiples

ajout 116, 335appartenance 59caractéristiques 114conséquence des connexions 117contrôle du comportement 118contrôle du texte dans les formes 185formes créées par fusion 113, 114

formules associées aux formes 116imbriqués 119, 120modification 48, 116paramétrage du mode 119protection du formatage 126rectangles de sélection 122, 242redimensionnement 121sélection 118test des performances 261

Groupes d’objets 38Groupes de formes 38, 41, 116, 330Groupes de formes de base,

comportement 38GUID 394

Voir aussi ID uniqueGuillemets 83, 85, 150, 155, 332, 345

HHauteur

cellules 72, 75valeurs 70

HauteurPage, cellule 361HAUTEURTEXTE, fonction 186, 188HauteurTxt, cellule 181, 187, 198HelpPaths, propriété 487Héritage

formules 208Héritées

données 356formules 18, 71, 81, 126, 356

HLP 266, 487Voir aussi Aide, fichiers

HPJ 266Voir aussi Aide, fichiers

HRESULT 516HTML Help (fichiers .chm) 266Hub, forme 405Hyperlinks, collection 285

IIClassFactory2, interface 464Icônes 55

fenêtre de modification 271formes de base 56, 262, 266, 271

IconFileName, propriété 436IConnectionPoint, protocoles 520ID de forme 76

Voir aussi ID globalement unique, ID unique

ID des constantes 444

ID uniquesen tant qu’arguments 395génération 393objets Shape 394

ID. Voir GUID, ID de forme, ID uniqueIDataObject, interface 336IDE (Integrated development

environment) 293Identification des formules 81IDispatch, interface 511Images

importation 44numérisées 44

Imbrication et liaison d’objetVoir aussi Automation

Imbriqués, groupesVoir aussi Groupes

Implements, instruction 428Importation de fichier, commande 302Imprimer, boîte de dialogue 322IncludesFill, propriété 322IncludesLine, propriété 322IncludesText, propriété 322Indépendants, gabarits. Voir Gabarits

autonomesIndex pour les objets

événements 532méthodes 532propriétés 532

IndiceVoir aussi noms des formes ou des

cellules spécifiquespages 556récupération de cellules 343récupération de formes 326

Indice d’objet 285Indice de cellule

description 548documents 556formes 553pages 556styles 554tabulation 557types de ligne 557

Indice de lignedescription 548documents 556formes 553pages 556styles 554

Page 599: MS Visio 2003 Guide du Développeur

I N D E X 585

tabulation 557types de ligne 557

Indice de sectiondescription 548documents 556formes 553styles 554tabulation 557types de ligne 557

Indices de cellules. Voir Cellules, indicesIndices de couleur 217Indices de lignes. Voir Lignes, indicesIndices de sections. Voir Section, indiceInfo-bulles 133Infos sur l’image externe, section 68Infos sur le collage, section 68, 170Ingénieur système 25Insérer une ligne, commande 71, 139Insérer une section, boîte de dialogue 67Installation

fichiers dans des dossiers 4gabarits et modèles 277

Instancing, propriété 426Instruction 286Intelligentes, formules. Voir FormulesIntelligents, liens. Voir LiensInterface

contrôles 301fonctions 509, 511, 515pointeur 511, 517

Interface utilisateurajout de formulaires utilisateur 301persistance 442

Interface utilisateur personnaliséeajout 432, 445, 462chargement 459comparaison avec Visio 441création 440description 457enregistrement 458fichier 457, 459masquage 452modification 434, 443, 456persistance 442portée 442restauration 460suppression d’options 453utilisation 432

Interface Visio intégrée 441, 453, 460Interfaces doubles 511

Intersectioncommande 43dynamique 178

Inverser les extrémités, commande 204Invisible, cellule 150Invoke, méthode 516InvokeOnMask 528IOleUndoUnit 479IsInScope, propriété 478IsSet, fonction 517IsUndoingorRedoing, propriété 476Item

méthode 328propriété 284

ItemAtID, propriété 436, 444Itération

Voir aussi Count, propriétécollections 355dans des collections et des lignes 355dans un exemple de connexions 381,

382exemple de la collection Pages 368

IterationMode, propriété 364IUnknown, interface 523IVBUndoUnit 479, 480Ivisreg.cpp 516Ivisreg.h 516

JJonction, commande 43, 127

KKey, propriété 452Keywords, propriété 320Kit de développement Microsoft

(Software Development Kit - SDK) 509, 511

LLangages de programmation 2LaPage!EchelleDessin, formules 257LaPage!EchellePage, formules 257LaPage, forme 77Largeur

cellules 75, 76, 78formules 89, 90, 125valeurs 70

LargeurPage, cellule 361LARGEURTEXTE, fonction 186, 188LargeurTxt, cellule 181, 195, 198

Layer, objetidentification 372récupération 372

LayerCount, propriété 372Layers

collection 371propriété 371

Lecture seule, fichiers 320LesDonnées, cellule 153LeTexte, cellule 153Liaison

précoce 511préliminaire 507tardive 511

Liaison de formes 1D, points de connexion 172

Liaison de formes 2D, points de connexion 172

Liaison des enregistrements de forme 152

Libellés 150Voir aussi Blocs de texte

Licenced’exécution 464de création 469

Lien dynamiqueforme 161, 177, 178outil 161

Lien S 161Lien, outil 162LienInsécable, cellule 170Liens

Voir aussi Formes 1D, Poignées de contrôle, Collage

Assistant SmartShape 166avec angle 164, 165collage 170comportement 246création 162, 163, 164dynamiques 165, 246options de mise en page 244repositionnables 161, 162, 163

Liens hypertexte, section 68Lier les formes, commande 162Lignes

Voir aussi noms des lignes spécifiquesajout 349boucle d’itération 355infinies 237personnalisées 393

Page 600: MS Visio 2003 Guide du Développeur

586 I N D E X

suppression 353suppression impossible 350utilisation 349

LineStyle, propriété 334LineStyleKeepFmt, propriété 334Lisezmoi.txt 509, 524Liste de variables, propriété 150Liste des objets StatusBar 439Liste fixe, propriété 150LoadFromFile, méthode 459LoadLibrary, fonction 526LOC, fonction. Voir Coordonnées localesLocal

formatage 206nom 75, 493

Local, gabarit. Voir Document, gabaritLocales

formules 71, 81variables 284

Locales, coordonnéesVoir aussi Coordonnées locales,

coordonnéesLockCalcWH, cellule 134LOCVERSPAR, formules 170

MMacros 31

Voir aussi noms des macros spécifiques

boîte de dialogue 311, 503description 311exécution 311, 488, 503menu 312suppression 454, 455

Magnétismesur une grille 233vers le rectangle de sélection 102

Magnétisme et collage, boîte de dialogue 171, 173

Magnétisme et collage, commande 41Masquer les accoudoirs, commande

Voir aussi Afficher les accoudoirs, commande

145MasquerTexte, cellule 203Master, objet 282

ajout de calques 373formules 341, 342insertion dans une page 358, 360récupération 359

suppression de calques 373Masters

collection 286, 359propriété 359

Matériaux de référenceCD-ROM 4Web 5

MAX, fonction 191Membres dans les groupes 119Membres de, liste 303Menu

cellules 140objet 436

MenuItem, objet 436MenuItems, collection 285Menus 433

ajout 445collection 285contextuels 138, 139, 140, 144raccourcis 490

Menus. Voir noms des menus spécifiquesMenuSet

collection 285objet 436, 444

Message d’aide, champ 270Message, cellule 140, 344, 393Métafichiers, importation 45, 46Méthodes

Voir aussi noms des méthodes spécifiques

appel 293déclaration de variables 289indexation par objet 532utilisation 291valeurs renvoyées 289

Mettre à l’échelle avec le groupe, option 120

Mettre en page les formes, commande 163, 243, 244, 246

Micrografx Designer (.drw) 45Microsoft Access 152Microsoft Excel 284Microsoft Office 293Microsoft SQL Server 152Microsoft Visual Basic 3Microsoft Windows 215Mid, fonction (Visual Basic) 506MIN, fonction 191MiniHelp, propriété 451Mis à l’échelle, dessins

Voir aussi Echelles de dessinMise à l’échelle, option 221, 223Mise en page

boîte de dialogue 89section 69

Mise en page des formes, section 69Modèle d’objet Visio 280, 282, 284, 377,

434, 435Voir aussi noms des objets spécifiques

ModèlesVoir aussi Documents, Gabaritsavantages 18cohérence 213conception 28, 29contenant plusieurs pages 59copyright 53couleur 218création 51, 52, 57, 501déplacement des fichiers 277diffusion 485éléments 56enregistrement 57, 297exécution 261fichier 318formes positionnables 163grilles 233, 235installation 277migration 507mise à l’échelle 57, 253nettoyage 273ouverture 61peaufinage 259repères 237stockage 492styles 213suppression 273test 274, 276

Modélisation à l’aide de Visiodescription 8exemples issus de la réalité 13validation 11

ModeRedim, cellule 119, 120ModeSélection, cellule 119Modification de la géométrie des formes,

exemple 143Modifier la forme de base, commande

56, 66, 232Modifier le motif, commande 221Modifier le texte du groupe, option 185Modifier, menu contextuel 55

Page 601: MS Visio 2003 Guide du Développeur

I N D E X 587

Modules 298, 299, 300, 302Modules de classe

ajout de procédures 300code 417création d’occurrences 418description 298exemple répondant à des

événements 419gestion des événements 417insertion 299objet ThisDocument 294transfert de fichiers 302

Mon_prog.exe 154Montage

cellules 81, 83section 69, 81, 83, 124

Mosaïque, commande 70MotifRempl, cellule 220Motifs de remplissage 222Motifs de trait

couleurs 227option de mise à l’échelle 226

Motifs en mosaïque, conception 223Motifs personnalisés

création 220, 221description 220hérités 220, 244icônes 221traits 225

MotifTrait, cellule 220MseAJourRectSél, cellule 137, 242MsgBox, instruction 300Multiformes 113, 126Mur, forme 161MyAddon.cpp 524

NName, propriété 320, 322, 328NameID, propriété 328NameU, propriété 493New, mot-clé 481NewBaseID, propriété 395No Style, style 214NOERROR, résultat 516Noeud, formes 405NoFill, cellule 128NoLine, cellule 128Nom universel 75, 493Nombre-unité, paires 201Nombres 78, 396

Non périodiques, splines. Voir SplinesNON, fonction 145NoSnap, cellules 176Nouveau calque, boîte de dialogue 232Nouveau gabarit, commande 53Nouvelle forme de base, boîte de

dialogue 55Nouvelles fonctions 3Nudge, sous-routine 348Nudge.exe 348Null, chaîne 320, 323, 346, 394, 492, 500Numérique, propriété 150Numéros

Voir aussi Constantes, Unités de mesure, Variables

NURBS 111Nonuniform rational B-spline 111

OObjet Forme de base

copyright 53formules 63, 64, 65

Objet récepteur 521, 523Objet, références

Voir aussi noms des objets ou des collections spécifiques, Références

ObjetsVoir aussi noms des objets spécifiquescollage 385dans les collections 282dans les groupes 38déclaration 516déplacement des formules 93emplacement 88indexation alphabétique 532libération 287propriété Error 314propriété par défaut 290propriétés 284propriétés par défaut 20

Objets de Visio, types 284Objets relatifs aux accélérateurs, liste

437Objets relatifs aux barres d’état, liste 439Objets relatifs aux menus, liste 435Objets, variables 283, 284, 289

Voir aussi noms des variables spécifiques

ObjType, cellule 162

Occurrence de l’application Visiodans un modèle d’objet de Visio 282

Occurrences de formes de baseVoir aussi Formes de baseattribution à des calques 231comportement 17création 52création de calques 231reformatage 212

ODBC (Open Database Connectivity) 30, 152, 407

OLE 282OLE, Automation. Voir AutomationOLEObjects, collection 468On Error, instruction 313, 502OneD, propriété 396OnNextAdd, procédure 480Open, méthode 319OpenEx, méthode 319Opérateurs 74

Voir aussi noms des opérateurs spécifiques

Opérateurs arithmétiques 74Opérateurs logiques 74

Voir aussi ConstantesOpérateurs mathématiques 73

Voir aussi symboles des opérateurs spécifiques

Opérationscommande 42sous-menu 220, 244

Options de menu 445, 447Oracle SQL Server 152OrderInfo, tableau 398, 400Ordre

évaluation (pour les événements) 75pages 231, 326, 368priorité dans les formules 74

Organigrammes, gabarit 385Outils de dessin

Arc 40Crayon 40description 39Dessin à main levée 40Ellipse 40Rectangle 40Trait 40

Ouverture de dessins 57Ouvrir Grouper, commande 49Ouvrir un fichier, boîte de dialogue 274

Page 602: MS Visio 2003 Guide du Développeur

588 I N D E X

Ouvrir un gabarit, boîte de dialogue 53, 66, 211, 336

Ouvrir un gabarit, commande 66OUVRIRFENFEUILLE( ), fonction 154OUVRIRFENTEXTE( ), fonction 154OUVRIRFICHIER, fonction 154

PPage active 318Page de dessin, disposition en mosaïque

70Page, coordonnées

Voir aussi CoordonnéesPage, feuille. Voir LaPage, formePage, objet

Voir aussi LaPage, formeajout de calques 373dans le modèle Visio 317dans les dessins 358dans un modèle de Visio 282description 324formules 341, 342récupération 324suppression de calques 373

Pagesajout 325ajout de propriétés personnalisées

149, 393analyse des connexions 381collection 286, 324création d’une grille 233création de calques 231enregistrement 323formes de hub 405impression 322mise à l’échelle des pages 253modification des formules 65modification des paramètres 370options de mise en page 244organisation des calques 59présentation 58propriété 284repères 237

Pages de dessinarrangement des formes 229arrière-plans 367grilles 233identification des calques 371modification des objets 65modification des paramètres 370

références de cellule 77reformatage des formes 210repères 237styles 205

PageSheet, propriété 325, 342, 370PagIndex 504Paires nombre/unité 78, 80Palette de couleurs 217, 218

boîte de dialogue 217commande 218

Panneau de signalisation routière, forme 185

Paragraphe, section 69, 182Paramètres du mode de

redimensionnement 120Paramètres du mode de sélection 119Paramétriques, formes 15Parcourir les modèles, boîte de dialogue

57Parent, coordonnées

Voir aussi CoordonnéesPasDéplacEnfants, cellules 118PasPoignCtl, cellule 137PasRectSél, cellule 243Paste, méthode 331Path, propriété 320Persistable, propriété 424Persistance de l’interface utilisateur 442Persistent, propriété 424PersistsEvents, propriété 424Personnalisation des formules d’une

flèche, exemple 97Personnalisées, formules

Voir aussi FormulesPersonnalisées, propriétés. Voir

Propriétés personnaliséesPersonnaliser le texte de la forme,

option 184Personnaliser, boîte de dialogue 439PESANTEUR, fonction 191Pesanteur, formules 192, 193Pile

d’annulation 475de rétablissement 475

Piscine, exemple de forme 251Plan d’aménagement, exemples 231, 328PNT, fonction 530

Voir aussi LOC, fonction, Coordonnées locales

Poignées

de sélection 37, 71de verrouillage 71sur les formes 36

Poignées de contrôleVoir aussi Liens, Section Contrôlesaxes du texte 184collage de paires de cellules 386comportement 137description 133formes 132formes de base 132paramètres 137références de cellule 134sur les formes 37

Point de connexion, outil 247Point de contrôle pour les arcs 105Pointeur d’objet, arguments 518Points d’ancrage 136

Voir aussi Poignées de contrôlePoints de connexion

Voir aussi Collageattribution d’un nom 176collage 380, 385création 175description 172modification de la direction 247section 69, 76sur les lignes de la grille 102types 173vecteurs 173

Points de contrôle, section 37, 133Points de départ 158Points de fin 37, 158, 168Points de fin 1D, section 69

Voir aussi Points de finPoints de repère

collage 387connexions 380création 238description 237modification 238

Points zéro 90Police, section 182Polices

formules de redimensionnement 191redimensionnement 186, 189redimensionnement avec les formes

190TrueType 215

Portable, code

Page 603: MS Visio 2003 Guide du Développeur

I N D E X 589

Voir aussi CodePortée des procédures 300Positionnement de formes dans un

dessin, exemple 361Premier plan, pages 367PreserveMembersFlag, argument 373Print, méthode 322Procédures

dénomination 300privées 300publiques 300types 300

Procédures (exemples), InitWith 23Programmation en Visual Basic pour

Visio 280, 293Programmation pour Visio 293

Voir aussi noms des langages de programmation spécifiques

Programmation Visual Basic pour application Visio 279

Programmation, erreurs. Voir ErreursProgrammes

Voir aussi noms des langages de programmation spécifiques, Code

configuration du code 405copie de Visio 496création 384, 485dans Automation 20distribution 491, 492élaboration du code 507exportation de données 400gestion des erreurs 502gestion des événements 409importation de formes 44informations de copyright 261installation 486interaction 20, 500interprétation des commandes 503liaison 490migration 507rédaction 418, 495utilisation des classes wrapper 512autonomes 31

Programmes complémentairesaction annulable 473création de domaine d’annulation

477déclaration 527enregistrement 527

exécution 529utilisation du gestionnaire

d’annulation 476Programmes d’installation inclus dans

les solutions 4Projet/Bibliothèque, zone 303, 305Property, procédure 300Proportionnel, redimensionnement.

Voir RedimensionnementPropriété d’une option, paramétrage

451Propriété des cellules

récupération 290Read-only, propriété 290Propriétés

Voir aussi noms des propriétés spécifiques, Propriétés personnalisées

boîte de dialogue 149en lecture/écriture 290fenêtre 295indexation par objet 532par défaut des objets 290récupération 396récupération des propriétés des

cellules 290références aux objets 284stockage 396utilisation 289

Propriétés d’ambiance 465Propriétés d’image, section 69Propriétés de doc, section 69Propriétés de groupe, section 69, 119Propriétés de la forme de base, boîte de

dialogue 222Propriétés de la page, section 69Propriétés de raccourci de la forme de

base, boîte de dialogue 269Propriétés de style, section 69Propriétés des calques, boîte de dialogue

231, 371, 374Propriétés des formes 146Propriétés personnalisées 147

affichage 202ajout 151, 391, 393boîte de dialogue 202cellules 344définition 148description 147fenêtre 148, 149

formats 150liaison de données 151pour une liste de contrôle de stock,

exemple 147récupération de cellules 344section 69types 150utilisation 147

ProtectionVoir aussi PROTECTION, fonctionboîte de dialogue 111caractéristiques de la forme par

verrouillage 111cellule 71code du programme 316contre la modification du texte 185contrôles 466fichiers en lecture seule 54formatage des groupes 126formatage local 334formats locaux 216formes 216formules 84, 347largeur des blocs de texte 187modification des groupes 116propriétés géométriques des formes

34redimensionnement des formes 120section 69styles 216type de ligne 108valeurs du texte 203

Protection des formes 111, 126, 257contre les mises à l’échelle 257déplacement impossible 94empêchement de tout retournement

102PROTECTION, fonction 84, 94, 112,

126, 148, 188, 203, 216, 290, 347Voir aussi Verrouillage, Protection

Protéger le document, boîte de dialogue 466

QQueryInterface, méthode 516Quit, méthode 497

RRead-only, propriété 396

Page 604: MS Visio 2003 Guide du Développeur

590 I N D E X

Récepteur d’événement. Voir Objet récepteur

Récepteur, objet 420, 422, 425, 428Récepteurs de notifications 425, 427

Voir aussi Objet récepteurRechercher texte, case 303Rectangle

formes 40, 103outil 40

Rectangles de sélectionattraction vers la grille 240avec les formes 241, 242, 243cubes en 3D 123mise à jour 137personnalisation 242

Récupération d’objets 284Voir aussi noms des objets spécifiques

Récupération d’objets Layer, exemple 372

Récupération d’un objet Cellformes 387options 342par indice 343par ligne 343par nom 343par section 343

Récupération de formespar ID 328par le nom 326par les indices 326par type de propriété 328

Redimensionnementà l’aide de coordonnées 89comportement du groupe 119courbures des arcs 105dans un sens uniquement 121dimensions personnalisées 191en fonction de la valeur du texte 189formes 88, 120formules personnalisées 125protection des proportions 95protection du texte 187quantité de texte 188

Redimensionnement d’une flèche, exemple 95

Redisposer les pages, boîte de dialogue 368

Référence de ShapeSheet 7Référence de Visio Automation 3Références

Voir aussi Cellule, références, Objet, références

bibliothèque Visio 507échec 517migration 507non valides 289objets 517

Références aux cellules d’une forme 76Références aux objets

collections 285concaténation 288dans un modèle d’objet de Visio 284libération 283limitation de la portée 289récupération 283variable objet 289

Références aux objets non valides, erreurs 289

Références d’objet, renvoi de valeurs 517Références de cellule

à d’autres formes 76au sein de la même forme 76collage 388dans les feuilles de calcul ShapeSheet

75formules 77poignées de contrôle 134propriétés des formes 19

Références disponibles, liste 305, 507Règle de rapport huit 255Règle et grille, section 69Règles 89, 233, 238Règles et grille

boîte de dialogue 233formules 234

Releaseappels 512méthode 516

Remarques concernant la conception 261

Remove, méthode 373Remplissage des formes 41, 128RemplPremPlan, cellule 78, 79, 219Renvoi de valeurs

Voir aussi noms des propriétés ou des méthodes spécifiques

Réorganisation d’un bureau, exemple 10Réorganisation d’un service, exemple 10Repères

affichage 239

collage 387connexions 380création 238dans les formes regroupées 239désactivation du magnétisme 239description 237lignes de repère 237manipulation 238masquage 239positionnement 238rotation d’objets 239sélection 238

Repositionner seulement, option 120Result, propriété 346, 347Résultats

remplacement de formules 347utilisation des opérations sur les

formes 42ResultInt, propriété 346, 347ResultIU, propriété 346, 347ResultStr, propriété 346Résumé, onglet 274Rétablissement d’une action 473Retirer les calques non référencés,

option 231Retournement

conséquences sur les coordonnées 99empêchement 102formes 98

Retournement horizontal et Retournement vertical, commandes 99

RetournementX et RetournementY, cellules 72, 98, 194

Rotationbloc de texte 191dans la boîte de dialogue Protection

102empêchement 102formes 98, 100formes 1D 37formes 2D 37outil 37, 100, 101pages 100

RouteStyle, cellule 163RowCount, propriété 355RowsCellCount, propriété 355RUNADDON, fonction 154, 490, 504,

505

Page 605: MS Visio 2003 Guide du Développeur

I N D E X 591

RUNADDONWARGS, fonction 154, 490, 505

RVB, valeurs de couleur 219

SSauvegarde de données

stockage 396Save, méthode 323SaveAs, méthode 323Saved, propriété 320, 323SaveToFile, méthode 458Secteur, forme 161Section Règle et grille 69Section, commande 66Sections. Voir noms des sections

spécifiquesSections Géométrie, plusieurs

Voir aussi CheminsSections, boîte de dialogue

affichage 67ajout 67, 349suppression 353utilisation 349

Segments 354Segments de trait

conversion 108modification 108

Select, méthode 365SelectAll, méthode 365Selection, objet 282, 335, 363, 364, 365,

366Sélection, poignées 386Selection, propriété 364Shape

propriétés 284Shape, objet

ajout de lignes 349ajout de lignes personnalisées 393ajout de sections 349analyse des connexions 378attribution de calques 373dans le modèle Visio 317dans les fenêtres 364dans un modèle Visio 282description 400désélection 365formules 341, 342ID unique 394membre d’un groupe 330modification 354

propriétés 284, 289, 328, 332, 393récupération 326résultats des opérations 42sélection 363, 365suppression de calques 373utilisation 366

ShapeAdded, événement 24, 407, 414, 482

Shapes, collection 286, 326, 330, 400Shapes, propriété 284ShapesDeleted, événement 407ShapeSheet

fenêtre 15, 18, 45feuilles de calcul 15formules 15, 18, 78, 147références de cellule 75sections 67

ShapeSheet, fenêtre 45, 67, 70, 134, 181affichage 64, 66modification 64, 65, 72

ShowInMenu, macro 312ShowPageConnections, macro 381, 382Signe égal en préfixe des formules

ShapeSheet 83Site Web de Visio 5SmartShape, Assistant 166, 183, 190,

192, 193, 194, 198SmartShapes, symboles 18Solutions

chemins 487diffusion 485distribution 491dossiers d’installation 487dossiers de fichier 487exécution sur d’autres systèmes 261installation 486intégration 30, 391, 407migration 507peaufinage 259stockage 492Visio 1

Sommetschemins 88coordonnées x et y 89description 87effets du déplacement des formes 37fermeture 41géométrie des formes 88points de départ et de fin 159pour les cubes en 3D 122, 123

Sons, lecture 155Source d’événement 411Source, code 494

Voir aussi noms des langages de programmation spécifiques, Code

SourceDépôt, cellule 116Soustraction, commande 42Spécial, boîte de dialogue 467Splines 35, 40Standard, barre d’outils 39Startup, dossier 506StartupPaths, propriété 487, 500State, propriété 436StatusBar, objet 444StatusBarItem, objet 439StatusBarItems, collection 285StatusBars, collection 285StencilPaths, propriété 487StrComp, fonction 506Style d’interaction, option 159Style de remplissage, zone 207Style de trait, zone 207Style du texte, zone 207Style, boîte de dialogue 207, 214Style, commande 206Style, objet

formules 341, 342Style, propriété 436StyleDévTraitLien, cellule 245StyleKeepFmt, propriété 334StylePositionForme, cellule 163, 170,

245Styles 207

Voir aussi Formatageattributs 206cohérence 213collection 286, 321conseils 209copie 209couleur 217création 208, 322dans le texte 206dans les gabarits 211, 213dans les modèles 28, 213définition 206, 215dénomination 214description 206gestion 205hérités 208

Page 606: MS Visio 2003 Guide du Développeur

592 I N D E X

identification 334modification 65, 207, 209par défaut 207pour les angles 104présentation 206propriété 321, 334remplissage 206suppression 213trait 206traits 206

Sub, procédure 300Subject, propriété 320SUCCEEDED, résultat 516Sujet d’un événement 411Superposition de formes 42Supprimer la ligne, commande 71Supprimer, action 315Surveillance de la consommation

électrique, exemple 22Symboles, bibliothèques 46Syntaxe des références de cellule 77SysFreeString 518, 519Système de sécurité, exemple 14, 30

TTableaux 361, 398

Voir aussi CollectionsTabulations

définition 465section 69, 182

Taille de police proportionnelle, option 190

Taille et position, fenêtre 100TargetArgs, propriété 427TemplatePaths, propriété 487, 501Test

aide relative aux formes 268dans la boîte de dialogue Ouvrir un

gabarit 336échelles de taille identique 264échelles des formes de base 263échelles différentes 265fenêtres sur différents systèmes 274formes 262, 266, 268formules personnalisées 261gabarits 272gabarits en lecture seule 273gestion des erreurs 502informations de la boîte de dialogue

Ouvrir un fichier 274

liste de contrôle de la cohérence 263modèles 274, 276modèles en lecture seule 276valeurs renvoyées 314vérification d’objets 314

Text, propriété 332, 396TextChanged, événement 407Texte

ajout 332attributs 181boîte de dialogue 181comportement 179conception 179dans les champs de données 333dans les groupes 185dimensionnement 188, 198formatage 181, 201formules 187, 188, 198, 203outil 185polices 182positionnement 183, 192protection 139redimensionnement 189, 191rotation 191, 192, 194sortie 200styles 206

Texte droit, formules 192, 194TextStyle, propriété 334TextStyleKeepFmt, propriété 334ThisDocument, objet 294, 299, 306, 309,

412, 413, 414Title, propriété 320ToCell, propriété 380ToolbarItems, collection 439Toolbars, collection 285ToolbarSet, objet 439, 444ToolbarSets, collection 285ToPart, propriété 380, 381, 382ToSheet, propriété 378, 379, 381, 382Tous les styles, liste 207Trait

boîte de dialogue 228outil 40

Trait 1D 159Transformation de la forme, section 69,

90, 92, 120, 188Voir aussi noms des cellules

spécifiquesTransformation de texte, section 69, 181Transistor, symbole 101

Transportables, dessins 16TSL, valeurs de couleur 219Type, propriété 328Types d’objet dans les bibliothèques 306Types de données 396Types, bibliothèques

Voir aussi Bibliothèques

UUIObject, objet

liste 432modification 443récupération 434

DissociationVoir aussi Groupes

Unidimensionnelles, formes. Voir Formes 1D

Unioncommande 42, 127méthode 366

Unique, IDVoir aussi ID globalement unique, ID

de formeUniqueID, propriété 328, 394, 395Unité d’annulation 473, 479, 480, 481,

482Unités angulaires 78Unités de dessin 78, 249, 250, 253Unités de mesure 72, 78, 79, 83, 235

Voir aussi ValeursUnités de mesure, paramétrage 253Unités de page 78, 79, 250Unités multidimensionnelles 79UnitSize, procédure 480UnitTypeCLSID, procédure 480UnitTypeLong, procédure 480UpdateUI, méthode 456URL du site Web de Visio 5USE, fonction 220Util.Message, cellule 83Utilisabilité

comportement des formes 260conception 26, 260conventions de noms 262échelles de dessin 251formes de base 262

Utilisateur, actions. Voir noms des actions spécifiques

Utilisateur, interfaceVoir aussi Interfaces, UIObject, objet

Page 607: MS Visio 2003 Guide du Développeur

I N D E X 593

Utiliser les paramètres du groupe, option 120

VV2LMSG_ENUMADDONS, message

526V2LMSG_ISAOENABLED, message

528V2LMSG_KILLSESSION, message 530V2LMSG_RUN, message 529Valeur 128 bits 393Valeur, cellule 344, 393Valeurs

Voir aussi Formules, Numérosangle 71, 199booléennes 72, 396cellules ObjType 162conséquence de la rotation 100conséquences du retournement 99déclaration de variables 289modification 70renvoyées 289, 314renvoyées par les méthodes Visio 516unités multidimensionnelles 79

Vannes, formes 167Vao.h 527VAO_ENABLEALWAYS 527VAO_ENABLEDYNAMIC 528VAO_INVOKE_LAUNCH 528VAO_NEEDSDOC 528vaoGetObject, fonction 499, 516

Voir aussi GetObject, fonctionvaoGetObjectWrap, fonction 512, 516VAOREGSTRUCT 528VAOUtil_DefVisMainProc 526VAOUtil_SendEndSession 530VAOV2LSTRUCT 529Variable

objets 287Variable objet 289Variable, grilles

Voir aussi GrillesVariables

Voir aussi noms des variables d’objet spécifiques

au niveau du module 284déclaration 300définition 400description des objets 283doubles 346, 396

formules pour les blocs de texte 187globales 284grilles 233locales 300non valides 287objets 287, 415, 416statiques 300type de données 289

VARIANT, arguments 519Variant, type de données dans Visual

Basic 289VBA. Voir Visual Basic pour

ApplicationsVDLLmain.c 526Vecteurs différents de zéro 173Vectoriels, graphiques 44VerrCalcLH, cellule 108, 123, 137VerrDéplacX et VerrDéplacY, cellules 94VerrFormat, cellule 104, 126, 203, 216VerrGroupe, cellule 116VerrHauteur, cellule 120, 165VerrLargeur, cellule 112, 120VerrModifTexte, cellule 203VerrModifTexte, commande 141, 142VerrModifVtx, cellule 165Verrouillage

Voir aussi GUARD, fonction, Protection

cellules 94comportement des formes 111format des groupes 126formatage des formes 126formes 94, 102pour une caractéristique de forme

112projet 316texte 139

Verrouiller le projet pour l’affichage, option 316

Verrouiller le texte, commande 139, 141, 142

VerrPivoter, cellule 94, 102Virgule 497visActCodeRunAddon, constante 423visBegin, constante 379visCentimeters, constante 346visConnectionPoint, constante 379, 380Visconst.bas 303visControlPoint, constante 379, 380visDeselect, constante 365

visDrawingUnits, constante 346visEnd, constante 379visError, constante 499VisEventProc, méthode 425, 427, 521visEvtAdd, constante 420, 421, 422visEvtIDMostRecent, constante 422visEvtPage, constante 421visEvtShape, constante 421visFieldCodes, constante 333visGetGUID, constante 328, 394visGuideX et visGuide Y, constantes 379Visio Automation, Référence 3Visio Developer Forum 5Visio, bibliothèques (.vsl)

Voir aussi BibliothèquesVisio, modèle d’objet 279Visio, site Web 5Visio.h 512, 516VisioLibMain, fonction 526Visiwrap.h 512visLayerName, constante 374visLayerVisible, constante 374visLeftEdge, constante 379visOK, constante 499visPageUnits, constante 346Visreg.bas 353visRightEdge, constante 379visRowVertex, constante 353visSectionCharacter, constante 350, 353visSectionFirstComponent, constante

351visSectionLastComponent, constante

351visSectionObj, constante 353visSectionParagraph, constante 350, 353visSectionTab, constante 350, 353visSectionTextField, constante 350, 353visSelect, constante 365visTagArcTo, constante 350, 352visTagComponent, constante 350, 352visTagEllipse, constante 350, 352visTagEllipticalArcTo, constante 350,

352visTagInfiniteLine, constante 350, 352visTagLineTo, constante 349, 350, 352visTagMoveTo, constante 350, 352visTagNURBSTo, constante 350, 352visTagPolylineTo, constante 350, 352visTagSplineBeg, constante 350, 352visTagSplineSpan, constante 350, 352

Page 608: MS Visio 2003 Guide du Développeur

594 I N D E X

visTypeDoc, constante 328visTypeForeignObject, constante 328visTypeGroup, constante 328visTypePage, constante 328visTypeShape, constante 328Visual Basic

Voir aussi noms des objets spécifiquescontrôles 469données Variant 289fonctions Error 314gestion des erreurs 502libération d’objets 287migration 507objets récepteur 426protection du code 316rapports de dépassement 421rédaction de code pour des

événements 411Visual Basic IDE 293Visual Basic pour Applications (VBA)

Voir aussi noms des fonctions spécifiques

code pour les événements 411comparaison par rapport à

Automation 20création de projets 298développement 293diffusion du code 28, 492environnement 294exécution d’occurrences 306exécution du code 311exportation de fichiers 302finalisation du projet 315gestion 315gestion des événements 409Gestionnaire de compléments 316importation de fichiers 302insertion d’objets personnalisés 299macros 31migration depuis Visual Basic 507modules de classe 294objets récepteur 426personnalisation 295rapports de dépassement 421rédaction 495utilisation

explorateur d’objets 304visUIObjSetIcon, constante 444visUIObjSetinPlace, constante 444

visUIObjSetNoDocument, constante 444

visUIObjSetPrintPreview, constante 444visUIObjSetShapeSheet, constante 444visUIObjSetStencil, constante 444VLIBUTL_hModule 526Volet des détails, utilisation 303VSD 61VSL 31, 297, 487, 524, 525, 526, 529

Voir aussi Fichiers de dessin, Bibliothèques

VSS 52, 61, 297, 487Voir aussi Bibliothèques, Gabarits

VST 57, 61, 297, 487Voir aussi Modèles

VSU 432, 458VSW 61

Voir aussi Espace de travail, listesVVariant, classe d’aide 512, 519

WWhile, boucles. Voir Count, propriétéWindow, objet 282, 319, 335, 364, 365WindowHandle32, propriété 500Windows DLL 31WindowsHandle32, propriété 525WinHelp (fichiers .hlp) 266WithEvents (mot-clé VBA) 409, 411,

415Wrapper, classes 512

XX et Y, cellules 97X, Y coordonnées 175

Voir aussi CoordonnéesX, Y, coordonnées 89, 106, 110

ZZone de texte, contrôle 301Zone largeur/hauteur 180Zones d’alignement

personnalisation 226