StringGridに非表示行がある場合の画面表示


初心者  2006-04-13 13:56:09  No: 21019  IP: 192.*.*.*

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を設定し表示させています。

編集 削除
HOta  2006-04-13 14:10:54  No: 21020  IP: 192.*.*.*

OnDrawCellは該当Cellが表示領域にある場合にイベントを起こします。
ですから、高さを-1にしても、表示領域にあればイベントを起こします。

OnDrawCellで高さが-1より大きいときに処理をさせればどうでしょうか?

編集 削除
 2006-04-26 12:45:22  No: 21021  IP: 192.*.*.*

Ent版をご利用であれば、ですが、
TClientDataSetでFilter処理した結果を
TDBGridに表示させれば簡単かと…

編集 削除