OberonCore https://forum.oberoncore.ru/ |
|
Выводимые на экран символы https://forum.oberoncore.ru/viewtopic.php?f=1&t=203 |
Страница 1 из 1 |
Автор: | Grabli [ Пятница, 12 Май, 2006 11:13 ] |
Заголовок сообщения: | Выводимые на экран символы |
Мне всегда казалось, что у каждого символа какого либо текста должна быть одинаковая ширина, если размер и тип шрифта одинаковый, конечно. Это так, или мне только кажется? И можно ли узнать какая ширина у символа? Например, как узнать ширину символа "W", шрифта "Arial"? |
Автор: | Илья Ермаков [ Пятница, 12 Май, 2006 11:21 ] |
Заголовок сообщения: | |
Есть особые моноширинные шрифты (еще их называют терминальными). Это системные аппаратные шрифты текстового режима и "косящие" под них - System, Terminal, Luicida Console... В полиграфии используются разноширинные шрифты, что позволяет сделать текст нормально читабельным. Да еще может делаться кернинг, когда некоторые символы ставятся между собой ближе, чем другие, например, после Г интервал делается меньше. Как работать со шрифтами в ББ - см. модуль Fonts, там в документации все описано. |
Автор: | Grabli [ Пятница, 12 Май, 2006 11:33 ] |
Заголовок сообщения: | |
Кстати, документ в Black Box, в котором отображается текст использует стандартный класс Windows "Edit", или это снуля написанный компонент, где текст выводится с помощью GDI? |
Автор: | Trurl [ Пятница, 12 Май, 2006 14:59 ] |
Заголовок сообщения: | |
Стандартные класы используются только в контролах. |
Автор: | Info21 [ Пятница, 12 Май, 2006 16:35 ] |
Заголовок сообщения: | Re: Выводимые на экран символы |
Grabli писал(а): как узнать ширину символа "W", шрифта "Arial"?
Посмотрите Ports: (f: Frame) CharPos (x, index: INTEGER; IN s: ARRAY OF CHAR; font: Fonts.Font): INTEGER f.CharPos( 0, 1, "Wx", <Arial> ) |
Автор: | Cardinal [ Пятница, 12 Май, 2006 18:06 ] |
Заголовок сообщения: | |
Хм.. Код: PROCEDURE (f: Font) GetBounds (OUT asc, dsc, w: INTEGER)
NEW, ABSTRACT Возвращает подъем, спуск шрифта и ширину самого широкого символа |
Автор: | Илья Ермаков [ Пятница, 12 Май, 2006 20:27 ] |
Заголовок сообщения: | |
Тогда уже: Код: font := Fonts.dir.This("Arial", размер, стиль, толщина Fonts.normal, FOnts.bold или промежуточная);
font.StringWidth("W") |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |