16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"RE:TEditorオーナードローサンプル"
この発言は #01272 H-Triton さんのTEditorオーナードローサンプル に対するコメントです
nifty:FDELPHI/MES/16/1272 自己レス by H-Triton
元発言のGetInvalidRect関数に誤りがありました。
そのままでは行スクロールしてゆくと、ぼろぼろになります。
以下修正版です。
// 再描画領域を計算して取得する
function GetInvalidRect(Editor: TEditor; aRow: Integer): TRect;
var
aTop: Integer;
begin
with Editor do
begin
// aTop:= TopMargin + RowHeight * aRow; ← これ間違い
aTop:= TopMargin + (aRow - TopRow) * RowHeight; // ←正解
Result:= Classes.Rect(
LeftMargin, aTop, ClientWidth, aTop + RowHeight - 1);
end;
end;
http://member.nifty.ne.jp/h-triton/
○ 快速・大容量テキストエディタ「えるの〜と」公開中 ○
Avalon's Friendly Crew #80008 H-Triton (^^) since 1996
- FDELPHI MES(16):玉石混淆みんなで作るSample蔵【見本蓄積】 01/02/14 -
Original document by H-Triton 氏 ID:(QZV11422)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|