Как узнать, отображает ли TMemo последнюю строку?

Форум для изучающих FPC и их учителей.

Модератор: Модераторы

Как узнать, отображает ли TMemo последнюю строку?

Сообщение Lifter » 05.08.2019 11:11:41

Мне надо выводить лог в Memo, и если видна последняя строка, чтобы новый текст добавлялся с прокруткой всего текста в конец (нормальное поведение TMemo). А если последние строки не видны (например, юзер сдвинул ScrollBar вверх и просматривает предыдущие сообщения), то текст чтобы добавлялся в TMemo, но окно не прокручивалось.
Для отключения прокрутки окна вывод сделал так:
Код: Выделить всё
if ( <видна последняя строка> ) then
  Memo1.Lines.Add(s)  // текст прокручивается
else
begin
  Memo1.BeginUpdate;
  Memo1.Lines.Add(s);  // текст не прокручивается при добавлении
  Memo1.EndUpdate;
end;

Как задать условие?

==============================
И еще вопрос, чтобы не заводить отдельную тему. Как переименовать ноду в TXMLDocument?
Код: Выделить всё
procedure TForm1.RenameNode(var node:TDOMNode);
var
  s : WideString;
begin
  s := WideString(InputBox('Имя ноды', 'Введите новое имя ноды', ''));
  if isCorrectName(s) then
    node.NodeName := s;  // компилятор ругается - "Error: No member is provided to access property" (свойство NodeName только на чтение)
end;
Lifter
новенький
 
Сообщения: 16
Зарегистрирован: 19.04.2012 02:17:24

Вернуться в Обучение Free Pascal

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

Рейтинг@Mail.ru
cron