如何更改 FireMonkey TTreeView 中所选项目的文本设置

How to change text settings in a selected item in a FireMonkey TTreeView

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

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

提前致谢。

您可以在创建节点时设置文本设置,但我认为您需要改为引用 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;

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

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

对于选中项目时更改文本颜色的具体问题,我只是将 ActiveColor 属性 更改为我想要的颜色。