VCL Skin 的解决方案

bill_anson 2005-05-31 09:17:49
大家有没有使用过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版本,但安装后每次运行都出错。请赐教。
...全文
113 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
bill_anson 2005-06-30
  • 打赏
  • 举报
回复
to laihongbo524:
我早就那样做了,但问题没解决。发生异常是随机的。100次有3次。
to loveWife
用两个的原因是因为我想有一个所有窗体(除一个特殊的)都是一种界面,而有一个只对当前界面有效。
loveWife 2005-06-30
  • 打赏
  • 举报
回复
你为什么要放两个啊,原因就在这里,我拿 你的代码后,使用正常,谢拉
laihongbo524 2005-06-27
  • 打赏
  • 举报
回复
试下下面的
我在写的一个程序中都經常出这现象,后来false後就沒沒事了

procedure TFrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if Skin.Active then Skin.Active := false;
end;
bill_anson 2005-06-27
  • 打赏
  • 举报
回复
我想,可能是我用了两个SkinData, 而在SkinData的释放与窗口的释放时序有时会不正常,所以发生异常。
bill_anson 2005-06-27
  • 打赏
  • 举报
回复
我看了,有其控件及价绍,但没有找到我的问题。
tinderzzj 2005-05-31
  • 打赏
  • 举报
回复
你去www.2ccc.com看看,那儿有完整源码版的

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