Как autoscroll до конца RichEdit?

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

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

enter image description here

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

я "гуглил" для решений, но я не мог найти хороший и надежный.

3 ответов


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

RichEdit1.SetFocus;
RichEdit1.SelStart := RichEdit1.GetTextLen;
RichEdit1.Perform(EM_SCROLLCARET, 0, 0);

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

ты пробовал

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

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

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

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

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