掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
動的配列を持つクラスの代入 (ID:34260)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
下のコードで(1)でOKで(2)でダメなのはなぜなのでしょうか? const DATA_MAX = 10000; type sInt = 0..1500; TPerson = Class public No: 0..DATA_MAX; Ten: array of sInt; constructor Create; destructor Destroy; override; end; constructor TPerson.Create; begin inherited Create; SetLength(Ten, DATA_MAX); end; destructor TPerson.Destroy; begin Ten := Nil; inherited Destroy; end; //データをセット function TestPerson: TPerson; var X: TPerson; begin try X := TPerson.Create; X.No := 17; X.Ten[1] := 1100; X.Ten[2] := 250; Result := X; //(1)これはOK finally X.Free; end; end; procedure TForm1.SpeedButton1Click(Sender: TObject); var W: TPerson; S: string; begin try W := TPerson.Create; W := TestPerson; //(2)正しく代入されない S := 'No:'+IntToStr(W.No)+' Ten:' +IntToStr(W.Ten[1])+', '+IntToStr(W.Ten[2]); Edit1.Text := S; finally W.Free; end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.