var
obj:tsomeobject;
begin
obj:=tsomeobject.create;
....
obj.free;
....
end;现在另一个地方想判断obj对象是否已经被free,该怎么做?
obj:tsomeobject;
begin
obj:=tsomeobject.create;
....
obj.free;
....
end;现在另一个地方想判断obj对象是否已经被free,该怎么做?
解决方案 »
- delphi8.0的error问题
- ADOTable的Locate方法只可以找到第一个记录,要继续查找应该怎么办呢?
- 请问高高手: 在delphi中如何得到TPageControl的双击的事件??
- 為什麼我的視圖 view 數據集 無法修改?
- 钱币数据(extended类型)如何才能放到ACCESS中的 float字段中?
- BDE连SQL的问题!急!!!
- 请教大家
- 如何动态创建sql server数据库的别名,着急ing
- 怎样删除正在运行的程序?
- 生成一个简单的窗体,运行时窗体显现出来,这时程序处于一种“循环”状态,请问其中的机制是怎么样的?如何不生成窗体实现这种机制呢?谢谢。
- 请问“TRxPopupMenu”控件在哪下?
- 十万火急!!!如何在IntraWeb做的ISAPI里调用Rave?
obj.create
begin
//没有free
end
else
begin
//已经free
end
obj:tsomeobject;
begin
if not Assigned(obj) then
obj:=tsomeobject.create;
....
obj.free;
....
end;
我的object是个线程对象,线程free(freeonterminate=true)后,
assigned(obj)仍然是true,
obj仍然<>nil.
obj.free;
obj.free;
我的object是个线程对象,线程free(freeonterminate=true)后,
assigned(obj)仍然是true,
obj仍然<>nil.其实,即使是个一般对象,如TSTRINGLIST,你执行mystr.free后,
mystr也不是nil。
assigned(myst) 也仍然是true;
2.判断对象是否存在:assigned(obj) 这时应该是false;
我的object是个线程对象,线程free(freeonterminate=true)后,
这里线程对象是自己free的。
assigned(obj)仍然是true,
obj仍然<>nil.我怎么办?
if not assiged(obj) then //so return false
..........
obj:tsomeobject;
begin
obj:=tsomeobject.create;
....
obj.free;
....
end;你这段代码中obj是局部变量,在别的地方是不可见的。
你要其他地方怎么去判断。
obj:tsomeobject;
begin
obj:=tsomeobject.create;
....
obj.free;
obj := nil; //加上这一句
....
end;判断时用:obj <> nil
try
object.name
except
//空值
end;
.Free can not make sure the object is nil.
如:Object.Free;
Object:=Nil;