Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2829 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [DELPHI] Image dans une listbox...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[DELPHI] Image dans une listbox...

n°2163360
davidmarli
Posté le 10-11-2012 à 14:07:37  profilanswer
 

Bonjour,
 
j'ai un "soucis" que je n'arrive pas à résoudre.
Voilà ce que j'ai pour l'instant :  
Je récupère des images en jpg (affiches de films)  que je stocke dans un répertoire (admettons c:\tempimages). Ces images n'ont pas forcément les mêmes dimensions.
 
Je voudrais mettre ces images dans un listbox (à côté de chaque image, je mettrais un peu de texte).
Seulement je ne sais pas comment faire.  
 
J'ai un programme dans lequel je fais à peu près la même chose MAIS j'ai une imagelist remplie au préalable. (je passe par mesureitem ondrawitem ou quelque chose comme cela.) Donc làpas de pb.
 
Le pb c'est qu'ici : je ne sais pas à l'avance combien d'images je vais avoir (de 1 à 100 suivant les requêtes) ni même les dimensions de ces images.
 
Voilà, si quelqu'un sait comment s'y prendre je l'en serait grandement reconnaissant.
 
Merci pour votre aide.

mood
Publicité
Posté le 10-11-2012 à 14:07:37  profilanswer
 

n°2164421
HERIBERT
Posté le 17-11-2012 à 16:47:31  profilanswer
 

davidmarli a écrit :

Bonjour,
 
j'ai un "soucis" que je n'arrive pas à résoudre.
Voilà ce que j'ai pour l'instant :  
Je récupère des images en jpg (affiches de films)  que je stocke dans un répertoire (admettons c:\tempimages). Ces images n'ont pas forcément les mêmes dimensions.
 
Je voudrais mettre ces images dans un listbox (à côté de chaque image, je mettrais un peu de texte).
Seulement je ne sais pas comment faire.  
 
J'ai un programme dans lequel je fais à peu près la même chose MAIS j'ai une imagelist remplie au préalable. (je passe par mesureitem ondrawitem ou quelque chose comme cela.) Donc làpas de pb.
 
Le pb c'est qu'ici : je ne sais pas à l'avance combien d'images je vais avoir (de 1 à 100 suivant les requêtes) ni même les dimensions de ces images.
 
Voilà, si quelqu'un sait comment s'y prendre je l'en serait grandement reconnaissant.
 
Merci pour votre aide.


 
Peut-être en listant les noms des fichiers images dans un Memo ou  ListBox, et répondre à un clic en affichant l'image dans une Form ? Laquelle disparaît qd on appui sur une bouton : 'OK'. Et tu reviens à ta liste.  
 
Mais une liste d'images, visualisables si j'ai bien compris, là, ça me dépasse :heink:

n°2164427
davidmarli
Posté le 17-11-2012 à 18:10:54  profilanswer
 

Merci, entre temps j'avais la solution sur un forum.  
J'arrive bien à afficher les images dans ma listbox.

n°2164441
HERIBERT
Posté le 17-11-2012 à 20:15:21  profilanswer
 

davidmarli a écrit :

Merci, entre temps j'avais la solution sur un forum.  
J'arrive bien à afficher les images dans ma listbox.


Si tu peux donner le lien,  sans indiscrétion ? Ca m'intéresse ;)

n°2168977
davidmarli
Posté le 21-12-2012 à 23:04:50  profilanswer
 

Bonjour,
 
avec bp de retard, voici ce que j'ai mis dans le listboxdrawitem :  
 

Citation :

procedure TFormSearch.CheckListBox1DrawItem(Control: TWinControl;
  Index: Integer; Rect: TRect; State: TOwnerDrawState);
var monimage:Tbitmap;
jpeg: TJpegImage;
 R: TRect;
 tabs:array [1..10] of string;
 ste,ste2,cas:string;
 nblignes,i,nbcaract,maxcast:integer;
