VCL Skin 的解决方案
大家有没有使用过VCL SKin, 我的版本是 2.68。
由于破解版不能够动态改变窗体的caption,我使用了下面的方法:
uses winskindlg;
Type
TMySkinManage=class(TSkinManage);
procedure TForm1.btn1Click(Sender: TObject);
var
P: Pchar;
begin
P := Pointer(TMySkinManage(SkinManager).FindSkinForm(Handle));
if P = nil then exit;
P := P+104; //D5的话请将104改为88,未经测试
Pstring(P)^ := 'Edit1.Text';
Caption := 'Edit1.Text';
//////////////////////////////////////////////
end;
问题似乎解决了,但关闭程序后,经常出现异常,应该是指针的问题。
请问那位高手知道问题所在?怎样解决?
还有,我想安装VclSkin 3.02版本,但安装后每次运行都出错。请赐教。
问题点数:50、回复次数:6Top
1 楼tinderzzj(tinderzzj)回复于 2005-05-31 09:44:36 得分 5
你去www.2ccc.com看看,那儿有完整源码版的Top
2 楼bill_anson(铱星)回复于 2005-06-27 19:22:48 得分 0
我看了,有其控件及价绍,但没有找到我的问题。Top
3 楼bill_anson(铱星)回复于 2005-06-27 19:26:47 得分 0
我想,可能是我用了两个SkinData, 而在SkinData的释放与窗口的释放时序有时会不正常,所以发生异常。Top
4 楼laihongbo524(风铃夜思雨)回复于 2005-06-27 19:35:20 得分 25
试下下面的
我在写的一个程序中都經常出这现象,后来false後就沒沒事了
procedure TFrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if Skin.Active then Skin.Active := false;
end;Top
5 楼loveWife(我爱红)回复于 2005-06-30 15:07:52 得分 20
你为什么要放两个啊,原因就在这里,我拿 你的代码后,使用正常,谢拉Top
6 楼bill_anson(铱星)回复于 2005-06-30 22:18:20 得分 0
to laihongbo524:
我早就那样做了,但问题没解决。发生异常是随机的。100次有3次。
to loveWife
用两个的原因是因为我想有一个所有窗体(除一个特殊的)都是一种界面,而有一个只对当前界面有效。Top




