Delphi界面控件 VCLSkin 使用
安装* 最好安装前把文件放到Lib文件夹下: 1.把下载的文件解压后放到Delphi目录的Lib文件夹下 2.启动Delphi>Open找到刚才放的*.dpk和*.pas选中 3.点Install,Compile,Delphi最右边会出现个VCL Skin页,里面会有SkinData和SkinStore
最简单的实现如下: 1 新建工程,在 Form1上放置Skindata 控件。 2 设置 Skindata的skinstore 属性 ,找到随VCLSkin文件一起下载的*.skn皮肤文件。 3 设置 Skindata的active 为 true 4 编译运行你的程序。
这是最简单的实现,当然也可以添加SkinStore来做更多的选择,可以由用户自己选择皮肤文件, VCLSkin26自带的Demo/Demos下有例程截图如下 (高级应用就不说了,需要的朋友可以Google或者看Demo)
***************************************************************************************** 1. VCLSkin综述 VCLSkin 是一个能让Delphi程序变得非常漂亮的控件包. 它允许允许软件开发人员不用修改程序代码便把软件界面变得非常漂亮。它的美化支持窗体和控件和菜单。VCLSkin同时也提供了大量高质量的skin(皮肤)让你应用于你的程序。 2. VCLSkin特点 VCLSkin 是一个用于让用户的程序界面更加漂亮的扩展控件。 它允许软件开发人员不用修改源代码就能让他们的程序界面更加漂亮。一个标准的程序界面能在窗体放入VCLSkin控件后变得非常漂亮,而这公公需要几分钟的时间。 VCLSkin 能做些什么 ? 不像其它控件那样,你需要修改源代码才能构建一个漂亮的界面, VCLskin 能让Delphi的标准控件在一下子就变得非常漂亮,而这一切都不用修改源代码。 VCLSkin 支持以下的窗体:
* Delphi Form * MDIform . (normal,Maximized, MInimized) * Common Windows dialogs (Open/Save,Font,Print,Color). * MsgBox. * Exception MsgBox.
VCLSkin 支持的标准控件:
* The title bar of TForm * The title bar buttons * The borders of Tform * Tbutton,TBitbtn. * Tradiobutton and Tcheckbox * Tmainmenu and Tpopupmenu * Toolbar buttons * TTabcontrol and TPageControl * T Progressbar * TStatusbar * TCustomCombox,Tcombobox, TDbCombobox * TPanel and TGroupbox * TMemo, TListBox,TListView,TTreeview * TRadioGroup , TDBRadioGroup. * TCustomGrid,TStringgrid,TDrawgrid,Tdbgrid. * Third party component, Enlib, AdvGrid .. 同时也支持大量的第三方控件。
3.安装 你可以像安装其它控件一样安装这夽控件,其实就这几步:
1. 解压缩 Vclskin2.zip 到任意目录 2. 在 Delphi IDE 环境中选择菜单 "File. Open...", 然后找到连接库 vclskindX.dpk, 按着点击Compile按钮。 3. 在 Environment 添加VCLSkin控件所在的路径。 *****************************************************************************************
1. TSkinData TSkinData 主要用于美化你的程序, 只要把TSkinData控件放下去,它就能自动美化所有窗体。 属性 Active: 使用或取消对程序的美化。 DisableTag: 取消对某个特定的组件的美化; 把组件的Tag属性设为99就行了。 (control.tag mod 100=disabletag) SkinControls: 指定哪类组件能被美化. SkinFile: skin(皮肤)文件的包含路径的文件名,在运行时加载。 SkinStore: 在设计模式时储备的skin文件. SkinFormType: 能使用多种美化方式. 方法 LoadFromStream(Stream: TStream); LoadFromFile(value:string); LoadFromCollection(astore:TSkinStore;aindex:integer); 在运行时装载skin文件. UpdateSkinControl(fParent:Tform); UpdateMenu(fParent:Tform); 在运行时组件创建时进行美化。 事件 OnFormSkin(Sender:TObject;aName:string;Var DoSkin:boolean); OnFormSkin 事件的发生先于美化窗体, 如果 Doskin 为 true, Vclskin 就会美化这个窗体, 如果为false,Vclskin 就会跳过这个窗体. aName 是窗体的类名. OnSkinChangned(Sender:TObject); OnSkinChanged 发生在skin文件改变之后。
2. TSkinStore TSkinStore 能让你在设计模式时储存多个skin文件。 TSkinData 能在运行时从 TSkinStore 装载skin文件: TSkinData.LoadFromCollection(astore:TSkinStore;aindex:integer),
3. 怎么美化程序界面 你可以在几分钟内构建一个漂亮的程序. 1 把 TSkindata 控件放在主窗体上。 2 设置 Skindata.skinstore 属性 , 把skin文件储存在你的程序中。 3 设置 Skindata.active = true 4 编译运行你的程序。
4. VCLSkin FAQ 1 如果我的工程中有14个窗体,用不用每个窗体都放一个skin控件? 不用,你只需要放置一个Tskindata在你的主窗体,Vclskin就能自动美化每个窗体。 2 怎样美化一个内嵌的窗体 ? Vclskin 不能自动美化内嵌窗体,你要手动控制它。压缩包中有一个"NestedForm"的例子,讲的是在运行状态美化内嵌窗体、框架的。 3 怎样美化动态控件 ? 你需要手动控制它。代码如下: control:=Tmycontrol.create(form1); skindata1.UpdateSkincontrol(form1); // add this line to skin dynamic control. 4 怎样美化依靠窗体 ? Vclskin 支持停靠窗体. 例程代码如下: procedure TDockableForm.FormShow(Sender: TObject); begin
if MainForm.skindata1.active then MainForm.skindata1.skinform(handle);
end;
5 怎么美化动态的右键菜单 ? 例程代码如下: popup:=Tpopupmenu.create(form1); ..... add menuite skindata1.UpdateMenu(form1); //add this line popup.popup(x,y);
6 怎样美化动态窗体 ? Vclskin 可以美化动态窗体 , 但不能自动美化内嵌窗体. 点击这儿查看如何美化内嵌窗体.
7 找不到文件 'c:\program files\borland\delphi7\SM\winskindata.pas' Delphi7 试用版与Delphi7正式版的Dcu文件格式是不一样的。 如果你使用的是正式版,你可以安装一个演示包。vclskin2.zip. 如果你使用的是试用版,你可以安装一个演示包。 D7trial.zip.
8 使用 FastReport 时,出现了“无效操作,控件没有父窗体的的错误提示 ? 设置 TSkindata.skincontrols.xcFastReport = true 就可以解决这个问题。
9 使用 ReportBuilder 出现了“无效操作,控件没有父窗体的错误提示? 你可以在 TSkindata.OnformSkin 事件中取消美化这个控件。 代码如下 : procedure Tform1.SkinData1FormSkin(Sender: TObject; aName: String; var DoSkin: Boolean); begin
//'TppPrintPreview' 就是要取消美化的窗体名称。 if aName='TppPrintPreview' then doskin:=false;
end;
10 如何存取skin文件的颜色? 你可以借助 Tskindata.colors[] 属性来存取颜色。 比如说 , 窗体的背景色是 : skindata.Colors[csButtonFace]. TShemeColor=(csText,csTitleTextActive,csTitleTextNoActive, csButtonFace,csButtonText, csButtonHilight,csButtonlight,csButtonShadow,csButtonDkshadow, csSelectText,csSelectBg,csHilightText,csHilight, csMenuBar,csMenuBarText,csMenuText,csMenubg, csScrollbar,csTextDisable); TShemeColors=array[csText..csTextDisable] of Tcolor; Skindata.Colors: TShemeColors;
11 用户能自定义那些可视化控件的外观吗? 你可以使用 skin builder自定义细节.
* Delphi Form * MDIform . (normal,Maximized, MInimized) * Common Windows dialogs (Open/Save,Font,Print,Color). * MsgBox. * Exception MsgBox.
VCLSkin 支持的标准控件:
* The title bar of TForm * The title bar buttons * The borders of Tform * Tbutton,TBitbtn. * Tradiobutton and Tcheckbox * Tmainmenu and Tpopupmenu * Toolbar buttons * TTabcontrol and TPageControl * T Progressbar * TStatusbar * TCustomCombox,Tcombobox, TDbCombobox * TPanel and TGroupbox * TMemo, TListBox,TListView,TTreeview * TRadioGroup , TDBRadioGroup. * TCustomGrid,TStringgrid,TDrawgrid,Tdbgrid. * Third party component, Enlib, AdvGrid .. 同时也支持大量的第三方控件。
3.安装 你可以像安装其它控件一样安装这夽控件,其实就这几步:
1. 解压缩 Vclskin2.zip 到任意目录 2. 在 Delphi IDE 环境中选择菜单 "File. Open...", 然后找到连接库 vclskindX.dpk, 按着点击Compile按钮。 3. 在 Environment 添加VCLSkin控件所在的路径。 *****************************************************************************************
1. TSkinData TSkinData 主要用于美化你的程序, 只要把TSkinData控件放下去,它就能自动美化所有窗体。 属性 Active: 使用或取消对程序的美化。 DisableTag: 取消对某个特定的组件的美化; 把组件的Tag属性设为99就行了。 (control.tag mod 100=disabletag) SkinControls: 指定哪类组件能被美化. SkinFile: skin(皮肤)文件的包含路径的文件名,在运行时加载。 SkinStore: 在设计模式时储备的skin文件. SkinFormType: 能使用多种美化方式. 方法 LoadFromStream(Stream: TStream); LoadFromFile(value:string); LoadFromCollection(astore:TSkinStore;aindex:integer); 在运行时装载skin文件. UpdateSkinControl(fParent:Tform); UpdateMenu(fParent:Tform); 在运行时组件创建时进行美化。 事件 OnFormSkin(Sender:TObject;aName:string;Var DoSkin:boolean); OnFormSkin 事件的发生先于美化窗体, 如果 Doskin 为 true, Vclskin 就会美化这个窗体, 如果为false,Vclskin 就会跳过这个窗体. aName 是窗体的类名. OnSkinChangned(Sender:TObject); OnSkinChanged 发生在skin文件改变之后。
2. TSkinStore TSkinStore 能让你在设计模式时储存多个skin文件。 TSkinData 能在运行时从 TSkinStore 装载skin文件: TSkinData.LoadFromCollection(astore:TSkinStore;aindex:integer),
3. 怎么美化程序界面 你可以在几分钟内构建一个漂亮的程序. 1 把 TSkindata 控件放在主窗体上。 2 设置 Skindata.skinstore 属性 , 把skin文件储存在你的程序中。 3 设置 Skindata.active = true 4 编译运行你的程序。
4. VCLSkin FAQ 1 如果我的工程中有14个窗体,用不用每个窗体都放一个skin控件? 不用,你只需要放置一个Tskindata在你的主窗体,Vclskin就能自动美化每个窗体。 2 怎样美化一个内嵌的窗体 ? Vclskin 不能自动美化内嵌窗体,你要手动控制它。压缩包中有一个"NestedForm"的例子,讲的是在运行状态美化内嵌窗体、框架的。 3 怎样美化动态控件 ? 你需要手动控制它。代码如下: control:=Tmycontrol.create(form1); skindata1.UpdateSkincontrol(form1); // add this line to skin dynamic control. 4 怎样美化依靠窗体 ? Vclskin 支持停靠窗体. 例程代码如下: procedure TDockableForm.FormShow(Sender: TObject); begin
if MainForm.skindata1.active then MainForm.skindata1.skinform(handle);
end;
5 怎么美化动态的右键菜单 ? 例程代码如下: popup:=Tpopupmenu.create(form1); ..... add menuite skindata1.UpdateMenu(form1); //add this line popup.popup(x,y);
6 怎样美化动态窗体 ? Vclskin 可以美化动态窗体 , 但不能自动美化内嵌窗体. 点击这儿查看如何美化内嵌窗体.
7 找不到文件 'c:\program files\borland\delphi7\SM\winskindata.pas' Delphi7 试用版与Delphi7正式版的Dcu文件格式是不一样的。 如果你使用的是正式版,你可以安装一个演示包。vclskin2.zip. 如果你使用的是试用版,你可以安装一个演示包。 D7trial.zip.
8 使用 FastReport 时,出现了“无效操作,控件没有父窗体的的错误提示 ? 设置 TSkindata.skincontrols.xcFastReport = true 就可以解决这个问题。
9 使用 ReportBuilder 出现了“无效操作,控件没有父窗体的错误提示? 你可以在 TSkindata.OnformSkin 事件中取消美化这个控件。 代码如下 : procedure Tform1.SkinData1FormSkin(Sender: TObject; aName: String; var DoSkin: Boolean); begin
//'TppPrintPreview' 就是要取消美化的窗体名称。 if aName='TppPrintPreview' then doskin:=false;
end;
10 如何存取skin文件的颜色? 你可以借助 Tskindata.colors[] 属性来存取颜色。 比如说 , 窗体的背景色是 : skindata.Colors[csButtonFace]. TShemeColor=(csText,csTitleTextActive,csTitleTextNoActive, csButtonFace,csButtonText, csButtonHilight,csButtonlight,csButtonShadow,csButtonDkshadow, csSelectText,csSelectBg,csHilightText,csHilight, csMenuBar,csMenuBarText,csMenuText,csMenubg, csScrollbar,csTextDisable); TShemeColors=array[csText..csTextDisable] of Tcolor; Skindata.Colors: TShemeColors;
11 用户能自定义那些可视化控件的外观吗? 你可以使用 skin builder自定义细节.
12 怎样取消美化某个窗体或控件? 设置 form.tag=99 取消 美化这个窗体。
13 如何在美化一个工程的窗体标题栏和菜单的风格? 设置 TSkindata.skincontrols.xcMainmenu = false
热爱工作,热爱生活,热爱文学