前往顾页
以后地位: 主页 > 收集编程 > 其他实例教程 >

Delphi中奇妙操纵RES文件

时候:2011-12-14 22:35来源:知行网www.zhixing123.cn 编辑:麦田守望者

在Delphi项目中,凡是有一个与项目称呼主文件名不异的.RES文件,该文件用于保存利用法度图标等资本,对应于此文件,在项目文件中必然含有编译唆使”{$R *.res}”,奉告编译器编译时需求包含与项目主文件名不异的.RES文件。一样,如果需求在利用法度中以资本情势包含任何文件范例,也能够操纵.RES文件。本文将奉告你若何操纵RES文件在Delphi法度外部包含文件。


  一建立.RES文件
  这里以一组音频文件为例。起首用记事本等任何文本编辑器编写文件”MyMusic.RC”。文件的格局及内容以下:
SRC1 FILE1 OnlyYou.mp3
SRC2 FILE2 YesterdayOnceMore.mp3
SRC3 FILE3 MoonRiver.mp3

 

  此中,每行表示声明一项资本,每项资本的声明包含三个参数定义,第一个参数是资本的称呼,第二个参数是资本的范例描述(本例定义了三类),第三个参数是文件名。参数之间必须由空格隔开。
编写完成”MyMusic.RC”文件后,将其与上述三个.MP3文件安排在同一文件夹中(为了不由设置途径带来的费事)。然后以下面的号令交运行利用法度brcc32.exe(位于..\Delphi6\Bin):brcc32 mymusic.rc需求重视的是,该号令只能在号令行体例下履行。如果体系的PATH环境变量中不包含Delphi的运行途径,那么你还需求将brcc32.exe与MyMusic.RC、三个.MP3文件安排在同一途径中进行。运行上述号令行后,将在同一途径中获得文件”MyMusic.RES”,这就是一个自力完整的资本文件,其格局是遵守Windows 标准的,是以可以在诸如VB、VC、CBuilder等多种开辟环境中利用。


  二在法度中声明包含.RES文件
  你只需求在项目中的某个单位中(最好是你需求操纵这些资本的单位,如许会使你的利用法度更具有可读性)插手以下编译唆使:
$R MyMusic.RES}
{


  固然该编译唆使可以位于单位的任何地位,但为了使你的源代码布局公道,最好还是将其并各位于编译唆使”{$R *.dfm}”(每个含有窗体文件的单位中都含有该行编译唆使)。这里的编译唆使就明白奉告编译器,在编译利用法度时需求将资本文件”MyMusic.RES”包含到利用法度中。


  三在运行时获得资本
上述两步事情仅仅是根本(但必然是需求的),操纵资本才是底子目标。下面的过程将奉告你若何将利用法度中包含的资本(文件)从头复原。
procedure MusicResToFile(const ResName, ResType,FileName: string);
var
Res: TResourceStream;
begin
Res := TResourceStream.Create(HInstance,ResName, PChar(ResType));
Res.SaveToFile(FileName); //将资本保存为文件,即复原文件
//你还可以进行别的的流操纵,在内存中实现对资本操纵而没必要另存为文件
Res.Free;
end;

 

调用该过程的示比方:
MusicResToFile(‘SRC2′, ‘FILE2′, ‘TheSecondMusic.MP3′);


值得一提的是,操纵此体例,你完整可以制作本身的装置法度,该装置法度仅包含一个可履行文件,在该可履行文件中以资本的情势包含所有将要装置的内容(文件)。别的,如果在你的利用法毒予要播放外部音频文件(如背景音乐、声响提示等),也可经由过程此体例将这些外部文件包含到利用法度中,从而避免用户误删这些音频文件导致利用法度的不完整。

------分开线----------------------------
标签(Tag):delphi
------分开线----------------------------
保举内容
猜你感兴趣