大家看看为什么执行以下代码后,退出系统时有内存错误提示?(100分)

Z

zslg1

Unregistered / Unconfirmed
GUEST, unregistred user!
大家看看在InterBaseC/S下,为什么执行以下代码后,退出系统时有内存错误提示?
Procedure Tyancang.BitBtn1Click(Sender: TObject); //添加查询条件
Begin
If (length(trim(edit1.Text)) > 0) Then
Begin
data.tankquery.Close;
btndel.Enabled := True;
listbox2.Items.Add(trim(combo1.Text) + ' ' + trim(combo2.text) + ' ' + trim(edit1.text));
If trim(combo2.Text) = '包含' Then
listbox1.Items.Add(trim(data.TANKSTRUCFIELDNAME.Value) + ' like ' + '''' + '%' + trim(edit1.text) + '%' + '''')
Else
If trim(combo2.Text) = '不包含' Then
listbox1.Items.Add(trim(data.TANKSTRUCFIELDNAME.Value) + ' not like ' + '''' + '%' + trim(edit1.text) + '%' + '''')
Else
listbox1.Items.Add(trim(data.TANKSTRUCFIELDNAME.Value) + ' ' + trim(combo2.text) + ' ' + '''' + trim(edit1.text) + '''');
End
Else
Begin
If listbox1.Items.Count = 0 Then btndel.Enabled := False
Else btndel.Enabled := True;
application.Messagebox('查询条件输入错误! ', '警告', MB_ok + MB_iconwarning);
End;
End;
 
你自己先把问题给定位清楚再说。
没头没脑的一段程序,想看懂没那么容易的。
看你这边根本就没有什么动态的创建和分配等内容,怀疑错误可能不是在本模块中,而是在
其它相关模块中。

你的调试结果是怎么样?
 
data.TANKSTRUCFIELDNAME.Value
字段类型是什么,改成 data.TANKSTRUCFIELDNAME.Asstring 试一下

 
出错应该在其他的模块,仔细查一下
 
这段程序不会有内存泄漏问题。
在其它地方查查:
有没有 Free 和 Create 不对应?
有没有 New 和 Dispose 不对应?
动态数组的上界是不是充分?
释放了对象再去调用它?
无否就是这些!
 
在C/S环境下,如果执行以上操作,则每次退出程序时必会有内存错误出现,否则没有,我想问题
应该在这段程序里边。win2k+d6
 
对listbox1、 listbox2、data、combo1、combo2的相关代码,在本单元中逐个单独测试(测试其中一个时,屏蔽其他几个)
 
我不认为这段程序有问题,估计是用到listbox1的相关代码有问题
 
顶部