网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
用Delphi实现缩略图查看
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式
----------------------------------------------------------------------------

function TImageFileList.GetIndex: integer;
begin
  result:=FIndex;
end;

 


--------------------------------------------------------------------------------

function TImageFileList.GetNextFileName: string;
begin
  if Findex=FStrListFile.Count-1 then
    Findex:=0
  else
    inc(Findex);

  result:=FStrListFile.Strings[Findex];
end;

 

--------------------------------------------------------------------------------

function TImageFileList.GetPreFileName: string;
begin
  if Findex=0 then
    Findex:=FStrListFile.Count-1
  else
    dec(Findex);

  result:=FStrListFile.Strings[Findex];
end;

 


--------------------------------------------------------------------------------

procedure TImageFileList.SetIndex(AIndex: integer);
begin
  FIndex:=AIndex;
end;

 

  3. 过程JpgToBmp及函数IsJpgFile的代码如下所示:

//转换jpg到bmp                 

 procedure JpgToBmp(const JpgFileName:string;AJpg:TJpegImage;Abmp:Tbitmap);
begin
  try
    AJpg.LoadFromFile(JpgFileName);
    Abmp.Assign(AJpg);
  finally
  end;
end;

//仅从扩展名上来判断是否是jpg格式的文件
function  IsJpgFile(const FileName:string):boolean;
begin
  result:=(LowerCase( ExtractFileExt(FileName))=''.jpg'') or (LowerCase( ExtractFileExt(FileName))=''.jpeg'');
end;

 

4.  我们在窗体的OnCreate和OnDestroy事件处理句柄里添加如下代码:


procedure TForm1.FormCreate(Sender: TObject);
begin
  //设置图标间距,也即缩略图间距
  ListView_SetIconSpacing(listview1.handle,90,120);

  OriginalBmp:=Tbitmap.Create;
  ThumbJpg:=TJpegImage.Create;

  PreViewBmp:=Tbitmap.Create;
  PreViewJpg:=TJpegImage.Create;

  ThumbBmp:=TBitmap.Create;
  //缩略图的边框为:80*80,显示图片大小为:64*64
  ThumbBmp.Height:=80;
  ThumbBmp.Width:=80;
  ThumbBmp.PixelFormat:=pf24bit;
  imagelist1.Height:=80;
  imagelist1.Width:=80;
  listview1.LargeImages:=imagelist1;
  listview1.ViewStyle:=vsicon;

  ImageFileList:=TImageFileList.Create;
  ImageFileList.Clear;

  ProgressBar1:=TProgressBar.Create(self);
  ProgressBar1.Parent:=StatusBar1;
  ProgressBar1.Visible:=false;
  ProgressBar1.Width:=200;
  ProgressBar1.Height:=StatusBar1.Height-4;
  ProgressBar1.Left:=StatusBar1.Width-ProgressBar1.Width;
  ProgressBar1.Top:=2;

  IsRefreshImageFinished:=true;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  OriginalBmp.Free;
  ThumbBmp.Free;
  ImageFileList.Free;
  ThumbJpg.Free;
  PreViewBmp.Free;
  PreViewJpg.Free;
  ProgressBar1.Free;
end;


 

5. 在ShellTreeView1的OnChange事件里添加下面代码:

procedure TForm1.ShellTreeView1Change(Sender: TObject; Node: TTreeNode);
var
  dir:string;
begin
  //如果上次的RefreshImage过程还没有结束,就退

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号