Bonjour !
je voudrais savoirs si c'est possible d'afficher les fichiers d'un répertoire sous forme Thumbnails avec C++ builder ou API dans un ListeView .
Bonjour !
je voudrais savoirs si c'est possible d'afficher les fichiers d'un répertoire sous forme Thumbnails avec C++ builder ou API dans un ListeView .
Oui, c'est possible.
C'est tout simplement l'Image List assignée au List Control qui définie la taille des vignettes.
Il y a alors 2 techniques pour afficher les vignettes:
- les assigner dans l'Image List et c'est le ListView qui se charge de l'affichage.
- Implémenter le Custom Draw du ListView et dessiner les images soit-même
Je préfère la 2ème solution car l'inconvénient de L'image List est qu'elle n'accepte que des images de taille identique, et pas mal d'autres limites: résolution, mémoire, retaillage des images, etc....
Cependant mes essais avec CBuilder 5 ont montrés que le ListView de la VCL avait tendance à avoir beaucoup de flicker avec des images et je n'ai pas poursuivi dans cette direction (mais J'utilise encore la technique décrite ci-dessus avec Visual Studio).
C'étais il y a longtemps et peut-être que en programmant mieux le Custom Draw on peut réduire le flicker ?
Peut-être aussi que les versions plus récentes de CB sont plus otpimisées.
Autre problème de la VCL (CB5) le Custom Draw n'est pas complet. On ne peut pas controler toutes les étapes ni les valeurs de retour (DefaultDraw comme valeur de retour c'est insuffisant).
Mais il suffit de dériver une classe héritée de TListView et traiter toi-même le message NM_CUSTOMDRAW pour s'en sortir.
Voilà pour ce qu'il y à faire selon moi.
Pour le Custom Draw c'est décrit en long en large et en travers sur le web, ce n'est pas très compliqué et même plutot sympa.
Yarp
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager