|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
2004/3/30 13:17:17 |
标题: |
delphi中调用资源文件,请赐教 |
浏览:1616 |
|
加入我的收藏 |
楼主: |
1.在开始创建文本文件时需要以下格式 资源标识符+关键字+资源文件名 请问什么是'资源标识符'请各位提供例子给小弟,最好是图标文件. 2.请回答我上一贴有关pagecontrol的问题. 多谢!
----------------------------------------------
人人为我!!!! 我为人人!!!! |
作者: |
|
2004/3/30 14:42:31 |
1楼: |
将资源文件并入程序中,需要加上如下格式的代码:
implementation
{$R *.dfm} {$R myres.res} //myres.res是资源文件名,你可以自行更改
----------------------------------------------
秋风清 秋月明,几上闲琴黯生尘。 夜来忽忆少年事,陌上柳绿草青青。 相逢一笑言未语,携手相看自倾心。 二十二载云烟里,云含风韵烟含情。 风尘渺落风霜浸,但闻长空雁长鸣。 姿容如花颜如玉,只在平生梦里寻。 秋风清 秋月明,秋灯秋雨愁煞人。 天涯路远人何在,午夜梦回空扰惊。
|
作者: |
|
2004/3/30 15:46:00 |
2楼: |
那么如何创建资源文件?
----------------------------------------------
人人为我!!!! 我为人人!!!!
|
作者: |
|
2004/3/30 15:57:10 |
3楼: |
用delphi自带的Image Editor,将就将就!
----------------------------------------------
秋风清 秋月明,几上闲琴黯生尘。 夜来忽忆少年事,陌上柳绿草青青。 相逢一笑言未语,携手相看自倾心。 二十二载云烟里,云含风韵烟含情。 风尘渺落风霜浸,但闻长空雁长鸣。 姿容如花颜如玉,只在平生梦里寻。 秋风清 秋月明,秋灯秋雨愁煞人。 天涯路远人何在,午夜梦回空扰惊。
|
作者: |
|
2004/3/30 18:17:33 |
4楼: |
Dephi5中资源文件的创建和使用 几乎每个Windows应用程序都使用图标、图片、光标等资源。资源是程序的一部分,但是它是不可执行代码。下面我们就详细介绍资源文件在Delphi5中建立和使用方法。 1.把资源放到Exe文件的优点 由于定位资源比在磁盘中定位文件花费时间少,所以应用程序执行会更快。多种资源可以放在一个文件中,减少了图标、图片、光标等文件数量。保存资源文件时不要和工程名相同,因为Delphi创建工程时会自动创建一个和工程名相同的资源文件。并且最好将资源文件保存到和工程文件同一个文件夹中。 2.创建资源文件 首先创建一个.Rc的纯文本文件。格式如下: 资源标识符 + 关键字 + 资源文件名 ① 资源标识符:程序中调用资源时的特殊标号; ② 关键字:标识资源文件类型; Wave: 资源文件是声音文件; RCDATA: JPEG文件; AVI: AVI动画; ICON: 图标文件; BITMAP: 位图文件; CURSOR: 光标文件; ③ 资源文件名:编译的资源文件,比如动画、位图、光标等; ④ 如:MyWav WAVE "FileName.Wav" 使用Borland资源编译器(BRCC32.EXE)转化.Rc文件成.Res文件。在DOS命令行下输入下列命令: Brcc32 FileName.Rc // Brcc32.Exe在Delphi5\Bin文件下。 3.在工程中引用资源文件 为了存取我们的资源文件,必须告诉Delphi链接我们的资源文件到应用程序中。因此我们可以在源代码中加入一条编译指令完成上述功能。这条指令必须紧跟在窗口指令后,如下形式: {$R *.DFM} //Delphi自带编译指令 {$R FileName.Res} //新加入的编译资源文件的指令。 不要删除{$R *.DFM}指令,因为这行代码告诉Delphi链接下面的资源到窗口的资源中。 4.调用资源文件 (1)存取资源文件中的位图(Bitmap) 程序中如果想存取资源,你必须调用一些Windows API函数。保存在资源文件中的位图、光标和图标可以通过调用LoadBitmap、LoadCursor和LoadIcon函数存取。 本例举例说明如何存取资源文件中位图并显示在Timage控件中。 Image1.Picture.Bitmap.Handle :=LoadBitmap(hInstance,'资源标识符'); 注:如果位图没有装载成功,程序仍旧执行,但是Image将不再显示图片。你可以根据LoadBitmap函数的返回值判断是否装载成功,如果装载成功返回值是非0,如果装载失败返回值是0。 另外一个存取显示位图的方法如下 Image1.Picture.Bitmap.LoadFromResourceName(hInstance,'资源标识符'); (2)存取资源文件中的光标 Screen.Cursors[]是一个光标数组,使用光标文件我们可以将定制的光标加入到这个属性中。因为默认的光标在数组中索引值是0,所以除非想取代默认光标,最好将定制的光标索引值设为1。 begin Screen.Cursors[1] :=LoadCursor(hInstance,'资源标识符'); Image1.Cursor :=1; end; (3)存取资源文件中的图标 将图标放在资源文件中,可以实现动态改变应用程序图标。 begin Application.Icon.Handle := LoadIcon(hInstance,'资源标识符'); End; (4)存取资源文件中的AVI 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; 5.结束语 位图、光标和图标、AVI动画、JPEG和Wave文件等可以放到资源文件中,上面我们介绍了如何将资源加入到资源文件中,并介绍了在Delphi中动态存取资源文件的方法。Delphi编译工程会自动创建一个和工程名相同的资源文件(如果没有其他的资源,主窗口的图标会放在这个资源文件中)。但是建议最好不要改变这个资源文件。
----------------------------------------------
我来自农村广阔的田野我的每一个动作都很夸张http://waterstone.51r.com
|
作者: |
mtxz (毛头小子) |
★☆☆☆☆ |
-
|
普通会员 |
|
2004/5/4 11:56:24 |
5楼: |
谢谢了,如果是任意格式的文件,需要将文件读出来的话,则这样: FStream := TResourceStream.Create(Hinstance, 'MyWav', 'Wav'); FStream.SaveToFile('MyWav.Wav');
----------------------------------------------
-
|
作者: |
sephil (NAILY Soft) |
★☆☆☆☆ |
-
|
盒子中级会员 |
|
2004/5/4 16:15:21 |
6楼: |
资源标识符+关键字+资源文件名 ~~~~~~~~~~ 你自己定义的名字啦,随便你怎么取
Test.rc MyResName RC_DATA file.txt
with TResourceStream.Create(HInstance, 'MyResName', 'RC_DATA') do try SaveToFile('a.txt'); finally Free; end;
----------------------------------------------
Copyright 2008 ? NAILY Soft Click here to redirect to my home Click here to redirect to my blog
|
作者: |
|
2004/5/4 16:46:54 |
7楼: |
顶,简直是太好了,偶等了好久,终于有人解答了~~
不胜感激!!
----------------------------------------------
愿生命不再飘零---- 愿岁月的季节不再枯竭---
|
作者: |
|
2004/5/4 17:37:28 |
8楼: |
…… 被禁用帐号,帖子内容自动屏蔽! ……
----------------------------------------------
|
作者: |
|
2004/5/4 17:51:14 |
9楼: |
…… 被禁用帐号,帖子内容自动屏蔽! ……
----------------------------------------------
|
作者: |
|
2004/5/4 18:34:39 |
11楼: |
…… 被禁用帐号,帖子内容自动屏蔽! ……
此帖子包含附件:
大小:51.7K |
----------------------------------------------
|
|