Вам необходимо установить некоторую связь между миниатюрами и основным изображением.
Позвольте мне предположить, что у вас есть основные изображения, хранящиеся в файловой системе.
Если все ваши эскизы имеют одинаковый размер, имеет смыслсохраните их в imagelist
.
Обычным элементом управления для просмотра изображений является ListView.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, ComCtrls, ImgList;
type
TForm9 = class(TForm)
ImageList1: TImageList;
ListView1: TListView;
Image1: TImage;
procedure ListView1SelectItem(Sender: TObject; Item: TListItem; Selected: Boolean);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
ListOfNames: TStringList;
public
end;
var
Form9: TForm9;
implementation
{$R *.dfm}
procedure TForm9.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ListOfNames.Free;
end;
procedure TForm9.FormCreate(Sender: TObject);
begin
ListOfNames:= TStringList.Create;
ListOfNames.Add('c:\pictures\filename1.bmp');
ListOfNames.Add('c:\pictures\filename2.bmp');
end;
procedure TForm9.ListView1SelectItem(Sender: TObject; Item: TListItem; Selected: Boolean);
var
ImageIndex: integer;
Filename: string;
begin
ImageIndex:= Item.Index;
Filename:= ListOfNames[ImageIndex];
Image1.Picture.LoadFromFile(Filename);
end;
end.
Вот текст для файла DFM:
object Form9: TForm9
Left = 0
Top = 0
Caption = 'Form9'
ClientHeight = 468
ClientWidth = 676
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
OnClose = FormClose
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object Image1: TImage
Left = 328
Top = 64
Width = 289
Height = 318
Stretch = True
end
object ListView1: TListView
Left = 16
Top = 232
Width = 250
Height = 150
Columns = <>
LargeImages = ImageList1
TabOrder = 0
OnSelectItem = ListView1SelectItem
end
object ImageList1: TImageList
Left = 16
Top = 192
end
end
Вам необходимо добавить несколько изображений в imagelist
. Они будут показаны в ListView.
Нажатиена элементе в списке просмотра вызовет событие и покажет изображение в TImage
.