TRichEdit に行を追加していますが、追加したばかりの行にフォーカスを維持するにはどうすればよいですか?
For Idx := 1 to 1000 do
RichEdit.Lines.add(IntToStr(Idx));
編集
リッチエディットの一番下の行に、追加されたばかりのものと、他のすべての行を上にスクロールして表示するだけです
リッチエディットの最後までスクロールしたいだけの場合は、これでうまくいくはずです:
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) ループ終了時にカーソルを設定する
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) ;
さよなら。