先用记事本编写一个rc的文件。如内容为:
_Comms RCData Comms.jpg

Comms.jpg为图片名称,
然后在这个rc文件和图片拷贝到delphi安装路径的bin文件夹里面,
选中这两个文件,拉到“brc32.exe”文件上面,就会生产一个res格式的文件出来。
文件名称为跟rc文件的名称一样。


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; 
楼主兄弟,希望上面的东东能对你有所帮助。


谈资源文件在Delphi中的应用 
                                 鲸鱼工作室 陈经韬 
                               http://lovejingtao.126.com

资源文件一般为扩展名为res的文件。在VC中资源文件用得非常普遍, 
但Delphi在其联机帮助中对资源文件没作什么介绍,其实利用其自带的 
资源编译工具BRCC32.EXE(一般位于/Delphi/BIN目录下),我们完全可 
以做出跟VC一样效果的文件来。 
 资源文件最大的好处是能将一些在必要时才调用的文件跟可执行文件一 
起编译,生成一个文件.这样做最大的好处就是使外部文件免遭破坏.例如 
在一条程序中你要临时调用一幅图片,一般作法是把图片放在某一路径下 
(通常是主程序所在路径),但如果用户路径误删你的图片文件,则可能 
使程序找不到相应文件而出错崩溃。另外,如果你想自己的程序界面美观, 
想用一些自定义光标,也要用到资源文件。 
资源文件的使用步骤为: 
1.编写rc脚本文本 
用记事本或其它文本编辑器编写一个扩展名为rc的文件。例如: 
mycur cursor move.cur //加入光标 
mypic Bitmap Water.BMP //加入位图 
mywav WAVE happy.wav //加入声音 
myAVI AVI EPOEN.AVI //加入视频 
myIco ICON CJT.ICO //加入图标 
格式分别为在资源文件中的名称->类型->实际文件名称,例如上面 
第一行 定义一个名为mycur的光标,实际名称为加入光标move.cur. 
2.将rc文件编译成res资源文件 
将脚本文件和实际文件拷到Brcc32.EXE所在目录,执行DOS命令。 
格式为:Brcc32 脚本文件(回车),例如有一名为myfirst.rc的脚本文件, 
则执行 Brcc32 myfirst.rc(回车)即可。如果你是懒人,也可新建一批 
处理文件,内容 只有一行:Brcc32 mufist.rc.(因为Delphi安装后一般会 
在自动批处理文件中指明搜索路径的。)如果编译成功,则会生成一个结尾 
为res的文件,这个 文件就是我们需要的资源文件。 
3.在Delphi单元中加入资源文件 
将生成的res资源文件拷贝到你所编程序的路径下,在单元文件 
{$R *DFM}后加上一句{$R mufirst.res},则将res文件加入去,编译后资 
源文件即已包含在可执行文件中了。若你有多个资源文件,也按上法依次 
加入。 
4.在Delphi程序中调用资源文件 
资源文件在Delphi中的关键字为hinstance.下面给出具体用法 
<1>光标的调用 
首先在程序中定义一个值大于0的常量,因为Delphi本身用0-负 
16来索引 默认的光标,所以我们制定的光标应从表面上1开始索引。然后 
在窗口的Oncreat事件中添加以下代码: 
screen.cursor[35]:Load cursor (hinstance,'mycur'); 
其中35为大于1的常量,mycur为光标在资源文件中的名字。如 
果希望在 其他控件上使用定制光标,例如Panel控件,只需在程序的适当 
处加入以下代码: 
Panel1.cursor:=35; 
<2>位图的调用 
新建一项工程,添加一Timage控件,在需要显示的地方写以下代码: 
Var mymap:Hbitmap; 
begin 
hmymap:=LoadBitmap(hinstance,'mypic'); 
Image1.picture.Bitmap.Handle:=mymap; 
end; 
其中"mypic"为位图资源文件中的名称。 
〈3〉AVI文件的调用 
新建一工程,添加一Animate控件,在需要的地方加入: 
animater1.resname:='myAVI'; 
animater1.Active:=true; 
其中myAVI为视频文件在资源文件中的名称。 
〈4〉调用WAV文件 
在uses中加入mmsystm单元,以便在程序中播放WAV文件。播放时Playsound 
(pchar('mywav'),hinstance,sndsync or snd_resource);其中mywav为声音 
文件在资源中的名称。 
〈5〉加入光标 
加入光标比较容易,只要将res文件加入单元文件中即可。但需注意,名称 
最好取"W"."WW"等,使第一个字母尽量靠后,以免与主程序的图标顺序颠倒。 
补充:1.资源类型除上述类型外,还可以字体文件,字符串文件等。 
2.资源文件不但可以在标准图形界面下使用还可在控制台下使用。 
下面我们来试验一下: 
新建一工程,将唯一的一个Form删除,然后修改工程文件。增加一句 
{$Apptype console},在uses子句中加入mmsystem,并将其它引用单元 
删掉。将Begin和end之间语句删掉。至此,我们就可和Turbo PASCAL 
下编程序一样,且还可以调用windows的API和资源。将资源文件---- 
{$R myfist.res}加入。在Begin和end之间写下: 
writeln('演示程序,按任意键开始!'); 
readln; 
playsound(pchar('mywav'),hinstance,snd_sync or snd_resource); 
writeln('演示结束!'); 
运行程序,将弹出一个标准DOS窗口,按任意键播放声音文件。是不是很COOL呢! 
我曾下载过一个播放器,在其安装目录下我发现有一"DOS程序",用鼠标双击它 
便弹出一个DOS窗口,显示DOS时代特有的画图,并有背景音乐!可能就是用这个 
方法做的。

