Как выполнить автопрокрутку до конца RichEdit? - PullRequest
8 голосов
/ 16 июня 2011

Раньше мне никогда не приходилось использовать TRichEdit, всегда использовал TMemo.

Я бы хотел, чтобы RichEdit автоматически прокручивался до конца, когда я добавляю текст, такой как TMemo.Посмотрите, как это выглядит после добавления некоторых данных:

enter image description here

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

Я «гуглил» решения, но не смог найти хорошего и надежного.

Ответы [ 3 ]

15 голосов
/ 16 июня 2011

Попробуйте этот код

RichEdit1.SetFocus;
RichEdit1.SelStart := RichEdit1.GetTextLen;
RichEdit1.Perform(EM_SCROLLCARET, 0, 0);
2 голосов
/ 13 августа 2018

Вот гораздо более простое и быстрое решение:

В обработчике событий OnChange просто:

SendMessage(RichEdit1.handle, WM_VSCROLL, SB_BOTTOM, 0);

Оригинальный ответ от: https://www.experts -exchange.com / questions / 21002277 / Richedit-autoscrolling.html

1 голос
/ 16 июня 2011

Короче говоря, вам нужно поместить курсор в конец или отправить код для прокрутки вниз.

Вы пробовали

Richedit1.SelStart :=RichEdit1.GetTextLength();
SendMessage(RichEdit1.handle, EM_SCROLLCARET,0,0);
...