Почему курсор не возвращается к началу TRichViewEdit?

Я использую TRichViewEdit для приложения чата, и после отправки текста в Edit я очищаю его. Проблема в том, что после того, как я очищаю Edit, курсор появляется в конце последнего элемента. Если я нажму «Изменить» или снова начну печатать, курсор вернется к началу. Почему сразу не возвращается?

Я пробовал звонить RichViewEdit.Update и .SelectWordAt(0,0), и ни один из них не работает.

Пример: введите здесь описание изображения


person Aaron    schedule 25.01.2013    source источник
comment
Возврат к началу чего? Вы только что очистили, где он был, ему нужно куда-то идти (конец последнего элемента), и он не собирается никуда идти, пока ему не прикажут.   -  person Tony Hopkinson    schedule 25.01.2013
comment
Если вы только что очистили текст, о каком последнем пункте вы говорите? Обратите внимание, что вы можете перемещать курсор куда хотите, назначая свойство SelPos, если этот элемент управления подобен другим потомкам TCustomEdit.   -  person Rob Kennedy    schedule 25.01.2013
comment
@TonyHopkinson Каретка должна быть в начале RichEdit, когда вызывается .Clear. @RobKennedy Я знаю, что с тех пор, как он был очищен, элементов нет, но появляется курсор (конечно, мигает) там, где был конец последнего элемента. Кроме того, у него нет свойства SelPos, потому что это TRichViewEdit.   -  person Aaron    schedule 25.01.2013
comment
Ах, теперь я понимаю тебя. Какая версия delphi и какая версия windows. Похоже на классическую проблему сообщений Windows в компоненте-оболочке VCL.   -  person Tony Hopkinson    schedule 25.01.2013


Ответы (2)


Поэтому я нашел обходной путь, вызвав RVEdit.SetSelectionBounds(0,0,0,0) после очистки, он перемещает каретку обратно в начало поля редактирования.

person Aaron    schedule 25.01.2013
comment
Это здорово, но обратите внимание, что на самом деле вы не ответили на вопрос. Вы не спросили, как можно обойти проблему. Вы спросили, почему вообще возникает проблема. - person Rob Kennedy; 25.01.2013
comment
Верно, спасибо, что указали на это. Но я подумал, что другим может быть интересно узнать, как я решил проблему (хотя бы временно). - person Aaron; 29.01.2013

Сделай это:

RichViewEdit1.Clear; 
RichViewEdit1.Format; 
person Steve F    schedule 25.01.2013