На какую величину изменяется ширина текста для наклонных стилей
Судя по всему ширина текста не меняется, а применяется алгоритм искривления. По крайне мере если измерять один и тот-же текст MeasureString или MeasureCharacterRanges, то для
Italic и
Regular, они возвращают одинаковые значения ширины.
Я примерно посчитал, что для шрифтов разных размеров это величина не больше 30% ширины одного символа, но хотелось бы поточнее
Здравствуйте, Cynic, Вы писали:
от шрифта зависит. некоторые шрифты выглядят АБСОЛЮТНО по другому в стиле Italic...
... << RSDN@Home 1.2.0 alpha 4 rev. 1284>>
Если при компиляции и исполнении вашей программы не происходит ни одной ошибки — это ошибка компилятора :)))
Здравствуйте, Hacker_Delphi, Вы писали:
H_D>Здравствуйте, Cynic, Вы писали:
H_D>от шрифта зависит. некоторые шрифты выглядят АБСОЛЮТНО по другому в стиле Italic...
Тогда возвращаемся к старому вопросу о правильном размещении текста в собственно-ручно рисуемом контроле. Например, индикаторе состояния, который чего нибудь пишет. И вопрос этот звучит так: "Как очень точно разместить текст в контроле, при условии, что он может быть любого шрифта, размера и стиля"
Буду очень признателен если дадите исчерпывающий ответ
Даже если использовать MeasureCharacterRanges, то ровно надпись разместить не удастся, потому что как вы правильно заметили, некоторые шрифты выглядят АБСОЛЮТНО по другому в стиле
italic
Здравствуйте, Cynic, Вы писали:
C>Тогда возвращаемся к старому вопросу о правильном размещении текста в собственно-ручно рисуемом контроле. Например, индикаторе состояния, который чего нибудь пишет. И вопрос этот звучит так: "Как очень точно разместить текст в контроле, при условии, что он может быть любого шрифта, размера и стиля" Буду очень признателен если дадите исчерпывающий ответ
C>Даже если использовать MeasureCharacterRanges, то ровно надпись разместить не удастся, потому что как вы правильно заметили, некоторые шрифты выглядят АБСОЛЮТНО по другому в стиле italic
Некрасивый но отлично работающий способ: нарисовать текст чёрным по белому битмапу в памяти и найти границы по крайним не белым точкам.