学習の公式例-System.Assigned
1810 ワード
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
var
p1: Pointer;
procedure TForm1.Button1Click(Sender: TObject);
var
b1,b2,b3,b4: Boolean;
begin
//p1 := nil;
b1 := Assigned(p1);
GetMem(p1, 1024);
b2 := Assigned(p1);
FreeMem(p1, 1024);
b3 := Assigned(p1);
p1 := nil;
b4 := Assigned(p1);
ShowMessageFmt('%s, %s, %s, %s', [BoolToStr(b1,True),
BoolToStr(b2,True),
BoolToStr(b3,True),
BoolToStr(b4,True)]); {False, True, True, False}
end;
procedure TForm1.Button2Click(Sender: TObject);
var
p2: Pointer;
b1,b2,b3,b4: Boolean;
begin
p2 := nil;
b1 := Assigned(p2);
GetMem(p2, 1024);
b2 := Assigned(p2);
FreeMem(p2, 1024);
b3 := Assigned(p2);
p2 := nil;
b4 := Assigned(p2);
ShowMessageFmt('%s, %s, %s, %s', [BoolToStr(b1,True),
BoolToStr(b2,True),
BoolToStr(b3,True),
BoolToStr(b4,True)]); {False, True, True, False}
end;
end.