展开全部
以下是个人treeview的树的编62616964757a686964616fe78988e69d8331333264643236程源码(已经在个人的4年商业软件中运行,这里奉献给想学习的年轻人),由于无法传递附件,只好复制如下(复制本单元窗体的 public部分文件,在其他窗体中用uses调用 即可使用)
unit sdlformtree;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, StdCtrls, ExtCtrls, ComCtrls,DBClient, DBCtrls;
type
TFormsdltree = class(TForm)
TreeView1: TTreeView;
Panel14: TPanel;
BtnMakeTree: TButton;
BtnAddChildNode: TButton;
BtnAddNode: TButton;
BtnDeleteTree: TButton;
BtnFind: TButton;
EdFindText: TEdit;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
procedure BtnMakeTreeClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure BtnAddNodeClick(Sender: TObject);
procedure BtnAddChildNodeClick(Sender: TObject);
procedure BtnDeleteTreeClick(Sender: TObject);
procedure DBGrid1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure TreeView1Change(Sender: TObject; Node: TTreeNode);
procedure TreeView1Edited(Sender: TObject; Node: TTreeNode;
var S: String);
procedure BtnFindClick(Sender: TObject);
private
public
//==============================================================================
// 本单元实现了TreeView与数据的关联,其各项要求如下:
//
// 数据库这里采用了Interbase表,使用三层技术编程的方法,表中的字段要
// 有id,pid,caption三个。
// id: 为自增字段,用于表示节点的编号。
// caption: 用来表示在树中所要显示的内容。
// pid: 用来表示当前节点的父节点。
//在这个城市地区例子中,有 city_infor_ID、city_infor_Name和city_infor_privence_ID
//三个字段。
//==============================================================================
{-------------------------------------------------------------------------------
过程名: MakeTree
说明: 创建树
作者: DLS
日期: 2006.08.19
参数: ClientDataSetName: string; TreeView: TTreeView
参数说明: ClientDataSetName: 对应的客户数据集名; TreeView: 所使用的树
返回值: 无
-------------------------------------------------------------------------------}
procedure MakeTree(Cli