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. 【Android】7.2 LinearLayout(线性布局)

    分类:C#.Android.VS2015: 创建日期:2016-02-10 一.简介 LinearLayout将容器内的组件一个挨着一个地横向或纵向依次堆叠起来(不重叠).该布局和WPF的StackP ...

  2. android stuido - 关闭单词拼写检查

    "File"-"Settings"-"Editor "-"Inspections" 在Spelling栏取消选中,再点击 ...

  3. merge源表数据移植到目标表新表数据中

    merge into dbo.ak_SloteCardTimes a using(select RecordID,CardNO,SloteCardTime from dbo.Tb_CardDate b ...

  4. linux系统资源网站

    http://upstream.rosalinux.ru/    API/ABI changes analysis for C/C++ libraries

  5. ny71 独木舟的旅行

    独木舟上的旅行时间限制:3000 ms  |  内存限制:65535 KB难度:2描述进行一次独木舟的旅行活动,独木舟可以在港口租到,并且之间没有区别.一条独木舟最多只能乘坐两个人,且乘客的总重量不能 ...

  6. ny10 skilng

    skiing 时间限制:3000 ms  |  内存限制:65535 KB 难度:5 描述 Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑 ...

  7. angularJS绑定数据中对标签转义的处理二 与pre标签的使用

    一.问题 默认情况下,angularJS绑定的数据为字符串文本,不会对其中包含的html标签进行转义生成格式化的文本.在实际工作时碰到接口返回的数据带有html格式时该如何处理. 二.解决办法 1.引 ...

  8. oracle判断查询结果是否为空

    create table test1023(id int); --创建测试表 test1023 declare cnt int; begin select count(*) into cnt from ...

  9. System.Data.SqlClient.SqlError:无法打开备份设备'D:\..\abc.bak'

    在SQL Server中备份数据库时遇到备份对于服务器“服务器名”失败. (Microsoft.SqlServer.Smo)其他信息:System.Data.SqlClient.SqlError:无法 ...

  10. CentOS更新163 yum源

    这个脚本也没啥多大意义,只是为了自己练习着写一下bash ======================================================================= ...