Прокрутка TMemo в Delphi

Я добавляю строки текста в TMemo, используя: Memo1.Lines.Add(Text), что заставляет Memo1 прокручиваться вниз.

Есть ли способ либо остановить его прокрутку, когда я добавляю строки, либо заставить его вернуться наверх, когда я закончу?

Я хочу простое решение...

Спасибо...


person Thomas Jomphe    schedule 05.10.2016    source источник
comment
Возможный дубликат Как остановить автоматическую прокрутку заметки контролировать?   -  person Jan Doggen    schedule 06.10.2016


Ответы (2)


Вы можете использовать обновление начала/конца для коллекции строк:

memo.Lines.BeginUpdate;
try
  memo.Lines.Add('test');
finally
  memo.Lines.EndUpdate;
end;
person JayDi    schedule 05.10.2016
comment
Все это предотвращает перерисовку Memo при каждом добавлении. Это не влияет на прокрутку. - person Remy Lebeau; 06.10.2016
comment
@ThomasJomphe: если это сработает, вы должны принять ответ - person Hwau; 10.10.2016

Установите для свойства SelStart памятки значение 0, а затем отправьте EM_SCROLLCARET сообщение в Памятку.

Memo1.Lines.BeginUpdate;
try
  Memo1.Lines.Add(...);
  ...
  Memo1.SelStart := 0;
  Memo1.SelLength := 0;
  Memo1.Perform(EM_SCROLLCARET, 0, 0);
finally
  Memo1.Lines.EndUpdate;
end;
person Remy Lebeau    schedule 06.10.2016