Bonjour,
j'ai chargé des images dans un TListView. Je voudrais afficher l'image sélectionner dans un TImage.
Pour ajouter des images : Add, mais pour en récupérer une ?
Merci
A+
Charly
Bonjour,
j'ai chargé des images dans un TListView. Je voudrais afficher l'image sélectionner dans un TImage.
Pour ajouter des images : Add, mais pour en récupérer une ?
Merci
A+
Charly
Mon site : http://lapaille.byethost24.com/index.htm
Tu veux dire ça MakeImageList pour afficher un dossier entier par exemple ?
Ce n'est que la correction d'un exemple Embarcadero pour un TButtonedEdit élargi à une TListView, après tout ce qui compte c'est la TImageList en réalité !
Pense que TImageList contient les images, pour récupérer une image au click je dirais un truc genre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ListView.LargeImages.GetImage(Item.ImageIndex, BMP); Image.Picture.Bitmap.Assign(BMP);
D'ailleurs un TWebBrowser peut aussi faire le job pour afficher les images d'un dossier avec une seule ligne de code à voir le même sujet ici soit un Navigate, une fois le Navigate Completed, en réalité, c'est une SysListView32 (celle d'explorateur Windows) que l'on peut manipuler et modifier.
Cela date de Windows 2000 et XP mais ça doit pouvoir encore fonctionner.
Tu peux voir pour utiliser un TShellListView si tes images sont sur le disque ou un TJvThumbNail aussi
Cela a été fait en D5 perso puis D6 pro pour la version TWebBrowser et en D7 pour la version TListView
![]()
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !![]()
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
Merci Shai,
GetImage n'existe pas chez moi. Pour récupérer la premiere image du ListView, j'ai essayé :
Mais j'ai une violation d'accès !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 procedure TForm2.Button3Click(Sender: TObject); var Bmp: TBitmap ; begin Bmp := TBitmap.Create; try ListView1.LargeImages.GetBitmap(0, BMP); Image1.Picture.Bitmap.Assign(BMP); finally Bmp.Free; end; end;
A+
Charly
Mon site : http://lapaille.byethost24.com/index.htm
Faudrait savoir où la violation d'accès !
Imaginons que tu as une ImageList1 et Image1
Mais depuis hier, je suppose que tu as résolu ton problème
Code : Sélectionner tout - Visualiser dans une fenêtre à part ImageList1.GetBitmap(0, Image1.Picture.Bitmap);
D'ailleurs, tu vas peut-être vouloir charger l'image d'origine et non la vignette, pour cela on manque d'info sur la sources des images.
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !![]()
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
Bonjour,
comme j'ai encore D7 d'installé j'ai utilisé ma machine à remonter le temps. (c'est là on l'on voit l'évolution du produit, je me demande comment j'ai pu travaillé toutes ces années avec D3-D7 sans péter un cable)
bref, ceci fonctionne, j'y ai mis bretelles et ceinture suite à ton message indiquant des violations d'accès
reste que ce n'est pas vraiment juste, car j'utilise itemindex de la liste et non l'imageindex de l'item
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 procedure TForm1.ListView1Click(Sender: TObject); var abitmap : Tbitmap; begin if assigned(listview1.LargeImages) AND (Listview1.ItemIndex>=0) // bretelles then begin abitmap:=tbitmap.Create; try Listview1.LargeImages.GetBitmap(listview1.ItemIndex,abitmap); if assigned(abitmap) // ceinture then image1.Picture.Bitmap.Assign(aBitmap); finally abitmap.Free; end; end; end;
[Edit] Grillé plus élégament par ShaiLeTroll
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
Merci à tous les 2, mais je vais tester tout ça. Mais je ne pourrai le faire que dans quelques jours
A+
Charly
Mon site : http://lapaille.byethost24.com/index.htm
Merci beaucoup, je garde la procedure de Serge qui fonctionne, mais avec SmallImages :
A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 { ======================================================================== } procedure TForm2.Button3Click(Sender: TObject); var abitmap : Tbitmap; begin if assigned(listview1.SmallImages) AND (Listview1.ItemIndex>=0) // bretelles then begin abitmap:=tbitmap.Create; try Listview1.SmallImages.GetBitmap(listview1.ItemIndex,abitmap); if assigned(abitmap) Then // ceinture image1.Picture.Bitmap.Assign(aBitmap); finally abitmap.Free; end; end; end; { ======================================================================== }
Charly
Mon site : http://lapaille.byethost24.com/index.htm
Partager