Delphi7中如何添加资源(resource)

YaYiYaO 2005-09-30 07:46:43
如题,想在工程中加入一些图标
D6中记得在project菜单下有resource选项的,怎么在7里找不到了
...全文
812 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
YaYiYaO 2005-11-09
  • 打赏
  • 举报
回复
OK,两位的方法都试过了,都可以,谢了
baiduan 2005-11-08
  • 打赏
  • 举报
回复
这是非常经典的老文章了。清楚明白的
baiduan 2005-11-08
  • 打赏
  • 举报
回复
创建资源文件
首先创建一个.Rc的纯文本文件。格式如下:
资源标识符 + 关键字 + 资源文件名
① 资源标识符:程序中调用资源时的特殊标号;
② 关键字:标识资源文件类型;
MIDIFILE midi '文件名'
Wave: 资源文件是声音文件;
RCDATA: JPEG文件;
AVI: AVI动画;
ICON: 图标文件;
BITMAP: 位图文件;
CURSOR: 光标文件;
资源文件名:资源文件名;
③ 资源文件名:编译的资源文件,比如动画、位图、光标等;
④ 如:MyWav WAVE "FileName.Wav"
使用Borland资源编译器(BRCC32.EXE)转化.Rc文件成.Res文件。在DOS命令行下输入下列命令:
Brcc32 FileName.Rc // Brcc32.Exe在Delphi5Bin文件下。
3.在工程中引用资源文件
为了存取我们的资源文件,必须告诉Delphi链接我们的资源文件到应用程序中。因此我们可以在源代码中加入一条编译指令完成上述功能。这条指令必须紧跟在窗口指令后,如下形式:
{$R *.DFM} //Delphi自带编译指令
{$R FileName.Res} //新加入的编译资源文件的指令。
不要删除{$R *.DFM}指令,因为这行代码告诉Delphi链接下面的资源到窗口的资源中。
4.调用资源文件
(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'' ; //资源标识
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;
mxlinux 2005-11-08
  • 打赏
  • 举报
回复
我常常在DELPHI里使用资源,很简单的

首先,制作资源文件,VC是好东西,用VC新建一个*.RC,然后就向里面添加需要的资源(用“插入”)。

制作好后,保存成RES(WIN32资源文件)

在DELPHI里,需要用资源的窗体里将{$R *.dfm}下加一行{$R 资源文件名.RES}

var sm:TResourceStream;
sm:=TResourceStream.Create(HInstance,'101', PChar('DXQ'));//第2,3个参数是资源名
sm.SaveToFile(path+'\b4sm.mdb');//导出成文件

很简单的,如果还不会,19094250,我在线。



YaYiYaO 2005-11-08
  • 打赏
  • 举报
回复
sorry啊,msdn上我找不到相关的资料
有谁能给个完整的介绍啊
g961681 2005-11-08
  • 打赏
  • 举报
回复
直接加个*.rc文本文件到工程里。
在这个文件里输入:
名字 类型 文件路径
IDA_XXXX BITMAP "路径"
(具体格式自己找找,不太记得了)


好象就可以直接使用资源了。
j9dai 2005-11-08
  • 打赏
  • 举报
回复
关注
YaYiYaO 2005-11-08
  • 打赏
  • 举报
回复
delphi中资源文件不是.res吗,怎么有.rc呢
哇哈哈哇哈哈 2005-10-11
  • 打赏
  • 举报
回复
Image Editor 好像最高支持到256色的图片。

你需要通过手动编写rc脚本文件。(MSDN有RC的规范说明)
然后在通过brc32.exe进行编译。

D:\Program Files\Borland\Delphi6\Bin>brc32
Borland Resource Compiler / Binder
Version 5.40 Copyright (c) 1992, 1999 Inprise Corporation

Syntax: brc32 [options ...] filename
options marked with a '*' are on by default

-r compile only. Do not bind resources
-fofilename set output res filename
-fefilename set output exe filename
-v verbose
-ipath set include path
-x ignore INCLUDE environment variable
-dname[=string] define #define
-32 * build 32-bit Windows compatible res/exe files
-16 build 16-bit Windows compatible res/exe files
-Vd.d Mark the .exe file with Windows version provided (4.0 is the default)
-31 Provided for downward compatibility (build 16-bit res/exe files)
-w32 Provided for downward compatibility (build 32-bit res/exe files)
-k do not create fastload area (16 bit only)
-t (ignored, for compatibility)
-? or -h display this message
YaYiYaO 2005-10-08
  • 打赏
  • 举报
回复
up
YaYiYaO 2005-10-05
  • 打赏
  • 举报
回复
to jackhatedance(jack)
似乎不能将图片添加进res文件中,单独都能打开,能编辑,就不是能添加
terry_yip 2005-10-03
  • 打赏
  • 举报
回复
D7下也有相应的工具在资源文件中加入其它文件的吗?例如mp3或exe文件?

jackhatedance 2005-10-02
  • 打赏
  • 举报
回复
tools->image editor
open "project1.res", add some icon
szuzsq 2005-10-01
  • 打赏
  • 举报
回复
^
关注

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