掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
RichEditで指定行を中央に表示するには (ID:29153)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
procedure TForm3.Button2Click(Sender: TObject); var TextHeight,TopLine,LineCount : Integer; R : TRect; Bitmap : TBitmap; begin //テキストのサイズを取得 Bitmap := TBitmap.Create; Bitmap.Canvas.Font.Assign(RichEdit1.Font); TextHeight := Bitmap.Canvas.TextHeight('□')+4; Bitmap.Free; //画面のサイズを取得 SendMessage(RichEdit1.Handle,EM_GETRECT,0,DWORD(@R)); //表示される行数を取得 LineCount := (R.Bottom - R.Top) div TextHeight; //中央に移動 TopLine := SendMessage(RichEdit1.Handle, EM_GETFIRSTVISIBLELINE, 0, 0); SendMessage(RichEdit1.Handle, EM_LINESCROLL, 0, ((50 - LineCount div 2) - TopLine)-1); end; 表示行数が偶数の場合には当然中央に表示する事はできません (スクロールバーを調整すればできますが)
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.