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


Автор: Torn@do 13.6.2006, 07:56
Приветик.

Мне надо сделать, что бы по нажатию shift + вправо и shift + влево курсор в поле RichEdit перемещался на начало следующего слова и пробел после предыдущего слова соответственно.

Проблема в том, что такая комбинация уже используется - выделяется один символ вправо или влево соответственно. И ещё в хоткеях нет комбинации со стрелками. Вообще-то мне не обязательно это реализовывать на хоткеях, это я так начал почему-то. Важен сам результат.

Кстати, на счёт перемещения, мне кажется, что можно использовать функцию *memchr или *strchr. Только как их связать с моей комбинацией клавиш... ?? 

Автор: ZIlya 13.6.2006, 09:44
в RichEdit уже есть комбинация ctrl+<вправо> и ctrl+<влево> переводящия курсор к след./пред. слеву
следовательно ctrl+shift+<вправо> и ctrl+shift+<влево> будет выполнять то что тебе надо 

Автор: Torn@do 13.6.2006, 14:57
ZIlya, не совсем то, что надо оно выполняет. ctrl + shift + лево или право - выделяет целое слово влево или вправо.

То что делает ctrl + лево или право, в принципе, пойдёт. Только там со знаками препинания заморочка, но это мелочи. Главное то, что мне надо реализовать это по нажатию на shift + лево и shift + право. 

Автор: ZIlya 13.6.2006, 15:31
тогда по свойству onKeyDown смотриш
Shift.Contains(ssShift)&&(Key==VK_LEFT)
или
Shift.Contains(ssShift)&&(Key==VK_RIGHT) 

Автор: Torn@do 13.6.2006, 15:42
ZIlya, о! Теперь работает. Перехватываются shift+ влево, shift + вправо. 
Теперь буду пробовать перемещаться по словам. smile 

Правда, функция выделения символов осталась smile 

Автор: ZIlya 14.6.2006, 10:11
чтобы небыло выделения символов в конце функции пишиш Key=0 

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