zoukankan      html  css  js  c++  java
  • 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 .
  • 相关阅读:
    Centos常用快捷键
    ngnix笔记
    转载申明
    Linux 最小安装常用包
    update-alternatives关键解疑
    使用Java语言开发机器学习框架和参数服务器
    storm实践
    JVM线程状态,park, wait, sleep, interrupt, yeild 对比
    PHP版本解密openrtb中的价格
    Minimum Path Sum
  • 原文地址:https://www.cnblogs.com/feng801/p/1332179.html
Copyright © 2011-2022 走看看