选择显示字体大小

在delphi中巧妙利用res文件

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');

值得一提的是,利用此方法,你完全可以制作自己的安装程序,该安装程序仅包含一个可执行文件,在该可执行文件中以资源的形式包含所有将要安装的内容(文件)。此外,如果在你的应用程序中需要播放外部音频文件(如背景音乐、声音提示等),也可通过此方法将这些外部文件包含到应用程序中,从而避免用户误删这些音频文件导致应用程序的不完整。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons