⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbtrees.pas

📁 POS收银系统
💻 PAS
字号:
unit DBTrees;

interface

uses ComCtrls, DB,classes;

type

  TTreeNodeInfo=record
   Id:String;
   ParentId:String;
  end;

  TDBTreeView=class(TTreeView)
   private
    fTable:TDataSet;
    fId,fParentId,fName:string;
    function AddItem:TTreeNode;
    function FindItem(Id:string):TTreeNode;
   public
    function GetId:string;
    procedure BuildTree;
    procedure ClearTree;
   published
    property FieldId:string Read fId Write fId;
    property FieldParentId:string Read fParentId Write fParentId;
    property FieldName:string Read fName Write fName;
    property DataSource:TDataSet Read fTable Write fTable;
    property ActiveId:string Read GetId;
  end;

procedure Register;

implementation

function TDBTreeView.FindItem(Id:string):TTreeNode;
 var i:integer;
     NodeInfo:^TTreeNodeInfo;
begin
 Result:=nil;
 For i:=0 to Items.Count-1 do
 begin
  NodeInfo:=Items[i].Data;
  If NodeInfo^.Id=Id then
  begin
   Result:=Items[i];
   Exit;
  end;
 end;
end;

function TDBTreeView.GetId:string;
 var NodeInfo:^TTreeNodeInfo;
begin
 If Selected=nil then Result:=''
 else
 begin
  NodeInfo:=Selected.Data;
  Result:=NodeInfo^.Id;
 end;
end;

function TDBTreeView.AddItem:TTreeNode;
 var NodeInfo:^TTreeNodeInfo;
     BMark:TBookMark;
     ObjParent:TTreeNode;
     Name,CurId:string;
begin
 ObjParent:=FindItem(fTable.FieldByName(fId).AsString);
 If ObjParent<>nil then
 {钺

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -