treeview简单使用

初始化图标
procedure TreeImageInit;
var
  i: Integer;
begin
  with tv1 do
  begin
    for i := 0 to Items.Count - 1 do
    begin
      Items[i].ImageIndex := 2;
      Items[i].SelectedIndex := 5;
      Items[i].StateIndex := -1;
    end;
  end;
end;
除了选中的节点,其他关闭
procedure TreeCollapse(node: TTreeNode);
var
  icount : integer;
begin
  tv1.Items.EndUpdate;

  for icount := 0 to tv1.Items.Count-1 do
  begin
    if tv1.Items[icount]<>node then
      tv1.Items[icount].Expanded:= False
    else
      tv1.Items[icount].Expanded:= True;
  end;
  tv1.Items.EndUpdate;
end;

 

 

创建节点
type
  PNodeInfo=^TNodeInfo;  //treeview使用
   TNodeInfo=record
     RootCode:string;
     ChildCode:string;
     name:string;
   end;
procedure TreeUnitDisp;
var
  RootNode,BootNode:TTreeNode; //根结点
  BootNodeInfo:PNodeInfo; //根结点信息
begin
  with cdsUnit do
  begin
    tv1.Items.Clear;
    First;
    while not eof do
    begin
      New(BootNodeInfo);
      BootNodeInfo^.RootCode  := Trim(FieldByName('code').AsString);
      BootNodeInfo^.ChildCode := Trim(FieldByName('unit_type').AsString);
      BootNodeInfo^.name      := Trim(FieldByName('name').AsString);
      RootNode:=tv1.Items.AddChildObject(nil,(BootNodeInfo^.name),BootNodeInfo); //添加根结点,并关联根结点信息
      TreeItemDisp(BootNodeInfo^.RootCode,RootNode);
      Next;
    end;
   Close;
   end;
end;


procedure TreeItemDisp(unit_code: string; ParentNode: TTreeNode);
var
  ChildNode:TTreeNode; //孩子结点
  ChildNodeInfo:PNodeInfo; //孩子结点信息
begin
  try
    try
      with cdsIten do
      begin
        Close;
        Params.ParamByName('exec_unit').Value:= unit_code;
        Open;
        First;
        while not Eof do
        begin
          New(ChildNodeInfo);
          ChildNodeInfo^.RootCode :=FieldByName('charge_code').AsString;
          ChildNodeInfo^.ChildCode:=FieldByName('exec_unit').AsString;
          ChildNodeInfo^.name     :=FieldByName('name').AsString;
          ChildNode:=tv1.Items.AddChildObject(ParentNode,(ChildNodeInfo^.name),ChildNodeInfo); //添加孩子结点,并关联孩子结点信息
//          ChildNodeInfo:=nil;
          Next;
        end;

        Close;
      end;
    except
      on e:Exception do
      begin
        raise Exception.Create('创建二级目录失败');
      end;
    end;
  finally
  end;
end;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值