几乎每个Windows应用程序都使用图标、图片、光标等资源。资源是程序的一部分,但是它是不可执行代码。下面我们就详细介绍资
源文件在Delphi5中建立和使用方法。 
1.把资源放到Exe文件的优点 
由于定位资源比在磁盘中定位文件花费时间少,所以应用程序执行会更快。多种资源可以放在一个文件中,减少了图标、图片、光标
等文件数量。保存资源文件时不要和工程名相同,因为Delphi创建工程时会自动创建一个和工程名相同的资源文件。并且最好将资源
文件保存到和工程文件同一个文件夹中。 
2.创建资源文件 
首先创建一个.Rc的纯文本文件。格式如下: 
资源标识符 + 关键字 + 资源文件名 
① 资源标识符:程序中调用资源时的特殊标号; 
② 关键字:标识资源文件类型; 
Wave: 资源文件是声音文件; 
RCDATA: JPEG文件; 
AVI: AVI动画; 
ICON: 图标文件; 
BITMAP: 位图文件; 
CURSOR: 光标文件; 
资源文件名:资源文件名; 
③ 资源文件名:编译的资源文件,比如动画、位图、光标等; 
④ 如:MyWav WAVE "FileName.Wav" 
使用Borland资源编译器(BRCC32.EXE)转化.Rc文件成.Res文件。在DOS命令行下输入下列命令: 
Brcc32 FileName.Rc // Brcc32.Exe在Delphi5\Bin文件下。 
3.在工程中引用资源文件 
为了存取我们的资源文件,必须告诉Delphi链接我们的资源文件到应用程序中。因此我们可以在源代码中加入一条编译指令完成上述
功能。这条指令必须紧跟在窗口指令后,如下形式: 
{$R *.DFM} //Delphi自带编译指令 
{$R FileName.Res} //新加入的编译资源文件的指令。 
不要删除{$R *.DFM}指令,因为这行代码告诉Delphi链接下面的资源到窗口的资源中。 
4.调用资源文件 
(1)存取资源文件中的位图(Bitmap) 
程序中如果想存取资源,你必须调用一些Windows API函数。保存在资源文件中的位图、光标和图标可以通过调用LoadBitmap、
LoadCursor和LoadIcon函数存取。 
本例举例说明如何存取资源文件中位图并显示在Timage控件中。 
procedure TfrMain.btnCanvasPic(Sender: TObject); 
Image1.Picture.Bitmap.Handle :=LoadBitmap(hInstance, '资源标识符'); 
end; 
注:如果位图没有装载成功,程序仍旧执行,但是Image将不再显示图片。你可以根据LoadBitmap函数的返回值判断是否装载成功,
如果装载成功返回值是非0,如果装载失败返回值是0。 
另外一个存取显示位图的方法如下 
procedure TfrMain.btnLoadPicClick(Sender: TObject); 
begin 
Image1.Picture.Bitmap.LoadFromResourceName(hInstance, '资源标识符'); 
end; 
(2)存取资源文件中的光标 
Screen.Cursors[]是一个光标数组,使用光标文件我们可以将定制的光标加入到这个属性中。因为默认的光标在数组中索引值是0,
所以除非想取代默认光标,最好将定制的光标索引值设为1。 
procedure TfrMain.btnUseCursorClick(Sender: TObject); 
begin 
Screen.Cursors[1] :=LoadCursor(hInstance,'资源标识符'); 
Image1.Cursor :=1; 
end; 
(3)存取资源文件中的图标 
将图标放在资源文件中,可以实现动态改变应用程序图标。 
procedure TfrMain.LoadIconClick(Sender: TObject); 
begin 
Application.Icon.Handle := LoadIcon(hInstance, '资源标识符'); 
End; 
(4)存取资源文件中的AVI 
procedure TfrMain.LoadIconClick(Sender: TObject); 
begin 
Animate1.ResName :='MyAvi' ; //资源标识 
Animate1.Active :=True ; 
End ; 
(5)存取资源文件中的JPEG 
把jpeg单元加入到Interface的uses单元中。 
procedure TForm1.LoadJPGClick(Sender: TObject); 
var 
Fjpg : TJpegImage ; 
FStream :TResourceStream ; 
begin 
Fjpg :=TJpegImage.Create ;  
FStream := TResourceStream.Create (Hinstance,'资源标识符',RT_RCDATA) ; 
FJpg.LoadFromStream (FStream) ; 
Image1.Picture.Bitmap.Assign (FJpg); 
end; 
(6)存取资源文件中的Wave 
把MMSystem加入到Interface的uses单元中 
procedure TForm1.LoadWaveClick(Sender: TObject); 
begin 
PlaySound('MyWav', HInstance, Snd_ASync or Snd_Memory or snd_Resource) ; 
end; 
5.结束语 
  位图、光标和图标、AVI动画、JPEG和Wave文件等可以放到资源文件中,上面我们介绍了如何将资源加入到资源文件中,并介绍
