Gridの幅の限界?

解決


nish  2005-09-08 22:41:53  No: 17470

StringGridに3つの項目「A」「B」「C」とします。
「C」の幅を一定の大きさまで広げると
「グリッドインデックスが範囲を超えています」と
エラーになります。
が、項目「A」「B」の幅をいくら広げても同エラーはおきません。

Gridの一番右の列の幅には制限があるのですか?
Delphi6.0 Pro使用です。


広げるにも程がある  2005-09-08 23:37:52  No: 17471

いったいどこまで広げたのかな?
カラム幅を32000以上に広げると Gridの表示がおかしくなってしまうげど、それでもエラーは出ない。


nish  2005-09-09 00:29:50  No: 17472

まずStringGrid自体はサイズ変更不可で幅は300位です。
「C」を900位まで広げます。
それで「C」の幅を一気に500位広げます。
ここで200位だとエラーおきません。
500位広げる感じでやるとでます。

リスト幅300 _____________________↓ここから画面の端まで広げる
C幅900位    |  C                |→→→→→→→→→→→
            |  スクロールバー   |

わかります?
エラーでませんか?


nish  2005-09-09 02:10:15  No: 17473

わかったような・・・
幅にもMax値があるようでMax値を超えると
次のカラムの幅も変更するみたいですね!?
次のカラムがないのでインデックスエラーと。。。

誰か〜あってます???


Basser  2005-09-09 03:07:22  No: 17474

>次のカラムの幅も変更するみたいですね!?
>次のカラムがないのでインデックスエラーと。。。

変更しません。

Grid.pas の TCustomGrid.CalcSizingState を見てみると、
特定条件で最終列の幅がグリッドの幅を超えている場合に、
カラムインデックスの取得ができず(-1が返っている)に起こるようです。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加