vcl*_*per 32
对于这么简单的任务,您不需要购买商业组件!您需要做的就是向该备忘录控件发送EM_LINESCROLL消息,使其滚动到最后一行:
procedure ScrollToLastLine(Memo: TMemo);
begin
SendMessage(Memo.Handle, EM_LINESCROLL, 0,Memo.Lines.Count);
end;
Run Code Online (Sandbox Code Playgroud)
如果您的备忘录对用户是只读的并且由应用程序自动更新,您可以在其OnChange事件处理程序中调用上述过程,这样每当备忘录中的文本发生更改时,它会自动向下滚动到最后一行.
小智 6
在RichEdit备忘录中,这些滚动解决方案都没有为我工作.使用Delphi 2010 + w7.但这个完美无缺:
在每一次之后Lines.Add('...'):
SendMessage(RichEditMemo.Handle, WM_VSCROLL, SB_LINEDOWN, 0);
Run Code Online (Sandbox Code Playgroud)
发现于:http: //www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_10120212.html
可能,为了节省一些钱,你可以调整它来滚动DBMemo:
EchoMemo.Lines.Add('A Line of text or more');
EchoMemo.SelStart := EchoMemo.GetTextLen;
EchoMemo.SelLength := 0;
EchoMemo.ScrollBy(0, EchoMemo.Lines.Count);
EchoMemo.Refresh;
Run Code Online (Sandbox Code Playgroud)
我用于日志显示.