вторник, 4 марта 2014 г.

Изменение параметров шрифта для всех компонентов на форме VCL/Firemonkey/Android

Рассмотрим изменение параметров шрифта


//---------------------------------------------------------------------------
void TForm2::SetFontParam(TForm *forma,float FontSize,bool FontBold,bool FontItalic,TAlphaColor FontColor,bool WordWrap)
{
for(int i = 0; i < forma->ComponentCount; i++)
{
_di_ITextSettings Settings;
if(forma->Components[i]->GetInterface(Settings))
{
 if (FontSize!=NULL)
 {
 Settings->TextSettings->Font->Size = FontSize;
 Settings->StyledSettings=Settings->StyledSettings>>TStyledSetting::ssSize;
 }
 if (FontBold!=NULL||FontItalic!=NULL)
 {
 if (FontBold&&!FontItalic)Settings->TextSettings->Font->Style<<fsBold;
 if (!FontBold&&FontItalic)Settings->TextSettings->Font->Style<<fsItalic;
 if (FontBold&&FontItalic)Settings->TextSettings->Font->Style<<fsBold<<fsItalic;
 Settings->StyledSettings=Settings->StyledSettings>>TStyledSetting::ssStyle;
 }
 if (FontColor!=NULL)
 {
 Settings->TextSettings->FontColor=FontColor;
 Settings->StyledSettings=Settings->StyledSettings>>TStyledSetting::ssFontColor;
 }
 if (WordWrap!=NULL)
 {
 Settings->TextSettings->WordWrap=true;
 Settings->StyledSettings=Settings->StyledSettings>>TStyledSetting::ssOther;
 }
}

}
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{
SetFontParam(Form4,22,NULL,NULL,NULL,NULL);
}
//---------------------------------------------------------------------------

Небольшой недостаток кода- если для ListBox или ListView используется источник данных то он не работает :(

Комментариев нет:

Отправить комментарий