Управление прокруткой TMemo
01.01.2007
У меня имеется компонент TMemo, и мне необходимо автоматически "тормозить" программным способом его прокрутку при добавлении новой строки Memo.Lines.Add(Строка).
В Delphi 2.0 простая установка SelStart:=0 НЕ срабатывает. Это
ошибка в коде VCL. Значения различных частей "сообщения" windows,
используемые для "set selection" (установления выбранной части текста)
в WIN32 были изменены (это использовалось для "автоматической"
прокрутки каретки/курсора, но больше не работает).
Попробуйте добавить следующую строку ПОСЛЕ SelStart:=0;:
SendMessage(Handle,EM_SCROLLCARET,0,0);
Это должно заставить компонент работать так, как вы и ожидаете. Я надеюсь что Borland знает об этой проблеме и скоро ее исправит.
Здесь я должен пояснить, что ошибка как раз не в самом TMemo, а в TCustomEdit (в методе SetSelLength в stdctrls.pas). Поэтому данная проблема может наблюдаться во всех наследниках TCustomEdit (как TMemo).

