recordの初期化

解決


Red  2010-02-23 19:36:11  No: 37742

record型の初期化をしたいのですが、
下記のようにするとうまくいきません。
Bag.Valueに0を代入したいのですが、
BagResetを通っても、Bag.Value=123のままのようです。
クラス化するとうまくいくのですが、
下記ではどこがいけないのでしょうか?

type
  TBag = record
    Value: integer;
  end;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private 宣言 }
    Bag: Tbag;
    procedure BagReset(B: TBag);
  public
    { Public 宣言 }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BagReset(B: TBag);
begin
  B.Value := 0;
  caption := inttostr(Bag.Value);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Bag.Value := 123;
  BagReset(Bag);
end;


Red  2010-02-23 19:39:01  No: 37743

すみません、環境は、WinXP Delphi6 Personalです。


Quest  2010-02-23 20:15:51  No: 37744

procedure BagReset(B: TBag);
これを
procedure BagReset(var B: TBag);
にすればOKです。


Red  2010-02-23 20:27:54  No: 37745

Questさん

できました。
ありがとうございました。

勉強になりました。
また機会があればご指導願えたらと思います。


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

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






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