Nie wiem w czym problem. Dodajesz sobie jakieś pozycje do ComboBoxa, a następnie w jego zdarzeniu
OnChange wklejasz poniższy kod i elegancko pokazuje Tobie bitmapy o wybranym w ComboBox indeksie.
var
I : integer;
Bmp : TBitmap;
begin
Bmp := TBitmap.Create;
I := ComboBox1.ItemIndex;
if I < ImageList1.Count then
begin
ImageList1.GetBitmap(I, Bmp);
Image1.Stretch := True;
Image1.Picture.Bitmap := Bmp;
end
else
begin
Image1.Picture := nil;
end;
Bmp.Free;
end;
Natomiast jeżeli chcesz pokazywać w ImageList obrazki większe niż 32x32 piksele to musisz sobie raczej
utworzyć dynamicznie ImageList w odpowiedni sposób używając konstruktora CreateSize, który wymaga 2
parametrów - mianowicie szerokości oraz wysokości obrazków. Możesz podać "na sztywno", a możesz te
wartośći pobrać z bitmapy. Wtedy ładujesz obrazki tak jak powyżej pokazałem tyle tylko, że z dynamicznie
utworzonego ImagList. W przykładzie ładuję bitmapę z pliku ale lepiej będzie zrobić to z zasobów exeka.
var
Bmp : TBitmap;
IL : TImageList;
begin
Bmp := TBitmap.Create;
Bmp.LoadFromFile('D:\test.bmp');
IL := TImageList.CreateSize(300, 150);
IL.Masked := False;
IL.Add(Bmp, nil);
Image1.Picture.Bitmap := Bmp;
Bmp.Free;
end;
Jak widzisz - nie trzeba do tego celu korzystać z jakiś specialnych komponentów, wystarczą te, które śa w
Delphi już dostępne. Odpisz czy o to Tobie chodziło, czy coś innego chciałeś sobie tam wykombinować :)