编写提取图标的Delphi控件

  在《从文件中提取图标》一文中(《计算机世界》第10期),我介绍了怎样从Windows下的可执行模块(EXE,DLL,CPL等)提取图标资源并且将所提取的图标保存成单独的图标文件。在那篇文章的基础之上,我们来编写一个Delphi控件TWinIcon,该控件封装了图标提取(API函数ExtractIcon)及图标保存等操作。通过代码的封装,我们可以让程序具有更好的模块化结构,更易于代码的维护与升级。另外,如果你还不太熟悉Delphi控件的编写的话,TWinIcon应该是一个好的例子。

  TWinIcon重要属性

FileName:要从中提取图标的文件
Total: (只读属性)FileName
所指定的文件中所包含的图标个数。
IconIndex:(范围:0到Total-1)
该属性指明当前所显示的图标。
About:显示版本信息。

  TWinIcon重要成员函数(方法)

proc edure GetIcon(var AnIcon:
TIcon;Index:Integer);

  功能:获取Index(必须在0到Total-1之间)所指定的图标,图标通过变量参数AnIcon返回。

procedure SaveIconAs(Name:String);

  功能:将当前所显示的图标(即IconIndex属性所指定的图标)保存成图标文件。

  TWinIcon控件的实现

  详细程序可下载 (Zip 1.3 KB )

  控件的安装

  • 在Delphi的集成开发环境中选择“Component | Install Component…”
  • 在对话框的“Unit file name”填上WinIcon.Pas的路径名和文件名
  • 在“Package file name”处指明将构件安装到哪一个包

  控件的使用

  阅读上面源代码中,我们很容易就可掌握TWinIcon控件的使用方法。在Internet上发布的TWinIcon控件中包含有一个简单的示例。你可以在Torry’s Delphi Pages上( http://www.torry.ru/vcl/graphics/winicon.zip)或者我的个人站点( http://delphians.163.net/winicon.zip)找到它。

  TWinIcon的一个重要特性就是它在Delphi集成开发环境(IDE)中就能浏览文件中的图标。比如说,如果你在IDE中将一个TWinIcon控件的FileName属性设置为“C:\Windows\Explorer.exe”,那么你就会立即看到一个电脑图标,通过改变IconIndex属性,你还能看到其它的图标。每次改变FileName属性时,IconIndex都会自动调整:如果FileName指定的文件不存在,则IconIndex被置成负1,否则被置成0。

 

转载自计算机世界日报 (文/刘明华)