Assigned nil Form
http://topic.csdn.net/t/20040405/13/2926715.html
var
a : TForm2; // 一个随机值, 如果全局变量就是 nil
begin
{ m:=nil;
if not Assigned(m) then
ShowMessage('not Assigned')
else
ShowMessage('Assigned'); }
if not Assigned(m) then
m:=tForm2.Create(nil);
m.Show;
原因:
局部变量 Form1 编译器初始化的时候不会将Form1设置为nil,而是一个随机值(所以非Nil)
全局变量会置为nil
而你的写法全部是判断是否是nil,所以得到的结果和你想象的不一样