Salut à tous,
Si vous êtes intéressés par la manipulation des images dans access la suite devrait vous intéresser...
Ca fait un mois que j'y travaille et j'ai enfin une classe qui tient la route...
Mon but était au départ de comprendre les API gdi et ça c'est finalement transformé en une classe qui permet d'ajouter moultes fonctionnalités au contôle image d'access.
Merci d'abord à Cafeine pour son tuto "AccessPaint" qui a été la base de départ de mon travail sur cette classe!
Avant d'aller plus loin j'aimerais avoir vos avis sur cette classe, pour ensuite la diffuser et écrire des tutoriaux si le besoin est là.
Pour vous donner une idée j'ai fais quelques exemples :
1 - Une carte de france avec les départements qui se colorient au passage de la souris et que l'on peut sélectionner en cliquant dessus
2 - Une horloge analogique dont l'heure change quand on tire sur les aiguilles avec la souris (très fun..)
2 - Un organigramme dessiné dynamiquement en fonction des données d'une table (ici aussi on peut cliquer sur chacun des membres de l'organigramme)
Les fonctionnalitées en bref :
- - On peut avoir en entrée du jpeg/gif/bmp (les images ne sont pas intégrées, on les ouvre en donnant le chemin du fichier) et en sortie on peut sauvegarder l'image en bmp.
- On peut changer une couleur pour donner un effet de transparence : par exemple sur la carte de France on a sur l'image d'origine un fond gris horrible qui est remplacé par la couleur de fond du formulaire.
- On peut définir des regions par rectangle, ellipse ou polygone : une fonction permet ensuite de savoir sur quelle region est positionnée la souris, on peut colorier chaque région, la hachurer, l'encadrer.
- On peut dessiner des ellipses, des lignes, ..., et écrire du texte.
- Et on peut gérer des listes d'images
Et tout ça sans dll ou ocx, que de la magie! ... et beaucoup d'API.
La classe est développée sur Access 2000 et est compatible Access 97.
J'utilise windows XP alors pour 98 je sais pas?
Accessoirement ça marche aussi sur un formulaire en mode création; on peut ainsi extraire les images d'une vieille base dont on a perdu les fichiers images d'origine, ou extraire les images des boutons standards si on les trouve jolis et qu'on veut les conserver....
L'image n'est pas "simplement" dessinée sur le formulaire mais dessinée en mémoire et transférée dans le contrôle. L'image est donc persistante et reste affichée si on change d'application et qu'on revient sur access ensuite.
Nul besoin d'être expert vb pour utiliser la classe, il suffit de la coller dans un module, de la déclarer dans le formulaire et de définir le contrôle sur lequel on veut dessiner.
Ensuite c'est assez simple :
Climg.DessRectangle 1000,1000,3000,3000
pour dessiner un rectangle
sRegion = Climg.GetMouseRegion(X, Y)
pour lire la region sous le curseur de la souris
etc ....
Si vous êtes intéressés et si vous voulez m'aider je vous donne le lien vers la base exemple et une mini documentation des fonctions.
J'aimerais bien qu'un regard nouveau se pose sur ma classe (surtout au niveau utilisateur de la classe, pas pour aller décortiquer mon code...) parce que là j'ai la tête dans le guidon et je ne vois certainement tout.
J'attend tous vos commentaires et critiques, et l'intérêt que vous y trouveriez à pouvoir librement dessiner dans un contrôle image que je sache si je laisse mon projet au stade d'expérience de savant fou ou si je documente tout ça pour le diffuser!
Merci, à plus.
Partager