先用FindFirst、FindNext把所有文件清单搜索保存在数组或者TStringList里面,这样你的程序就可以上一张、下一张进行浏览了,系统本身没有找上一张的函数。
FindFirst、FindNext的使用你大概会吧,如果不熟悉,我下面粘贴一段我程序的代码,你可以借鉴:
function DirListStr(const FileName: string): string;
var SearchRec: TSearchRec; ok: integer; attrs: string[5];
begin
ok:=FindFirst(filename,$3f,SearchRec);
Result:='Directory of '+filename;
while ok=0 do begin
with SearchRec do begin
if Attr and $10 <> 0 then attrs[1]:='D' else attrs[1]:='-';
if Attr and $20 <> 0 then attrs[2]:='A' else attrs[2]:='-';
if Attr and $4 <> 0 then attrs[3]:='S' else attrs[3]:='-';
if Attr and $2 <> 0 then attrs[4]:='H' else attrs[4]:='-';
if Attr and $1 <> 0 then attrs[5]:='R' else attrs[5]:='-';
setlength(attrs,5);
Result:=Result+#13#10+attrs+' '+DateTimeToStr(FileDateToDateTime(time))+#9+IntToStr(size)+#9+Name;
end;
ok:=FindNext(SearchRec);
end;
FindClose(SearchRec);
end;
我的程序是返回一个文件的列表清单,你可以修改为数组,把相信内容保存在数组里面。
大致思路:
把遍历结果暂存(数组)
生成一个编号变量分别对应每个文件名
按钮给该变量+1或-1(当然要设置一个上下限,省得出错。)
根据该变量打开对应的文件。
你可以先将此路径下的所有jpg文件的完整路径(含文件名)保存到一个TStringList中,上一个、下一个就只是操作TStringList中的文件名,得到了文件名,具体文件应该不难操作了。这个思路不知道你用不用得上