| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Физические координаты курсора |
| Автор: Delphist 13.3.2006, 11:11 |
| На форме расположен компонент TMemo, у memo есть свойство Memo.Caret.X и Memo.Caret.Y где возвращаются координаты каретки - позиция в строке и номер строки. Как узнать физические координаты(в пикселях) каретки. |
| Автор: Yanis 13.3.2006, 11:14 |
| Умничка. Только вопрос забыл задать. |
| Автор: Romikgy 13.3.2006, 11:26 |
| Рискну предположить что GetCursorPos |
| Автор: Yanis 13.3.2006, 11:30 |
| Меня терзают смутные сомнения, но похоже разговор идёт не о курсоре, а о каретке. Киньте в меня камень, если я не прав. Но всё равно непонятно, что хотел сказать своим первым постом автор. |
| Автор: Alexeis 13.3.2006, 11:43 | ||||
|
| Автор: Yanis 13.3.2006, 11:47 |
| Всё равно непонятно. Подразумеваю, что речь про каретку, а "вопрос" о курсоре. |
| Автор: Alexeis 13.3.2006, 12:17 |
| Справка говорит так надо отправить memo либо richEditu сообщение EM_POSFROMCHAR |
| Автор: Delphist 13.3.2006, 14:49 | ||
Как получить физические координаты(в пикселах) курсора каретки. |
| Автор: Yanis 13.3.2006, 15:18 | ||
Либо я плохо знаю английский, либо (к сожалению) ребята из Borland ошиблись |
| Автор: Alexeis 13.3.2006, 15:20 | ||
| Подключайтесь уже кто-нибудь Я тестил сообщение EM_POSFROMCHAR Но у меня плохой результат (большие числа) Может что-то не так написал??
Добавлено @ 15:21 Yanis, ребята из Borland ошиблись |
| Автор: Yanis 13.3.2006, 16:03 | ||
| Например тебе нужно узнать положение X твоей каретки в Memo с таким текстом: "Font a|nd Text Functions". Значит тебе нужно подсчитать ширину текста "Font a" и прибавить к TMemo.Left. Примерно таким же образом получается и значение координаты Y. Всё, что тебе нужно можно узнать при помощи функции GetTextExtentPoint32. Если при использовании этой функции возникают проблемы, то попробуй такой варинт:
|
| Автор: Delphist 14.3.2006, 13:35 |
| Гораздо проще GetCaretPos. |
| Автор: Yanis 14.3.2006, 13:58 |
| Проще для чего? Она не удовлетворяет твоим условиям. |
| Автор: Святогор 2.10.2007, 07:41 |
| Пардон, но я так и не понял. Неужелине сущесвтует конкретного метода, который бы определил экранные координаты курсора(не мыши) в окне TMemo ? |
| Автор: stab 2.10.2007, 07:48 |
| Святогор, GetCaretPos и если требуется потом ClientToScreen. |
| Автор: Святогор 2.10.2007, 08:12 |
| Спасибо! |