Шрифты, языки, кодировки, регионарные стандарты
Как определить, какой шрифт установлен в системе, большой или маленький
Следующуя функция возвращает true, если маленькие шрифты установлены в системе. Так же можно заменить строку 'Result := (GetDeviceCaps(DC, logpixelsx) = 96);' на 'Result := (GetDeviceCaps(DC, logpixelsx) = 120);' чтобы определять - установлены ли в системе крупные шрифты.
- Подробности
- Родительская категория: Шрифты, языки, кодировки, регионарные стандарты
- Категория: Шрифты и файлы шрифтов
Code: |
function SmallFonts: Boolean; {Значение функции TRUE если мелкий шрифт} var DC: HDC; begin DC := GetDC(0); Result := (GetDeviceCaps(DC, LOGPIXELSX) = 96); { В случае крупного шрифта будет 120} ReleaseDC(0, DC); end; |
- Подробности
- Родительская категория: Шрифты, языки, кодировки, регионарные стандарты
- Категория: Шрифты и файлы шрифтов
Работа с КАЗАХСКИМИ ШРИФТАМИ.
Здравствуйте Уважаемые Господа Програмисты.
Моя небольшая статья будет, скорее всего, интересна програмистам из региона - КАЗАХСТАН.
Так как програмисты проживающиее и работающие в этом регионе чаще всего встречаются
с проблемой вывода нестандартных КАЗАХСКИХ ШРИФТОВ.
- Подробности
- Родительская категория: Шрифты, языки, кодировки, регионарные стандарты
- Категория: Шрифты и файлы шрифтов
Когда мои программы работают на системах с установленными маленькими шрифтами, я получаю странный вид моей формы. К примеру, расположенные на форме компоненты Label становятся малы для размещения указанного теста, обрезая его в правой или нижней части. StringGrid не осуществляет положенного выравнивания и т.д.
Попробуй следующий код. Он масштабирует как размер формы, так и размер шрифтов. Вызывай его в Form.FormCreate. Надеюсь это поможет.
- Подробности
- Родительская категория: Шрифты, языки, кодировки, регионарные стандарты
- Категория: Шрифты и файлы шрифтов
Я также долго мучился над проблемой решения этого вопроса, и ниже я излагаю свои выводы на основании моих многочисленных экспериментов.
Свойство, отвечающее за размер шрифта важно, но не менее важны в этом вопросе и другие характеристики.
- Подробности
- Родительская категория: Шрифты, языки, кодировки, регионарные стандарты
- Категория: Шрифты и файлы шрифтов
Сразу рассмотрим плюсы и минусы помещения каждой буквы в отдельное изображение!
Плюсы :
1.Более быстрая отрисовка (так как ищется только номер картинки).
2.Буквы рисуются аккуратно, на одинаковом расстоянии друг от друга.
- Подробности
- Родительская категория: Шрифты, языки, кодировки, регионарные стандарты
- Категория: Шрифты и файлы шрифтов
Эти установки должны показать шрифты совместимые либо с принтером либо с экраном. В примере диалог Windows ChooseFont вызывается напрямую чтобы показать список шрифтов, совместимых одновременно и с экраном и с принтером.
- Подробности
- Родительская категория: Шрифты, языки, кодировки, регионарные стандарты
- Категория: Шрифты и файлы шрифтов
function GetFontResourceInfoW (FontPath : PWideChar; var BufSize : DWORD; FontName : PWideChar; dwFlags : DWORD) : DWORD; stdcall; external 'GDI32.DLL';
1-ый параметр - указатель на Wide-строку, содержащую путь к файлу шрифта;
2-ой параметр - указатель на DWORD-переменную, содержащую размер выходного буфера. После выполнения функции в этой переменной будет содержаться необходимая длина буфера;
3-ий параметр - указатель на буфер, в случае успешного выполнения будет содержать Wide-строку имени шрифта;
4-ый параметр - какие-то флаги, если рыться в функции GetFontResourceInfoW особым случаем является когда dwFlags=4, но зачем это, я так и не понял - в результате будет возвращен тот же путь к файлу; ну а для получения имени шрифта флаг должен быть равен 1.
- Подробности
- Родительская категория: Шрифты, языки, кодировки, регионарные стандарты
- Категория: Шрифты и файлы шрифтов
Code: |
procedure TConsole.FontChanged(Sender: TObject); var DC: HDC; Save: THandle; Metrics: TTextMetric; Temp: string; begin if Font.Handle <> FOldFont.Handle then begin DC := GetDC(0); Save := SelectObject(DC, Font.Handle); GetTextMetrics(DC, Metrics); SelectObject(DC, Save); ReleaseDC(0, DC); if not (((Metrics.tmPitchAndFamily and ff_Modern) <> 0) and ((Metrics.tmPitchAndFamily and $01) = 0)) then begin Temp := 'TConsole: ' + Font.Name + ' не является шрифтом с фиксированной шириной'; Font.Name := FOldFont.Name; { Возвращаем предыдущие атрибуты шрифта } raise EInvalidFont.Create(Temp); end; SetMetrics(Metrics); end; FOldFont.Assign(Font); if csDesigning in ComponentState then InternalClrScr; end; |
- Подробности
- Родительская категория: Шрифты, языки, кодировки, регионарные стандарты
- Категория: Шрифты и файлы шрифтов
Страница 4 из 4