在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;
在Delphi中编写res文件的更多相关文章
- 在Delphi中编辑res文件
先用记事本编写一个rc的文件.如内容为:_Comms RCData Comms.jpg Comms.jpg为图片名称,然后在这个rc文件和图片拷贝到delphi安装路径的bin文件夹里面,选中这两个文 ...
- delphi中如何实现文件的复制?
http://zhidao.baidu.com/link?url=nyAzCpeXAbaT8M3qqAePCF1Zr7q-oK4hpAUNIaRYpHcbmIwYsLr1TXoTt8759HtR1EB ...
- delphi中的各种文件类型介绍【转】
1.DPR: Delphi Project文件,包含了Pascal代码.应用系统的工程文件2.PAS: Pascal文件,Pascal单元的源代码,可以是与窗体有关的单元或是独立的单元.3.DFM:D ...
- delphi中的各种文件类型介绍
1.DPR: Delphi Project文件,包含了Pascal代码.应用系统的工程文件2.PAS: Pascal文件,Pascal单元的源代码,可以是与窗体有关的单元或是独立的单元.3.DFM:D ...
- 在visual studio code和visual studio中编写TypeScript文件自动生成JavaScript文件
注:此处的自动生成都为保存ts文件时自动生成js文件 VS CODE 只需要在TypeScript的终端控制台中输入如下命令即可,并注意需要将其中的*换成对应的文件名,此处的*似乎不能作为通用匹配. ...
- Delphi中编写无输出函数名的DLL文件(有点意思)(400多篇博客)
用 Delphi 用长了,总是发现,有些和 MS 不同的地方.例如,MS 的公开库中,常常隐藏了许多重要函数,这些函数在系统中常常有起着非常巨大的作用.一旦知道如何调用,可以给自己的应用程序提供很强的 ...
- 用DELPHI中实现RAR文件解压到指定一目录
一个RAR压缩文件,用DELPHI编的程序打开它并解压到某一目录,怎么实现的?自己搞定了例子:winrar.exe e -y C:\WINDOWS\Desktop\ghost.rar d:\ 但新的问 ...
- linux中编写同步文件的脚本
搭集群最麻烦的就是修改配置文件,如果只用修改一个机器上的配置文件,然后用一个脚本就可以把配置文件同步到其他机器上,岂不快哉! 编写一个名为xsync的脚本文件: 作用: 将当前机器的文件,同步到集群所 ...
- delphi中无类型文件读写
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...
随机推荐
- iOS中使用block传值
转自:http://blog.sina.com.cn/s/blog_60b45f230100yiaf.html 用此方法传值可以替代委托了.具体例子: MainView.h #import <U ...
- gitlab人备份与恢复
注意新建备份目录是:/usr/local/src/repositories 属主和属组: # ll -d repositories/ drwx------ git root Feb : reposit ...
- flink watermark介绍
转发请注明原创地址 http://www.cnblogs.com/dongxiao-yang/p/7610412.html 一 概念 watermark是flink为了处理eventTime窗口计算提 ...
- ubantu 文件解压缩
对于刚刚接触Linux的人来说,一定会给Linux下一大堆各式各样的文件名给搞晕.别个不说,单单就压缩文件为例,我们知道在Windows下最常见 的压缩文件就只有两种,一是,zip,另一个是.rar. ...
- 20个angularjs开发工具
AngularJS是那些渴望以动态方式来设计web app的web开发人员最偏爱的框架之一.如果你是一个希望启动AngularJS项目的开发人员,那么你可能需要帮助来挑选出趁手的工具…… 在Value ...
- 一些有用的Sql语句
1.插入数据后,返回插入的Id ')
- HttpClient和HttpURLConnection的区别
总结了网上的一些资源,主要有以下两个观点: 分析一: 在研究Volley框架的源码中,发现它在HTTP请求的使用上比较有意思,在Android 2.3及以上版本,使用的是HttpURLConnecti ...
- 初始化git linux上传文件常见问题
SSH生成id_rsa, id_rsa.pub后,连接服务器却报: Agent admitted failure to sign using the key 错误. 解决方法: 在当前用户下执行命令: ...
- python -- 字符串和编码
字符串和编码 数字--文本 ascii(bg2312,shift_jis,eur_kr)--unicode--utf-8 ord(""),chr() 1 Python提供了ord ...
- C语言 · 分糖果
历届试题 分糖果 时间限制:1.0s 内存限制:256.0MB 问题描述 有n个小朋友围坐成一圈.老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏: 每个小朋友都把自己的糖果分一 ...