• 大小: 480KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-06-24
  • 语言: C/C++
  • 标签: tree  TTreeView    

资源简介

1、支持任意添加、修改、删除节点信息 2、支持节点间的任意拖曳 3、支持对操作结果的保存 4、提供了生产树的方法 附:执行程序和源代码

资源截图

代码片段和文件信息

//---------------------------------------------------------------------------


#pragma hdrstop

#include “BuildTreeUnit.h“

//---------------------------------------------------------------------------

#pragma package(smart_init)

typedef struct TreeItem
{
   String ItemCaption;
   int NumID;
   int ItemID;
   String strMemo;
}TTreePoint;

/****************************************************************************
 *  函数名称:FindKey
 *  参数:    String FieldName    //父节点字段名
 *            int Index           //匹配值
 *            TDataSet* DataSet   //数据集
 *  功能:    找到第一个匹配的记录 
 *  作者:    透明
 *  日期:    2006-02-22
****************************************************************************/
bool __fastcall FindKey(String FieldName int Index TDataSet* DataSet)
{
    bool ret;
    TLocateOptions Opts;
    Opts.Clear();

    // 全匹配
    Opts << loCaseInsensitive;

    ret = DataSet->Locate(FieldName Index Opts);
    return ret;
}

/****************************************************************************
 *  函数名称:FindNext
 *  参数:    String FieldName    //父节点字段名
 *            int Index          //匹配值
 *            TDataSet* DataSet   //数据集
 *  功能:    查找下一个配置的记录 
 *  作者:    透明
 *  日期:    2006-02-22
****************************************************************************/
bool __fastcall FindNext(String FieldName int Index TDataSet* DataSet)
{
    bool ret;

    DataSet->Next();
    if (DataSet->Eof)
      return false;
    else
      if (DataSet->FieldValues[FieldName] == Index)
         ret = true;
      else
         ret = false;

    if (!ret)
      DataSet->Prior();

    return ret;
}

/****************************************************************************
 *  函数名称:GetChildNode
 *  参数:    int Index              //当前节点ID
 *            TTreeNode* ANode       //当前结点
 *            TTreeView* TreeView    //构造树 
 *            TDataSet* DataSet      //提供结点数据的数据集 
 *  功能:    据构造当前结点的一级子树
 *  作者:    透明
 *  日期:    2006-02-22
****************************************************************************/
int __fastcall GetChildNode(int Index TTreeNode* ANode TTreeView* TreeView TDataSet* DataSet)
{
    TTreeNode* Node;
    TTreePoint* GlobalNode;
    int ret = 0;

    if (FindKey(“NodeID“ Index DataSet))
    {
      if (DataSet->Eof)
        return -1;

      do
      {
        Node = TreeView->Items->AddChild(ANode DataSet->FieldValues[“MenuItem“]);
        Node->ImageIndex = 0;
        Node->SelectedIndex = 1;
        GlobalNode = new TTreePoint();
        GlobalNode->NumID = DataSet->FieldByName(“ID“)->AsInteger;
        GlobalNode->ItemID = DataSet->FieldByName(“NodeID“)->AsInteger;
        GlobalNode->ItemCaption = DataSet->FieldByName(“MenuItem“)->AsString;
        GlobalNode->strMemo = DataSet->FieldByName(“Memo1“)->AsString;
        Node->Data = GlobalNode;
        ret++;
      }while (FindNext(“NodeID“ Index DataSet));
    }
  

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4290  2008-12-22 09:33  BuildTreeUnit.cpp

     文件        672  2008-12-22 09:33  BuildTreeUnit.h

     文件       3982  2008-12-22 09:33  TreeOption.bpr

     文件       1078  2008-12-22 09:33  TreeOption.cpp

     文件     317440  2011-03-16 12:43  TreeOption.exe

     文件       1536  2008-12-22 09:33  TreeOption.res

     文件      10005  2008-12-22 09:33  TreeUnit.cpp

     文件         51  2008-12-22 09:33  TreeUnit.ddp

     文件      13596  2008-12-22 09:33  TreeUnit.dfm

     文件       2331  2008-12-22 09:33  TreeUnit.h

     文件      10369  2011-03-16 12:43  TreeOption.obj

     文件      28661  2011-03-16 12:43  TreeUnit.obj

     文件      13340  2011-03-16 12:43  BuildTreeUnit.obj

     文件     204800  2009-03-04 13:51  mobile2006.mdb

     文件    1638400  2011-03-16 12:45  TreeOption.tds

----------- ---------  ---------- -----  ----

              2250551                    15


评论

共有 条评论