S savetime Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-29 #1 Destory时 不能设置 Self := nil 吗? 不自动设为 nil 是什么原因?我是问 Borland 为何要这样设计。
Y yzhshi Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-29 #2 没用,除非给你下次调用的时候判断是否已经存在的时候提供一个依据。 if form2=nil then Form2:=TForm2.Create.... 如果是以上代码,则需要在form2退出的时候使用form2:=nil
没用,除非给你下次调用的时候判断是否已经存在的时候提供一个依据。 if form2=nil then Form2:=TForm2.Create.... 如果是以上代码,则需要在form2退出的时候使用form2:=nil
S savetime Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-29 #3 Form2.Destory Destory 为何不将 Form2 自动设置为 nil TForm 类不能执行以下语句吗? procedure TForm.Destory(Self: TObject); begin ... Self := nil; end;
Form2.Destory Destory 为何不将 Form2 自动设置为 nil TForm 类不能执行以下语句吗? procedure TForm.Destory(Self: TObject); begin ... Self := nil; end;
W www Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-29 #4 靠form2.free自动设为nil是不可能的,因为这时fom2不知道哪里还引用了这个指针。 如果在程序中认为有必要将form2设为nil,可以使用 form2.free; form2:=nil; 另外delphi5已经为我们提供了一个FreeAndNil的函数,可以直接这样用 FreeAndNil(Form2);
靠form2.free自动设为nil是不可能的,因为这时fom2不知道哪里还引用了这个指针。 如果在程序中认为有必要将form2设为nil,可以使用 form2.free; form2:=nil; 另外delphi5已经为我们提供了一个FreeAndNil的函数,可以直接这样用 FreeAndNil(Form2);
天 天与地 Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-29 #5 看看Tform.Free原程序就清楚了。 procedure TObject.Free; begin if Self <> nil then Destroy; end;
S savetime Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-29 #6 >>靠form2.free自动设为nil是不可能的,因为这时fom2不知道哪里还引用了这个指针。 你的意思是Form2的实例并不知道Form2这个变量是否引用自己? 好像有道理