Solo necesitas tres botones, un open dialog y un Timage
Falta validar el tipo de imagenes que quieres abrir en el open dialog, ademas de que solo funciona con bmp y jpg
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, JPEG;
type
TForm1 = class(TForm)
Button1: TButton;
OpenDialog1: TOpenDialog;
Image1: TImage;
Button2: TButton;
Button3: TButton;
function ObtenerFavoritos( sRutaFavoritos: String ): TStrings;
procedure Button1Click(Sender: TObject);
procedure OpenDialog1CanClose(Sender: TObject; var CanClose: Boolean);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
Lista:TStrings;
Imagen:TPicture;
indice:integer;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
OpenDialog1.Execute;
end;
function TForm1.ObtenerFavoritos( sRutaFavoritos: String ): TStrings;
var
Busqueda: TSearchrec;
ListaFavoritos: TStrings;
sRuta, sDirectorio, sal: String;
iEncontrado: Integer;
begin
ListaFavoritos := TStringList.Create;
try
sRuta := sRutaFavoritos + '*.jpg';
sDirectorio := ExtractFilepath( sRuta );
iEncontrado := FindFirst( sRuta, faAnyFile, Busqueda );
while iEncontrado = 0 do begin
sal:=Busqueda.Name;
Delete(sal,Pos('.',sal),4);
ListaFavoritos.Add( sDirectorio + sal+ '.jpg' {sArchivo} );
iEncontrado := FindNext( Busqueda );
end;
sRuta := sRutaFavoritos + '*.bmp';
sDirectorio := ExtractFilepath( sRuta );
iEncontrado := FindFirst( sRuta, faAnyFile, Busqueda );
while iEncontrado = 0 do begin
sal:=Busqueda.Name;
Delete(sal,Pos('.',sal),4);
ListaFavoritos.Add( sDirectorio + sal+ '.bmp' {sArchivo} );
iEncontrado := FindNext( Busqueda );
end;
FindClose( Busqueda );
finally
Result := ListaFavoritos;
end;
end;
procedure TForm1.OpenDialog1CanClose(Sender: TObject;
var CanClose: Boolean);
begin
if (ExtractFileExt(OpenDialog1.FileName)='.bmp')or
(ExtractFileExt(OpenDialog1.FileName)='.jpg') then begin
Imagen:=TPicture.Create;
Imagen.LoadFromFile(OpenDialog1.FileName);
Image1.Picture.Assign(Imagen);
Imagen.Free;
Lista:=TStrings.Create;
Lista:=ObtenerFavoritos(ExtractFilePath(OpenDialog1.FileName));
indice:=Lista.IndexOf(OpenDialog1.FileName);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
dec(indice);
if indice< 0 then
indice:=Lista.Count-1;
Imagen:=TPicture.Create;
Imagen.LoadFromFile(Lista[indice]);
Image1.Picture.Assign(Imagen);
Imagen.Free;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
inc(indice);
if indice > Lista.Count-1 then
indice:=0;
Imagen:=TPicture.Create;
Imagen.LoadFromFile(Lista[indice]);
Image1.Picture.Assign(Imagen);
Imagen.Free;
end;
end.