编辑、使用资源文件
我使用win2000 server和delphi6.0
我想在tools\image editor编辑资源文件,目的是想我的程序可以调用e:\pic\icon\icon1.ico,使screen.cursor的选项增加,应该如何编辑资源文件和在程序中调用?
问题点数:100、回复次数:16Top
1 楼Snakeguo(Guoguo)回复于 2002-06-17 15:55:45 得分 0
参考一下:
http://www.csdn.net/expert/topic/436/436888.xml?temp=.2339899Top
2 楼fshrq1(huang)回复于 2002-06-17 16:36:26 得分 0
我在文本编辑器输入
stringtable
begin
HAND,E:\PIC\ICON\84.ICO
STOP,E:\PIC\ICON\91.ICO
END
保存为recoure.rc
在dos下编译出错'error could not input recoure.re'Top
3 楼taxi(当时明月在,曾照彩云归)回复于 2002-06-17 16:43:00 得分 0
HAND RCDATA "E:\PIC\ICON\84.ICO"
STOP RCDATA "E:\PIC\ICON\91.ICO"
Top
4 楼happyjoe(尘土飞扬)回复于 2002-06-17 16:56:30 得分 0
最好的资源编辑器,嘿嘿,当然是VS.net的IDE了,功能没得说。Top
5 楼fengerfeifei(风儿飞飞)回复于 2002-06-17 17:17:56 得分 0
你将ico文件加入.res文件中,程序就可以直接使用,便以后不再需要res文件的。Top
6 楼fshrq1(huang)回复于 2002-06-18 08:21:10 得分 0
如何把ico文件加入res文件Top
7 楼lincanwen(密码错误)回复于 2002-06-18 08:45:27 得分 0
如何把ico文件加入res文件:
HAND RCDATA "E:\PIC\ICON\84.ICO" //将84.ICO加入res文件
Top
8 楼zhhahuatian(华仔)回复于 2002-06-18 09:13:23 得分 0
upTop
9 楼fengerfeifei(风儿飞飞)回复于 2002-06-18 12:03:09 得分 0
打开Image Editor 或 Resuorce workshop
new
选.res文件
然后在树中添加icon
Top
10 楼fengerfeifei(风儿飞飞)回复于 2002-06-18 12:04:12 得分 0
打开Image Editor 或 Resuorce workshop
new
选.res文件
然后在树中添加icon
你可以打开原来的icon文件将内容拷贝到res中的icon里面
Top
11 楼fshrq1(huang)回复于 2002-06-18 14:49:12 得分 0
HAND RCDATA写在哪里?Top
12 楼xyxx(雪域雄师)回复于 2002-06-18 18:09:20 得分 0
Screen.Cursors[1]:=LoadCursorFromFile('c:\winnt\cursors\horse.ani');
//往光标数组中添加资源
Screen.Cursor:=1;
//更改当前屏幕光标Top
13 楼wzsswz(岌岌荆棘)回复于 2002-06-18 18:17:53 得分 30
一个利用res将文件还原的事例
先用记事本等任何文本编辑器编写文件“MyMusic.RC”。文件的格式及内容如下:
SRC1 FILE1 a.mp3
SRC2 FILE2 b.mp3
SRC3 FILE3 c.mp3
注意:以上三文件最好与 MyMusic.RC放在同一目录下。
然后,在开始菜单“运行”中运行brcc32 d;\resmp3\mymusic.rc
生成mymusic.res文件
在你需要利用这些资源的单元中加入如下编译指示:
{$R MyMusic.RES}
//将应用程序中包含的资源(文件)重新还原
procedure MusicResToFile(const ResName, ResType,FileName: string);
var
Res: TResourceStream;
begin
Res := TResourceStream.Create(HInstance,ResName, PChar(ResType));
Res.SaveToFile(FileName); //将资源保存为文件,即还原文件
//你还可以进行其它的流操作,在内存中实现对资源利用而不必另存为文件
。。。
Res.Free;
end;
调用:
MusicResToFile('SRC2', 'FILE2', 'TheSecondMusic.MP3');
Top
14 楼lyhold(让你飞)回复于 2002-06-18 18:18:14 得分 50
在Delphi中用好图标资源
图标是组成应用程序的重要资源,我们的设计目标是让程序标题栏上的图标交替显示,形成动画效果。
方法一:调用图标文件
1.首先在窗体中添加一变量,控制图标交替显示,语句如下:
var
Form1: TForm1;
ico:integer;//添加这一句
双击窗体为其OnCreat事件添加代码,如下:
ico:=1
2.在窗体中添加一时钟控件,设置其Interal属性为100(即两个图标交替出现的时间间隔),为OnTimer事件添加代码,如下:
if ico=1 then
begin
form1.icon.LoadFromFile('d:\amydocu\ico1.ico')//显示图标1
ico:=2
end
else
begin
form1.icon.LoadFromFile('d:\amydocu\ico2.ico') //显示图标2
ico:=1;
end;
3.运行窗体,即可得到动画图标。
方法二:利用程序中的图标资源
方法一设计出的程序在发布时,必须带上图标文件,否则无法运行。为了克服这一缺点,我们可以将图标文件做成资源文件,将其包含在执行文件中,使程序更专业化,他人想轻易改变图标也较困难。
1.首先建立资源文件demo.rc,它是一个文本文件,包含如下内容:
ico1 icon D:\amydocu\ico1.ico
ico2 icon D:\amydocu\ico2.ico
2.在DOS提示符下利用Delphi提供的资源编译器brcc32.exe将其编译成demo.res,命令如下:
brcc32 demo.rc
3.将生成的demo.res加入程序中,可以在窗体中加入如下代码:
implementation
{$R *.DFM}
{$R d:\amydocu\resource.res}
4.使用图标资源,将方法一中时钟控件的OnTimer事件改为如下代码:
if ico=1 then
begin
form1.Icon.Handle:=Loadicon(hinstance,'ico1');
ico:=2;
end
else
begin
form1.Icon.Handle:=Loadicon(hinstance.'ico2');
ico:=1;
end;
5.编译运行,得到和方法一同样的效果,但程序更加精炼。
Top
15 楼wzsswz(岌岌荆棘)回复于 2002-06-18 18:22:28 得分 0
参靠上面各位的代码,编好你的RES文件,然后在后面的程序中用loadicon获得图标,用loadbitmap获得图片。
Top
16 楼xyxx(雪域雄师)回复于 2002-06-18 18:41:35 得分 0
Screen.Cursors[1]:=LoadCursorFromFile('c:\winnt\cursors\horse.ani');
//往光标数组中添加资源
Screen.Cursor:=1;
//更改当前屏幕光标Top
17 楼fshrq1(huang)回复于 2002-06-19 08:44:15 得分 0
不能调用资源文件的图标,而且编译后的exe文件的图标没有了,变成透明,只有文件名Top
18 楼lyhold(让你飞)回复于 2002-06-21 08:24:19 得分 20
form1.Icon.Handle:=Loadicon(hinstance.'ico2');
就可以啦。我用过,
那是你资源文件编译有问题,
他只支持ico图标
1.首先建立资源文件demo.rc,它是一个文本文件,包含如下内容:
ico1 icon D:\amydocu\ico1.ico
ico2 icon D:\amydocu\ico2.ico
2.在DOS提示符下利用Delphi提供的资源编译器brcc32.exe将其编译成demo.res,命令如下:
brcc32 demo.rc
3.将生成的demo.res加入程序中,可以在窗体中加入如下代码:
implementation
{$R *.DFM}
{$R d:\amydocu\resource.res}
4.使用图标资源,将方法一中时钟控件的OnTimer事件改为如下代码:
if ico=1 then
begin
form1.Icon.Handle:=Loadicon(hinstance,'ico1');
end;
我在本机已调试通过!!!
Top




