资源文件的创建与使用

原创 2003年05月14日 17:33:00

资源文件的创建与使用

1.创建资源文件
首先创建一个.Rc的纯文本文件。格式如下:
资源标识符 + 关键字 + 资源文件名
(1) 资源标识符:程序中调用资源时的特殊标号;
(2) 关键字:标识资源文件类型;
Wave: 资源文件是声音文件;
RCDATA: JPEG文件;
AVI: AVI动画;
ICON: 图标文件;
BITMAP: 位图文件;
CURSOR: 光标文件;
资源文件名:资源文件名;
(3) 资源文件名:编译的资源文件,比如动画、位图、光标等;
(4) 如:MyWav WAVE "FileName.Wav"
使用Borland资源编译器(BRCC32.EXE)转化.Rc文件成.Res文件。在DOS命令行下输入下列命令:
Brcc32 FileName.Rc // Brcc32.Exe在Delphi5/Bin文件下。
2.在工程中引用资源文件
为了存取我们的资源文件,必须告诉Delphi链接我们的资源文件到应用程序中。因此我们可以在源代码中加入一条编译指令完成上述功能。这条指令必须紧跟在窗口指令后,如下形式:
{$R *.DFM} file://Delphi自带编译指令
{$R FileName.Res} file://新加入的编译资源文件的指令。
不要删除{$R *.DFM}指令,因为这行代码告诉Delphi链接下面的资源到窗口的资源中。
3.调用资源文件
(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' ; file://资源标识
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;

KETTLE系列2--创建资源库

2.1 资源库的介绍:         资源库是用来保存转换任务的,用户通过图形界面创建的的转换任务可以保存在资源库中。         资源库可以使多用户共享转换任务,转换任务在资源库中是以文件夹...
  • ye1142262478
  • ye1142262478
  • 2017年03月01日 15:00
  • 2269

C# Winform资源文件的创建、加载和使用

C#winform中通过资源文件(.resx)实现国际化,加载不同语言的资源文件可实现对应语言版本的程序和界面显示,下面简单介绍资源文件的创建与加载步骤: 创建中英文资源文件        win...
  • yanfk
  • yanfk
  • 2017年02月23日 19:59
  • 2522

iOS创建.a和.framework静态库,以及Bundle资源文件的使用

引言在开发中.framework静态库还是比较常见的,比如:SDK,公司间的代码合作等。我们可以把一些不愿意让别人见到的代码,用静态库的方式把它隐藏起来,只留下.h文件显示方法供编程人员使用。而.a文...
  • pangshishan1
  • pangshishan1
  • 2017年05月15日 17:27
  • 1841

iOS创建.a和.framework静态库,以及Bundle资源文件的使用

引言在开发中.framework静态库还是比较常见的,比如:SDK,公司间的代码合作等。我们可以把一些不愿意让别人见到的代码,用静态库的方式把它隐藏起来,只留下.h文件显示方法供编程人员使用。而.a文...
  • pangshishan1
  • pangshishan1
  • 2017年05月15日 17:27
  • 1841

不使用资源文件动态创建对话框的做法

作者:朱金灿来源:http://blog.csdn.net/clever101 一般而言,在 Windows编程中创建对话框需要先定义一个对话框资源。我想能不能不用资源文件单纯通过代码创建对话框呢?晚...
  • clever101
  • clever101
  • 2012年02月23日 23:53
  • 6570

使用sencha touch cmd 4.0 创建项目、打包(加入全局变量、公用类、自定义扩展、资源文件)

参考资料: http://www.cnblogs.com/qqloving/archive/2013/04/25/3043606.html http://www.admin10000.co...
  • u014601106
  • u014601106
  • 2014年07月22日 09:40
  • 1040

VS2010 VC++创建.rc资源文件(二)

  • 2015年06月07日 01:23
  • 294KB
  • 下载

VS2010 VC++创建.rc资源文件(一)

  • 2015年06月07日 01:20
  • 10.67MB
  • 下载

资源文件创建Connection

  • 2008年05月02日 02:36
  • 862B
  • 下载

精彩编程与编程技巧-地大物博——谈谈在VB6.0中如何使用资源文件进行编程...

  • 2009年10月09日 23:00
  • 916B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:资源文件的创建与使用
举报原因:
原因补充:

(最多只允许输入30个字)