zoukankan      html  css  js  c++  java
  • [示例] 用代码设置 ListView 颜色 (只适用 Win 平台,无需修改官方源码)

    如果可以使用代码随意设置 ListView 的颜色,而不用加载额外的 Style 及修改官方的源码,那该有多好?! 其实 Style 提供了很强了扩充性及可塑性,可以很容易的去操作它。

    下面以 ListView 为例,用代码设置它的 ItemBackgroud 颜色(其它的控件基本上也能用相同的方法来设置):

    procedure TForm1.ListView1ApplyStyleLookup(Sender: TObject);
    var o1: TFmxObject;
        o2: TFmxObject;
        c: TAlphaColor;
    begin
         if Sender = ListView1 then
              c := TAlphaColorRec.Lightyellow
         else c := TAlphaColorRec.Mistyrose;
    
         o1 := TStyleManager.ActiveStyleForScene(Screen.ActiveForm as IScene).FindStyleResource('listviewstyle');
         o2 := o1.FindStyleResource('itembackground');
    
         // 需要判断第一次才设置颜色,否则会影响效能
         if (o2 is TColorObject) and (TColorObject(o2).Color <> c) then
         begin
              TColorObject(o2).Color := c;
              TListView(Sender).NeedStyleLookup;
         end;
    end;

    注意:此方法仅适用 Windows 平台,移动平台还是乖乖的用 Style 吧!

    示例下载:[示例]用代码设置ListView颜色_Aone.zip

    效果:(多个 ListView 可以各别设置不同颜色)

  • 相关阅读:
    [ARC117F]Gateau
    [ARC117D]Miracle Tree
    [loj3504]支配
    [gym102511K]Traffic Blights
    [loj3501]图函数
    [loj3503]滚榜
    [loj3500]矩阵游戏
    [loj2135]幻想乡战略游戏
    [cf720D]Slalom
    [cf1349E]Slime and Hats
  • 原文地址:https://www.cnblogs.com/onechen/p/6597844.html
Copyright © 2011-2022 走看看