begin
with (Control as TCheckListBox).Canvas do
  begin
    monimage:=tbitmap.Create;
    jpeg := TJpegImage.Create;
    if form1.mov[index].tmdb.image='Non disponible' then
    begin
     //form1.mov[index].image:=extractfilepath(application.exename)+'photo_non_disponible.jpg';
     jpeg.LoadFromFile(extractfilepath(application.exename)+'photo_non_disponible.jpg');
    end
    else
    if fileexists(extractfilepath(application.ExeName)+'tmpimages\'+form1.mov[index].tmdb.code_id+'.jpg') then
    begin
     jpeg.LoadFromFile(extractfilepath(application.ExeName)+'tmpimages\'+form1.mov[index].tmdb.code_id+'.jpg');
    end;
 
  //  if form1.mov[index+1].poster=extractfilepath(application.exename)+'photo_non_disponible.jpg' then  jpeg.LoadFromFile(extractfilepath(application.exename)+'photo_non_disponible.jpg');
 
     monimage.Assign(jpeg);
     FillRect(Rect);
     //monimage.LoadFromFile();
     if monimage<>nil then
     begin
        R:=Bounds(
        Rect.Left+2,
        Rect.Top+2,
        Rect.Bottom-Rect.Top-2,
        Rect.Bottom-Rect.top-2);
        StretchDraw(R,monimage);
    end;
 
   Checklistbox1.canvas.Font.Size:=14;
   Checklistbox1.Canvas.Font.Style := Checklistbox1.Canvas.Font.Style + [fsBold];
   TextOut(Rect.left+200,Rect.Top+5,form1.mov[index].tmdb.nom);
   Checklistbox1.canvas.Font.Size:=11;
 
   Checklistbox1.Canvas.Font.Style := checklistbox1.Canvas.Font.Style - [fsBold];
 
   Textout(Rect.left+200,Rect.TOP+5+25,'Année : '+form1.mov[index].tmdb.release_date);
    Checklistbox1.canvas.Font.Size:=8;
 
   Checklistbox1.Canvas.Font.Style := checklistbox1.Canvas.Font.Style - [fsBold];
   cas:='';
   maxcast:=0;
   if form1.mov[index].tmdb.nbcast=0 then cas:='Pas trouvé'
   else if form1.mov[index].tmdb.nbcast>4 then maxcast:=5
        else maxcast:=form1.mov[index].tmdb.nbcast;
 
 
   if maxcast=1 then cas:=form1.mov[index].tmdb.casts[1].nom
   else
   if maxcast>1 then
 
   begin
    for i:=1 to maxcast-1 do cas:=cas+form1.mov[index].tmdb.casts[i].nom+' - ';
    cas:=cas+form1.mov[index].tmdb.casts[i+1].nom;
   end
   else cas:='';
   Textout(Rect.left+200,Rect.TOP+5+45,'Avec : '+cas);
   Checklistbox1.canvas.Font.Size:=8;
   ste:=form1.mov[index].tmdb.resume+form1.mov[index].tmdb.code_id;
   nbcaract:=100;
   nblignes:=length(ste) div nbcaract;
   for i:=1 to nblignes do
   begin
    ste2:=copy(ste,nbcaract*(i-1)+1,nbcaract);
    Textout(Rect.left+200,Rect.TOP+15*i+55,ste2);
   end;
   if  length(ste) mod nbcaract>0 then
   begin
    ste2:=copy(ste,nbcaract*nblignes+1,length(ste) mod nbcaract);
    Textout(Rect.left+200,Rect.TOP+15*(nblignes+1)+55,ste2);
   end;
 
   //Textout(Rect.Left+140,Rect.TOP+5+50,);
   //Textout(Rect.Left+140,Rect.TOP+5+50,form1.mov[index+1].liste_acteurs);
 
   monimage.Free;
   jpeg.Free;
  end;// monimage.free;
 
end;


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [DELPHI] Image dans une listbox...

 

Sujets relatifs
Insérer TEXTE sur IMAGE dans SLIDESHOW (wordpress)image cliquable et modifiée partiellement au survol
[rapahel.js] background image dans un paper.path avec raphael?Défilement données ListBox
Soucis d'effet hover sur imageFlash - Chargement image via loader
[DELPHI] convertir une chaine hexadecimale en suite de bits ...Image adapté a un div et son contenu
[DELPHI] delphi ne veux plus faire une division ... 
Plus de sujets relatifs à : [DELPHI] Image dans une listbox...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR