38. (無題) 2006年07月22日(土) 21時06分 seizo TRichEdit で質問します。 TRichEdit で画面をスクロールさせないで編集テキストの内容を変更する事は、 可能でしょうか。 例えば今、100 行あるテキストファイルの 11 行目 〜 30 行目をコントロール 上に表示しているとします。このとき RichEdit1.Lines[30] := '漢字のテスト'; の様にして 31 行目の内容を変更すると、画面が一行スクロールアップされて しまいます。(TRichEdit の仕様としては、当然のことなんでしょうが。) つまり今、画面上に表示されていない部分のテキストを画面をスクロールさせ ないで変更する事は、可能でしょうか。 seizo ///////////////////////////////////////////////////////////////////// 39. Re: RichEditのスクロール抑制 2006年07月24日(月) 16時35分 こちん seizoさん、こんにちは。 ちょっと無理矢理ですけど試してみて下さい。 あと、微妙にスクロールする事もあります。 procedure TForm1.Button1Click(Sender: TObject); var OldTopLine, NewTopLine: Integer; CaretPlace: Integer; begin with RichEdit1 do begin CaretPlace := SelStart; OldTopLine := SendMessage(Handle, EM_GETFIRSTVISIBLELINE, 0, 0); Lines[30] := '漢字のテスト'; NewTopLine := SendMessage(Handle, EM_GETFIRSTVISIBLELINE, 0, 0); Perform(EM_LINESCROLL, 0, OldTopLine - NewTopLine); SelStart := CaretPlace; end; end; // こちん ///////////////////////////////////////////////////////////////////// こちんさん、こんにちは。 コメント有難う御座います。 レスがおくれて申し訳ありません。 で、早速試してみましたが、やはり画面がちらつきました。 一行ならまだいいのですが、複数行を変更するとはっきりと ちらつきます。 なにごともなかった様に画面上に表示されていない部分の テキストを複数行変更したいのですが、なにか他に方法は ないものでしょうか。 seizo