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

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

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

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

Сообщение Alex2013 » 08.04.2016 16:21:56

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

Брр.. буквально вчера разбирался с выводом текста разными шрифтами через OutText ...
Никаких проблем не обнаружил ..
Может параметры шрифта сбились и цвет изменился?
PS
Лучше использовать
Canvas.GetTextWidth(St) или
Font.GetTextWidth(St)
Alex2013
долгожитель
 
Сообщения: 3145
Зарегистрирован: 03.04.2013 11:59:44

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

Сообщение скалогрыз » 08.04.2016 21:46:10

пример б?
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

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

Сообщение MysticCoder » 17.07.2016 14:22:18

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

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

Сообщение MysticCoder » 17.07.2016 16:05:49

Рисуй текст своими функциями, шрифт загоняешь в битмап, и копируешь символы по указателям. Так будет быстро, но и гемороя больше будет если нужны разные размеры или разные шрифты.
MysticCoder
постоялец
 
Сообщения: 154
Зарегистрирован: 14.09.2013 00:20:28

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

Сообщение pupsik » 17.07.2016 18:58:44

Есть ещё aggpas...
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 233

Рейтинг@Mail.ru