こんにちは、お世話になります。
クラスを作ったことがなくて今勉強しているのですが、
本を見て下記のようにすれば出来ることがわかりました。
次にこのクラスを
Seito[1].Name := '山田';
Seito[2].Name := '佐藤';
Seito[3].Name := '鈴木';
のように、array として扱えるようにしたいのですが、
それはどう定義すれば良いでしょうか?
教科書からさらに一歩、と思うと、情報をなかなか見つけられません。
よろしくお願いいたします。
//-----------------------------
//implementation 部
type
TSeiseki = record
Eigo: integer; //英語の成績
Kokugo: Integer; //国語の成績
Sugaku: Integer; //数学の成績
end;
TSeito = class
Name: String;
Seiseki: TSeiseki;
end;
//-----------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
Seito: TSeito;
begin
Seito := TSeito.Create;
Seito.Name := '山下';
Seito.Seiseki.Eigo := 80;
Seito.Seiseki.Kokugo := 60;
Seito.Seiseki.Sugaku := 40;
ShowMessage(Seito.Name +'の成績の合計は'
+IntToStr(Seito.Seiseki.Eigo
+Seito.Seiseki.Kokugo+Seito.Seiseki.Sugaku));
Seito.Free;
end;
//-----------------------------
私勘違いしていました。
クラスの定義で無く、varの所で定義すれば良いのですね。
procedure TForm1.Button3Click(Sender: TObject);
var
Seito: array of TSeito;
begin
SetLength(Seito,1);
Seito[0] := TSeito.Create;
Seito[0].Name := '太郎';
Seito[0].Seiseki.Eigo := 80;
Seito[0].Seiseki.Kokugo := 60;
Seito[0].Seiseki.Sugaku := 40;
ShowMessage(Seito[0].Name +'の成績の合計は'
+IntToStr(Seito[0].Seiseki.Eigo
+Seito[0].Seiseki.Kokugo+Seito[0].Seiseki.Sugaku));
Seito[0].Free;
end;
ツイート | ![]() |