Добрый день,
В RAD Studio XE5 для поддержки возможности массово менять настройки текста для любых контролов был введен специальный интерфейс ITextSettings. Каждый контрол, который поддерживает настройку параметров текста, реализует этот интерфейс. Поэтому, чтобы массово поменять настройки текста можно использовать, например, следующий код (Delphi, он легко переводится на C++). Этот код Для всех наследников, которые не используют размер шрифта из стиля, задает размер шрифта:
var
Settings: ITextSettings;
Instance: TComponent;
I: Integer;
begin
for I := 0 to ChildrenCount - 1 do
begin
Instance := Children[I];
if IInterface(Instance).QueryInterface(ITextSettings, Settings) = S_OK then
begin
// using ITextSettings methods and properties:
// TextSettings: TTextSettings,
// DefaultTextSettings,
// StyledSettings
// to change properties of text objects
Settings.TextSettings.BeginUpdate;
try
Settings.TextSettings.Font.Size := 18;
if TStyledSetting.ssSize in Settings.StyledSettings then
Settings.StyledSettings := Settings.StyledSettings - [TStyledSetting.ssSize]
// show Font.Size := 18
else
Settings.StyledSettings := Settings.StyledSettings + [TStyledSetting.ssSize];
// restore showing Font.Size loaded from a style
finally
Settings.TextSettings.EndUpdate;
end;
end;
end;
end;