Вот. Картинки будут рисоваться прямо на форме в синих прямоугольниках и будут вписываться в определенный прямоугольник (непропорционально).
Код:
const
NumBitmaps = 30; // Количество битмапов
PreviewSizeX = 200; // Ширина прямоугольника
PreviewSizeY = 100; // Высота прямоугольника
RectBorder = 3; // Размер границы изображений
NumColumns = 3; // Количество столбцов изображений
OffsetY = 50; // Откуда будут рисоваться изображения по вертикали
var
Bitmaps : array [0..NumBitmaps - 1] of TBitmap; // Массив нужных битмапов
// Эта процедера собсно отрисовывает картинки начианая с FromImg заканчивая ToImg.
procedure DrawImages(FromImg, ToImg : Integer);
var
i : Integer;
r : TRect;
begin
for i := FromImg to ToImg do
with Form1.Canvas do begin
Pen.Width := RectBorder;
SetRect(r, PreviewSizeX * ((i - FromImg) mod NumColumns),
OffsetY + PreviewSizeY * ((i - FromImg) div NumColumns),
PreviewSizeX * (1 + ((i - FromImg) mod NumColumns)),
OffsetY + PreviewSizeY * (1 + (i - FromImg) div NumColumns));
Rectangle(r);
with r do begin
Left := Left + RectBorder;
Right := Right - RectBorder;
Top := Top + RectBorder;
Bottom := Bottom - RectBorder;
end;
StretchDraw(r, Bitmaps[i]);
end;
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
Canvas.Pen.Width := 0;
Canvas.FillRect(ClientRect);
Refresh;
end;
procedure TForm1.FormPaint(Sender: TObject);
begin
// Здесь задаете какие картинки рисовать в зависимости от того что выбрано в ComboBox1
case ComboBox1.ItemIndex of
0 : DrawImages(0, 5);
1 : DrawImages(6, 11);
2 : DrawImages(12, 17);
3 : DrawImages(18, 23);
4 : DrawImages(24, 29);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i : Integer;
begin
for i := 0 to NumBitmaps - 1 do begin
Bitmaps[i] := TBitmap.Create;
Bitmaps[i].LoadFromFile(IntToStr(i) + '.bmp');
end;
Canvas.Pen.Color := clBlue; // Здесь можно изменить цвет границ картинок
Canvas.Brush.Color := Color;
end;
procedure TForm1.FormDestroy(Sender: TObject);
var
i : Integer;
begin
for i := 0 to NumBitmaps - 1 do
Bitmaps[i].Free;
end;
Можете поиграться со значением констант и посмотреть что будет.