西西软件园多重安全检测下载网站、值得信赖的软件下载站!
软件
软件
文章
搜索

首页编程开发其它知识 → VCLSkin组件使用、Delphi界面美化图文教程

VCLSkin组件使用、Delphi界面美化图文教程

前往专题相关软件相关文章发表评论 来源:西西整理时间:2012/3/30 11:23:53字体大小:A-A+

作者:佚名点击:401次评论:1次标签: Delphi

Borland Delphi8.0光盘版
  • 类型:编程工具大小:83.1M语言:中文 评分:4.0
  • 标签:
立即下载

VCLSkin是个方便而且功能强大的界面加强型组件包。只要在程序的任何一个窗体里加入SkinData组件,设置好相关属性,则所有这个程序里出现的窗体(包括对话框)都具有设置好的界面风格。SkinStore组件又可以把一些皮肤文件预先存在里面,供SkinData随时调用,表现出程序的多种风格。下面简单地介绍它的用法。

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自定义细节.

12 怎样取消美化某个窗体或控件?
设置 form.tag=99 取消 美化这个窗体。

13 如何在美化一个工程的窗体标题栏和菜单的风格?
设置 TSkindata.skincontrols.xcMainmenu = false

先建立一个新工程,加入一些常见的组件。运行结果的界面如图9.18所示。

然后加入一个SkinData控件,把Active属性设为True。再单击SkinStore属性的带省略号的按钮,选择VCLSkin自带的一个皮肤文件macos.skn。然后,编译,运行,结果如图9.19所示。

图9.18 原始程序 图9.19 加入VCLSkin组件后的效果

此处将程序界面从原来古板的样貌变成Mac Os风格没有用一行代码,只设了SkinData的属性。下面我们结合SkinStore组件讲讲程序中“换肤”的做法。

在窗体上加入一个SkinStore组件,在Object Inspector中单击Store后面的带省略号的按钮,出现如图9.20所示的窗体。

单击图标,新生成一个SkinStore,可以像上面设置SkinData的SkinStore那样设置好它的属性。创建多个SkinStore,存入多个皮肤。然后在窗体的按钮上加入如下代码(代码的作用是当程序运行中按下Button1时,SkinData1会从SkinStore1中读取第1个皮肤,并显示出来):

procedure TForm1.Button1Click(Sender: TObject);

begin

SkinData1.LoadFromCollection(SkinStore1,1);

end;

类似地,加入以下代码:

procedure TForm1.Button3Click(Sender: TObject);

begin

SkinData1.LoadFromCollection(SkinStore1,2);

end;

procedure TForm1.SpeedButton3Click(Sender: TObject);

begin

SkinData1.LoadFromCollection(SkinStore1,3);

end;

“换肤”功能完成了。在程序中按下那几个按钮,程序界面的风格就会相应改变。图9.21示出了两个例子。

图9.21 VCLSkin的另两种皮肤效果

VCLSkin的功能远不止如此,我们挑几个说一下:

· DataSkin有个DisableTag属性。默认值是99。如果窗体上哪个组件的Tag值是99的话,DataSkin不会对这个组件起作用。

· 支持MDI窗体。

· 支持通用Windows对话框(打开,保存文件等)。

· SkinControls属性可以设置对哪类控件起作用。

· 在一个程序中不同窗体可以有不同皮肤风格。

    相关评论

    阅读本文后您有什么感想? 已有人给出评价!

    • 8 喜欢喜欢
    • 3 顶
    • 1 难过难过
    • 5 囧
    • 3 围观围观
    • 2 无聊无聊

    热门评论

    最新评论

    发表评论 查看所有评论(1)

    昵称:
    表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
    字数: 0/500 (您的评论需要经过审核才能显示)