文档章节

学习使用资源文件[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
深圳
程序员
Visual C#创建资源文件

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

晨曦之光
2012/03/09
85
0
css link和@import区别用法

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

科技探索者
2017/11/09
0
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
含半透明像素的PNG如何转换ico格式文件

进入6月就一直忙,专栏的文章也迟迟未更新,这篇拖拖拉拉的1个月才写完。是实际工作中遇到的问题,总结下来,万一其他的UI设计师遇到了,就可以少走弯路。 ico文件是图标文件格式,UI设计师一...

泱泱
2017/07/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Snackbar源码分析

目录介绍 1.最简单创造方法 1.1 Snackbar作用 1.2 最简单的创建 1.3 Snackbar消失的几种方式 2.源码分析 2.1 Snackbar的make方法源码分析 2.2 对Snackbar属性进行设置 2.3 Snackbar的show显示...

潇湘剑雨
27分钟前
1
0
分布式作业系统 Elastic-Job-Lite 源码分析 —— 作业数据存储

分布式作业系统 Elastic-Job-Lite 源码分析 —— 作业数据存储 摘要: 原创出处 http://www.iocoder.cn/Elastic-Job/job-storage/ 本文基于 Elastic-Job V2.1.5 版本分享 1. 概述 本文主要分享...

DemonsI
33分钟前
1
0
jmockit demo

1、@Mocked,标识一个指定的class的实例或被测对象的参数被Mock掉。 2、@Capturing,标识一个被Mock的对象,从该对象派生的子类也被Mock了。 3、@Injectable,标识只有一个指定的被测对象的内...

我的老腰啊
47分钟前
1
0
内容换行

用 <textarea>13611112222 这里想换行 13877779999</textarea><textarea>13611112222 13877779999</textarea>...

小黄狗
48分钟前
1
0
学习设计模式——单例模式

1. 认识单例模式 1. 定义:一个类中仅有一个实例,并提供一个访问它的全局访问点。 2. 结构:仅一个Singleton类,其中包含一个static类变量,而类变量的类型就是Singleton类,而且Singleton...

江左煤郎
55分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部