Абсолютная позиция курсора в TMemo( в пикселях)

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

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

Ответить
teleprog
незнакомец
Сообщения: 1
Зарегистрирован: 22.01.2013 12:33:20

Абсолютная позиция курсора в TMemo( в пикселях)

Сообщение teleprog »

Привет всем!

позицию курсора нахожу так -

Код: Выделить всё

var
x,y,  yy:integer;
begin
    image1.Picture.Bitmap.Canvas.Font.Assign(Memo1.Font);
    y :=  Memo1.CaretPos.y* image1.Picture.Bitmap.Canvas.TextHeight('Wq');;
    x := image1.Picture.Bitmap.Canvas.TextWidth(utf8copy(Memo1.Lines[Memo1.CaretPos.y], 1, Memo1.CaretPos.x));         


Т.е. тупо беру ширину текста до курсора.
Но есть проблема - для разных шрифтов начало строки(отступ) в мемо отличается.
ooooooooooooooooooooooo.JPG


Как определить этот отступ?
Или как его убрать?


Всем спасибо за внимание, уже разобрался)
В начало строки рисуется пробел, теперь определяю ширину текста + ширину одного пробела
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Light13
постоялец
Сообщения: 127
Зарегистрирован: 17.07.2009 07:50:10
Откуда: Челябинск

Сообщение Light13 »

не проще брать x, y из события OnMouseMove?
Ответить