Ver Mensaje Individual
  #4  
Antiguo 05-08-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 05-08-2011 a las 23:38:11. Razón: Agregar dato
Responder Con Cita