Hola Panasys.
Algo que te va a aligerar la carga de imágenes desde disco (LoadFromFile) es hacer una carga previa en un
TList de las imágenes que vayas a utilizar.
Te hice un ejemplo general, pero lo podés modificar sin mucho problema para adaptarlo a tu necesidad.
Código Delphi
[-]
...
uses Jpeg;
procedure CargarImagenes(Ruta, Ext: string; Lst: TList; SLst: TStrings);
var
P: TPicture;
B: TBitMap;
SR: TSearchRec;
begin
Lst.Clear;
P:= TPicture.Create;
try
Ruta:= IncludeTrailingPathDelimiter(Ruta);
if FindFirst(Ruta+Ext, faArchive, SR) = 0 then
begin
repeat
P.LoadFromFile(Ruta+SR.Name);
B:= TBitMap.Create;
B.Height:= P.Graphic.Height;
B.Width := P.Graphic.Width;
B.Canvas.Draw(0,0,P.Graphic);
Lst.Add(B);
SLst.Add(SR.Name);
until FindNext(SR) <> 0;
FindClose(SR);
end;
finally
P.Free;
end;
end;
Un ejemplo de llamada:
Código Delphi
[-]
procedure TForm1.btnCargarClick(Sender: TObject);
var
i: Integer;
LstImg: TList;
TS: TStrings;
begin
LstImg:= TList.Create;
TS:= TStringList.Create;
try
CargarImagenes('C:\TEMP', '*.JPG', LstImg, TS);
for i:= 0 to LstImg.Count -1 do
begin
Image1.Picture.Bitmap:= LstImg[i];
ShowMessage(TS[i]);
end;
finally
LstImg.Free;
TS.Free;
end;
end;
Claro que en el momento de la carga se produce una demora, pero es una sola vez, además si hay que mostrar otra vez una imágen,
no hay que ir al disco a buscarla...
Saludos.