我用treeview的ONExpanding事件,想显示我点击那个结点的text属性,怎么引用?

解决方案 »

  1.   

    var 
      lSelNode:TTreeNode;
      lSelText:String;
    begin
      lSelNode:=TreeView1.Selected;
      lSelText:=lSelNode.Text;
    end;
      

  2.   

    关键就是确定哪个node?
    例treeview11.selected.text?
      

  3.   

    procedure TForm1.TreeView1Expanding(Sender: TObject; Node: TTreeNode;
      var AllowExpansion: Boolean);
    var mynode:ttreenode;
        ponode:pNode;
        s,filename:string;
        ListItem: TListItem;
    begin
    if node.getFirstChild.Text='wait!'then begin  treeview1.Items.BeginUpdate;
                treeview1.Items.Delete(node.getFirstChild);
         /////////////////////////////////////////////////////////////
            // listview1.Items.Clear;     if node is ttreenode then
         begin
               s:=inttostr(pnode(node.data)^.id);          with adoquery1 do
               begin
                   SQL.Clear;
                   SQL.Add('select * from catalog where pid='+s);
                   Open;
                   first;                if not node.HasChildren then                      while not eof do
                            begin
                             New(ponode);
                             ponode^.id:=fieldbyname('id').AsInteger;
                             ponode^.pid:=fieldbyname('pid').AsInteger;
                             ponode^.suffix:=fieldbyname('suffix').Asstring;
                              filename:=fieldbyname('subject').AsString+fieldbyname('suffix').AsString;
                             mynode:=treeview1.Items.Addchildobject(node,trim(Fields.fieldbyname('subject').AsString),ponode);                        if fieldbyname('suffix').AsString='#Category' then
                            begin
                             mynode.ImageIndex:=3;
                             mynode.SelectedIndex:=2;                        end;
                             if  fieldbyname('suffix').AsString='#Folder' then
                              begin
                              mynode.ImageIndex:=0;
                              mynode.SelectedIndex:=1;                         end;                        if fieldbyname('children').AsInteger>0 then mynode:=treeview1.Items.AddChild(mynode,'wait!');  //加临时接点
                             //什么时候加,什么时候不加?
                             //需要一个判断,按照TIER可能比较好                       next;
                          end ;                   
                end;     end;       treeview1.Items.EndUpdate;
           adoquery1.Close;
          end;
    end;