zoukankan      html  css  js  c++  java
  • 用数据表创建树_delphi教程

    数据库结构:
    字段 类型
    ID 整型 索引(无重复)
    name 文本
    father 整型

    //tree初始化
    procedure TForm1.FormActivate(Sender: TObject);
    var i:integer;
    begin
    treeview1.Items.BeginUpdate;
    while not(adotable1.Eof) do
    begin
    if ADOTable1.FieldValues[father]=0 then
    treeview1.Items.addchild(treeview1.DropTarget,ADOTable1.FieldValues[name])
    else
    begin
    i:=0;
    repeat
    if treeview1.Items.Item[i].Text = ADOTable1.Lookup(ID,ADOTable1.FieldValues[father],name) then
    begin
    treeview1.Items.AddChild(treeview1.Items.Item[i],ADOTable1.FieldValues[name]);
    break;
    end;
    i:=i+1;
    until i>adotable1.RecordCount;
    end;
    ADOTable1.next;
    end;
    treeview1.Items.EndUpdate;
    end;

    //tree添加
    procedure TForm1.Button1Click(Sender: TObject);
    var i:integer;
    begin
    adotable1.Last;
    i:=adotable1.FieldValues[ID];
    if checkbox1.Checked=false then
    begin
    adotable1.InsertRecord([edit1.Text,adotable1.Lookup(name,treeview1.Selected.Text,ID),i+1]);
    treeview1.Items.AddChild(treeview1.Selected,edit1.Text);
    end
    else
    begin
    adotable1.InsertRecord([edit1.Text,0,i+1]);
    treeview1.Items.AddChild(treeview1.DropTarget,edit1.Text);
    end;
    end;

    //tree删除
    procedure TForm1.Button3Click(Sender: TObject);
    begin
    if treeview1.Selected.HasChildren then
    begin
    showmessage(含有子项,不能删除.);
    abort;
    end;
    begin
    adotable1.Locate(name,treeview1.Selected.Text,[loPartialKey]);
    adotable1.Delete;
    treeview1.Items.Delete(treeview1.Selected);
    end;
    end;

    //tree图标
    procedure TForm1.TreeView1GetImageIndex(Sender: TObject; Node: TTreeNode);
    begin
    if Node.Expanded then
    Node.ImageIndex := 1
    else
    Node.ImageIndex := 0
    end;

    //tree图标
    procedure TForm1.TreeView1GetSelectedIndex(Sender: TObject;Node: TTreeNode);
    begin
    node.SelectedIndex:=node.ImageIndex;
    end;

    //list初始化
    procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);
    var p:pointer;
    begin
    listview1.Items.Clear;
    if adotable2.Locate(class,adotable1.Lookup(name,treeview1.Selected.Text,ID),[loPartialKey])=true then
    begin
    p:=listview1.Items.Add;
    listview1.Items.Item[listview1.Items.IndexOf(p)].Caption:=adotable2.FieldValues[name];
    listview1.Items.Item[listview1.Items.IndexOf(p)].SubItems.Add(adotable2.FieldValues[url]);
    end;
    end;

    //list添加
    procedure TForm1.Button2Click(Sender: TObject);
    var p:pointer;
    begin
    p:=listview1.Items.Add;
    listview1.Items.Item[listview1.Items.IndexOf(p)].Caption:=edit2.Text;
    listview1.Items.Item[listview1.Items.IndexOf(p)].SubItems.Add(edit3.Text);
    adotable2.InsertRecord([adotable1.Lookup(name,treeview1.Selected.Text,ID),edit2.Text,edit3.Text]);
    end;

    //list删除
    procedure TForm1.Button4Click(Sender: TObject);
    begin
    adotable2.Locate(name,listview1.Selected.Caption,[loPartialKey]);
    adotable2.Delete;
    listview1.Selected.Delete;
    end;

  • 相关阅读:
    PAT 甲级 1051 Pop Sequence (25 分)(模拟栈,较简单)
    PAT 甲级 1050 String Subtraction (20 分) (简单送分,getline(cin,s)的使用)
    PAT 甲级 1049 Counting Ones (30 分)(找规律,较难,想到了一点但没有深入考虑嫌麻烦)***...
    PAT 甲级 1048 Find Coins (25 分)(较简单,开个数组记录一下即可)
    PAT 甲级 1047 Student List for Course (25 分)(cout超时,string scanf printf注意点,字符串哈希反哈希)...
    PAT 甲级 1046 Shortest Distance (20 分)(前缀和,想了一会儿)
    R语言实现金融数据的时间序列分析及建模
    ES6 | class类的基本语法总结
    less使用总结
    umi 的项目中如何修改 favicon
  • 原文地址:https://www.cnblogs.com/karkash/p/3304625.html
Copyright © 2011-2022 走看看