当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++ Builder教程

C++Builder高手进阶(三)设计DBTreeView组件(续一)

//DBTreeView详细设计.CPP文件

__fastcall TDBTreeView::TDBTreeView(TComponent* Owner)

    : TTreeView(Owner)

{

    //在构造函数中对相关数据进行初始化

FDataLink = new TFieldDataLink;  //建立数据连接类

    FParentIDField = \"\";    //将节点父标识设置为空

    FPrimaryIDField = \"\";  //将节点主标识设置为空

    FDisplayField = \"\";     //将显示字段设置为空

    FActive = false;        //设置为非活动状态

    FAllowModifyDB = false;  //设置数据集不允许修改

}

__fastcall TDBTreeView::~TDBTreeView()

{//在析构函数中释放构造函数分配的资源

    delete FDataLink; //释放数据连接类

}

void __fastcall TDBTreeView::SetActive(bool Value)

{

  //设置状态是否为活动

   if (FActive != Value)  //如果指定状态与当前状态一样,则不做处理,直接返回

    {//否则

        if (Value)//如果指定值为true则

        {

            if (FDataLink->DataSource == NULL)//如果未指定数据源则抛出一个异常

                throw Exception(\"Missing DataSource property.\");

            if (FDataLink->DataSource->DataSet == NULL)//否则,如果数据源中未指定数据集,也抛出一个异常

                throw Exception(\"Invalid DataSource.\");

 

            if (FParentIDField == \"\")//如果父标识字段为空,抛出一个异常

                throw Exception(\"Missing ParentIDField property.\");

            if (FPrimaryIDField == \"\")//如果主标识字段为空,抛出一个异常

                throw Exception(\"Missing PrimaryIDField property.\");

            if (FDisplayField == \"\")//如果显示字段为空抛出一个异常

                throw Exception(\"Missing DisplayField property.\");

           //补充说明:从以上几个异常您应该不难看出我们这个组件需要的环境:

          //必须指定数据源,数据集,节点父标识字段,主标识字段,显示字段

            ClearAllNodes();//删除原来所有节点

            FillTreeNodes(0, NULL);//填充所有数据到各节点

        }

共2页 首页 上一页 1 2 下一页 尾页 跳转到
相关内容
赞助商链接