[Delphi:90322] レコード型のなかにある配列メンバーについて

480 views
Skip to first unread message

土屋 憲幸

unread,
Mar 5, 2008, 1:04:16 AM3/5/08
to Delphi ML
土屋といいます。いつも参考にさせていただいています。

早速ですが、

TTest = record
Namae1 : String;
Namae2 : String;
DD:packed Array[0..1,0..9] of String[8];
Namae3 : String;
end;

var
ATEST: TTest;

このようなレコード変数を用意して、

procedure TForm1.CopyFromForm(var TT:TTest);
var
C,R:integer;
begin
TT.Namae1:=Edit1.Text;
TT.Namae2:=Edit2.Text;
TT.Namae3:=Edit3.Text;
for C := 0 to 1 do
for R := 0 to 10 do
TT.DD[C,R]:=SS1.Cells[C,R];
end;

StringGrid の内容を変数DDに渡そうとしましたが、
プロシジャから戻ってくると、変数の内容が壊れています。
文字列の配列の使い方が正しいのかもよくわかりませんが、
なにか不都合なことをしているのだと思いますが、見当がつきません。
終了するとそのつど違うエラーもでます。
お気づきの点がありましたら、ご指摘を頂ければ幸いです。

開発環境は Vista Home Pre、Delphi2007W32Pro です。
よろしくお願いいたします。


Tomomi Umezawa

unread,
Mar 5, 2008, 1:35:35 AM3/5/08
to Del...@ml.users.gr.jp
こんにちは、梅澤@プロキャストです。

TTest.DD の定義は、
.... Array[0..1,0..9] .....

となっているのに、
for で、0~9でなく、0~10 で回しているので、Name3のエリアを
破壊しているのではないでしょうか?

----------
Tomomi Umezawa um...@procast.co.jp


土屋 憲幸

unread,
Mar 6, 2008, 1:46:59 AM3/6/08
to Del...@ml.users.gr.jp
梅澤さん、ありがとうございました。
0 to 10 はタイプミスでした。検証するのに単純化するのに作ったコードで、
こんなところにミスがあるとは・・・。全然見えなかった・・・。
大変お騒がせしました。

土屋


Reply all
Reply to author
Forward
0 new messages