`
demogodyou
  • 浏览: 4704 次
  • 性别: Icon_minigender_1
  • 来自: China
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Delphi 中资源文件使用详解

阅读更多
编写 RC 脚本文本
用记事本或其它文本编辑器编写一个扩展名为“.rc“的文件。格式如下:

资源标识符  资源类型关键字  资源文件名

其中“资源类型关键字“用于标识资源文件的类型:

AVI     无声动画
BITMAP  位图文件
CURSOR  光标文件
ICON    图标文件
WAVE    声音文件

以上所列均为标准资源类型,也可以给资源自定义一个类型,如:“mytype“。不过两者在调用方式上有些不同(在后面示例“存取资源文件中的位图“中有详细描述)。

2.根据 RC 脚本文件编译成 RES 资源文件

在命令提示符中输入以下内容:

brcc32 FileName.rc  //注:brcc32.exe在DelphiX\Bin目录中

3.在Delphi单元中加入资源文件

将生成的 RES 资源文件复制到相应程序所在的目录中,在单元文件中的“{$R *DFM}“后面加上“{$R FileName.res}“,编译后资源文件就被包含在可执行文件中了。

说明:如果嫌2、3两步麻烦,可以采用更简便的做法,即:将 RC 文件直接添加到项目中,在编译Delphi项目时,会自动编译该资源文件。

4.资源文件调用示例

(1)存取资源文件中的位图
//RC: testBmp bitmap res\test.bmp
Image1.Picture.Bitmap.LoadFromResourceName(HInstance, ’res\test.bmp’);
或:
//RC: testBmp bmptype res\test.bmp
var
  resStream: TResourceStream;
begin
  resStream := TResourceStream.Create(HInstance, ’testBmp’, ’bmptype’);
  Image1.Picture.Bitmap.LoadFromStream(resStream);
  resStream.Free;
end;

请注意上面两种调用方式的不同之处。

(2)存取资源文件中的图标

将图标放在资源文件中,可以实现动态改变应用程序的图标。
//RC: testIcon icon res\test.ico
Application.Icon.Handle := LoadIcon(HInstance, ’testIcon’);

(3)存取资源文件中的AVI动画

//RC: testAvi avi res\test.avi
Animate1.ResName := ’testAvi’;
Animate1.Active := True;

(4)存取资源文件中的JPEG图像

为了能够处理JPEG图像,必须在Interface处引用JPEG单元。

var
  jpg: TJPEGImage;

  resStream: TResourceStream;
begin
  jpg := TJPEGImage.Create;
  resStream := TResourceStream.Create(HInstance, ’testJpg’, ’jpgtype’);
  jpg.LoadFromStream(resStream);
  Image1.Picture.Assign(jpg);
  jpg.Free;
  resStream.Free;
end;

补充:
  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时代特有的画图,并有背景音乐!可能就是用这个方法做的。

  3.Delphi本身自带了一个叫Image Editor的工具,同样可以编辑资源文本,但和本文的方法比较,可得出下表:
      Image   Editor         Brcc32
      BMP     只支持16位色   任意色
      光标    黑白两色       任意色
      ICO     只支持16位色   任意色
      AVI     不支持         支持
      WAV     不支持         支持
      字符串  不支持         支持

  上面说的是直接在程序本身的调用。其实资源文件还有其它用法。比如说在你的程序携带其它文件,要用的时候释放出来。
  例如: myexe exefile ’ha1.exe’//脚本文件

  下面是自定义释放函数ExtractRes,本例中使用如下:

    ExtractRes(’exefile’,’myexe’,’c:\new.exe’);

  就把ha1.exe以new.exe为名字保存到C盘根目录下了.

      function TForm1.ExtractRes(ResType, ResName, ResNewName: string): boolean;
      var
      Res: TResourceStream;
      begin
      try
      Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType));
      try
      Res.SavetoFile(ResNewName);
      Result := true;
      finally
      Res.Free;
      end;
      except
      Result := false;
      end;
      end;
分享到:
评论

相关推荐

    Delphi中资源文件使用详解

    ### Delphi中资源文件使用详解 #### 一、资源文件简介与重要性 资源文件是软件开发中一种常见的用于存储程序所需的各种静态数据文件,如图标、位图、声音等。在Delphi中,资源文件通常以`.res`扩展名的形式存在。...

    Delphi中资源文件使用方法详细讲述

    ### Delphi中资源文件使用方法详解 #### 一、资源文件概述 在Delphi开发环境中,资源文件是一种非常实用的功能,它可以将各种类型的资源(如位图、图标、声音等)整合进应用程序内部,从而避免了外部文件依赖的...

    delphi 制作并调用资源文件

    ### Delphi 制作并调用资源文件详解 #### 一、引言 在软件开发过程中,资源文件的使用十分常见。它可以帮助开发者更好地管理应用程序中的各种资源,如图标、位图、声音文件等。虽然 Delphi 在其官方文档中对于资源...

    Delphi中TStringList类使用详解

    ### Delphi中TStringList类使用详解 #### 概述 `TStringList`是Delphi中的一个非常实用且强大的类,它提供了多种方便的方法来处理字符串列表。本篇文章将详细介绍`TStringList`类的一些常见用法及其背后的实现原理...

    Delphi单元文件详解

    ### Delphi单元文件详解 在Delphi编程语言中,单元文件是构成应用程序的基本构建块,它们不仅封装了代码,还管理着数据类型、接口、实现细节以及初始化与终结化过程。下面将深入解析Delphi单元文件的各个组成部分,...

    Delphi6 SP2 和Delphi7的资源文件汉化(包含源码)

    《Delphi 6 SP2与Delphi 7的资源文件汉化详解》 在软件开发过程中,使用本地化的资源文件对于提升用户体验至关重要。Delphi,作为一款强大的Windows应用程序开发工具,其内置的资源文件默认多为英文,对于中文用户...

    delphi解压ZIP文件

    本文将详细介绍如何在Delphi中使用内置的类库来解压ZIP文件。 #### 二、Delphi VCL UnZip 类库介绍 Delphi 的 VCL (Visual Component Library) 提供了一组用于文件压缩与解压缩的组件,其中 `TVCLUnZip` 类尤其适用...

    Delphi中TApplication详解

    例如,开发者可以使用Delphi内置的字符串处理函数,如`ExtractFilePath`和`ExtractFileName`,来解析`ExeName`属性,从而获取应用程序所在目录或文件名,这对于加载资源文件或识别应用程序的运行位置极为关键。...

    Delph/XE如何应用共享内存映射文件(源代码)

    2. **Delphi中的内存映射文件实现**:在Delphi中,可以使用Windows API函数`CreateFileMapping`和`MapViewOfFile`来创建和访问内存映射文件。`CreateFileMapping`用于创建一个内存映射文件对象,`MapViewOfFile`则将...

    Delphi下IntraWeb应用开发详解代码和书籍

    光盘内容中包含的"Delphi7下IntraWeb应用开发详解.pdf"很可能是本书的电子版,读者可以通过阅读此PDF文件获取详细的教程和示例代码。这些代码实例将有助于读者亲手实践,加深对IntraWeb开发的理解。 总的来说,...

    Delphi 7下IntraWeb应用开发详解(源码)

    《Delphi 7下IntraWeb应用开发详解》是一份深入探讨如何在Delphi 7环境中利用IntraWeb框架进行Web应用程序开发的资源。IntraWeb是一款强大的组件库,允许开发者使用Delphi的VCL(Visual Component Library)界面设计...

    Delphi下IntraWeb应用开发详解

    在Delphi环境中,IntraWeb是一款强大的Web应用程序开发框架,它允许开发者使用Delphi的VCL组件库直接创建服务器端的Web应用。IntraWeb的应用开发详解主要涵盖以下几个关键知识点: 1. **IntraWeb简介**:IntraWeb是...

    delphi模拟windows文件复制粘贴

    在Delphi开发环境中,有时我们需要实现类似于Windows文件资源管理器中的文件复制或移动功能。这通常涉及到使用Windows API来模拟用户操作,比如通过剪贴板(Clipboard)来传递文件列表。本文将详细介绍如何在Delphi...

    Delphi ocx,dll实现详解

    创建DLL时,可以在Delphi中使用"File -> New -> Other -> DLL Wizard"来快速创建一个新的DLL项目。 在DLL的开发过程中,我们需要导出将被其他程序调用的函数。这可以通过在工程文件中添加`exports`关键字并列出函数...

    delphi7工程临时文件清理工具

    `.res`文件是资源文件,包含了程序的图标、菜单等资源信息;`.dpr`是Delphi项目的主文件,包含项目的基本信息和启动代码;`.pas`文件则是Pascal源代码文件,是Delphi程序的主要构成部分。 DClear.exe是这个工具的...

    webbrowser delphi 事件详解

    根据提供的文件信息,我们可以深入探讨 Delphi 中 WebBrowser 组件的相关事件及属性,这对于开发基于 Delphi 的应用程序具有重要意义。 ### WebBrowser 组件概述 在 Delphi 中,`WebBrowser` 组件允许开发者在其...

    delphi资源-Treeview的使用介绍

    ### Delphi 中 Treeview 控件使用详解 #### Treeview 基础概念 在 Delphi 中,`Treeview` 是一种非常重要的控件,用于显示层次结构的数据,例如文件系统或者组织架构等。每一个 `Treeview` 节点(`TreeNode`) 都有...

    delphi 判断文件是否打开.txt

    在IT领域,特别是编程语言与文件操作中,Delphi作为一种历史悠久且功能强大的开发工具,提供了丰富的API和函数供开发者使用,以实现各种复杂的应用逻辑。本文将深入探讨Delphi中如何判断一个文件是否已被打开,这在...

    Delphi7下IntraWeb应用开发详解

    2. **VCL组件兼容**: 由于IntraWeb与VCL的兼容性,开发者可以直接在Web应用中使用Delphi的丰富组件库,如按钮、表格、编辑框等,大大降低了学习曲线和开发时间。 3. **事件驱动编程**: 借鉴Delphi的事件驱动模型,...

    ReportBuilder 15.03汉化资源文件

    **ReportBuilder 15.03汉化资源文件详解** ReportBuilder是一款强大的报表设计工具,主要面向使用Delphi编程语言的开发者。它提供了丰富的报表设计功能,使得开发人员能够轻松创建复杂的业务报告,包括表格、图表、...

Global site tag (gtag.js) - Google Analytics