我正在向TRichEdit中添加行如何關注剛剛添加的行?在Delphi中使用TRichEdit滾動問題
For Idx := 1 to 1000 do
RichEdit.Lines.add(IntToStr(Idx));
編輯
我正是在RichEdit顯示的底線只是添加了什麼和所有其他行向上滾動
我正在向TRichEdit中添加行如何關注剛剛添加的行?在Delphi中使用TRichEdit滾動問題
For Idx := 1 to 1000 do
RichEdit.Lines.add(IntToStr(Idx));
編輯
我正是在RichEdit顯示的底線只是添加了什麼和所有其他行向上滾動
這應該工作,如果你只是想滾動到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;
如果這不是你想要的,請看到我的評論上方,澄清你的問題。
謝謝 - 這個作品很好:) – 2009-09-28 21:57:25
你可以試試這個
選項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)設置光標r while the loop is executed
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) ;
再見。
我認爲「焦點」通常用於控件。你的意思是你想要選擇剛剛添加的文本(將導致下一個操作粘貼),將插入點保持在最後添加的行上(這會導致粘貼一條很長的行)或者可能你的意思是你想滾動到富有的底部? – Argalatyr 2009-09-28 21:39:37
另請參閱此答案:[滾動RichEdit時沒有焦點](http://stackoverflow.com/a/9757314/576719)。 – 2012-03-18 10:17:32