Как изменить настройки текста в выбранном элементе в 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;