在Delphi中用好图标资源

图标是组成应用程序的重要资源,我们的设计目标是让程序标题栏上的图标交替显示,形成动画效果。
  #1 方法一:调用图标文件
   1.首先在窗体中添加一变量,控制图标交替显示,语句如下:
   var
   Form1: TForm1;

ico:integer;//添加这一句
   双击窗体为其OnCreat事件添加代码,如下:
   ico:=1

2.在窗体中添加一时钟控件,设置其Interal属性为100(即两个图标交替出现的时间间隔),为OnTimer事件添加代码,如下:
   if ico=1 then
   begin
   form1.icon.LoadFromFile('d:\amydocu\ico1.ico')//显示图标1
   ico:=2

end
   else
   begin
   form1.icon.LoadFromFile('d:\amydocu\ico2.ico') //显示图标2
   ico:=1;

end;

3.运行窗体,即可得到动画图标。
  #1 方法二:利用程序中的图标资源
   方法一设计出的程序在发布时,必须带上图标文件,否则无法运行。为了克服这一缺点,我们可以将图标文件做成资源文件,将其包含在执行文件中,使程序更专业化,他人想轻易改变图标也较困难。
   1.首先建立资源文件demo.rc,它是一个文本文件,包含如下内容:
   ico1 icon D:\amydocu\ico1.ico
   ico2 icon D:\amydocu\ico2.ico
   2.在DOS提示符下利用Delphi提供的资源编译器brcc32.exe将其编译成demo.res,命令如下:
   brcc32 demo.rc
   3.将生成的demo.res加入程序中,可以在窗体中加入如下代码:
   implementation
  
{$R *.DFM}

{$R d:\amydocu\resource.res}

4.使用图标资源,将方法一中时钟控件的OnTimer事件改为如下代码:
   if ico=1 then
   begin
   form1.Icon.Handle:=Loadicon(hinstance,'ico1');

ico:=2;

end
   else
   begin
   form1.Icon.Handle:=Loadicon(hinstance.'ico2');

ico:=1;

end;
   5.编译运行,得到和方法一同样的效果,但程序更加精炼。