• dxSkinController动态调入皮肤


    dxSkinController可以在运行时动态调入皮肤,不用在设计期Use一大串文件,把要用的皮肤用安装程序自带的Skin Editor编辑一个SkinRes文件,然后在程序中动态调入就可以了。

    uses dxSkinsDefaultPainters;

    procedure TForm1.FormCreate(Sender: TObject);
    begin
    cxComboBox1.Properties.Items.Clear;
    dxSkinsUserSkinPopulateSkinNames(ExtractFilePath(ParamStr(0))+'sSkins.skinres',
    cxComboBox1.Properties.Items);
    cxComboBox1.ItemIndex:=0;
    end;

    procedure TForm1.cxComboBox1PropertiesChange(Sender: TObject);
    begin
    //这个地方必须是UserSkin,不然不会起作用
    dxSkinController1.SkinName:='UserSkin';
    dxSkinsUserSkinLoadFromFile(ExtractFilePath(ParamStr(0))+'sSkins.skinres',cxComboBox1.EditText);
    end;

    procedure TForm1.dxSkinController1SkinForm(Sender: TObject;
    AForm: TCustomForm; var ASkinName: String; var UseSkin: Boolean);
    begin
    //Simon自己认为这一句不应该要,要了窗口就不能跟着变,而且dxSkinController要在所有cx控件添加前添加,否则控件皮肤不受拜你控制。
    UseSkin:=false;
    end;
     
    Simon补充:
      在Developer Express.VCL的安装目录下,文件夹Developer Express.VCLExpressSkins LibraryBinary Skin Files 中包含有Developer Express 自带的控件皮肤资源包,可以把全部皮肤资源包“AllSkins.skinres”Copy 到工程文件目录中,以进行调用,
     
      但有一个问题现在还不知道,就是dxBarPopuMenu的皮肤怎么受控制的?现在研究中!

    其他一些控件要手动添加***Painter类,都在ExpressSkins LibrarySources包里,如dxSkinsdxStatusBarPainter等等.否则SKIN就会显示不出来
  • 相关阅读:
    dubbo总结
    搞懂分布式技术28:微服务(Microservice)那点事
    搞懂分布式技术21:浅谈分布式消息技术 Kafka
    搞懂分布式技术20:消息队列因何而生
    搞懂分布式技术19:使用RocketMQ事务消息解决分布式事务
    搞懂分布式技术17,18:分布式事务总结
    热敏电阻
    eagle学习汇总
    CSS浮动通俗讲解
    总结一下CSS定位
  • 原文地址:https://www.cnblogs.com/Values/p/3591472.html
Copyright © 2020-2023  润新知