我用treeview表示单位所有人,根是“全部”,然后分各处室、各处室下的人。这些都是从数据库中读出来的:
procedure tform1.writetoview; //写treeview
var
root,temp:ttreenode;
begin
treeview1.Items.Clear;
////////////////////////////下为设置treeview
leftquery.close;
leftquery.SQL.Clear;
leftquery.SQL.Add('select * from class order by classid');
leftquery.Open;
root:=treeview1.Items.Add(nil,'全部'); //root
while not leftquery.Eof do
begin
rightquery.Close;
rightquery.SQL.Clear;
rightquery.SQL.Add('select * from tch where classid=:t order by tchname');
rightquery.Parameters[0].Value:=leftquery.FieldValues['classid'];
rightquery.Open;
temp:=treeview1.Items.Addchild(root,leftquery.FieldValues['class']);
while not rightquery.Eof do
begin
treeview1.Items.AddChild(temp,trim(rightquery.FieldValues['tchname']));
rightquery.Next;
end;
leftquery.Next;
end;
allrecord;////所设置的查询所有人的记录的一个过程
end;
还有一个click事件,只要单击treeview就开始查询相应都是的记录
然后又设置的一个“刷新”,其中调用了writetoview这个过程,可每次执行“刷新”过后,只要单击树前面的“+”就会报错,说访问了0000008的非法地址,怎么回事???????????????????
procedure tform1.writetoview; //写treeview
var
root,temp:ttreenode;
begin
treeview1.Items.Clear;
////////////////////////////下为设置treeview
leftquery.close;
leftquery.SQL.Clear;
leftquery.SQL.Add('select * from class order by classid');
leftquery.Open;
root:=treeview1.Items.Add(nil,'全部'); //root
while not leftquery.Eof do
begin
rightquery.Close;
rightquery.SQL.Clear;
rightquery.SQL.Add('select * from tch where classid=:t order by tchname');
rightquery.Parameters[0].Value:=leftquery.FieldValues['classid'];
rightquery.Open;
temp:=treeview1.Items.Addchild(root,leftquery.FieldValues['class']);
while not rightquery.Eof do
begin
treeview1.Items.AddChild(temp,trim(rightquery.FieldValues['tchname']));
rightquery.Next;
end;
leftquery.Next;
end;
allrecord;////所设置的查询所有人的记录的一个过程
end;
还有一个click事件,只要单击treeview就开始查询相应都是的记录
然后又设置的一个“刷新”,其中调用了writetoview这个过程,可每次执行“刷新”过后,只要单击树前面的“+”就会报错,说访问了0000008的非法地址,怎么回事???????????????????
解决方案 »
- 急求救:如何关闭窗体
- delphi xe3 还能在线购买吗?国内的报价太坑爹!
- 一个问题
- 高难的问题:请问如何截获网上证券行情软件的数据?
- 窗体中有20个输入的dbedit,如何在输入时回车即转换到下一个dbedit?
- 这儿的高手都去哪了,没人能解决这个问题吗?
- 紧急问题!在线等待!为什么清空ListBox的内容后,里面总是有一个空行呢?
- 一个不难的问题,高分解答!
- 小声的问:Code Insight窗口怎样改成不用Ctrl+空格弹出?大声的喊:放分喽!瞧我的信誉!
- 怎么统计数据后生成报表,马上送分!!!
- 为什么使用QuickReport打印和打印预览时,仅仅显示数据的一部分?
- 200分求InstallShield的注册码(急!!!!!!!1)
还能treeview1.Selected.Text吗?此时已无所选择的接点了
if treeview1.Selected<>nil then
treeview1.Selected.Text