易截截图软件、单文件、免安装、纯绿色、仅160KB

偶尔提示错误access violation

偶尔出现的access violation错误,MDI主窗体有2个菜单按钮打开子窗口时偶尔出现,完全是随机性,
单步调试的时候不会出现错误(我试过几百次,都没错误)
某个错误的按钮代码:
procedure TMainForm.N48Click(Sender: TObject);
begin
    if not Assigned(Data_xz_Form) then
      Data_xz_Form:=TData_xz_Form.Create(Application);
end;
既然用到 Assigned 作判断,那么判断的对像在释放时,用FreeAndNil(Data_xz_Form),或者在 Data_xz_Form.free;后面加行Data_xz_Form := nil;


子窗口  onclose事件里面

    action := caFree;
  Data_xz_Form := nil;

引用
既然用到 Assigned 作判断,那么判断的对像在释放时,用FreeAndNil(Data_xz_Form),或者在 Data_xz_Form.free;后面加行Data_xz_Form := nil;



Data_xz_Form不单单只对象本身,而是指指向对象的地址,因此需要最后要把指针释放。
否则,释放了对象,指针还没有为空,再次指向的时候就会报告无效地址错误(AV错误)。

估计是 没有初始化某个对象之类的问题

引用
既然用到 Assigned 作判断,那么判断的对像在释放时,用FreeAndNil(Data_xz_Form),或者在 Data_xz_Form.free;后面加行Data_xz_Form := nil;


非常有理,Assigned只能判断当前指针是否为nil,并不能判断Data_xz_Form是否有效,在Delphi中nil指向的地址是为0的,也就是如果Data_xz_Form指向的地址大于0,你释放之后,没有Data_xz_Form := nil,Assigned是判断不出来的。

具体


相关问答:

解决access级联更新问题 - 其他数据库开发 / Access

CREATE TABLE Product(model integer, 
maker varchar(20), 
CONSTRAINT SAND PRIMARY KEY (model), 
CONSTRAINT PANDA FOREIGN KEY (model) REFERENCES PC (model) 
ON DELETE CASCADE ......

access中的text型数字 - 其他数据库开发 / Access

access中的text型的数字,怎么比较大小啊?
大家知道吗?
因为我想根据这一列数据的大小查询一些东西
举个例子:
就是,我有一列数据为编码:
是text型的数字:如
1101
1102
1103
等,
我现在要取出编码比 ......

dwr Illegal access to default constructor错误

dwr.xml:
<create creator="struts" javascript="PrisonerActionForm">
  <param name="formBean" value="prisonerForm"/>
  < ......

用ASP 怎么将EXCEL导入到ACCESS - Web 开发 / ASP

问题是这样的,现在有一个工资表,是EXCEL的,我要把它导入ACCESS,因为 要查询每个人的工资,根据不同的编号可以查询到相对的人,
用ASP 怎么将EXCEL导入到ACCESS,而且每月都有不同的表,

引用
其实就是把EXCEL当成数 ......

VC中 odbc访问access内存增长

vc中用odbc的方法访问access数据库,用到了cdatabase类和crecordset类。数据源在窗口初始化的时候被打开g_datasource.Open("data",FALSE,FALSE); 点击一个按钮启动一个定时器,在定时器内完成以下操作,定 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号