ツリービューデルファイに従ってデータベース構造を生成します

手順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;
  終わり;
終わり;

おすすめ

転載: www.cnblogs.com/jijm123/p/11372966.html