[R] Insertion d'icônes dans une liste

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
peuchere83
Niveau 5
Niveau 5
Messages : 169
Enregistré le : mer. 17 déc. 2008 10:50
Status : Hors ligne

[R] Insertion d'icônes dans une liste

#1

Message par peuchere83 »

Bonjour à tous,

je cherche à insérer des icônes dans une listview.
Pour cela j'utilise la fonction : "_GUIImageList_AddIcon ". Jusque là pas de problème.

Mes questions :
- Est il possible d'intégrer une icône que j'ai dessiné ? car dans l'exemple de la fonction, il est uniquement expliqué comment utiliser des images provenant du shel32.dll.
- Dans le cas ou je devrais utiliser ces icônes (du shell32) comment connaître l'index affecter à chaque image ?

Car j'ai la liste complète des images contenues (obtenue avec le logiciel "icon sushi") mais je 'arrive pas à trouver cet index.

Par avance merci.
Modifié en dernier par peuchere83 le ven. 29 oct. 2010 14:36, modifié 3 fois.
Tous biens que tu possèdes est un souci qui te retient.
Skippy est là pour t'enlever tous tes soucis.
Avatar du membre
Jerome
Niveau 9
Niveau 9
Messages : 661
Enregistré le : mar. 07 avr. 2009 08:35
Localisation : Picardie
Status : Hors ligne

Re: [..] Insertion d'icônes dans une liste

#2

Message par Jerome »

Coucou,


Tu auras ce que tu cherches probablement ici.

Sinon pour l'index :

Code : Tout sélectionner

GUICtrlGetHandle
?





Jérôme
Avatar du membre
peuchere83
Niveau 5
Niveau 5
Messages : 169
Enregistré le : mer. 17 déc. 2008 10:50
Status : Hors ligne

Re: [..] Insertion d'icônes dans une liste

#3

Message par peuchere83 »

Bonjour Jérôme et merci.

Le lien que tu m'as donné, c'est exactement ce que j'avais testé (en effet c ce qui semblait le plus logique).
J'ai peut-être alors un problème avec mon icône (taille, ...).

Par contre je me suis peut être mal exprimé ou alors je ne comprends pas ta 2ème réponse :
Voici un exemple de code utilisant les icônes du shell32 :

Code : Tout sélectionner

    ; Load images
    $hImage = _GUIImageList_Create(16, 16, 5, 3)
    _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 110)
    _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 131)
    _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 165)
    _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 168)
    _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 137)
    _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 146)
    _GUICtrlListView_SetImageList($listview, $hImage, 1)
C'est le dernier chiffre que je ne sais pas ou trouver (110, 131, 165, ...)

Merci.
Tous biens que tu possèdes est un souci qui te retient.
Skippy est là pour t'enlever tous tes soucis.
Avatar du membre
peuchere83
Niveau 5
Niveau 5
Messages : 169
Enregistré le : mer. 17 déc. 2008 10:50
Status : Hors ligne

Re: [..] Insertion d'icônes dans une liste

#4

Message par peuchere83 »

Par ailleurs, est il possible d'ajouter une icône seulement au SubItems et non pas sur l'Item parent ?

Car après plusieurs tests, ben j'y arrive pas :oops:


Par avance merci.
Tous biens que tu possèdes est un souci qui te retient.
Skippy est là pour t'enlever tous tes soucis.
Avatar du membre
Jerome
Niveau 9
Niveau 9
Messages : 661
Enregistré le : mar. 07 avr. 2009 08:35
Localisation : Picardie
Status : Hors ligne

Re: [..] Insertion d'icônes dans une liste

#5

Message par Jerome »

Coucou,

Pour les icônes de shell32, je te conseil de regarder ce lien, et plus particulièrement ce passage :
- Retrouver une icône :
En personnalisant votre système, vous vous apercevrez qu'il est possible de spécifier une image différente de celle qui est inscrite par défaut pour tel dossier système ou type de fichiers. Les fichiers système de Windows (.exe, .dll, etc. ) renferment une multitude d'icônes dont vous pouvez disposer à tout moment. Voici une manière simple de se repérer :
1) Avec le bouton droit de la souris, cliquez sur un des raccourcis présents sur le Bureau, puis sur la commande Propriétés.
2) Cliquez sur le bouton Changer d'icône...
3) Cliquez sur le bouton Parcourir... puis sélectionnez le fichier \WINDOWS\system32\shell32.dll.
Les icônes sont numérotées de gauche à droite et du haut vers le bas.

Pour la taille de tes icônes, c'est du 16*16 ou du 32*32, si tu veux être sur d'avoir tout le temps tes icones à porter de main, tu peux modifier le fichier shell32 pour y rajouter les dîtes icones, voir cette page.


Pour ta dernière question, j'ai pas saisit l'histoire des subitems ^^"

Bon courage ;)




Jérôme
Olive89
Niveau 1
Niveau 1
Messages : 10
Enregistré le : sam. 02 oct. 2010 15:26
Status : Hors ligne

Re: [..] Insertion d'icônes dans une liste

#6

Message par Olive89 »

Bonjour,

Il y a dans Autoit ce qu'il faut pour visionner les icônes avec "enumicons" qui est situé "C:\Program Files (x86)\AutoIt3\Examples\GUI\Advanced\enumicons.au3" si ça peut aider, il suffit de glisser la DLL dans l'inputbox et tous les icônes apparaissent numérotés comme ils se doit par "nom" ou en "ordinal", super pratique :D

A++
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Insertion d'icônes dans une liste

#7

Message par timmalos »