了在Delphi中动态存取资源文件的方法。Delphi编译工程会自动创建一个和工程名相同的资源文件(如果没有其他的资源,主窗口的
图标会放在这个资源文件中)。但是建议最好不要改变这个资源文件。
 
http://www.cnblogs.com/FKdelphi/p/4654522.html

Delphi资源文件(全面分析之位图、光标、图标、AVI、JPEG、Wave)的更多相关文章

  1. 教程-Delphi资源文件(全面分析于使用)

    Delphi资源文件(全面分析之位图.光标.图标.AVI.JPEG.Wave)   几乎每个Windows应用程序都使用图标.图片.光标等资源.资源是程序的一部分,但是它是不可执行代码.下面我们就详细 ...

  2. delphi 资源文件详解

    delphi资源文件详解 一.引子: 现在的Windows应用程序几乎都使用图标.图片.光标.声音等,我们称它们为资源(Resource).最简单的使用资源的办法是把这些资源的源文件打入软件包,以方便 ...

  3. delphi资源文件的使用

    delphi资源文件的使用 资源文件(*.res)通过编译指令 $R 关联, 譬如工程文件 Project1 中的 {$R *.res} 就是关联 Project1.res 资源文件, 我们直接写作 ...

  4. Delphi 资源文件( .res)

    一.    现在的Windows应用程序几乎都使用图标.图片.光标.声音等,我们称它们为资源(Resource).最简单的使用资源的办法是把这些资源的源文件打入软件包,以方便程序需要的时候调用.资源是 ...

  5. delphi资源文件制作及使用详解

    一.引子:现在的Windows应用程序几乎都使用图标.图片.光标.声音等,我们称它们为资源(Resource).最简单的使用资源的办法是把这些资源的源文件打入软件包,以方便程序需要的时候调用.资源是程 ...

  6. Direct2D开发:MFC下从资源文件中加载位图

    转载请注明出处:http://www.cnblogs.com/ye-ming 0X01 概述: 相对于GDI处理界面,Direct2D有得天独厚的优势,下图就是Direct2D与GDI的效果对比,wi ...

  7. Android开发---如何操作资源目录中的资源文件

    效果图: 1.activity_main.xml <?xml version="1.0" encoding="utf-8"?> <Linear ...

  8. iOS获取ipa素材、提取ipa包资源文件

    当我们看到一款优秀的App时,我们可能对它的一些素材比较感兴趣,或者我们也想仿写一款类似app,那么怎么能获取到它的素材资源文件呢? 下面我以ofo举例: 1.打开iTunes,搜索ofo关键字,选择 ...

  9. 【转】资源文件在Delphi编程中的应用

    段东宁 计亚南 (郴州职业技术学院, 湖南 郴州  423000) 摘要: 资源文件是一种能有效地组织.管理和使用资源的文件形式,在软件开发中有着广泛的应用.本文详细介绍了在Delphi编程中资源文件 ...

随机推荐

  1. Android小代码——设置全屏

    1: public class MainActivity extends Activity { 2: @Override 3: public void onCreate(Bundle savedIns ...

  2. 转的git

    原文链接:http://blog.csdn.NET/dengjianqiang2011/article/details/9260435 如果输入$ Git remote add origin git@ ...

  3. 使用jsp生成验证码

    在开发中验证码是比较常用到有效防止这种问题对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试的方式. 此演示程序包括三个文件: 1.index.jsp:登录页面 2.image.jsp:生成 ...

  4. 一个失误导致微信下载图片接口Token失效

    公司的应用调了一个微信上传下载图片的接口,本来在线上跑的好好的,什么问题没有,但是这两天总是不定时的出现下载下来的图片损坏,拿着Token和serverid去接口测试网页验证,返回的是Token失效了 ...

  5. AdminCMD

    program AdminCMD; {$APPTYPE CONSOLE} uses Windows, ShellApi, SysUtils; function RunAsAdmin(const iEx ...

  6. SQL中如何使用UPDATE语句进行联表更新(转)

    在本例中: 我们要用表member中的name,age字段数据去更新user中的同字段名的数据,条件是当user 中的id字段值与member中的id字段值相等时进行更新. SQL Server语法: ...

  7. linux中的strings命令简介2

    摘自:http://blog.csdn.net/stpeace/article/details/46641069 linux中的strings命令简介 之前我们聊过linux strings的用法和用 ...

  8. 微信小程序 app.json 配置

    我们使用app.json文件来对微信小程序进行全局配置,决定页面文件的路径.窗口表现.设置网络超时时间.设置多 tab 等. 以下是一个包含了所有配置选项的简单配置app.json : { " ...

  9. Life is short, you need Python

    今年四五月份的时候我打算学一门计算机语言. 计算机语言实在是很多,选哪一个? 其实这个选择就和去市场买菜类似,想明白了自己的需求才能做好决定.你想做什么饭,就去买什么菜.想做南瓜粥,就要去买南瓜,想要 ...

  10. 演示如何通过 web api 上传文件MVC40

    演示如何通过 web api 上传文件WebApiWebFormHost/UploadFileController.cs /* * 通过 web api 上传文件 */ using System; u ...