手順TUIOperate.FillTree(ツリービュー:TTreeViewの);
ました
findq:TADOQuery。
node: TTreeNode;
//このメソッドは、親TreeViewコントロールを見つけるために、レコードのidフィールドの値に基づいています
関数FindParentNode(ID:整数):TTreeNode。
ました
I:整数;
ベギン
結果:= nilを;
1行う - treeview.Items.Countへ= 0:iについて
ベギン
// id値とノードのデータレコードの値を比較します
場合、整数(treeview.Items [I] .DATA)= ID
ベギン
結果:= treeview.Items [i]は、
ブレーク;
終わり;
終わり;
終わり;
ベギン
findq:= TADOQuery.Create(NIL)。
findq.Connection:= controler.DataConnect.Connection; //接続ポイントどこのデータ接続
試します
treeview.Items.BeginUpdate;
treeview.Items.Clear;
//すべてのレコードを選択し、Enterキーを押して、あなたが下位レコードを追加する場合、最上位ノードを追加するために確保することができますので、あなたは常に親を見つけることができ、ソートPARENTID
findq.SQL.Text:= 'のParentIDによって[カタログ]順SELECT * FROM ID'。
findq.Open;
findq.Eofないながら、
ベギン
//トップ場合は、ツリービューに直接追加
findq.FieldByName( 'のParentID')の場合。AsInteger = -1その後、
見つけるためにデータノードに格納// id値、
treeview.Items.AddObject(NIL、findq.FieldByName( 'カタログ名')。AsString、ポインタ(findq.FieldByName( 'ID')。AsInteger))
他
ベギン
//親ノードを探します
ノード:= FindParentNode(findq.FieldByName( 'のParentID')AsInteger)。
ノード<> nilの場合は、
treeview.Items.AddChildObject(ノード、findq.FieldByName( 'カタログ名')AsString、ポインタ(findq.FieldByName( 'ID')AsInteger)。。);
終わり;
findq.Next;
終わり;
最後に
findq.Free;
treeview.Items.EndUpdate;
終わり;
終わり;