社区
语言基础/算法/系统设计
帖子详情
TreeView控件如何添加删除节点?在线等给分。过期散分
okzrz
2005-12-22 09:46:55
如何添加删除 根/子 节点? 最好能加简短说明 新手先谢过了
...全文
161
16
打赏
收藏
TreeView控件如何添加删除节点?在线等给分。过期散分
如何添加删除 根/子 节点? 最好能加简短说明 新手先谢过了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kittydolphin
2005-12-29
打赏
举报
回复
type
TNodeData = record
Index: integer;
Caption: string;
end;
PNodeData = ^TNodeData; //写在这里对么?总是提示 unexpected token:PNodeData
zsyp
2005-12-23
打赏
举报
回复
nil 是为空的意思
deansroom
2005-12-23
打赏
举报
回复
这是一个小子写的一个创建节点的类 是利用递归算法用表结构创建节点的 里面最后一个过程是创建节点的方法 你自己好好体会一下吧
deansroom
2005-12-23
打赏
举报
回复
unit TreeFillThrd;
interface
uses
Classes, ComCtrls, ADODB, SysUtils;
type
TNodeData = record
Index: integer;
Caption: string;
end;
PNodeData = ^TNodeData;
TTreeFill = class(TThread)
TV: TTreeView;
TableName: string;
FieldIndex: string;
FieldPID: string;
FieldCaption: string;
RootText: string;
Conn: TADOConnection;
Ptr: PNodeData;
constructor Create(ATreeView: TTreeView; AConn: TADOConnection;
ATable: string; ARootText: string = '我的目录';
AFieldIndex: string = 'ID'; AFieldPID: string = 'PID';
AFieldCaption: string = 'Caption');
private
procedure AddTree(Node: TTreeNode; PN: PNodeData);
protected
procedure Execute; override;
end;
implementation
//------------------------------------------------------------------------------
constructor TTreeFill.Create(ATreeView: TTreeView; AConn: TADOConnection;
ATable: string; ARootText: string = '我的目录';
AFieldIndex: string = 'ID'; AFieldPID: string = 'PID';
AFieldCaption: string = 'Caption');
begin
FieldIndex := AFieldIndex;
FieldPID := AFieldPID;
FieldCaption := AFieldCaption;
TV := ATreeView;
TableName := ATable;
RootText := ARootText;
Conn := AConn;
New(Ptr);
inherited Create(False);
end;
//------------------------------------------------------------------------------
procedure TTreeFill.Execute;
var
Node: TTreeNode;
begin
FreeOnTerminate := True;
TV.Items.Clear;
Ptr^.Index := 0;
Ptr^.Caption := RootText;
Node := TV.Items.AddObject(nil, RootText, Ptr);
Node.ImageIndex := 0;
Node.SelectedIndex := 0;
AddTree(Node, Ptr);
TV.FullExpand;
end;
//------------------------------------------------------------------------------
procedure TTreeFill.AddTree(Node: TTreeNode; PN: PNodeData);
var Query: TADOQuery;
nNode: TTreeNode;
PNode: PNodeData;
begin
try
Query := TADOQuery.Create(nil);
Query.Connection := Conn;
Query.SQL.Text := 'Select * from ' + TableName + ' where ' + FieldPID + ' =' + IntToStr(PN^.Index);
if Query.Active then
Query.Close;
Query.Open;
while Query.Eof = False do
begin
New(PNode);
PNode^.Caption := Query.FieldByName(FieldCaption).AsString;
PNode^.Index := Query.FieldByName(FieldIndex).AsInteger;
nNode := TV.Items.AddChildObject(Node, PNode^.Caption, PNode);
nNode.ImageIndex := 1;
nNode.SelectedIndex := 2;
AddTree(nNode, PNode);
Query.Next;
end;
finally
Query.Free;
end;
end;
//------------------------------------------------------------------------------
end.
okzrz
2005-12-23
打赏
举报
回复
解决了 用AddChild 就可以了谢谢大家 :)
okzrz
2005-12-23
打赏
举报
回复
仓库甲
仓库甲A
仓库甲B
仓库甲C
var node:ttreenode;
begin
node:=treeview1.Selected;
treeview1.Items.Add(node,'子节点名字');
end;
如果选中 仓库甲 然后添加,添加到与 仓库甲 同级别的Item 我想做的选中 仓库甲 添加 到与 仓库甲A 仓库甲B ... 一个级别的
还有nil什么意思 多次看到
okzrz
2005-12-23
打赏
举报
回复
太长了没看明白 能不能给个简单的
实现下面的功能就可以了
okzrz
2005-12-23
打赏
举报
回复
谢谢:) 麻烦你了 我英文实在太差了-_-!
coreblood
2005-12-23
打赏
举报
回复
:)
英语差,不是借口,多看看就明白了
deansroom
2005-12-22
打赏
举报
回复
我经常用的是add addchild addobject addchildobjyect 这几个添加的方法
具体的使用你可以参考帮助 也可以搜索一些资料 因为我在家 明天我去单位可以给你一些比较好的例子你看一下就懂了
deansroom
2005-12-22
打赏
举报
回复
nil的地方原本应该放置根结点的
但是由于目的是添加根结点 也就是说根结点的根节点应该设置为nil 这样的话你创建的节点就是根节点了
deansroom
2005-12-22
打赏
举报
回复
其实不用的 你就看treeview的方法就行了
输入treeview.items.add相关的都是添加节点的
里面有多种不同的方法
你自己选择用 再有不明白的可以有针对地搜索一下就成了
okzrz
2005-12-22
打赏
举报
回复
仓库甲
仓库甲A
仓库甲B
仓库甲C
var node:ttreenode;
begin
node:=treeview1.Selected;
treeview1.Items.Add(node,'子节点名字');
end;
如果选中 仓库甲 然后添加,添加到与 仓库甲 同级别的Item 我想做的选中 仓库甲 添加 到与 仓库甲A 仓库甲B ... 一个级别的
还有nil什么意思 多次看到
okzrz
2005-12-22
打赏
举报
回复
哦 我没定义变量 -_-!
okzrz
2005-12-22
打赏
举报
回复
谢谢 能否再多说点常用的基本属性 方法啊 书上都不说 晕死了:(
treeview1.Items.Add(node,Edit1.Text);
编译出错:
[Error] Unit4.pas(44): Undeclared identifier: 'node'
[Fatal Error] Project1.dpr(9): Could not compile used unit 'Unit4.pas'
deansroom
2005-12-22
打赏
举报
回复
var node:ttreenode;
begin
node:=treeview1.Items.Add(nil,'根节点名字');
treeview1.Items.Add(node,'子节点名字');
end;
treeview1.Selected.Delete;//删除被选择节点
C# WinForm中
TreeView
控件
详细用法实战示例
默认情况下,TreeNode按
添加
顺序排列。但在许多场景中(如按字母序显示文件、按时间倒序排列日志),需要精确控制
节点
顺序。可在指定位置插入
节点
:TreeNode node = new TreeNode("中间项");// 插入到索引1位置if (!// 使用此排序器优先显示文件夹,再列文件,同类之间按名称排序,符合常见资源管理器习惯。
TreeView
控件
在C# WinForm开发中不仅是数据展示的工具,更是用户与系统进行层次化信息交互的核心界面组件。
TreeView
与ListView
控件
联动的实现技巧
创建一个类或结构来表示列表项的数据模型。
SunnyUI中ui
Treeview
的高级应用与实战技巧
本文深入探讨了SunnyUI中ui
Treeview
控件
的高级应用与实战技巧,包括动态加载优化、
节点
搜索定位、视觉样式定制等核心功能。通过实际代码示例展示了如何实现懒加载、多选操作和拖放功能,并提供了处理大数据量时的性能优化方案。文章特别适合需要构建复杂树形结构的.NET开发者,帮助提升界面交互体验和开发效率。
Dev
控件
中文使用手册(WinForm)完整指南与实战应用
DevExpress WinForms
控件
库是一套功能强大、界面精美的UI组件集合,广泛应用于企业级桌面应用开发。其核心优势在于高可定制性、丰富的数据展示能力及卓越的性能表现。
控件
涵盖从基础输入到复杂数据可视化(如Grid、Chart、TreeList)的完整体系,支持MVVM、数据绑定、异步操作等现代开发模式。GridView是 DevExpress 最强大的数据展示组合。// 绑定数据源// 手动定义列colName.Caption = "姓名";
ASP.NET web
控件
及其对象小结
验证
控件
非空验证 RequiredFieldValidator ControlToValidate="验证
控件
对象ID" 属性 说明 ControlToValidate 要验证
控件
的ID,所有验证
控件
都有该属性 Text 验证出错时的提示,所有验证
控件
都有该属性 ...
语言基础/算法/系统设计
16,742
社区成员
33,237
社区内容
发帖
与我相关
我的任务
语言基础/算法/系统设计
Delphi 语言基础/算法/系统设计
复制链接
扫一扫
分享
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章