L
lps
Unregistered / Unconfirmed
GUEST, unregistred user!
程序目标:快速浏览照片
图像来自210*280大小的JPG文件(大小从几K到10多K),全部放在一个目录下,数目大约有几千张
故障现象:对于较多的照片或较大的照片则会出现画面停止响应的现象(IDE中运行却一切正常)
请大家指教!
主要代码如下:
procedure TForm1.FormCreate(Sender: TObject);
begin
form1.DoubleBuffered:=true; //加上可以防止画面闪烁
end;
procedure TForm1.Button3Click(Sender: TObject);
var
sr: TSearchRec;
FileAttrs: Integer;
Picture:TPicture;
bitmap:Tbitmap;
filename,srcname:string;
JPEGImage: TJPEGImage;
begin
memo1.Clear ;
label9.Caption:='当前照片:';
FileAttrs:=faAnyFile ;
if FindFirst(label1.Caption+'*.*', FileAttrs, sr) = 0 then
begin
repeat
filename:=sr.Name;
if not ((filename='.') or (filename='..') or (filename='Thumbs.db')) then
begin
srcname:=label1.Caption+filename;//完整文件名
Picture:=TPicture.Create;
bitmap:=Tbitmap.Create;
JPEGImage:=TJPEGImage.Create;
try
try
label9.Caption:='当前照片:'+filename;
//加载图形
Picture.LoadFromFile(srcname);
image1.AutoSize:=true;
image1.Stretch:=true;
image1.Picture.Bitmap.Assign(Picture.Graphic);
form1.Refresh;
except
memo1.Lines.Add(filename+'处理失败,可能原因:原文件不是图形文件');
end;
finally
Picture.Free;
bitmap.Free;
JPEGImage.Free;
end;
end;
until FindNext(sr) <> 0;
FindClose(sr);
end;
Application.MessageBox(PChar('照片浏览完毕!'),'信息',MB_OK);
end;
图像来自210*280大小的JPG文件(大小从几K到10多K),全部放在一个目录下,数目大约有几千张
故障现象:对于较多的照片或较大的照片则会出现画面停止响应的现象(IDE中运行却一切正常)
请大家指教!
主要代码如下:
procedure TForm1.FormCreate(Sender: TObject);
begin
form1.DoubleBuffered:=true; //加上可以防止画面闪烁
end;
procedure TForm1.Button3Click(Sender: TObject);
var
sr: TSearchRec;
FileAttrs: Integer;
Picture:TPicture;
bitmap:Tbitmap;
filename,srcname:string;
JPEGImage: TJPEGImage;
begin
memo1.Clear ;
label9.Caption:='当前照片:';
FileAttrs:=faAnyFile ;
if FindFirst(label1.Caption+'*.*', FileAttrs, sr) = 0 then
begin
repeat
filename:=sr.Name;
if not ((filename='.') or (filename='..') or (filename='Thumbs.db')) then
begin
srcname:=label1.Caption+filename;//完整文件名
Picture:=TPicture.Create;
bitmap:=Tbitmap.Create;
JPEGImage:=TJPEGImage.Create;
try
try
label9.Caption:='当前照片:'+filename;
//加载图形
Picture.LoadFromFile(srcname);
image1.AutoSize:=true;
image1.Stretch:=true;
image1.Picture.Bitmap.Assign(Picture.Graphic);
form1.Refresh;
except
memo1.Lines.Add(filename+'处理失败,可能原因:原文件不是图形文件');
end;
finally
Picture.Free;
bitmap.Free;
JPEGImage.Free;
end;
end;
until FindNext(sr) <> 0;
FindClose(sr);
end;
Application.MessageBox(PChar('照片浏览完毕!'),'信息',MB_OK);
end;