グリッドインデックスが範囲を超えてますのエラー

解決


TH  2007-02-21 10:04:47  No: 25016  IP: 192.*.*.*

ご相談です。

検索ボタン押下、SELECT文でデータ抽出
グリッドに表示させています。
1回目は問題なく検索して表示します。
表示後、再度検索ボタンを押下すると
下記メッセージが出力したりしなかったり変な現象です。

EInvalidGridOperetionクラスの例外を生成しました。
グリッドインデックスが範囲を超えています。

原因がよくわかりません
よろしくお願いいたします。

編集 削除
HOta  2007-02-21 12:52:05  No: 25017  IP: 192.*.*.*

グリッドって何のグリッドでしょうか?
これだけではなにやらわかりません。
整理すると解決する場合もあります。

編集 削除
TH  2007-02-21 18:07:33  No: 25018  IP: 192.*.*.*

HOta様ありがとうございます。

グリッドは、DBGridです。

編集 削除
かふぇ  2007-02-22 08:49:47  No: 25019  IP: 192.*.*.*

> 下記メッセージが出力したりしなかったり変な現象です。

一回目の検索件数がN1、二回目の検索結果をN2とした場合、
N1 >= N2 →正常
N1 <  N2 →エラー
だったりしませんか?

毎回 DBGrid の RowCount を変えているのなら
RowCount = 検索数 + 1(タイトル行がある場合)
とすれば良いのではないでしょうか?

編集 削除
TH  2007-02-22 14:02:17  No: 25020  IP: 192.*.*.*

みなさん、ありがとうございます。

ボーランドのHPに書いてありました。よくある現象??
OnShowイベントで下記の内容を記入するといいみたいです。
DBGrid1.DataSource := DataSource1;

編集 削除