TStringGridを正しく表示させるには?

解決


牛飼い  2008-02-06 16:07:51  No: 29688  IP: 192.*.*.*

ご存知のかたいらっしゃいましたらお願い致します。

  windows 2000
  delphi  7

下記のようなコードがあります。

dsg.colcount := 30;
dsg.colcount := 10;
***********************

procedure form.dsgDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
  sgd.cells[ACol,ARow] := PHeader(Objects[ACol,ARow])^.contents;
end;

formが表示された際に、dsgDrawCellが実行されます。




ただ場合によって,期待しているように動作していなかったので
下記のようなコードを追加しました。





procedure form.dsgDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
  showmessage(IntToStr(ACol));    //追加
  sgd.cells[ACol,ARow] := PHeader(Objects[ACol,ARow])^.contents;
end;

この結果AColが
             0,28,29
             0,28,29
            (繰り返し)
             //1〜27までのAColが抜けている

となっていました。

当たり前のように0,1,2,3,・・・29
               0,1,2,3,・・・29
               0,1,2,3,・・・29
               繰り返し
             //0〜ColCount - 1まで実行される。

と思っていました。

この違いは、どこにあるのでしょうか?

ご存知の方いらっしゃいましたらお願いします。

以上

編集 削除
牛飼い  2008-02-06 16:10:19  No: 29689  IP: 192.*.*.*

すみません。
間違えてしまいました。

編集 削除
牛飼い  2008-02-06 16:10:51  No: 29690  IP: 192.*.*.*

すみません。
間違えてしまいました。

編集 削除