• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

在Delphi中编写res文件

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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;

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi与DirectX之DelphiX(77):TDIB.Distort();发布时间:2022-07-18
下一篇:
Delphi下指针使用总结发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap