type
human = record
age : Integer;
name : String;
end;
var
A, B : human;
[省略]
procedure input_human(obj : human; mage : Integer; mname : String);
begin
obj.age := mage;
obj.name := mname;
end;
procedure TmyClass.input_go();
begin
input_human(A, 21, 'kana');
input_human(B, 22, 'nana');
end;
procedure TmyClass.get_data();
begin
ShowMessage(IntToStr(A.age));
ShowMessage(IntToStr(B.age));
end;
------------------------------------------------
このような場合(実際作成中のプログラムは全く違いますが構成は似ています)、他ユニットにてinput_go()とget_dataを実行。
すると、ShowMessageにて出てくる文字が0になってしまいます。
結果的にA.ageには21、B.ageには22が入っていて欲しいのですが。
どこに問題があるのかがわかりません。
どなたか分かる方宜しくお願いします。
値渡しになっているため、関数内で変更しても変わりません。
参照渡しにしたい項目に、varをつけましょう。
早速の回答ありがとうございます!
無事できました。
また一つ勉強になりました。
ツイート | ![]() |