资源文件的创建与使用

转载 2004年09月18日 23:38: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;

QT5 学习之路13---资源文件

上一章节中我们介绍了如何使用QAction添加动作。其中,我们使用QIcon加载了一张 png 图片。那时候我们使用的是 Qt 资源文件。现在我们来仔细了解下 Qt 的资源系统。Qt 资源系统是一个跨...
  • gusgao
  • gusgao
  • 2015年10月03日 10:52
  • 607

C#创建和使用资源文件

创建资源文件    资源文件顾名思义就是存放资源的文件。资源文件在程序设计中有着自身独特的优势,他独立于源程序,这样资源文件就可以被多个程序使用。同时在程序设计的时候,有时出于安全或者其他方面因素的考...
  • cdo
  • cdo
  • 2005年01月05日 10:41
  • 3601

Android资源文件之创建与访问

如果你想将某一资源用于多种设备配置(但是不想作为默认资源提供), 则无需将同一资源放入多个备用资源目录中。相反,可以(在某些情况下)创建备用资源,充当保存在默认资源目录下的资源的别名。 注: 并非...
  • u012908775
  • u012908775
  • 2016年07月15日 16:36
  • 1610

.NET中资源文件的创建与使用

一、资源文件资源文件顾名思义就是存放资源的文件。资源文件在程序设计中有着自身独特的优势,他独立于源程序,这样资源文件就可以被多个程序使用。同时在程序设计的时候,有时出于安全或者其他方面因素的考虑,把重...
  • mayimb
  • mayimb
  • 2007年11月03日 20:36
  • 374

.NET资源文件的创建、使用

资源文件就是存放资源(字符串、图像、图标等)的文件。资源文件独立于源程序,这样就可以被多个程序使用。同时在程序设计的时候,有时出于安全或者其他方面因素的考虑,把重要东西存放在资源文件中,也可以达到保密...
  • andtom
  • andtom
  • 2004年08月23日 16:54
  • 816

Android资源文件res的使用详解(strings,layout,drawable,arrays,动画等)

本文介绍在Android开发中关于资源文件的存储操作。对于Android资源也是非常重要的,主要包括文本字符串(strings)、颜色(colors)、数组(arrays)、动画(anim)、布局(l...
  • jian_csdn
  • jian_csdn
  • 2015年07月14日 11:18
  • 629

vs2013使用qt设计师创建新窗体后如何关联资源文件

使用vs2013开发qt,使用qt设计师在原来窗体上创建了一个新ui设计师类后,新生成了一个相应的.ui文件,但是在这个ui文件上无法使用之前已经创建的qrc资源文件。如何添加, 方法如下: 1.需要...
  • qqwangfan
  • qqwangfan
  • 2017年03月14日 16:31
  • 1290

C# wpf 使用资源文件 resx

C# wpf 使用资源文件 resx
  • lindexi_gd
  • lindexi_gd
  • 2015年03月02日 23:23
  • 2292

Android中资源文件的使用(一):如何使用资源

1. 什么是资源文件? a) 所有的应用程序都由两部分构成:功能(代码指令)和数据(资源), b) 功能决定应用程序的的行为, 它包括让应用程序得以运行的所有算法. c) 资源包括文本字符串 \...
  • watermusicyes
  • watermusicyes
  • 2014年05月30日 09:41
  • 3289

VS2010 VC++创建.rc资源文件

VS2010 VC++创建.rc资源文件初学MFC,对资源文件总是很困惑。一上来就直接自动生成了那么多的东西,尤其是.rc和resource.h文件。这两天了解了一下这个东西,在这里分享一下,欢迎交...
  • NNNNNNNNNNNNY
  • NNNNNNNNNNNNY
  • 2015年06月07日 01:09
  • 8907
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:资源文件的创建与使用
举报原因:
原因补充:

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