1

TRichEdit に行を追加していますが、追加したばかりの行にフォーカスを維持するにはどうすればよいですか?

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

編集

リッチエディットの一番下の行に、追加されたばかりのものと、他のすべての行を上にスクロールして表示するだけです

4

2 に答える 2

5

リッチエディットの最後までスクロールしたいだけの場合は、これでうまくいくはずです:

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-28T21:49:04.530 に答える
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) ;

さよなら。

于 2009-09-28T21:45:58.903 に答える