请问这个错误是怎么回事(Access violation)(100分)

  • 主题发起人 主题发起人 zhouzhilu
  • 开始时间 开始时间
Z

zhouzhilu

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm5.TreeView1GetSelectedIndex(Sender: TObject;
Node: TTreeNode);
begin
with datamodule2.IBQuery2 do
begin
close;
Sql.clear;
Sql.Add('select location,installdate from phone where phoneno='''+treeview1.selected.text+'''');
open;
edit1.text:=fieldbyname('location').asstring;
edit2.text:=fieldbyname('installdate').asstring;
end;
end;

上面是我编的一段是希望点种treeview 时,在文本框中显示相映的东西
这是在form5里我第一次从主form进入是可以的
但当我从form5 退出过一会再次进入时
出现了下面的错误:
project project1.exe raised execption class EAccess Violation with message
'Access violation at address 0049EDOA in module
'PRojuct1.exe
'.read of address 00000008'
 
要实现你的要求其实最好用 TreeView.OnChange 事件。
可能出错的原因有: TreeView1.Selected = NULL ,因为有可能没有选中任何节点,
以及 Query 可能没有找到纪录而引起的异常,不过你的错误信息不像是这个原因。
 
同意BakuBaKu的看法,可以加上一句判断即可:
if TreeView1.Selected<>nil
begin
...
end;
 
谢谢BaKuBaKu和zxy_ty
可行,暂时没错了!
 
多人接受答案了。
 
后退
顶部