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

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

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

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

Сообщение teleprog » 22.01.2013 13:03:24

Привет всем!

позицию курсора нахожу так -
Код: Выделить всё
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


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


Всем спасибо за внимание, уже разобрался)
В начало строки рисуется пробел, теперь определяю ширину текста + ширину одного пробела
У вас нет необходимых прав для просмотра вложений в этом сообщении.
teleprog
незнакомец
 
Сообщения: 1
Зарегистрирован: 22.01.2013 12:33:20

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

Сообщение Light13 » 23.01.2013 09:30:00

не проще брать x, y из события OnMouseMove?
Аватара пользователя
Light13
постоялец
 
Сообщения: 127
Зарегистрирован: 17.07.2009 07:50:10
Откуда: Челябинск


Вернуться в Lazarus

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 236

Рейтинг@Mail.ru