F
fenian
Unregistered / Unconfirmed
GUEST, unregistred user!
我用一个treeview显示所有的部门,由于显示的是部门名,我想通过单击某部门取得部门号。我是这么作的。
type
PDeptNo = ^TDeptNo;
TDeptNo = record
DeptNo:string; //部门号
end;
procedure Tform1.FormCreate(Sender: TObject);
var
p_noDeptNo;
begin
new(p_no);
p_no^.DeptNo:=query1.fieldbyname('deptno').asstring;
.
.
treeview1.items.addchildobject(root,query1.fieldbyname('deptname').asstring, P_NO);
.
.
dispose(P_NO);
end;
直到这儿都没有问题,树建好了,能分层显示出出各部门。
procedure Tform1.treeview1Click(Sender: TObject);
begin
showmessage(PDeptNo(treeview1.selected.Data)^.DeptNo);
end;
正常情况下单击某部门名,应显示相应的 部门号。
可现在要么显示的 乱码,要么报错:access violation at address 004D973D in module 'ntdll.dll' ~~~~~~~~~~
请问各位是怎么回事啊?
还有,是不是用了new()后就一定要用dispose() 啊?我不用dispose好像也可以啊。
type
PDeptNo = ^TDeptNo;
TDeptNo = record
DeptNo:string; //部门号
end;
procedure Tform1.FormCreate(Sender: TObject);
var
p_noDeptNo;
begin
new(p_no);
p_no^.DeptNo:=query1.fieldbyname('deptno').asstring;
.
.
treeview1.items.addchildobject(root,query1.fieldbyname('deptname').asstring, P_NO);
.
.
dispose(P_NO);
end;
直到这儿都没有问题,树建好了,能分层显示出出各部门。
procedure Tform1.treeview1Click(Sender: TObject);
begin
showmessage(PDeptNo(treeview1.selected.Data)^.DeptNo);
end;
正常情况下单击某部门名,应显示相应的 部门号。
可现在要么显示的 乱码,要么报错:access violation at address 004D973D in module 'ntdll.dll' ~~~~~~~~~~
请问各位是怎么回事啊?
还有,是不是用了new()后就一定要用dispose() 啊?我不用dispose好像也可以啊。