Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2009, 09:15   #1
nusik
Форумчанин
 
Регистрация: 13.04.2009
Сообщений: 117
Сообщение RichEdit Координаты Курсора

Здрасти.
Необходимо узнать координаты пикселя курсора
RIchedIt1.CartePos.X
RichEdot1.CaretPos.y
дают координаты курсора для символов.
Есть ли какая функция для перевода позицми каретки в "пиксельную форму"
nusik вне форума Ответить с цитированием
Старый 23.04.2009, 11:58   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Если не секрет зачем?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.04.2009, 05:58   #3
Andrei
Форумчанин
 
Регистрация: 20.06.2007
Сообщений: 270
По умолчанию

API функция GetCaretPos(lpPoint: TPoint) сохраняет координаты каретки в пикселях относительно левого верхнего угла клиентской области компонента в lpPoint.

Позиция каретки всегда дается внутри клиентской области окна которое содержит каретку.

Может она вас устроит.
-Кукушка, кукушка! Накукуй мне сто лет!
-А накукуй тебе столько?

(с) Библия. Вольный перевод с древнееврейского.
Andrei вне форума Ответить с цитированием
Старый 24.04.2009, 08:53   #4
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Позволю добавить, координаты в RichEdit : x:= lpPoint.X; y:= lpPoint.Y;/Для всей формы координаты:
XForm:= RichEdit1.Left + x;
YForm:= RichEdit1.Top + y;
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 24.04.2009, 09:01   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Для всей формы координаты:
Ну вообще-то это сработает только если контрол не лежит в каком-нить контейнере типа TPanel.
Лучще преобразование координат из локальных в экранные делать через ClientToScreen
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.04.2009, 23:24   #6
_test_
 
Регистрация: 09.02.2009
Сообщений: 5
По умолчанию

я однажды искал это
вот код. у меня листбокс появлялся перед курсором. как в биледере предлогает варианты вставки, так и у меня.
взял не помню где. но вставив первые две строки в гуглы можно найти думаю оригинальную статью

void __fastcall TForm1::RichEditChange(TObject *Sender)
{
GetCaretPos(&CaretPos);
CaretPos = RichEdit->ClientToScreen(CaretPos);
CaretPos = Form1->ScreenToClient(CaretPos);
ListBox->Left=CaretPos.x;
ListBox->Top=CaretPos.y+14;
if (CaretPos.x+ListBox->Width>=RichEdit->Left+RichEdit->Width)
{
ListBox->Left=CaretPos.x-ListBox->Width;
}
if (CaretPos.y+ListBox->Height+14>=RichEdit->Top+RichEdit->Height)
{
ListBox->Top=CaretPos.y-ListBox->Height;
}
}
_test_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Координаты текстового курсора DeKot Общие вопросы Delphi 4 07.03.2009 20:47
как узнать координаты курсора nikleb Общие вопросы C/C++ 2 29.10.2008 23:36
Координаты курсора на изображении Ciberal Мультимедиа в Delphi 2 28.10.2008 19:33
как определить координаты курсора snaem Общие вопросы .NET 0 23.04.2008 22:27
Координаты курсора Haster Win Api 8 06.08.2007 12:04