Как узнать, какие шрифты установлены в системе?
|
Как получить список всех установленных шрифтов? Использовать TScreen::Fonts. Пример:
Memo1->Lines->Text = "В системе установлены следующие шрифты:\n\n" + Screen->Fonts->Text;
Как получить список только моноширинных шрифтов? /* функция-перечислитель для шрифтов */ int CALLBACK EnumFontsProc(LOGFONT * lplf, TEXTMETRIC * lptm, DWORD dwType, LPARAM lpData){ if( (lptm->tmPitchAndFamily&TMPF_FIXED_PITCH) == 0 ) { TStrings * strlist = (TStrings *)lpData; strlist->Add(lplf->lfFaceName); } return TRUE; } /* обработчик нажатия на кнопку, по которому будем создавать список шрифтов */ void __fastcall TForm1::Button1Click(TObject *Sender) { /* Очищаем TMemo */ Memo1->Lines->Clear(); /* инициируем перечисление */ EnumFonts(Canvas->Handle,NULL,(FONTENUMPROC)&EnumFontsProc,(LPARAM)Memo1->Lines); /* теперь в Memo1 отображен список моноширинных шрифтов */ } |