rub an images

Download Rub an Images

Post on 12-Jul-2015

57 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

Gestion des images dans le ruban Access

par Thierry GASPERMENT (arkham46.developpez.com/)Date de publication : 25/09/09 Dernire mise jour : 15/09/09

Dcouvrir les diffrentes possibilits de gestion des images du ruban Access. Intgrer les images votre application. Utiliser des images transparentes.

Gestion des images dans le ruban Access par Thierry GASPERMENT (arkham46.developpez.com/)

I - Introduction..............................................................................................................................................................3 II - Contrles de ruban utilisant des images............................................................................................................... 3 III - Utilisation d'une image standard : attribut ImageMso...........................................................................................3 IV - Chargement initial : callback loadImage...............................................................................................................5 V - Chargement la demande : callback getImage................................................................................................... 6 VI - Image dynamique sur un bouton bascule............................................................................................................ 8 VII - Intgrer les images l'application : utilisation d'un champ pice-jointe............................................................ 10 VIII - Utilisation de GdiPlus : transparence des images et format png..................................................................... 12 VIII-A - Chargement de fichiers image avec transparence..................................................................................12 VIII-B - Chargement d'image avec transparence depuis un champ pice-jointe................................................. 13 IX - Transparence des images et format ico.............................................................................................................14 IX-A - Chargement de fichiers icnes avec transparence................................................................................... 14 IX-B - Chargement d'icnes avec transparence depuis un champ pice-jointe.................................................. 15 X - Conclusion........................................................................................................................................................... 16 XI - Les tlchargements.......................................................................................................................................... 16

-2Les sources prsentes sur cette pages sont libre de droits, et vous pouvez les utiliser votre convenance. Par contre cette page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 - Thierry GASPERMENT. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts. Droits de diffusion permanents accords developpez LLC.

Gestion des images dans le ruban Access par Thierry GASPERMENT (arkham46.developpez.com/)

I - IntroductionDans la version 2007 d'Office, les barres de menus ont t remplaces par le ruban. La programmation de ce ruban se fait en XML. Les images affiches sur les contrles du ruban peuvent tre soit : - des images standards intgres Office. - des images personnalises. Nous allons voir les diffrentes techniques pour grer ces images. Pour crer plus facilement le XML de vos rubans, utilisez l'assistant ruban. Pour mieux comprendre la programmation des rubans, consultez ces tutoriels : - Programmez et personnalisez le ruban de vos applications Access 2007. - La personnalisation du ruban sous Excel 2007. - Personnalisation du ruban: Les fonctions d'appel CallBacks. - Comment personnaliser le Ruban de Word 2007.

II - Contrles de ruban utilisant des imagesLes types de contrles du ruban qui affichent une image sont : Type de contrle Description

button comboBox dropDown

dynamicMenu editBox gallery group toggleButton

Bouton. Liste droulante avec une zone de texte d'dition. Liste droulante sans zone de texte d'dition. Menu dynamique Zone de texte d'dition. Galerie de contrles. Groupe contenant les contrles. Bouton bascule.

III - Utilisation d'une image standard : attribut ImageMsoDe nombreuses images standards sont disponibles : elles sont installes avec Office. Pour utiliser une de ces images, dfinissez tout simplement l'attribut XML imageMso du contrle.

-3Les sources prsentes sur cette pages sont libre de droits, et vous pouvez les utiliser votre convenance. Par contre cette page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 - Thierry GASPERMENT. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts. Droits de diffusion permanents accords developpez LLC.

Gestion des images dans le ruban Access par Thierry GASPERMENT (arkham46.developpez.com/)

La liste des valeurs possibles pour imageMso est disponible dans un fichier Excel sur le site de microsoft : Liste des imageMso. Notez qu'il est galement possible d'utiliser une des valeurs de l'attribut idMso proposes dans la Liste des idMso. Voici un exemple de code XML utilisant l'attribut imageMso : Utilisation de imageMso

Ce code XML suffit afficher les images. Aucun code VBA n'est ncessaire. Voici le ruban obtenu :

-4Les sources prsentes sur cette pages sont libre de droits, et vous pouvez les utiliser votre convenance. Par contre cette page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 - Thierry GASPERMENT. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts. Droits de diffusion permanents accords developpez LLC.

Gestion des images dans le ruban Access par Thierry GASPERMENT (arkham46.developpez.com/)

Utilisez l'assistant ruban pour trouver plus facilement l'imageMso dont vous avez besoin.

IV - Chargement initial : callback loadImageUn callback est un appel une procdure VBA. Si vous ne savez pas comment fonctionnent les callback, je vous invite consulter les tutoriels cits en introduction. loadImage est un callback associ l'lment CustomUI. La procdure ainsi dfinie sera excute une seule fois pour chaque contrle dont l'attribut image est renseign. Elle sera ignore en cours d'utilisation de l'application, mme aprs un appel Invalidate ou InvalidateControl.

Cette attribut loadImage ne peut donc pas tre utilis pour des images dynamiques qui doivent changer en fonction d'vnements dans la base de donnes. Voici le dbut du code XML d'un ruban utilisant l'attribut loadImage : Attribut loadImage

La procdure VBA Ribbon_loadImage sera excute au premier affichage de chaque contrle de ruban dont l'attribut image est renseign. Voici comment l'crire : Procdure Ribbon_loadImageSub Ribbon_loadImage(imageId As String, ByRef image) End Sub

La procdure nous envoie un paramtre imageId : c'est en fait la valeur de l'attribut image de l'lment dont l'image doit tre charge. En retour, on doit modifier le paramtre image qui attend un objet de type IPictureDisp. Un objet de type IPictureDisp peut tre simplement cr avec la fonction VBA LoadPicture. Voici un exemple de code XML utilisant l'attribut loadImage :-5Les sources prsentes sur cette pages sont libre de droits, et vous pouvez les utiliser votre convenance. Par contre cette page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 - Thierry GASPERMENT. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts. Droits de diffusion permanents accords developpez LLC.

Gestion des images dans le ruban Access par Thierry GASPERMENT (arkham46.developpez.com/)

Utilisation de loadImage

Avec, dans un module VBA, le code de la fonction de chargement des images : Procdure de chargement des imagesSub Ribbon_loadImage(imageId As String, ByRef image) Set image = LoadPicture(CurrentProject.Path & "\images\" & imageId) End Sub

Notez que dans cet exemple, les images sont des fichiers stocks dans un sous-rpertoire nomm images. Voici le ruban obtenu :

La transparence des images n'a pas t conserve (les images gif utilises sont des images avec transparence). Nous verrons plus loin dans cet article comment conserver la transparence des images charges.

V - Chargement la demande : callback getImagegetImage est un callback associ aux lments qui affichent une image. Pour des listes ou galeries, on trouve galement le callback getItemImage. La procdure ainsi dfinie sera excute pour chaque contrle : - Au premier affichage du contrle. - Aprs un appel Invalidate ou InvalidateControl.

-6Les sources prsentes sur cette pages sont libre de droits, et vous pouvez les utiliser votre convenance. Par contre cette page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'au