簡単なことかもしれませんが、やり方がわかりません。
教えてください。
環境:Delphi7.0
WindowsXP
目的:RichEdit で表示しているテキストファイルで、
行数を数値指定し、その行を
RichEdit の中央に表示したい。
どうすればよいのでしょうか?
書き忘れていたのですが、
カーソルは指定行の先頭にもって行きたいのです。
よろしくお願いします。
画面上のRichEditで現在何行表示されているのか。
を求める方法がわからないのですが
//画面表示されている一番上のIndexを求める
function GetTopIndex: Integer;
begin
Result := RichEdit.Perform(EM_GETFIRSTVISIBLELINE, 0, 0);
end;
//画面最上位表示される行を指定してスクロール
procedure SetTopIndex(const Value: Integer);
var
LineCount: Integer;
begin
LineCount := Value - GetTopIndex; //差を求めてスクロール
RichEdit.Perform(EM_LINESCROLL,0,LineCount);
end;
これで、行数を数値指定して
その行をRichEditの一番上(もしくは数行下)に表示
はできると思います。
ご参考にどうぞ
この質問は回答が難しいです。
> 画面上のRichEditで現在何行表示されているのか。
リッチエディットは、文字単位でフォントの大きさが変えられるから、一般には
行の高さが一定ではない。だから、「中央」に表示するのは非常に難しい。
ツイート | ![]() |