System.New、System.Dispose-ポインタのメモリの申請と解放
1453 ワード
例:
Systemユニットの下にある共通関数ディレクトリ
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ユニットの下にある共通関数ディレクトリ