有TTreeview控件啊,它有很多方法可以用,看看帮助
解决方案 »
- 这样的算法怎样的实现,急?
- 有人做过录歌软件的开发么,想开发或者购买K8那样的录歌软件
- 大批量数据录入问题
- 如何用delphi编写winamp输入插件调用程序,请专家指点
- 怎么用table组件向数据库中增加一条记录
- 请教三层结构中通信问题。
- Query控件的updatemode为什么不好用?
- 循环处理数据的问题
- 在QRLableForm 中用QRSysData1控件可以显示当前日期在打印时这个日期为小写(如2002-10-3)那么怎么才能使这个日期为二00二年十月三日呢???
- 不用控件,DelPhi如何发邮件??
- 关于ACTIVEFORM在98.2000下执行,显示的问题.(很紧急的)
- WEB编程问题:ISAPI方式建立的DLL文件怎样在Apache下运行,请大虾指点哪!!!
procedure onDragDrop(Sender, Source: TObject; X, Y: Integer);
var Tnode,sNode:TTreenode;
begin
inherited;
Tnode:=trvTDFZ.GetNodeAt(x,y);
if (Tnode<>nil ) then
begin
sNode:=trvTDFZ.selected;
trvTDFZ.Items.BeginUpdate;
try
nodecopy(trvTDFZ,snode,tnode);
tnode.expand(false);
trvTDFZ.selected:=tnode;
finally
trvTDFZ.Items.EndUpdate ;
end;
end;
end;//数型结构的onDragOver事件
procedure DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
var Tnode,sNode:TTreenode;
begin
inherited;
Accept:=false;
Tnode:=trvTDFZ.GetNodeAt(x,y);
if tnode=nil then exit;
if (pInfo(TNode.Data)^.TDH<0) then
begin
sNode:=trvTDFZ.Selected;
if (pInfo(sNode.Data)^.TDLX=pInfo(tNode.Data)^.TDLX) then
if pInfo(sNode.Data)^.TDH >=0 then
if sNode.Parent<>Tnode then
accept:=true;
end;
end;//函数
procedure nodecopy(TreeV:TTreeview;sNode,Tnode:TTreenode);
var newnode:TTreenode;
i:integer;
begin
NewNode:=TreeV.Items.addChildFirst(Tnode,'');
NewNode.assign(snode);
pInfo(snode.Data)^.bChange:=true;
for i:=sNode.count-1 downto 0 do
nodecopy(treeV,sNode.item[i],newnode);
treeV.items.delete(snode);
end;