标题在Delphi中用好图标资源
栏目软件世界
作者邓家宏
发布2001年29期
图标是组成应用程序的重要资源,我们的设计目标是让程序标题栏上的图标交替显示,形成动画效果。
方法一:调用图标文件
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.首先建立资源文件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.编译运行,得到和方法一同样的效果,但程序更加精炼。