【问题标题】:TMemo Scrolling in DelphiDelphi中的TMemo滚动
【发布时间】:2016-10-06 09:28:32
【问题描述】:

我正在使用:Memo1.Lines.Add(Text) 将文本行添加到 TMemo,这会导致 Memo1 滚动到底部。

有什么方法可以在我添加行时停止滚动,或者在我完成后强制它回到顶部?

我想要一个简单的解决方案...

谢谢...

【问题讨论】:

标签: delphi scroll tmemo


【解决方案1】:

将备忘录的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;

【讨论】:

    【解决方案2】:

    您可以对行集合使用开始/结束更新:

    memo.Lines.BeginUpdate;
    try
      memo.Lines.Add('test');
    finally
      memo.Lines.EndUpdate;
    end;
    

    【讨论】:

    • 所有这一切都是为了防止备忘录在每次添加时重绘。它不影响滚动。
    • @ThomasJomphe:如果可行,您应该接受答案
    猜你喜欢
    • 2013-10-12
    • 1970-01-01
    • 2015-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多