J'ai déjà eu votre problème et j'avais reussi, mais c'est dans un projet que je ne peux partager sur ce forum n'étant pas propriétaire du script (J'ai travaillé pour une société) je vais essayer d'eplucher mes scripts pour trouver ca, je vous tiens au courant.

EDIT : J'ai retrouvé la partie concernée, mais j'ai pas le temps de tout remettre d'aplomb. Je vous colle le code si ca peut vous aider:


D'abord il faut faire une liste d'image.
► Afficher le texte
Ensuite la creation de la ListView:
► Afficher le texte
Donc en lisant vite fait, en fait on cree pas de SubItem, que des Item, mais on gère l'indentation manuellement pour faire croire à des SubItems.

Ce qui peut donner :
► Afficher le texte
Avatar du membre
peuchere83
Niveau 5
Niveau 5
Messages : 169
Enregistré le : mer. 17 déc. 2008 10:50
Status : Hors ligne

Re: [..] Insertion d'icônes dans une liste

#8

Message par peuchere83 »

Merci à tous !!!! :D

@Olive89 : je ne connaissais pas "enumicons.au3" et donc je t'en remercie.
Petite remarque : il faut enlever 1 au numéro pour pouvoir utiliser la bonne icône (et ne pas tenir compte du signe moins)

@timmalos : très belle solution de "contournement", mais le but et ainsi atteint (j'aurais pu y penser je suis vraiment trop bête :oops: ). Encore merci !!

@Jerome : merci pour l'information. Par contre je préfere l'utilisation de enumicons.au3 (ce qui évite de compter la position de l'icône).
Par contre ton idée d'insérer mes icône dans le shell32.dll est très intéressante. Je vais regarder cela de plus près.

Bonne journée et merci pour votre partage de connaissance.
Modifié en dernier par peuchere83 le ven. 29 oct. 2010 09:36, modifié 1 fois.
Tous biens que tu possèdes est un souci qui te retient.
Skippy est là pour t'enlever tous tes soucis.
Avatar du membre
peuchere83
Niveau 5
Niveau 5
Messages : 169
Enregistré le : mer. 17 déc. 2008 10:50
Status : Hors ligne

Re: [R] Insertion d'icônes dans une liste

#9

Message par peuchere83 »

Petite rectification sur mon poste précédent :

@timmalos :
je viens de regarder plus attentivement ton code, et tu es dans le même cas que moi : ton 1er item récupère obligatoirement la 1ère image de la liste d'image. Or justement je souhaite que mon 1er item n'ait aucune icône.

Voici un morceau de ton code :
$iii = 0
_GUICtrlListView_AddItem($hListView, " Prochaine Mesure le " & Eval("scenario" & $i & "_next_date"), $iii)

Suite à mes tests, que ta variable $iii soit égale à 0 ou n'existe pas, dans tous les cas la première icône de ta liste d'image est attribuée.

C'est là ou je coince.

Par avance merci.
Tous biens que tu possèdes est un souci qui te retient.
Skippy est là pour t'enlever tous tes soucis.
Avatar du membre
Jerome
Niveau 9
Niveau 9
Messages : 661
Enregistré le : mar. 07 avr. 2009 08:35
Localisation : Picardie
Status : Hors ligne

Re: [..] Insertion d'icônes dans une liste

#10

Message par Jerome »

Coucou,

N'oublie pas la balise [R] dans le titre de ton premier message ;)




Jérôme
Avatar du membre
peuchere83
Niveau 5
Niveau 5
Messages : 169
Enregistré le : mer. 17 déc. 2008 10:50
Status : Hors ligne

Re: [..] Insertion d'icônes dans une liste

#11

Message par peuchere83 »

@jerome :

Je n'ai pas rajouté le "R" car en fait la solution de timmalos ne fonctionne pas : l'image est toujours inséré sur le 1er item et je ne le souhaite pas (voir mon poste précédent pour plus de détail).

Pour l'instant la seule solution que j'ai trouvé, c'est d'afficher une icône vide.
Tous biens que tu possèdes est un souci qui te retient.
Skippy est là pour t'enlever tous tes soucis.
Avatar du membre
Jerome
Niveau 9
Niveau 9
Messages : 661
Enregistré le : mar. 07 avr. 2009 08:35
Localisation : Picardie
Status : Hors ligne

Re: [..] Insertion d'icônes dans une liste

#12

Message par Jerome »

Re-Coucou,


C'est normal que sa ne fonctionne pas, la commande _GUICtrlListView_AddItem est la pour ajouter des items dans une liste view, les images sont à part. Le $iii correspond ici à la ligne/colonne de l'objet ajouter.


Pour les images, je pense que c'est plutôt : _GUICtrlListView_SetImageList($hListView, $hImage, 1)

Dans son code, il y a donc deux liste l'une à coté de l'autre, une imagelist et une listview.






Jérôme
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Insertion d'icônes dans une liste

#13

Message par timmalos »

@peuchere83

Je n'avais pas compris votre problème. Je croyais que vous souhaitiez differencier Item et SubItem. Pour ne pas afficher d'icone pour le premier Item, je pense que la seule solution est comme vous l'avez déjà pensé, un icône vide. Ca ne pause pas de problème en soit, et si ca vous convient je pense que cette solution est bonne.
C'est une des faiblesses d'Autoit, obliger la création d'une Liste d'icônes sans pouvoir affecter une icône directement à un Item.
Avatar du membre
peuchere83
Niveau 5
Niveau 5
Messages : 169
Enregistré le : mer. 17 déc. 2008 10:50
Status : Hors ligne

Re: [..] Insertion d'icônes dans une liste

#14

Message par peuchere83 »

Merci à vous deux.

Donc je ne suis pas fou !! ( :P )

Merci encore.
Tous biens que tu possèdes est un souci qui te retient.
Skippy est là pour t'enlever tous tes soucis.
Répondre