procedure TForm13.treeview1onclick(Sender: TObject);
 var
 i :integer;
begin
   if (treeview1.selected.Level=1) and (treeview1.selected<>nil) then
        begin
         form13.ADOQuery1.Close;
         form13.ADOQuery1.SQL.Clear;
         form13.ADOQuery1.Connection:=form13.ADOConnection1;
        form13.ADOQuery1.SQL.Add('SELECT kh,xx ,xm,iif(xbdm=''1'',''男'',iif(xbdm=''2'',''女'','''')) as xbdm1,cj,iif(bkdm=''0'',''1000米/800米'',iif(bkdm=''1'',''1分钟跳绳'',iif(bkdm=''2'',''立定跳远'',');
        form13.ADOQuery1.SQL.Add('iif(bkdm=''3'',''实心球'',iif(bkdm=''4'',''引体/仰卧'',iif(bkdm=''5'',''篮球-投篮'',iif(bkdm=''6'',''缓考'',iif(bkdm=''7'' ,''免试'' ,''''))))))))as bkdm1,');
        form13.ADOQuery1.SQL.Add('df,zh,sxh,kd,ksrq,bkdm from tyks where mid(kh,1,6)=:a and bkdm=:b  order by cdate(ksrq) asc,xbdm,zh,sxh,kh ') ;
        form13.ADOQuery1.Parameters.ParamByName('a').Value :=copy(treeview1.selected.Parent.Text,1,6);
        form13.ADOQuery1.Parameters.ParamByName('b').Value :=copy(treeview1.selected.text,1,1);
       form13.ADOQuery1.Open ;
       form13.DataSource1.DataSet:=form13.ADOQuery1 ;
      form13.DBGrid1.DataSource:=form13.DataSource1 ;          end ;
      end;(代码)学校
              (代码)名称
            (代码)名称
            (代码)名称点击名称  显示相关信息有个另名称点击后出现无效NULL

解决方案 »

  1.   

    treeview1.selected.Parent不能确保一定有吧,可能是这的原因
      

  2.   

     if (treeview1.selected.Level=1) and (treeview1.selected<>nil) then
    ----------
     if (treeview1.selected<>nil) and (treeview1.selected.Level=1) then 
    调换一下~~~先判断Selected是否为空
      

  3.   

    是判断里的这个直接出错了。 treeview1.selected.Level=1
      

  4.   

    treeview1.selected.Parent是不是为空了
      

  5.   

    if (treeview1.selected <>nil) and (treeview1.selected.Level=1) then 
    begin
    //do something;
    end;