学习官方示例 - System.Assigned


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.


 
   

你可能感兴趣的:(System)