• TreeView递归增加


    上面是数据表。


    painfo=^Tainfo;
    Tainfo=record
    bh,cname,lastbh:string[100];
    end;

    procedure TForm1.SetTreeView(atreenode: TTreeNode; aIndex: string); //递归函数
    var
    adoquery: TAdoquery;
    temp: TTreeNode;
    pif: PAInfo;
    begin
    adoquery := TAdoquery.Create(nil);
    try
        with adoquery do
        begin
          Connection := self.ADOConnection1;
          close;
          sql.Clear;
          sql.Add('select * from list1 where lastbh = '''+aIndex+''' ');
          open;
          while not eof do
          begin
            new(pif);
            pif^.bh := adoquery.FieldByName('bh').AsString;
            pif^.cname := adoquery.FieldByName('cname').AsString;
            pif^.lastbh := adoquery.FieldByName('lastbh').AsString;
            temp := treeview1.Items.AddChildObject(atreenode, pif^.cname, pif);
            SetTreeView(temp, adoquery.FieldByName('bh').AsString);
            next;
          end;
        end;
    finally
        adoquery.Free;
    end;
    end;

    procedure TForm1.Button1Click(Sender: TObject);   //显示按钮,可以考虑放在开始事件
    begin
    ClearTreeView;
    SetTreeView(nil,'0');
    treeview1.FullExpand;
    end;

    procedure TForm1.TreeView1Click(Sender: TObject); //点击到哪个字段,内容就显示在相应EDIT上
    begin
    if assigned(treeview1.Selected.Data) then
    begin
        edit1.Text := PAInfo(treeview1.Selected.Data)^.bh;
        edit2.Text := PAInfo(treeview1.Selected.Data)^.cname;
        edit3.Text := PAInfo(treeview1.Selected.Data)^.lastbh;
    end;
    end;

    procedure tform1.cleartreeview;
    var
    i:integer;
    pif:painfo;
    begin
    for i:=0 to treeview1.Items.Count-1 do
    begin
          if assigned(treeview1.Items.Item[i]) then
          begin
            pif:=treeview1.Items.Item[i].Data;
            dispose(pif);
          end;
    end;
    treeview1.Items.Clear;
    end;

    procedure tform1.cleartreeview;
    var
    i:integer;
    pif:painfo;
    begin
    for i:=0 to treeview1.Items.Count-1 do
    begin
          if assigned(treeview1.Items.Item[i]) then
          begin
            pif:=treeview1.Items.Item[i].Data;
            dispose(pif);
          end;
    end;
    treeview1.Items.Clear;
    end;

    procedure TForm1.FormCreate(Sender: TObject);
    begin

    adoconnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+
                                   ExtractFilePath(Application.ExeName)+'test.mdb;Persist Security Info=False';
    end;

    链接:http://hi.baidu.com/sleeper312/blog/item/fd8e97d28d2935083af3cf3f.html

  • 相关阅读:
    Git 最新版本2.20.1 安装及配置
    Python中:ModuleNotFoundError: No module named 'alipay'
    Python调用time模块设置当前时间-指定时间
    python 正则表达式
    pwntools出现的一些问题
    strace监视系统调用
    深入理解Linux内核 学习笔记(8)
    ubuntu 查看版本
    LSTM实现中文文本情感分析
    深入理解Linux内核 学习笔记(5)
  • 原文地址:https://www.cnblogs.com/mingdep/p/2217903.html
Copyright © 2020-2023  润新知