【问题标题】:How to change text settings in a selected item in a FireMonkey TTreeView如何更改 FireMonkey TTreeView 中所选项目中的文本设置
【发布时间】:2017-08-01 14:15:55
【问题描述】:

我正在使用 TStyleBook 在简单的 Windows 应用程序中创建自定义 TTreeView。 我可以访问 TreeViewStyle 中的“选择”StyleObject,但我不知道如何更改所选项目的字体颜色(或如何更改任何 TextSettings)。 选择项目时是否可以为文本选择样式?怎么办?

在 Windows 10 环境中的 Rad Studio 10.1 Berlin 中进行开发。

提前致谢。

【问题讨论】:

    标签: firemonkey delphi-10.1-berlin


    【解决方案1】:

    您可以在创建节点时设置文本设置,但我认为您需要改为引用 ResultingTextSettings。例如,您可以在创建节点 (LNewNode) 后使用以下代码,其中 SceneTreeView 是 FireMonkey TTreeView。

    LNewNode := TwwSceneTreeNode.Create(SceneTreeView);
    LNewNode.Parent:= SceneTreeView; 
    LNewNode.Text:= 'Node Text';
    LNewNode.ResultingTextSettings.Font.Size:= 8;
    LNewNode.ResultingTextSettings.FontColor:= TAlphaColorRec.Red;
    

    如果您需要更改选择的颜色,则需要使用树视图的 OnChange 事件,然后设置字体颜色,并清除先前选择的字体。

      if SceneTreeView.Selected<>nil then
      begin
         SceneTreeView.Selected.ResultingTextSettings.FontColor:=
              TAlphaColorRec.Blue;
         // Find way to clear earlier font color for 
         // prior selection and put code here
      end;
    

    【讨论】:

    • 对不起,如果我不够具体,但我想要的是如何使用我的 TStyleBook 解决这些设置,这样我就不必为我创建的每棵树中的每个项目手动执行此操作
    • 很高兴你明白了。
    【解决方案2】:

    最后我以错误的方式解决了这个问题。

    我的解决方案是创建一个 TreViewItemStyle 并更改其 TActiveStyleTextObject 的属性(在 Delphi Berlin 10.1 中,一个名为“文本”的对象)。

    对于在选择项目时更改文本颜色的特定问题,我只是将 ActiveColor 属性更改为我想要的颜色。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-03
      • 2017-08-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多