有TTreeview控件啊,它有很多方法可以用,看看帮助
解决方案 »
- 难道就没办法把一个类函数转成非类函数类型吗?
- 可不可以直接用UPDATE或INSERT直接更新长度大于256的字段值?
- 将dbgrid中的数据导入到excel中后,怎样使它居中?怎样设置页面整齐,打印的时候直接打印就可以,而不需要调整?
- 程序中建立Rave报表遇到的几个问题,请教qxj (小小小小小小程序员)等高手
- 散分!!!!!!!就要去实习了,第一次一个人出远门,也算是和社会快接轨了,祝和我一样的delphi兄弟好运!
- DBGRID中显示的列多于数据集的列,请高手帮忙解决(100分)
- dbgrideh如何在不绑定数据库的情况下添加一行?
- 问个问题!关于面向对象的?帮忙UP以下!
- :) 今天是星期一,有很多高手开始上班了。这个捆饶我很久的问题可能可以得到解决了!快请进!!!:D
- ****小问题,但是急急急***
- 关于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;