Bonjour,
Je recherche des infos pour la modification d'une image dans un TImageList.
Pour récupérer l'image on a la méthode GetBitmap, mais pour la modifier ou la remplacer ?
Est-ce possible ?
Merci d'avance.
Version imprimable
Bonjour,
Je recherche des infos pour la modification d'une image dans un TImageList.
Pour récupérer l'image on a la méthode GetBitmap, mais pour la modifier ou la remplacer ?
Est-ce possible ?
Merci d'avance.
Sauf erreur de ma part, je ne pense pas qu'il soit possible de modifier directement l'imgae dans le TImageList.
Donc il te faut récupérer l'image, la modifier image, supprimer l'ancienne et rajouter la nouvelle.
Ok, je te remercie de ta réponse donc ma solution devrait ressembler à çà :
en admettant que mon image soit l'index 2 du TImageList :
Ensuite pour l'ajout d'un bmp, il y a bien la méthode "Add", mais est-il possible de lui conserver le même indice ?Code:
1
2
3
4
5
6 //récupération de l'image dans une variable ImageList1.GetBitmap(2, tmpbitmap); //modification du bmp tmpbitmap.canevas. etc.... //Suppression de l'image ImageList1.Delete(2);
Utilise la méthode Insert au lieu de Add, tu pourras lui préciser l'index de ton choix.Citation:
Envoyé par Leesox
@+ Claudius
Ok, çà marche, je n'avais pas remarqué cette méthode.
Merci à vous deux.
Je reviens sur mon post, car j'ai un petit soucis.
J'ai dans ma liste d'images, j'ai une dixaine de bitmap tous de même dimensions (carré) et tous d'une couleur différentes.
Après ce code
J'ai deux questions :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 try tmpBitmap := TBitmap.Create; with DM.imgListeTypes do begin GetBitmap(0, tmpBitmap); ARect:=Rect(0,0,tmpBitmap.Width,tmpBitmap.Height); tmpBitmap.Canvas.Brush.Color:= sltTRouge.SelectedColor; tmpBitmap.Canvas.FillRect(ARect); //tmpBitmap.Canvas.Rectangle(0,0,24,24); Delete(0); Insert(0, tmpBitmap, tmpBitmap); end; finally tmpBitmap.Free; end;
1/ L'image retournée est toujours de couleur noire, pourquoi ?
2/ L'image n'est pas sauvegardée dans la liste à la fermeture du programme, pourquoi ?
PS. Je ne sais pas trop quoi mettre dans le mask de la méthode Insert.
Merci
J'ai réussis à résoudre ce problème, il faut affecter un autre bitmap d'une autre couleur sur le mask de la méthode insert. Ce doit être la couleur transparente.Citation:
1/ L'image retournée est toujours de couleur noire, pourquoi ?
Par contre, je n'arrive pas à conserver les changements dans la liste d'images.
Ben pour ça il te faut l'enregistrer/recharger dans un fichier à la fermeture/chargement de ton programme. Il n'y a pas 36 solutions ;)Citation:
Envoyé par Leesox
Ok, merci.
J'avais pensé à cette solution, mais je pensais aussi qu'il y en aurait une autre. Ben tant pis.
J'enregistre mes TColor et je les recharge dans ma liste d'images au démarrage.