首页
社区
课程
招聘
VCLSkin新皮肤不能使用的问题
发表于: 2008-7-24 15:28 13971

VCLSkin新皮肤不能使用的问题

2008-7-24 15:28
13971
到 c9cK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3I4A6L8X3E0Q4x3X3c8J5j5h3&6C8i4K6u0W2j5$3!0E0i4K6u0r3k6r3!0%4L8X3I4G2j5h3c8Q4x3X3g2Z5N6r3@1`. 下载了官方最新的皮肤文件

Skins Package A Free 3.8M 7/11/2008 70 Skin Files. 
Skins Package B  Free 2.3M 7/11/2008 47 skins from Visual Style. 

用最新版本VCLSkin 5.2 加载这些皮肤会出现皮肤文件过旧的提示,应用皮肤失效。

尝试用旧版本的VCLSkin加载这些皮肤也会出现这个错误。尝试过的版本有4.11 ,  2.6 , 3.81

用皮肤编辑工具可以打开这些皮肤,保存后再加载也会提示版本旧  

很漂亮的新皮肤,可是。。。。。。

哪位大大帮忙测试下这么才可以用这些皮肤 

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 190
活跃值: (20)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
2
把原来的皮肤控件删去,重新加载到界面就可
2008-7-24 19:05
0
雪    币: 218
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我开始用4.11版本的加载这些皮肤,失败,提示皮肤久。想到新版本应该向下支持,在官方网站下了最新的VCLSkin 5.2控件.删除已安装的的VCLSkin4.11控件,安装VCLSkin 5.2控件,新建一个项目,放一个SkinData, 在SkinStore选择皮肤文件,然后设置为激活。运行,提示一样,皮肤久。

后来用VCLSkin 5.2控件带的Demo.exe加载这些皮肤,一样无效 后来分别用其他本本的Demo.exe加载这些皮肤,还是出现这个问题

无意中发现两个名称相同的VistaXP-VISTAXPB2.skn (从Skins Package B  包里解出来的),另一个是 VCLSKIN.v4.11带的皮肤。名称一样,预览图一样,VCLSKIN.v4.11带的可以正常加载。但Skins Package B  包里解出来的就不行

有文件大小区别:
VistaXP-VISTAXPB2.skn     62KB      
from:   7f9K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3I4A6L8X3E0Q4x3X3c8J5j5h3&6C8i4K6u0W2j5$3!0E0i4K6u0r3k6r3!0%4L8X3I4G2j5h3c8Q4x3V1k6K6K9$3W2F1M7K6y4Q4x3X3g2*7K9i4l9`.

VistaXP-VISTAXPB2.skn     60KB  (VCLSKIN.v4.11带的皮肤)

用vclskinbuilder    (586K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3I4A6L8X3E0Q4x3X3c8J5j5h3&6C8i4K6u0W2j5$3!0E0i4K6u0r3j5Y4g2A6L8r3c8W2M7W2)9J5k6i4A6A6M7l9`.`.)均可打开编辑
上传的附件:
2008-7-25 03:33
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
好象不是控件问题。。而是皮肤问题。。。。就是说皮肤不是通用的。有针对性
2008-10-26 14:06
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
记得DEMO版本标题会带有DEMO字样。怎么我下了个5。03的却没带DEMO?
2008-10-26 15:16
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
以下为我自己研究得出的。下面连接为原帖

43aK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4c8G2M7r3W2U0i4K6u0W2j5%4y4V1L8W2)9J5k6h3&6W2N6q4)9J5c8Y4g2Q4x3V1j5J5x3o6l9&6x3o6j5H3y4q4)9J5c8U0p5K6i4K6u0r3z5e0V1^5x3h3q4U0y4h3k6Q4x3X3b7I4y4o6b7%4i4K6u0V1y4r3t1$3y4g2)9J5k6o6R3&6z5r3y4Q4x3X3b7#2y4K6j5#2j5K6k6U0y4X3j5$3x3o6u0Q4x3X3g2Z5N6r3#2D9

vclskin This is Older Skin File'#13'Please update to new version ! 一点发现

找到了 5.03 与5.20的源码
This is Older Skin File'#13'Please update to new version !
这句发现在
SkinRead.pas里

每读一个SKN file
就要判断一次skn的版本
大概如下:
      Delphi(Pascal) codeif header.version=20000 then  begin
       setlength(s,header.dirlen);
       r.read(s[1],header.dirlen);
       dir.text:=lowercase(s);
       Num:=dir.count;
       r.read(sizes[0],num*sizeof(integer));
       i:=(num)*sizeof(integer)+header.dirlen+sizeof(Tskinheader);
       ms.Seek(0,soFromBeginning);
       ms.write(Pointer(Longint(r.Memory)+i)^,r.size-i);
       b:=true;
不在版本列表里的

showmessage('This is Older Skin File'#13'Please update to new version !');

从网上找了不少文章 都说是skin控件的版本与SKN的版本不一致。具体的原因无果。

在无意中,找到5.03版本的skin控件,很多SKN文件不在提示版本错误了。
翻开SkinRead.pas 发现 版本控制里多了
Delphi(Pascal) codeif header.version=70000 then begin
       setlength(s,$100);
       r.Read(s[1],$45);
       setlength(s,header.dirlen);
       r.read(s[1],header.dirlen);
       dir.text:=lowercase(s);
       Num:=dir.count;
       r.read(sizes[0],num*sizeof(integer));
       i:=(num)*sizeof(integer)+header.dirlen+sizeof(Tskinheader)+$45;
       ms.Seek(0,soFromBeginning);
       ms.write(Pointer(Longint(r.Memory)+i)^,r.size-i);
       b:=true;

70000版本的控制

在对比一下5.20的SkinRead.pas 果然,5.20版本没有70000版本的判断。
而4.94版只到50000版

用SkinRead.pas做了个SKN文件版本的判断工具
看看不能读的SKN文件到底是多少版的。
结果为70000





===================看看关于skinBuilder=====================
官方 标注是5.0的  下载出来是7.0的
那好用这个7.0的builder 做个skn看看是多少版
结果为70000

2.5的builder 是20000
6.0的builder 是50000


2009-10-24 20:33
0
游客
登录 | 注册 方可回帖
返回