资源文件的冲突?
我加了一个自己的资源文件,放了一两个新图标,放在工程文件的相同目录下。
在某一个form的pas里{$R myRes.res},可以通过loadIcon获得图标。
但是一旦加上这个资源文件,我的应用程序图标就变了,变成该资源文件里的其中一个
而不是原来的跟应用程序同名的资源文件里的MAINICON
修改来修改去,老是说有Duplicate
为什么呢?
问题点数:100、回复次数:32Top
1 楼vcbear(http://vcbear.mblogger.cn)回复于 2001-07-05 10:56:49 得分 0
不创建新的res,在工程同名res里加个图标(用image editor)告诉我:
[Error] WARNING. Duplicate resource(s):
[Error] Type 14 (ICON GROUP), ID MAINICON:
[Error] File C:\whProject\winscad\winscad_jk\Winscad_jk.res resource kept; file C:\whProject\winscad\winscad_jk\winscad_jk.res resource discarded.
什么意思嘛?Top
2 楼11830(其其)回复于 2001-07-05 11:09:12 得分 0
太高深了....Top
3 楼vcbear(http://vcbear.mblogger.cn)回复于 2001-07-05 11:14:05 得分 0
经过折腾,其实我回复里的那堆E文问题产生的原因是因为我两次包含了一个Res文件。
但是新Res文件里的图标会替代程序主图标的问题依然无法解决:(Top
4 楼11830(其其)回复于 2001-07-05 11:19:09 得分 0
太高深了....我头都大了......Top
5 楼InsideDelphi(ID)回复于 2001-07-05 11:24:36 得分 10
To Vcbear:
你最好不要用Borland的ImageEditor(ICON只支持32色,太什么乐)
你可以用RC文件
用文本编辑器在某个a.RC中这么写
MyIcon1 ICON icon1.ico
MyIcon2 ICON icon2.ico
然后用Brcc32 a.rc,即可生成某个res文件
然后AddToProject把它包含进来
VCbear,我现在手中没有Delphi,说法可能有点错误。
Top
6 楼vcbear(http://vcbear.mblogger.cn)回复于 2001-07-05 11:47:32 得分 0
图标的色度我无所谓的。
你说的方法我试过的。
问题不在于如何生成res文件,而是在于引用一个res文件的时候,编译出来的应用程序的图标被
改变了,真不爽。Top
7 楼holyfire(谁最衰啊你最衰,谁最帅啊我最帅)回复于 2001-07-05 11:52:12 得分 30
那就不用资源文件,直接用IDE里提供的方法加载图标不就OK了Top
8 楼vcbear(http://vcbear.mblogger.cn)回复于 2001-07-05 11:54:26 得分 0
IDE里如何加载图标呢?不要告诉我是project ->Option 里那个哟,没有用Top
9 楼vcbear(http://vcbear.mblogger.cn)回复于 2001-07-05 11:55:54 得分 0
难道无法确切的指定一个程序的主图标吗?Top
10 楼holyfire(谁最衰啊你最衰,谁最帅啊我最帅)回复于 2001-07-05 11:56:41 得分 0
每个Form都有自己的图标,Application的是EXE的图标,不一样的
project ->Option 的是exe的图标
TForm.Icon的是Form的图标Top
11 楼holyfire(谁最衰啊你最衰,谁最帅啊我最帅)回复于 2001-07-05 11:58:23 得分 0
Application事实上才是主窗体,不过是个隐藏窗体,不可见。Top
12 楼InsideDelphi(ID)回复于 2001-07-05 11:58:25 得分 0
加载图标?From上面的?呵呵,你可以用Addtional中的TPicture控件。双击Load即可
你不要把VC中的控制图标的思想用在Delphi中,在Delphi中只有底层才这么做
关于资源冲突,你用Remove From Project看一下,是不是两次包含了同一个资源文件。
如果要改变标题的图标
摄制Application.Icon(还是MainIcon,忘了,没有Delphi)
Top
13 楼InsideDelphi(ID)回复于 2001-07-05 12:00:27 得分 0
holyfire是对的Top
14 楼vcbear(http://vcbear.mblogger.cn)回复于 2001-07-05 12:01:51 得分 0
我确实在project->option->Application里指定了一个图标,
如果没有使用别的资源文件,exe的图标就显示正常,
一使用别的资源文件,exe的图标就变成资源文件里的了,
真的奇怪。Top
15 楼holyfire(谁最衰啊你最衰,谁最帅啊我最帅)回复于 2001-07-05 12:03:28 得分 0
可能是你的资源文件里的ID和Delphi设定的重复了。你可以将ID号设大一点看看Top
16 楼InsideDelphi(ID)回复于 2001-07-05 12:04:21 得分 0
EXE的图标放在和工程同名的资源文件中
在Icon中,叫做MAINICON,所以你的图表千万不要叫做MAINICON,否则......Top
17 楼vcbear(http://vcbear.mblogger.cn)回复于 2001-07-05 12:05:58 得分 0
呵呵,就是没有起名叫MAINICON,才觉得奇怪,这些资源文件我都打开看过的
Top
18 楼vcbear(http://vcbear.mblogger.cn)回复于 2001-07-05 12:06:36 得分 0
能不能手工指定ID数值呢Top
19 楼InsideDelphi(ID)回复于 2001-07-05 12:12:06 得分 0
能不能把你的工程发过来,让我看一下
INSIDEDELPHI@263.NETTop
20 楼InsideDelphi(ID)回复于 2001-07-05 12:13:27 得分 0
delphi和vc机制不一样,你不用指定对应的idTop
21 楼InsideDelphi(ID)回复于 2001-07-05 12:17:18 得分 0
发过来了没有?Top
22 楼vcbear(http://vcbear.mblogger.cn)回复于 2001-07-05 12:21:45 得分 0
不能发,发了你也运行不了 :)Top
23 楼guig(胖胖)回复于 2001-07-05 12:24:41 得分 0
小问题,可能你编辑资源文件的操作方法有些问题。
把你的myRes.res email给我看看,然后再告诉你是问题出在哪里。
btw:再说说你用的什么资源编辑器?
email:guig@263.netTop
24 楼InsideDelphi(ID)回复于 2001-07-05 12:24:42 得分 0
呵呵,加载图标的语句和资源文件能不能让我看呢?
[Error] File C:\whProject\winscad\winscad_jk\Winscad_jk.res resource kept; file C:\whProject\winscad\winscad_jk\winscad_jk.res resource discarded.
估计是你两次包含了某个文件。Top
25 楼vcbear(http://vcbear.mblogger.cn)回复于 2001-07-05 12:28:38 得分 0
[Error] File C:\whProject\winscad\winscad_jk\Winscad_jk.res resource kept; file C:\whProject\winscad\winscad_jk\winscad_jk.res resource discarded.
这个问题我已经清楚了,不能解决的只是exe文件图标被改变这个问题。
我用image editor编辑,步骤非常简单,直接保存为.res文件,应该不会有什么问题吧。
Top
26 楼InsideDelphi(ID)回复于 2001-07-05 12:37:55 得分 0
等一下我试一下Top
27 楼guig(胖胖)回复于 2001-07-05 12:44:01 得分 0
你的ico的名字是什么?
就我的经验,你的ico的名字要大于"MAINICO".
也就是"XICO","YOURICO","WICO"之类的名字("XICO" > "MAINICO" 等等)
Top
28 楼vcbear(http://vcbear.mblogger.cn)回复于 2001-07-05 12:48:43 得分 0
斑竹真是热心,感动中........Top
29 楼vcbear(http://vcbear.mblogger.cn)回复于 2001-07-05 12:52:24 得分 0
其实guig胖胖是对的,我刚刚试过,没有错。
只是我不理解,如果都是这样的话,Delphi的策略也有点太业余了吧。Top
30 楼InsideDelphi(ID)回复于 2001-07-05 13:17:43 得分 0
呵呵,妈的,刚才气死我了,我的同学在玩SC
害的我等了很久
要察看资源的话,用Project->Resource
不过我没有发现胖胖的问题
因为我的图标叫做BOSS都没有错
运行正常呀
傍晚我再去看
睡觉去了Top
31 楼guig(胖胖)回复于 2001-07-05 16:16:56 得分 60
to vcbear(一只平凡无知的熊)
>>只是我不理解,如果都是这样的话,Delphi的策略也有点太业余了吧。
这要怪windows,它找不到它想要的就会找最靠前的icon来显示。
Delphi在生成资源时,同类资源按id排序。
Top
32 楼InsideDelphi(ID)回复于 2001-07-05 16:42:47 得分 0
TO VCBEAR:
我刚才又试了一次,好想没有你所说的错误。
不知道是怎么回事。
我用的Delphi5+SP1.Top




