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

胡小文

---- 有一张光盘提供了5000多个256色的各种各样的图标的压缩文件,解压后按动物、人物、计算机、网络等门类分类放置在一个个图标库(icon library)文件(后缀为ICL),使用起来相当不方便。我利用Delphi3.0开发了一个这样的程序,它可以浏览这些图标库所有图标并且把自己所需要的图标以Icon的文件格式保存起来,支持直接从文件夹图标库文件到程序的拖放,自动建立ICL文件的关联,以后你只要双击ICL文件就可以打开。具体实现过程如下。
---- 一、 文件夹图标库文件到程序拖放的实现
---- 要使得一个程序可以支持从文件夹的直接拖放,在程序初始化时运行Windows Api函数:dragacceptFiles(handle,true); 其中handle是接受文件拖放的窗口句柄,true表示为接受,false表示拒绝接受。一旦你设置为接受后,程序运行时如果有文件拖放到该窗口,系统将把消息WM_DROPFiles发送到你的程序。程序中必须对该消息做出处理,可用的Windows Api函数是DragQueryFile和DragFinish,其中DragQueryFile是获取拖放过来的文件名,DragFinish是告诉系统该拖放操作完成。这两个函数和WM_DropFiles消息的详细资料请查阅Windows Api手册。
---- 二、ICL文件关联建立的实现
---- windows文件关联的建立实际是对注册表进行一些操作。在HKEY_CLASSES_ROOT中建立一系列的键和设置相关的键值。具体步骤如下:
---- 1、 在HKEY_CLASSES_ROOT中建立".ICL"键,并且默认的键值设置为"ICL_Auto_File";
---- 2、 在HKEY_CLASSES_ROOT中建立"ICL_Auto_File"键,并且默认的键值设置为"图标库关联文件程序";
---- 3、 在HKEY_CLASSES_ROOT中"ICL_Auto_File"键下设立三级子键:shell-->open--->command;
---- 4、 为command这级子键默认的键值设置为:"< 程序名称 >" 1%。其中程序名包含程序的绝对路径。
----三、图标库图标的获得
---- 在windows API中有许多获取图标的函数,但能从图标库ICL文件中获取图标的函数是ExtractIconEx,它的格式和参数如下:
Uint ExtractIconExA(lpszFile: PAnsiChar;
nIconIndex: Integer;
var phiconLarge, phiconSmall: HICON;
nIcons: UINT);
lpszFile:图标库的文件名;
Niconindex: 要读取的图标在图标库中的次序(从0开始编号);
PhiconLarge、Phiconsmall:如果读取成功时图标的句柄值;
Nicons:要读取的图标个数,通常设置为1
该函数返回的值如果是0的话表示读取失败。
要枚举一个图标库中的所有图标只要利用以上函数从读取序号0图标、
序号1图标.直到函数返回值为0
---- 四、图标库图标的显示
---- 图标库的图标显示的方法有很多,在Delphi中提供了列表框,用户通过自己绘制列表项来列表实现项非文字显示。方法是:
---- 1、 把列表框的风格(Style)设置为用户自己绘制lbOwnerDrawVariable模式;
---- 2、 重载OnDrawItem和OnMeasureItem事件,OnMeasureItem事件计算列表项显示所需要的方框尺寸高度,OnDrawItem绘制列表项。两个事件都有Index参数,它是对应列表框的列表项次序(从0开始编号)。本人是把图标库图标序号做为列表框的列表项,也就是列表框中的列表项是一组序号。然后通过序号来进行图标的显示处理工作。
---- 五、图标库图标的保存
---- 把图标库中喜欢的图标保存下来,只要利用Ticon类的方法SaveToFile。本人在程序中设置了Tpopupmenu控件popupmenu1和TsaveDialog控件Savedialog1,把Listbox1的popupmenu属性设置为Popupmenu1,这样当在Listbox1控件右击时弹出Popupmenu1菜单,选择SaveAs菜单项后就可以保存到用户指定的一个文件中。
---- 六、程序清单及说明
unit iconlibreadsource;
interface
uses
Windows, Messa

网学推荐

免费论文

原创论文

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