Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Местоположение курсора в Memo


Автор: Алексей 21.6.2006, 20:01
Здравствуйте. Подскажите, пожалуйста, способ определения местоположения курсора в Memo.
Допустим, если требуется выровнять его относительно середины.
Заранее спасибо. 

Автор: Romikgy 21.6.2006, 21:44
В поиск тебя, это столько раз обсуждалось.... 

Автор: ИванМ 22.6.2006, 16:05
свойство CaretPos 

Автор: Алексей 22.6.2006, 18:53
Спасибо огромное. Про это свойство я уже нашел, по совету Romikgy, в поиске.
Теперь у меня возникла проблема его использования.
Кто-нибудь может привести простенький пример? smile
 
Я пробовал вот так:
Код

TPoint p;
p.x=5;
p.y=6;
Memo1->CaretPos=p;


Но курсор просто куда-то исчезает. 

Автор: ИванМ 22.6.2006, 21:40
В конце напиши: 
Код

Memo1->SetFocus();

И все будет работать. Курсор есть, просто ты его не видишь, так как окно не сфокусировано. 

Автор: Алексей 23.6.2006, 09:53
ИванМ, спасибо огромное. Теперь курсор появился. 
Только почему-то он не переставляется.
Код

Memo1->CaretPos.x=5;
Memo1->CaretPos.y=7;
Memo1->SetFocus();

 

Автор: Romikgy 23.6.2006, 10:12
Код

int i,x,y;
i=SendMessage(Memo1->Handle, EM_LINEINDEX, y, 0) + x;
SendMessage(Memo1->Handle, EM_SETSEL, i, i);
Memo1->SetFocus();

юзай smile

Добавлено @ 10:13 
x,y положение курсора куда хочешь поставить!

Добавлено @ 10:14 
Цитата(Алексей @  23.6.2006,  08:53 Найти цитируемый пост)
Memo1->CaretPos

Посмотри хелп, это рид-онли! 

Автор: ИванМ 23.6.2006, 11:16
Код

TPoint p;
p.x=5;
p.y=6;
Memo1->CaretPos=p;
Memo1->SetFocus();

И все работает. Вначале ты правильно писал. Можно присвоить только класс TPoint.
И ни какой не рид-онли. По крайней мере, в 6-м Билдере.
 

Автор: ShumaHerr 22.10.2007, 15:47
А как определить координаты курсора, а затем вставить в это место слово в RichEdit?

Автор: 586 22.10.2007, 16:15
Цитата(ShumaHerr @  22.10.2007,  16:47 Найти цитируемый пост)
А как определить координаты курсора

RichEdit1->CaretPos     // коорд. x, y
RichEdit1->SelStart       // индекс выделения начала текста
RichEdit1->SelLength    // длина выделения текста (если не выделен, рабен 0)

Цитата(ShumaHerr @  22.10.2007,  16:47 Найти цитируемый пост)
 вставить в это место слово в RichEdit

RichEdit1->SelText

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)