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

    缩略图英文也叫Thumbnails,是现在的看图软件必备的基本功能之一,像ACDSee,豪杰大眼睛等图片浏览软件都提供了此功能.其实利用Delphi6.0提供的ListView和ImageList控件就可以很方便地实现该功能.下面我们就一步一步打造一个属于自己的ACDSee.

    一.编程思路

    ListView能够以四种不同的方式显示数据,其中当以vsIcon方式显示数据时,其图标来自于largeIcon属性指定的ImageList控件.因此,只要我们把图片缩放后动态加载到ImageList控件中,就能够以缩略图方式在ListView中显示了.需要注意的是,加载到ImageList中的图片大小尺寸必须相等;而且,为了避免图片缩放后变形,我们应该尽可能保证图片的长宽比例保持不变.我一直用"缩放"一词,这是因为对于大图片我们要缩小它,而对于小图片我们则要放大它.ACDSee就是这样做的.最后还有一个小小的问题,我们如何实现ACDSee中那些具有立体感的类似于panel的边框呢?你也许会说动态生成panel控件!这实在不是个好主意.因为那将占用大量的系统资源.我感觉 ACDSee的那些panel不是真正的panel,而是被画上去的,所以我们要自己画panel.你也许会想自己画panel很麻烦吧,开始我也这样想,但当我把这个问题搞定后,发现它简直就是一块小蛋糕.^-^ 随便把一个有panel的窗体抓下来,然后在画图软件里放大8倍后观察,你就什么都明白了.其实,一个panel就是由四条线段组成的。所有的问题都解决了,那就赶快动手吧!


    二.设计界面

    新建一工程,执行以下步骤:

    1。在窗体上添加一个ScrollBox1控件,设置其Align属性为alLeft。

    2。在窗体上添加一个Splitter1控件,设置其width为3,Align属性为alLeft。

    3。在窗体上添加一个ListView1控件,设置其Align属性为alClient,color属性为clBtnFace。

    4。在ScrollBox1里添加一个ShellTreeView1控件(该控件在Samples页面上),设置其Align属性为alTop。

    5。在ScrollBox1里添加一个Splitter2控件,设置其Height为3,Align属性为alTop。

    6。在ScrollBox1里添加一个panel1控件,设置其Align属性为alClient。

    7。在panel1上添加一个Image1控件。


    三. 编写代码

    界面做好了,下面就该写代码了。

    1。单元的接口部分主要代码如下:

unit Unit1;

interface

uses
 jpeg

type
  TForm1 = class(TForm)
  

  private
    ProgressBar1:TProgressBar;
    OriginalBmp,ThumbBmp:Tbitmap;
    PreViewBmp:Tbitmap;
    ThumbJpg:TJpegImage;
    PreViewJpg:TJpegImage;
    IsRefreshImageFinished:boolean;
    { Private declarations }
  public
    procedure RefreshImage;
    procedure ShowPreImageFit(const ImageFileName:string);
    { Public declarations }
  end;

type
  TImageFileList=class
  private
    FStrListFile:TStringList;
    FIndex:integer;
    { Private declarations }
  public
    //添加一个文件
    procedure Add(FullFileName:string);

    //清空文件列表
    procedure Clear;

    //当目录改变时,调用此过程会把该目录下所有图片文件
 &nbs

网学推荐

免费论文

原创论文

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