先用记事本编写一个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. (翻译)2016美国数学建模MCM E题(环境)翻译:我们朝向一个干旱的星球?

    PROBLEM E: Are we heading towards a thirsty planet? Will the world run out of clean water? According ...

  2. 为何放弃 C++ 的工作(开发慢,难度高。完全不适应互联网的快速迭代的思想)

    happypeter,2015年1月9日 昨天进燕山大学编程爱好者 QQ 群,看到有很多同学在学 C++ ,我当然是不喜欢了,因为我是做 Web 开发的嘛.所以怀着猥琐的心情,今天写篇傻傻的文章,来黑 ...

  3. 常用的iOS开发或者优化的小工具

    下面介绍一下我常用的iOS开发或者优化的小工具 由于很多工具大多数博客都已经介绍过了,我就列举一些我认为还不错但是大家不常列举的: Crafter https://github.com/krzyszt ...

  4. 【最大M子段和】dp + 滚动数组

    题目描述 给定 n 个数求这 n 个数划分成互不相交的 m 段的最大 m 子段和. 给出一段整数序列 A1,A2,A3,A4,...,Ax,...,An ,其中 1≤x≤n≤1,000,000, -3 ...

  5. Arcgis api for javascript学习笔记(4.5版本) - 获取FeatureLayer中的graphics集合

    在Arcgis api for javascript 3.x 版本中,我们可以直接通过某个FeatureLayer对象中的graphics属性获取要素集合. graphics属性 但是在4.x版本中, ...

  6. String方法总结

    蓝背景为与Array相同的方法 一.字符方法 charAt(index):返回在指定位置的字符. var str="abcdefg"; //undefined str[0] //& ...

  7. 放大缩小,只需要使用这2个函数:SetWindowExtEx、SetViewportExtEx

    相似函数: ScaleWindowExtEx.ScaleViewportExtEx 本例效果图: 代码文件: unit Unit1; interface uses   Windows, Message ...

  8. OpenCV dll 源码调试—附加到进程

    使用CMake可以生成OpenCV源码的解决方案,然后就可以对OpenCV函数进行修改,功能剪切等操作了,对这部分内容感兴趣的可以浏览一下上一篇文章:CMake生成OpenCV解决方案&&am ...

  9. hdu4360 spfa+分割点

    标题要求必须按照L O V E 行走为了,你必须至少有一个完整的LOVE.说明可以通过同一个点反复 对每一个点拆分为4个点.分别为从L,O,V,E到达. 起始点看做是从E到达的 spfa时发现当前点距 ...

  10. .Net Remoting的双向通信和Windows Service的宿主服务

    原文:.Net Remoting的双向通信和Windows Service的宿主服务 作为微软分布式技术之一的.Net Remoting,从性能.安全等各方面来说都是相对比较稳定的,也是一项比较成熟的 ...