文档章节

学习使用资源文件[2] - Ico

涂孟超
 涂孟超
发布于 2014/09/26 15:33
字数 400
阅读 8
收藏 0

现在要做一个携带两个图标的资源文件, 并调用的例子.

1、首先建新工程, 保存, 注意这次我们不删除 {$R *.res}

2、复制两个 ico 文件到工程目录, 譬如文件是: IcoFile_1.ico、IcoFile_2.ico

3、建立文本文件输入:
ico1 ICON IcoFile_1.ico
ico2 ICON IcoFile_2.ico

然后保存为: MyRes.rc, 并 Add 到工程中, 如图:


4、此时的工程文件会自动插入: {$R 'MyRes.res' 'MyRes.rc'}

5、添加四个按钮, 实现代码如下:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

//使用资源中的第一个自定义图标
procedure TForm1.Button1Click(Sender: TObject);
begin
  Application.Icon.Handle := LoadIcon(HInstance, 'ico1');
{
  HInstance 当前程序实例的句柄, 调用资源文件一定要用到它;
  ico1 是资源文件的标识符;
  LoadIcon 是个 API 函数, 专门用于调用资源中的 ico 文件, 它返回的是指定 ico 文件的句柄.
}
end;

//使用资源中的第二个自定义图标
procedure TForm1.Button2Click(Sender: TObject);
begin
  Application.Icon.Handle := LoadIcon(HInstance, 'ico2');
end;

//使用资源中默认的程序图标
procedure TForm1.Button3Click(Sender: TObject);
begin
  Application.Icon.Handle := LoadIcon(HInstance, 'MainIcon');
end;

//不使用图标(会显示 Windows 系统的默认图标)
procedure TForm1.Button4Click(Sender: TObject);
begin
  Application.Icon := nil;
end;

end.

 
 
 
 
 

 

 

  
//效果图:


注释:

1、此时的 MyRes.rc 被编译成了 MyRes.res;

2、此时的 IcoFile_1.ico、IcoFile_2.ico 文件被编译进 MyRes.res;

3、此时的 MyRes.res 文件也被编译到 Project1.exe 中了.

本文转载自:http://www.cnblogs.com/del/archive/2008/02/14/1068519.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
css link和@import区别用法

1、link语法结构 实际应用截图: 使用link标签截图 Html link标签说明 此标签是引入CSS文件link标签,只要设置好路径即可。 扩展阅读:html link 2、@import语法结构 @import + 空格+ url(CSS...

科技探索者
2017/11/09
0
0
Visual C#创建资源文件

资源文件顾名思义就是存放资源的文件。资源文件在程序设计中有着自身独特的优势,他独立于源程序,这样资源文件就可以被多个程序使用。同时在程序设计的时候,有时出于安全或者其他方面因素的...

晨曦之光
2012/03/09
92
0
【C#每日一帖】设置自定义控件的图标[有图也有真相!!!]

自定义控件的图标在工具栏里是一个齿轮,如何给它换个显示图片? 做一个16*16象素的bmp位图(或ico图标),把它的文件名设为:该控件的类名.bmp(或 该控件的类名.ico),如果你是用vs.net,可以将该图...

c_o_d_e_r
2011/07/15
0
0
分享17点PC浏览器前端优化策略——网络加载篇

PC端优化的策略很多,如 YSlow(YSlow 是 Yahoo 发布的一款 Firefox 插件,现 Chrome 也可安装,可以对网站的页面性能进行分析,提出对该页面性能优化的建议)原则,或者 Chrome 自带的 Audi...

沉迷学习中
2017/11/13
0
0
[发布] Photoshop ICO 文件格式插件 V2.0版

    [更新预告] 我正在开发 ICO 插件的 3.0 版本。增加了新的比原来更好的缩放算法。同时将改进一些 UI。预计 2017 年 6 ~ 7 月可以发布。2017 年 6 月 11 日。     【声明】此插件下...

hoodlum1980
2010/12/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Cookie 显示用户上次访问的时间

import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.serv......

gwl_
今天
1
0
网络编程

第14天 网络编程 今日内容介绍  网络通信协议  UDP通信  TCP通信 今日学习目标  能够辨别UDP和TCP协议特点  能够说出UDP协议下两个常用类名称  能够说出TCP协议下两个常用类名称...

stars永恒
今天
1
0
二进制相关

二进制 众所周知计算机使用的是二进制,数字的二进制是如何表示的呢? 实际就是逢二进一。比如 2 用二进制就是 10。那么根据此可以推算出 5的二进制等于 10*10+1 即为 101。 在计算机中,负数以...

NotFound403
昨天
3
0
day22:

1、写一个getinterface.sh 脚本可以接受选项[i,I],完成下面任务: 1)使用格式:getinterface.sh [-i interface | -I ip] 2)当用户使用-i选项时,显示指定网卡的IP地址;当用户使用-I选项...

芬野de博客
昨天
2
0
Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现

自Spring Cloud Alibaba发布第一个Release以来,就备受国内开发者的高度关注。虽然Spring Cloud Alibaba还没能纳入Spring Cloud的主版本管理中,但是凭借阿里中间件团队的背景,还是得到不少...

程序猿DD
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部