|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
![]() ![]() Inscription : septembre 2003 Messages : 4 300 ![]() |
Bonjour à tous,
Je vous propose un module pour afficher des images dans un formulaire continu avec les versions antérieures à partir de Access 2000. L'image reste stockée à l'extérieur de la base de données. Pas de problème donc de taille de base de données. Ne fonctionne pas avec Access 97.J'ai testé ce module avec Access 2003, Windows XP. edit : et Access 2007 Windows 7 1 - Téléchargez ce module et importez-le dans votre projet VBA : ftp://ftp-developpez.com/arkham46/fi...odImageOLE.bas Mirroir HTTP ALT-F11 pour ouvrir l'éditeur VBA puis Fichier => Importer un fichier... (ou faites glisser le fichier dans l'explorateur) 1 bis - Si vous souhaitez utiliser les miniatures exif des photos (plus rapide) ou des images png ou gif avec transparence, utilisez ce module : ftp://ftp-developpez.com/arkham46/fi...ageOLEPlus.bas Mirroir HTTP Pour ce module 1 bis, gdiplus.dll est requis (à mettre dans le répertoire de l'application si nécessaire) 2 - Déposez ensuite un cadre d'objet dépendant sur votre formulaire continu. Nommez par exemple ce contrôle OleImg La propriété source contrôle de ce cadre d'objet est de cette forme : - Pour une utilisation du module ModImageOLE : Code :
=ImageToOLE([chemin];[OleImg];Vrai;Vrai) Code :
=ImageToOLEPlus([chemin];[OleImg];Vrai;Vrai) - pFile : un chemin de fichier complet (ici le champ "chemin" de la table source du formulaire) - pCtrlResize : le contrôle (ici OleImg) qui servira à redimensionner l'image - pCenter : Mettre à Vrai pour centrer l'image (sinon elle est affichée en haut à gauche) - pRepaintForm : Mettre à Vrai pour raffraichir le formulaire après chaque chargement d'image Si l'image est plus grande que le contrôle, elle est redimensionnée (même en mode découpage). Cela permet d'accélérer l'affichage qui sinon peut devenir très lent. Un exemple d'utilisation : ftp://ftp-developpez.com/arkham46/fi...e/imageole.zip Mirroir HTTP A l'ouverture, le formulaire remplit une table avec le chemin des images contenues dans le sous-dossier Images. L'exemple montre également l'utilisation de fonctions personnalisées (ImageToOLECustom et ImageToOLEPlusCustom dans chacun des formulaires de démo) pour afficher une image en cas de fichier incorrect ou inexistant. Pour les curieux : - le module charge l'image avec LoadPicture - l'image est convertie en 24 bits (sinon je galère avec les palettes de couleurs ) et redimensionnée pour accélérer l'affichage- puis elle est encapsulée dans un objet OLE de type DIB (device independant bitmap). - Vous trouverez en en-tête du module le lien vers les docs msdn pour l'OLE. (C'est plutôt indigeste...) N'hésitez pas à faire part de vos remarques et retour d'expérience.
__________________
Assistant de création/modification de rubans Office Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL Blog Office Mon Site DVP |
|
|
30
|
|
|
#2 | |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 242 ![]() |
Bonjour Arkham46,
Citation:
Merci pour cette contribution.
__________________
Amoureuse/amoureux de la langue française ? Vous pouvez nous aider à corriger nos ressources ! |
|
|
|
00
|
|
|
#3 |
![]() ![]() |
Salut
Juste une chose à dire ![]() Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon ![]() Si vous pensez commencer sans un livre, oublier : livres pour débuter Vous pouvez consulter mes articles sur Access et PowerPoint Le blog Office. Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas. |
|
|
00
|
|
|
#4 |
![]() ![]() Denis Développeur informatique Inscription : août 2004 Messages : 3 204 ![]() |
Très intéressant,
J'ai testé avec Access 2003 et Windows 7 (et oui ça fonctionne
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp. Bon développement ! Mes tutoriels et contributions sur ma page perso: Ma page personnelle |
|
00
|
|
|
#5 |
![]() ![]() Inscription : septembre 2003 Messages : 4 300 ![]() |
Merci pour vos retours.
Il ne manque plus que des tests sur Access 97 ([edit] : tests KO) et Office 2010 (64 bits?). J'ai quand même testé avec des grandes images (prises par appareil photo 12Mp je crois), c'est un peu lent mais ce n'est pas étonnant vu le poids des images. Pour rappel pour Access 2007 et 2010, si vous n'avez pas besoin de compatibilité descendante : Access 2007 par l'exemple : Intégration d'images dans les Formulaires Continus
__________________
Assistant de création/modification de rubans Office Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL Blog Office Mon Site DVP |
|
|
00
|
|
|
#6 |
![]() ![]() Inscription : septembre 2003 Messages : 4 300 ![]() |
bjr,
Modif sur le module ModImageOLE : - passage de pImgCtrl en optionnel - ajout de 4 bytes pour le checksum (non calculé) en fin d'objet OLE car petit soucis sinon dans de très rares cas Nouveau module ModImageOLEPlus qui utilise gdiplus.dll au lieu de gdi32.dll : - Lit les images PNG et ICO - Applique la transparence des images PNG, ICO et GIF (sur contrôle ou formulaire avec fond uni uniquement) - Utilise les miniatures Exif des photos pour un affichage plus rapide - Peut nécessiter la librairire gdiplus.dll en fonction du système d'exploitation (win 2000 notamment) Ajout dans la démo de fonctions personnalisées (ImageToOLECustom et ImageToOLEPlusCustom dans chacun des formulaires de démo) pour exemple d'affichage d'une image en cas de fichier incorrect ou inexistant. Bilan des tests Access 97 (merci Claude) => ça ne semble pas fonctionner avec cette version. Cela reste utile pour Access 2000, 2002 et 2003 et c'est déjà pas mal.
__________________
Assistant de création/modification de rubans Office Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL Blog Office Mon Site DVP |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com