为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

上、下、左、右移动树节点

2017-12-08 4页 doc 17KB 17阅读

用户头像

is_435706

暂无简介

举报
上、下、左、右移动树节点上、下、左、右移动树节点 (*// 标题:移动树节点 说明:上、下、左、右移动 设计:Zswang 日期:2002-06-08 支持:wjhu111@21cn.com //*) function TreeNodeMove(mTreeNode: TTreeNode; mAnchorKind: TAnchorKind; mIsTry: Boolean = False): Boolean; var vTreeNode: TTreeNode; begin Result := Assigned(mTreeNod...
上、下、左、右移动树节点
上、下、左、右移动树节点 (*// 标题:移动树节点 说明:上、下、左、右移动 :Zswang 日期:2002-06-08 支持:wjhu111@21cn.com //*) function TreeNodeMove(mTreeNode: TTreeNode; mAnchorKind: TAnchorKind; mIsTry: Boolean = False): Boolean; var vTreeNode: TTreeNode; begin Result := Assigned(mTreeNode); if not Result then Exit; case mAnchorKind of akTop: begin vTreeNode := mTreeNode.GetPrev; while Assigned(vTreeNode) do begin if vTreeNode = mTreeNode.GetPrevSibling then begin if not mIsTry then mTreeNode.MoveTo(vTreeNode, naInsert); Exit; end else if (vTreeNode.Level = mTreeNode.Level) then begin if not mIsTry then mTreeNode.MoveTo(vTreeNode, naAdd); Exit; end else if (vTreeNode <> mTreeNode.Parent) and (vTreeNode.Level + 1 = mTreeNode.Level) then begin if not mIsTry then mTreeNode.MoveTo(vTreeNode, naAddChild); Exit; end; vTreeNode := vTreeNode.GetPrev; end; end; akBottom: begin vTreeNode := mTreeNode.GetNext; while Assigned(vTreeNode) do begin if vTreeNode = mTreeNode.GetNextSibling then begin if not mIsTry then vTreeNode.MoveTo(mTreeNode, naInsert); Exit; end else if (vTreeNode.Level = mTreeNode.Level) then begin if not mIsTry then mTreeNode.MoveTo(vTreeNode, naAddFirst); Exit; end else if vTreeNode.Level + 1 = mTreeNode.Level then begin if not mIsTry then mTreeNode.MoveTo(vTreeNode, naAddChildFirst); Exit; end; vTreeNode := vTreeNode.GetNext; end; end; akLeft: begin vTreeNode := mTreeNode.Parent; if Assigned(vTreeNode) then begin if not mIsTry then mTreeNode.MoveTo(vTreeNode, naInsert); Exit; end; end; akRight: begin vTreeNode := mTreeNode.GetNextSibling; if Assigned(vTreeNode) then begin if not mIsTry then mTreeNode.MoveTo(vTreeNode, naAddChildFirst); Exit; end; end; end; Result := False; end; { TreeNodeMove } procedure TForm1.TreeView1KeyDown(Sender: TObject; var Key: ; Shift: TShiftState); begin if not (ssCtrl in Shift) then Exit; case Key of VK_UP: TreeNodeMove(TTreeView(Sender).Selected, akTop); VK_DOWN: TreeNodeMove(TTreeView(Sender).Selected, akBottom); VK_LEFT: TreeNodeMove(TTreeView(Sender).Selected, akLeft); VK_RIGHT: TreeNodeMove(TTreeView(Sender).Selected, akRight); end; end; procedure TForm1.TreeView1GetSelectedIndex(Sender: TObject; Node: TTreeNode); begin CheckBox1.Checked := TreeNodeMove(TTreeView(Sender).Selected, akTop, True); CheckBox2.Checked := TreeNodeMove(TTreeView(Sender).Selected, akBottom, True); CheckBox3.Checked := TreeNodeMove(TTreeView(Sender).Selected, akLeft, True); CheckBox4.Checked := TreeNodeMove(TTreeView(Sender).Selected, akRight, True); end;
/
本文档为【上、下、左、右移动树节点】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索