System.New、System.Dispose-ポインタのメモリの申請と解放

1453 ワード

例:


unit Unit1;



interface



uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls;



type

  TForm1 = class(TForm)

    Button1: TButton;

    Button2: TButton;

    Button3: TButton;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

  end;



var

  Form1: TForm1;

implementation



{$R *.dfm}



Type

  TMyRec = record     { }

    name: string[8];

    age : Word;

  end;

  PMyRec = ^TMyRec;   { ; Delphi  ,  }





{ ,  }

procedure TForm1.Button1Click(Sender: TObject);

var

  r: TMyRec;

begin

  r.name := ' ';

  r.age := 99;

  ShowMessage(Format('%s %d  ', [r.name, r.age])); {  99  }

end;



{ }

procedure TForm1.Button2Click(Sender: TObject);

var

  pr: PMyRec;

begin

  New(pr);            { }

  pr^.name := ' ';

  pr^.age := 99;

  ShowMessage(Format('%s %d  ', [pr^.name, pr^.age])); {  99  }

  Dispose(pr);        { }

end;



{Delphi  }

procedure TForm1.Button3Click(Sender: TObject);

var

  pr: PMyRec;

begin

  New(pr);

  pr.name := ' ';

  pr.age := 99;

  ShowMessage(Format('%s %d  ', [pr.name, pr.age])); {  99  }

  Dispose(pr);

end;



end.


 
   

Systemユニットの下にある共通関数ディレクトリ