unit Unit1;interfaceuses 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.