Puedes utilizar la propiedad Tag del TImage para guardar el número de imagen del ImageList.
Todos los componentes tienen esta propiedad.
Sería algo así:
Código Delphi
[-]
procedure TFormPrincipal.CreateImages(ImageList: TStringList);
var
Image:TImage;
I:Integer;
begin
ScrollBox1.Width:= 180 * ImageList.Count;
for I := 0 to (ImageList.Count- 1) do begin
Image:= TImage.Create(nil);
Image.Parent:= ScrollBox1;
Image.Height:= 180;
Image.Width:= 180;
Image.Top:= 10;
Image.Left:= ((Image.Width + 8) * I);
Image.Transparent:= true;
Image.Align:= alLeft;
Image.Stretch:= True;
Image.Proportional:= True;
Image.IncrementalDisplay:= True;
Image.Center:= True;
Image.Tag := I;
Image.Picture.LoadFromFile(ImageList[i]);
Image.OnClick := ClickImage;
ObjectList.Add(Image);
ScrollBox1.Refresh;
end;
end;
procedure TFormPrincipal.ClickImage(Sender: TObject);
begin
Image1.Bitmap.Assign(TImage(Sender).Picture);
ShowMessage('El nombre del archivo es: ' + ImageList[Image.Tag]);
end;