代码之家  ›  专栏  ›  技术社区  ›  Charles Faiga

delphi中trichedit的滚动问题

  •  1
  • Charles Faiga  · 技术社区  · 15 年前

    我在给一个骗局加上几行,我该如何把注意力集中在刚刚加上的那一行?

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

    编辑

    我只是在richedit的最后一行显示刚刚添加的内容,其他所有行向上滚动

    2 回复  |  直到 11 年前
        1
  •  5
  •   Argalatyr Rodrigo    15 年前

    如果您只想滚动到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;
    

    如果这不是你想要的,请看我上面的评论并澄清你的问题。

        2
  •  3
  •   RRUZ    15 年前

    你可以试试这个

    选项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) ;
    

    再见。