Как работает TextExtent или кто блокирует Канву ?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Alex2013
долгожитель
Сообщения: 3233
Зарегистрирован: 03.04.2013 11:59:44

Re: Как работает TextExtent или кто блокирует Канву ?

Сообщение Alex2013 »

TextExtent ? Работает примерно так :arrow: http://www.beluch.ru/progr/100comp/3_2.htm

Брр.. буквально вчера разбирался с выводом текста разными шрифтами через OutText ...
Никаких проблем не обнаружил ..
Может параметры шрифта сбились и цвет изменился?
PS
Лучше использовать
Canvas.GetTextWidth(St) или
Font.GetTextWidth(St)
MysticCoder
постоялец
Сообщения: 154
Зарегистрирован: 14.09.2013 00:20:28

Сообщение MysticCoder »

Уверен, что никак не избежать сбивания указателей. Не зря же в обьявлении ScanLine есть коммент, что использовать только в обертке Begin/EndUpdate. Ну или написать свою функцию TextOut, которая будет через указатели рисовать. Можно попробовать TBGRABitmap, может он этой проблемой не страдает. А зачем копировать в свой массив если можно использовать ScanLine?
MysticCoder
постоялец
Сообщения: 154
Зарегистрирован: 14.09.2013 00:20:28

Сообщение MysticCoder »

Рисуй текст своими функциями, шрифт загоняешь в битмап, и копируешь символы по указателям. Так будет быстро, но и гемороя больше будет если нужны разные размеры или разные шрифты.
pupsik
энтузиаст
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13
Контактная информация:

Сообщение pupsik »

Есть ещё aggpas...
Ответить