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;

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

  1. 在Delphi中编辑res文件

    先用记事本编写一个rc的文件.如内容为:_Comms RCData Comms.jpg Comms.jpg为图片名称,然后在这个rc文件和图片拷贝到delphi安装路径的bin文件夹里面,选中这两个文 ...

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

    http://zhidao.baidu.com/link?url=nyAzCpeXAbaT8M3qqAePCF1Zr7q-oK4hpAUNIaRYpHcbmIwYsLr1TXoTt8759HtR1EB ...

  3. delphi中的各种文件类型介绍【转】

    1.DPR: Delphi Project文件,包含了Pascal代码.应用系统的工程文件2.PAS: Pascal文件,Pascal单元的源代码,可以是与窗体有关的单元或是独立的单元.3.DFM:D ...

  4. delphi中的各种文件类型介绍

    1.DPR: Delphi Project文件,包含了Pascal代码.应用系统的工程文件2.PAS: Pascal文件,Pascal单元的源代码,可以是与窗体有关的单元或是独立的单元.3.DFM:D ...

  5. 在visual studio code和visual studio中编写TypeScript文件自动生成JavaScript文件

    注:此处的自动生成都为保存ts文件时自动生成js文件 VS CODE 只需要在TypeScript的终端控制台中输入如下命令即可,并注意需要将其中的*换成对应的文件名,此处的*似乎不能作为通用匹配. ...

  6. Delphi中编写无输出函数名的DLL文件(有点意思)(400多篇博客)

    用 Delphi 用长了,总是发现,有些和 MS 不同的地方.例如,MS 的公开库中,常常隐藏了许多重要函数,这些函数在系统中常常有起着非常巨大的作用.一旦知道如何调用,可以给自己的应用程序提供很强的 ...

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

    一个RAR压缩文件,用DELPHI编的程序打开它并解压到某一目录,怎么实现的?自己搞定了例子:winrar.exe e -y C:\WINDOWS\Desktop\ghost.rar d:\ 但新的问 ...

  8. linux中编写同步文件的脚本

    搭集群最麻烦的就是修改配置文件,如果只用修改一个机器上的配置文件,然后用一个脚本就可以把配置文件同步到其他机器上,岂不快哉! 编写一个名为xsync的脚本文件: 作用: 将当前机器的文件,同步到集群所 ...

  9. delphi中无类型文件读写

    unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...

随机推荐

  1. cocos2d-x开发记录:二,基本概念(骨骼动画)

    九,骨骼动画 1.骨骼动画vs Sprite sheets 你能使用sprite sheets 创建动画,它很快又容易.直到你意识到你的游戏需要大量的动画并且内存消耗越来越高,并且需要时间载入全部数据 ...

  2. [svc]centos7安装优化最佳姿势

    源/软件/时区/selinux/ulimit/vim/sshd 下载安装: https://mirrors.aliyun.com/centos/7.4.1708/isos/x86_64/CentOS- ...

  3. Jquery获得子页面中某个元素

    本页面中有子框架iframe1.获取iframe1中元素 $("input[name$='svNo']", window.frames["iframe1"].d ...

  4. linux-CentOS6.4安装Memcached+memcached扩展+安装memcache扩展+Memcache+mecached同步SESSION的几种方法

    一.编译环境的准备 yum install gcc  yum install gcc-c++ libstdc++-devel  yum install zlib-devel 二.源代码包准备 wget ...

  5. codeforces 482B. Interesting Array【线段树区间更新】

    题目:codeforces 482B. Interesting Array 题意:给你一个值n和m中操作,每种操作就是三个数 l ,r,val. 就是区间l---r上的与的值为val,最后问你原来的数 ...

  6. 特效effects

    Test中使用的特效如下 首先,使用ccg(x,y)建grid,一个Grid 属性就好像一个矩阵,是一个网络的线,组成一系列的方块和矩阵. 一个(16,12)大小的grid将会运行的非常快,但是并不会 ...

  7. ORACLE 多列合并成一行数据 WM_CONCAT函数以及REPLACE

    WM_CONCAT()方法 注意字符长度 SELECT BERTHCODE,tpf.freedatetype, ( SELECT WM_CONCAT(SBPT.PARKSTIME||'~'||SBPT ...

  8. 149. Best Time to Buy and Sell Stock【medium】

    Say you have an array for which the ith element is the price of a given stock on day i. If you were ...

  9. c++——派生类和基类转换(类型兼容性原则)

    基类也叫父类,派生类也叫子类. 类之间的继承关系继承关系是类之间的父子关系. 继承关系的特点如下:A. 子类拥有父类的所有属性和行为B. 子类也是一种特殊的父类C. 子类对象可以当父类对象使用D. 子 ...

  10. VC 与Matlab混合编程之引擎操作详解

    Visual C++ 是当前主流的应用程序开发环境之一,开发环境强大,开发的程序执行速度快.但在科学计算方面函数库显得不够丰富.读取.显示数据图形不方便. Matlab 是一款将数值分析.矩阵计算.信 ...