StringGridに非表示行がある場合の画面表示についての質問です。
100件のデータ中、1件目〜20件目を表示、21件目〜40件目を非表示、41件目〜
60件目を表示する場合は、非表示データのStringGrid.RowHeightsを-1に設定
することで、初期画面表示&スクロールでの表示は問題なかったのですが、
(StringGridのOnDrawCell イベントで描画)
1件目〜20件目を非表示、21件目〜40件目を表示、41件目〜60件目を非表示
61件目〜80件目を表示とした場合、StringGridのOnDrawCell イベントは
表示行の21行目以降ではなく、その前の行に対応するイベントが発生
しているようです。このような場合、21行目に対応するOnDrawCell イベントを
発生させる方法はあるのでしょうか?また、非表示行がある場合、StringGridの
内容を描画する方法が他にありますでしょうか?
ご存知の方がいらっしゃいましたら、ご教示下さい。
なお、21行目から表示させる場合、Row、TopRowに21を設定し表示させています。
OnDrawCellは該当Cellが表示領域にある場合にイベントを起こします。
ですから、高さを-1にしても、表示領域にあればイベントを起こします。
OnDrawCellで高さが-1より大きいときに処理をさせればどうでしょうか?
Ent版をご利用であれば、ですが、
TClientDataSetでFilter処理した結果を
TDBGridに表示させれば簡単かと…