在Delphi中编写res文件

delphiimagedosinterfaceborland脚本先用记事本编写一个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;

时间: 2024-11-02 21:43:11

在Delphi中编写res文件的相关文章

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

http://zhidao.baidu.com/link?url=nyAzCpeXAbaT8M3qqAePCF1Zr7q-oK4hpAUNIaRYpHcbmIwYsLr1TXoTt8759HtR1EBrey-4DYDtDRTWNYfF_a delphi中如何实现文件的复制?  2009-07-26 10:37fanxiaoyue | 浏览 7824 次 编程语言 我要将c盘下已存在的文件 123.txt复制到d盘并重命名为123-备份.txt如何用 的delphi实现 2009-07-27 08

delphi中的各类文件类型(转)

1.DPR: Delphi Project文件,包含了Pascal代码.应用系统的工程文件2.PAS: Pascal文件,Pascal单元的源代码,可以是与窗体有关的单元或是独立的单元.3.DFM:Delphi Form File,描述窗体或数据模块及其组件属性的二进制文件.窗体界面文件, 同PAS文件同名,而  且一一对应, 定义了窗体属性和构件的属性,4.BPG Borland Project Group 工程项目包, 多个工程文件DPR的集合5().DOF Delphi Option Fi

delphi中的各种文件类型介绍

1.DPR: Delphi Project文件,包含了Pascal代码.应用系统的工程文件2.PAS: Pascal文件,Pascal单元的源代码,可以是与窗体有关的单元或是独立的单元.3.DFM:Delphi Form File,描述窗体或数据模块及其组件属性的二进制文件.窗体界面文件, 同PAS文件同名,而  且一一对应, 定义了窗体属性和构件的属性,4.BPG Borland Project Group 工程项目包, 多个工程文件DPR的集合5().DOF Delphi Option Fi

Delphi中编写OwnerDraw方式按钮的方法以及注意点

{在Win32标准控件库中(comctl32.dll)的控件绝大部分的控件都支持自画(OwnerDraw)功能的设置,这里以按钮为例子说说此类控件在delphi中的编写方式以及应该注意的问题!由于标准的按钮都有一套规定的外观标准(由windows的comctl32.dll中的代码绘制),为了给用户一个自己绘制控件的机会,多数的控件都支持在创建的时候设置一个标志来告诉系统这个控件需要自己绘制,例如按钮中有:BS_OWNERDRAW,菜单的有:MF_OWNERDRAW等等(还有诸如:ComboBox

用DELPHI中实现RAR文件解压到指定一目录

一个RAR压缩文件,用DELPHI编的程序打开它并解压到某一目录,怎么实现的?自己搞定了例子:winrar.exe e -y C:\WINDOWS\Desktop\ghost.rar d:\ 但新的问题出来了,如果在解压过程中用户终止了解压,我怎么在程序中判断解压是否顺利完成了的!winrar 异常终止一个解压进程会发出异常消息吗? 自己又查到了:AR 成功操作后返回 0 .非 0 返回码意味着操作由于某种错误被取消: 255 用会中断 用户中断操作 9 创建错误 创建文件错误 8 内存错误 没

Delphi 中调用JS文件中的方法

unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,ComObj,ActiveX; type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; procedure FormCreate(Sender: TObject); procedure Button

Delphi中根据分类数据生成树形结构的最优方法

一. 引言:    TreeView控件适合于表示具有多层次关系的数据.它以简洁的界面,表现形式清晰.形象,操作简单而深受用户喜爱.而且用它可以实现ListView.ListBox所无法实现的很多功能,因而受到广大程序员的青睐.    树形结构在Windows环境中被普遍应用,但在数据库开发中面对层次多.结构复杂的数据,如何快速构造树形目录并实现导航呢?    二. 实现关键技术:    在Delphi提供的控件中包含了TreeView控件,但树的具体形成还需要用户编写代码.即它的列表项要在程序

delphi中的XML解析控件TXMLDocument的用法

Delphi中TXMLDocument控件的用法 Delphi中对XML文件的解析做的很好,比直接使用MS的MSXML2_TLB中的接口要方便很多,现称述于下面. 在讲之前先给出一个XML实例,在讲某些部分是要结合实例比较容易理解. 1<?xmlversion="1.0"encoding="gb2312"?><!--文档版本信息,注释格式同HTML--> 2<XMLPackage> 3<clinetinfoip=”202.1

Delphi引用C对象文件

C语言应用非常广泛,并在世界各地拥有大量的代码库.这些代码库与Delphi的可比性较小,因此如果我们无需转换为Delphi代码而可以直接使用这些库的部分代码就完美了.幸运的是,Delphi允许连接到C编译出来的对象文件.但这里有” unsatisfied externals”问题. C is a very widely used language, and this has made the worldwide code library for C huge. The code library