编辑JPG.RC文件 
jpg1 jpeg 1.jpg 
jpg2 jpeg 2.jpg 
用BRCC32 JPG.RC 
在程序中用 
{$r jpg.res} 
var 
JPg:Tresourcestream; 
begin 
jpg:=Tresourcestream.create(hinstance,'jpg1','jpeg'); 
image1.picture.assign(Jpg); 
JPg.free; 
end;

http://blog.csdn.net/zisongjia/article/details/61915116

在Delphi中编辑res文件的更多相关文章

  1. 在Delphi中编写res文件

    delphiimagedosinterfaceborland脚本先用记事本编写一个rc的文件. 如内容为: _Comms RCData Comms.jpg Comms.jpg为图片名称, 然后在这个r ...

  2. eclipse中编辑properties文件无法看到中文

    如果在eclipse中编辑properties文件无法看到中文则参考“Eclipse开发环境配置-indigo.docx”添加propedit插件.

  3. delphi中如何实现文件的复制?

    http://zhidao.baidu.com/link?url=nyAzCpeXAbaT8M3qqAePCF1Zr7q-oK4hpAUNIaRYpHcbmIwYsLr1TXoTt8759HtR1EB ...

  4. delphi中的各种文件类型介绍【转】

    1.DPR: Delphi Project文件,包含了Pascal代码.应用系统的工程文件2.PAS: Pascal文件,Pascal单元的源代码,可以是与窗体有关的单元或是独立的单元.3.DFM:D ...

  5. delphi中的各种文件类型介绍

    1.DPR: Delphi Project文件,包含了Pascal代码.应用系统的工程文件2.PAS: Pascal文件,Pascal单元的源代码,可以是与窗体有关的单元或是独立的单元.3.DFM:D ...

  6. Delphi中编辑word

      其他(28)   //启动Word   try     wordapplication1.connect;   except     messagedlg('word may not be ins ...

  7. 解决Eclipse中编辑xml文件的智能提示问题,最简单的是第二种方法。

    Eclipse for Android xml 文件代码自动提示功能,介绍Eclipse 编辑器中实现xml 文件代码自动智能提示功能,解决eclipse 代码提示失效.eclipse 不能自动提示. ...

  8. [转]解决Eclipse中编辑xml文件的智能提示问题

    转自:http://hi.baidu.com/cghroom/item/48fd2d0dc1fc23c675cd3c3e 摘要:  Eclipse for Android xml 文件代码自动提示功能 ...

  9. 未联网下,在eclipse中编辑xml文件如何自动提示设置

    断网情况下,用eclipse编辑xml文件如何自动提示? 以编辑hibernate中的xml为例: 首先,我们都知道xml提示是引用.dtd文件的. 1.复制这个dtd路径,设置eclipse属性,搜 ...

随机推荐

  1. 循环不变式(loop invariant)

    循环不变式是一种条件式(必须满足的条件,对循环而言是保持不变的,无论循环执行了多少次),循环语句没执行一次,就要求中间的结果必须符合不变式的要求. (1)进入循环语句时,不变式必须成立: (2)循环语 ...

  2. 使用python抓取CSDN关注人的全部公布的文章

    # -*- coding: utf-8 -*- """ @author: jiangfuqiang """ import re import ...

  3. java-工具代码

    格式化输出 //d:是输出整数 //10;表示输出10位整数 //0:表示如果不够10位的话,用0来占位,也可以用写成空格,用空格来占位 String a = String.format(" ...

  4. 【codeforces 785B】Anton and Classes

    [题目链接]:http://codeforces.com/contest/785/problem/B [题意] 给你两个时间各自能够在哪些时间段去完成; 让你选择两个时间段来完成这两件事情; 要求两段 ...

  5. 【Codeforces Round #438 B】Race Against Time

    [链接]h在这里写链接 [题意] 时针.分钟.秒针走不过去. 问你从t1时刻能不能走到t2时刻 [题解] 看看时针.分钟.秒针的影响就好. 看看是不是在整时的位置就好. 然后看看影响到x不能到y; 然 ...

  6. Bit error testing and training in double data rate (ddr) memory system

    DDR PHY interface bit error testing and training is provided for Double Data Rate memory systems. An ...

  7. Attribute-based identification schemes for objects in internet of things

    Methods and arrangements for object identification. An identification request is received from diffe ...

  8. MySQL - 常见的三种数据库存储引擎

    原文:MySQL - 常见的三种数据库存储引擎 数据库存储引擎:是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建.查询.更新和删除数据.不同的存储引擎提供不同的存储机制.索引技巧. ...

  9. Android实现图片滚动控件,含页签功能,让你的应用像淘宝一样炫起来

    首先题外话,今天早上起床的时候,手滑一下把我的手机甩了出去,结果陪伴我两年半的摩托罗拉里程碑一代就这么安息了,于是我今天决定怒更一记,纪念我死去的爱机. 如果你是网购达人,你的手机上一定少不了淘宝客户 ...

  10. 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3)

    原文 各个 C# 版本的主要特性.发布日期和发布方式(C# 1.0 - 7.3) 本文收集各个 C# 版本的主要特性.发布日期和发布方式. C# 8.0 尚在预览版本 C# 7.3 2018 年 5 ...