StringGridに3つの項目「A」「B」「C」とします。
「C」の幅を一定の大きさまで広げると
「グリッドインデックスが範囲を超えています」と
エラーになります。
が、項目「A」「B」の幅をいくら広げても同エラーはおきません。
Gridの一番右の列の幅には制限があるのですか?
Delphi6.0 Pro使用です。
いったいどこまで広げたのかな?
カラム幅を32000以上に広げると Gridの表示がおかしくなってしまうげど、それでもエラーは出ない。
まずStringGrid自体はサイズ変更不可で幅は300位です。
「C」を900位まで広げます。
それで「C」の幅を一気に500位広げます。
ここで200位だとエラーおきません。
500位広げる感じでやるとでます。
リスト幅300 _____________________↓ここから画面の端まで広げる
C幅900位 | C |→→→→→→→→→→→
| スクロールバー |
わかります?
エラーでませんか?
わかったような・・・
幅にもMax値があるようでMax値を超えると
次のカラムの幅も変更するみたいですね!?
次のカラムがないのでインデックスエラーと。。。
誰か〜あってます???
>次のカラムの幅も変更するみたいですね!?
>次のカラムがないのでインデックスエラーと。。。
変更しません。
Grid.pas の TCustomGrid.CalcSizingState を見てみると、
特定条件で最終列の幅がグリッドの幅を超えている場合に、
カラムインデックスの取得ができず(-1が返っている)に起こるようです。
ツイート | ![]() |