一个简单问题!但困扰我很久!
一个简单的问题:如何来判断一个对象是有效的?
在我调用一个对象的方法时,经常的做法先判断这个对象是否nil或调用Assigned函数。
如:
if btnNew <> nil then //或者if Assigned(btnNew) then
ShowMessage(btnNew.Caption);
但用以上的方法有时会不起效果。如下面这种情况:
btnNew.Free;
if btnNew <> nil then //或者if Assigned(btnNew) then
//下面的代码会产生异常
ShowMessage(btnNew.Caption);
原因是Free后,对象指针并不一定为nil。所以有一个经验性的总结是Free后马上赋值为Nil。
但我现在想知道如何判断一个对象是否有效(在C++中有一个方法AssertValid)。换句话说,不管这个对象是否为nil,只要不能访问这个对象的方法,就返回False。
在此,先谢谢CSDN的兄弟姐妹们!