VCLSkin 动态更换皮肤???? ( 积分: 20 )

  • 主题发起人 主题发起人 hanyuccy
  • 开始时间 开始时间
H

hanyuccy

Unregistered / Unconfirmed
GUEST, unregistred user!
如何实现VCLSkin 动态更换换皮肤源代码怎么写
 
如何实现VCLSkin 动态更换换皮肤源代码怎么写
 
SkinData1.LoadFromFile("c:/a.skn") ;
SkinData1.LoadFromCollection();
 
我写了这样的代码但无法实现
begin
OpenDialog1.filter:='Skin files (*.skn)|*.SKN';
OpenDialog1.initialdir:='D:/学习/delphi/第三方控件/niker76_vclskin_v3.02/vclskin3/skins/';
if OpenDialog1.execute then
SkinData1.skinstore:=OpenDialog1.filename;
if not SkinData1.Active then
SkinData1.Active:=true;
skindata1.Free;
opendialog1.Free;
and
 
begin
OpenDialog1.filter:='Skin files (*.skn)|*.SKN';
OpenDialog1.initialdir:='D:/学习/delphi/第三方控件/niker76_vclskin_v3.02/vclskin3/skins/';
if OpenDialog1.execute then
SkinData1.LoadFromFile(OpenDialog1.filename);
if not SkinData1.Active then
SkinData1.Active:=true;
skindata1.Free;
opendialog1.Free;
and
 
不过 vclskin 在xp开启主题的情况下很难看, 非常难看
 
还是出错提示是:
Project Project1.exe raised exception class EAccessViolation with massage 'Access violation at address 00000000,read pf address 00000000',Process stopped,Use Step or Run to continue.
我运行时候是连着数据库的,,不知道有没有影响
 
关掉数据库试试啊
 
还是有同样的提示,,不知道那里出的问题...........
 
skindata1.Free;
你都FREE掉了
 
begin
OpenDialog1.filter:='Skin files (*.skn)|*.SKN';
OpenDialog1.initialdir:='D:/学习/delphi/第三方控件/niker76_vclskin_v3.02/vclskin3/skins/';
if OpenDialog1.execute then
[red]SkinData1.LoadFromFile(OpenDialog1.filename);[/red]
if not SkinData1.Active then
SkinData1.Active:=true;
and
 
skindata1.Free;
opendialog1.Free;

都去掉
 
多人接受答案了。
 
后退
顶部