在Delphi中使用TRichEdit滚动问题

时间:2009-09-28 21:29:03

标签: delphi richedit

我在TRichEdit中添加线条如何将注意力集中在刚刚添加的线上?

For Idx := 1 to 1000 do
   RichEdit.Lines.add(IntToStr(Idx));

修改

我只是显示刚刚添加的内容以及所有其他行向上滚动的底线

2 个答案:

答案 0 :(得分:5)

如果您只想滚动到richedit的末尾,这应该有效:

For Idx := 1 to 1000 do
begin
  RichEdit.Lines.add(IntToStr(Idx));
  RichEdit.SelStart := RichEdit.GetTextLen;
  SendMessage(RichEdit.handle, EM_SCROLLCARET,0,0);
end;

如果这不是您想要的,请参阅上面的评论并澄清您的问题。

答案 1 :(得分:3)

你可以试试这个

选项1)在循环结束时设置光标

For Idx := 1 to 1000 do
   RichEdit.Lines.add(IntToStr(Idx));

RichEdit.SetFocus;
RichEdit.SelStart := RichEdit.Perform(EM_LINEINDEX, RichEdit.Lines.Count-1, 0) ;

选项2)在循环执行时设置光标

For Idx := 1 to 1000 do
Begin
RichEdit.Lines.add(IntToStr(Idx));
RichEdit.SetFocus;
End;

RichEdit.SelStart := RichEdit.Perform(EM_LINEINDEX, RichEdit.Lines.Count-1, 0) ;

再见。