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

解決


牛飼い  2008-02-07 01:07:27  No: 29686

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

  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-07 01:09:38  No: 29687

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


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

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






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