我是学delphi的,但是是初学者,我想请求帮助,我不知道怎么用 treeview这个组件,有没有小程序给我看一个 ,让我也借鉴一下,谢谢了!

解决方案 »

  1.   

    var  HasSibling: Boolean;
      SelNode: TTreeNode;
      ParentNode: TTreeNode;
    begin
      SelNode := TTreeView1.Selected;
      ParentNode := SelNode.Parent;
      HasSibling := (ParentNode.GetPrevChild(SelNode) <> nil) or 
                    (ParentNode.GetNextChild(SelNode) <> nil);
    end;
    这时帮助里的,
      

  2.   

    文件或目录转换成TreeView    
      下面的这个函数就可以了: 
    procedure DirToTreeView(Tree: TTreeView; Directory: string; Root: TTreeNode; IncludeFiles:
    Boolean);
    var
    SearchRec : TSearchRec;
    ItemTemp : TTreeNode;
    begin
    with Tree.Items do
    try
    BeginUpdate;
    if Directory[Length(Directory)] <> ' then Directory := Directory + ';
    if FindFirst(Directory + '*.*', faDirectory, SearchRec) = 0 then
    begin
    repeat
    if (SearchRec.Attr and faDirectory = faDirectory) and (SearchRec.Name[1] <> '.') then
    begin
    if (SearchRec.Attr and faDirectory > 0) then
    Root := AddChild(Root, SearchRec.Name);
    ItemTemp := Root.Parent;
    DirToTreeView(Tree, Directory + SearchRec.Name, Root, IncludeFiles);
    Root := ItemTemp;
    end
    else if IncludeFiles then
    if SearchRec.Name[1] <> '.' then
    AddChild(Root, SearchRec.Name);
    until FindNext(SearchRec) <> 0;
    FindClose(SearchRec);
    end;
    finally
    EndUpdate;
    end;end;
      

  3.   

    得到你们的帮助我挺高兴的,说实在的我一个女孩子编程确实不太容易的,谢谢你们的帮助,你们是我做下去的支柱,我原来实在的,有点后悔学习了delphi,但是我现在有了大家的帮助我会坚持下去的,谢谢了!
      

  4.   

    procedure TForm1.FormShow(Sender: TObject);
    var
      TreeNodeProvince,TreeNodeCity : TTreeNode;
      NodeDataRecPtr : PNodeDataRec;
      RegAdmiCode,Temp : String;
    begin
      TreeView1.Items.Clear;
      //TreeNodeProvince := nil;
      //TreeNodeCity := nil;
      with Query1 do
      begin
        Close;
        SQL.Clear;
        SQL.Text := 'select * from Admipartition order by ADMIPARTITIONNO asc';
        try
          Open;
        except
          Close;
          Exit;
        end;
        //----^    if not (bof and eof) then
        begin
          First;
          while Not eof do
          begin
            Temp := fieldbyname('AdmipartitionNo').AsString;        if Copy(fieldbyname('AdmipartitionNo').AsString,3,4) = '0000' then
            begin
              New(NodeDataRecPtr);
              NodeDataRecPtr^.AdmiName := FieldByName('ADMIPARTITIONNAME').AsString;
              NodeDataRecPtr^.AdmiCode := FieldByName('ADMIPARTITIONNO').AsString;
              TreeNodeProvince := TreeView1.Items.AddObject(nil,FieldByName('ADMIPARTITIONNAME').AsString +
                            '' + FieldByName('ADMIPARTITIONNO').AsString,NodeDataRecPtr);         // TreeNodeProvince := TreeView1.Items.Add(nil,FieldByName('ADMIPARTITIONNAME').AsString
                  //          );
            end
            else
              if Copy(FieldByName('ADMIPARTITIONNO').AsString,5,2) = '00' then
              begin
                New(NodeDataRecPtr);
                NodeDataRecPtr^.AdmiName := FieldByName('ADMIPARTITIONNAME').AsString;
                NodeDataRecPtr^.AdmiCode := FieldByName('ADMIPARTITIONNO').AsString;
                TreeNodeCity := TreeView1.Items.AddChildObject(TreeNodeProvince,FieldByName('ADMIPARTITIONNAME').AsString,NodeDataRecPtr);
              end
              else
              begin
                New(NodeDataRecPtr);
                NodeDataRecPtr^.AdmiName := FieldByName('ADMIPARTITIONNAME').AsString;
                NodeDataRecPtr^.AdmiCode := FieldByName('ADMIPARTITIONNo').AsString;
                TreeView1.Items.AddChildObject(TreeNodeCity,FieldByName('ADMIPARTITIONNAME').AsString,NodeDataRecPtr);          end;
            Next;
          end;
        end;
      end;
      TreeView1.SetFocus;
      TreeView1Click(Self);
    end;
    以上是针对数据库的一个树型结构添加
      

  5.   

    var
      SelNode : TTreeNode;begin
      SelNode := TTreeView1.Selected;
      
      if SelNode.text='你作判断的值' then
      begin
        form2.show;
      end;
      

  6.   

    procedure TForm1.FormShow(Sender: TObject);
    var
      TreeNodeProvince,TreeNodeCity : TTreeNode;
      NodeDataRecPtr : PNodeDataRec;
      RegAdmiCode,Temp : String;
    begin
      TreeView1.Items.Clear;
      //TreeNodeProvince := nil;
      //TreeNodeCity := nil;
      with Query1 do
      begin
        Close;
        SQL.Clear;
        SQL.Text := 'select * from Table';
        try
          Open;
        except
          Close;
          Exit;
        end;
        //----^    if not (bof and eof) then
        begin
          First;
          while Not eof do
          begin
            Temp := fieldbyname('Field').AsString;        if Copy(fieldbyname('Field').AsString,3,4) = '0000' then
            begin
              New(NodeDataRecPtr);
              NodeDataRecPtr^.AdmiName := FieldByName('Field').AsString;
              NodeDataRecPtr^.AdmiCode := FieldByName('Field').AsString;
              TreeNodeProvince := TreeView1.Items.AddObject(nil,FieldByName('Field').AsString +
                            '' + FieldByName('Field').AsString,NodeDataRecPtr);        end
            else
              if Copy(FieldByName('Field').AsString,5,2) = '00' then
              begin
                New(NodeDataRecPtr);
                NodeDataRecPtr^.AdmiName := FieldByName('Field').AsString;
                NodeDataRecPtr^.AdmiCode := FieldByName('Field').AsString;
                TreeNodeCity := TreeView1.Items.AddChildObject(TreeNodeProvince,FieldByName('Field').AsString,NodeDataRecPtr);
              end
              else
              begin
                New(NodeDataRecPtr);
                NodeDataRecPtr^.AdmiName := FieldByName('Field').AsString;
                NodeDataRecPtr^.AdmiCode := FieldByName('Field').AsString;
                TreeView1.Items.AddChildObject(TreeNodeCity,FieldByName('Field').AsString,NodeDataRecPtr);          end;
            Next;
          end;
        end;
      end;
      TreeView1.SetFocus;
      TreeView1Click(Self);
    end;
      

  7.   

    这个问题我在我发布的另一个问题中已经被解决,就是yamaback(code,code)给我的那个程序,我已经给我解决问题的人加过分了,就是你吧,我现在想问一个我用dbgrid,tabel等这个组件,我用的是access数据库,我表中的备注型字段不让我输内容,为什么呀?怎么解决呀?