2010-08-02 6 views
9

J'ai créé une liste d'images avec 20 bitmap à l'intérieur et une valeur de liste déroulante de 1 à 20. Lorsque je sélectionne la liste déroulante, elle doit afficher le bitmap correspondant à l'index de la liste déroulante. Je suis confronté à un problème qui continue à montrer la même image lorsque je sélectionne la liste déroulante et l'image trop petite. Une idée pour réduire ce problème? et rendre l'image plus grande?Afficher les éléments de l'imagelist dans Timage

procedure TForm1.FormShow(Sender: TObject); 
var 
    i : integer; 
begin 
    for i:=0 to 20 do begin 
    cboIcon.Items.Add(inttostr(i)); 
    end; 
end; 

procedure TForm1.cboIconChange(Sender: TObject); 
begin 
    ImageList1.Draw (Image1.Canvas, 0,0, cboIcon.ItemIndex); 
end; 

Répondre

14

Vous pouvez essayer ce code:

Image1.Stretch := true; // to make it as large as Image1 
Image1.Proportional := true; // to keep width/height ratio 
Image1.Picture.Bitmap:= nil; // clear previous image 
ImageList1.GetBitmap(cboIcon.ItemIndex, Image1.Picture.Bitmap); 
+0

Vous ne avez pas besoin "d'essayer ce code", vous devez utiliser ce code !! –

+4

Vous pourriez vouloir ajouter Image1.Picture.Bitmap: = nil avant le chargement, sinon il n'affichera pas les images suivantes. –

+0

nous devrions juste l'éditer pour montrer le tout. terminé. –

Questions connexes