| Содержание | Последнее обновление: 14.02.2004 | |
|
Как узнать, какие шрифты установлены в системе? Автор: OlegGG, trainer Использовать 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 отображен список моноширинных шрифтов */
} |