Как изменить настройки текста в выбранном элементе в FireMonkey TTreeView

Я использую TStyleBook для создания собственного TTreeView в простом приложении Windows. Я могу получить доступ к "selection" StyleObject в TreeViewStyle, но я не знаю, как изменить цвет шрифта выбранного элемента (или как изменить любые TextSettings по этому вопросу). Можно ли выбрать стиль для текста, пока выбран элемент? Как это можно сделать?

Разработка в Rad Studio 10.1 Berlin в среде Windows 10.

Заранее спасибо.

2 ответа

Решение

В конце концов я подошел к проблеме неправильно.

Мое решение состояло в том, чтобы создать TreViewItemStyle и изменить свойства его TActiveStyleTextObject (в Delphi Berlin 10.1 объект с именем "текст").

Для специфической проблемы изменения цвета текста при выбранном элементе я просто изменил свойство ActiveColor на желаемый цвет.

Вы можете установить параметры текста при создании узла, но я думаю, что вместо этого вам нужно ссылаться на 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;
Другие вопросы по тегам