delphi中递归算法构建treeView
过程:
通过读取数据库中table1的数据,来构建一颗树。table1有两个字段:ID,preID,即当前结点标志和父结点标志。所以整个树的表示为父母表示法。本递归算法不难写,但是要注意:程序内部的变量都应使用局部变量!比如当Query是外部变量(函数外定义或者直接通过控件拖拽得来)时就会得到错误的结果。代码如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, ComCtrls, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
tree: TTreeView;
Query1: TADOQuery;
procedure Button1Click(Sender: TObject);
procedure CreateTree;
private
{ Private declarations }
public
{ Public declarations }
end;
PTNodeInfo=^TNodeInfo;
TNodeInfo=record
id,preId:string;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.CreateTree;
p