DELPHI6中,Samples下,ShellTreeView组件
解决方案 »
- delphi怎么使用API函数!!
- delphi7运行别人的源码出错后就跟挂了一样怎么恢复
- 高手请进,控件属性的数据绑定问题?500分奉送,不够再加。
- 一个Api,不解
- 怎么给已经打开的IE浏览器执行一句javascript。我使用ShellExecute不成功。
- 报表打印。。。。。
- 如何快速得知某已知在线主机的某端口是否打开?
- 请问怎样的格式对了吗?急!!!!!!!!!!!!!!!!!!!!急
- 如何实现自定义工具栏?
- BorderStyle=bsNone的窗口,拖动边缘改变大小的问题…………
- 哪位大侠可不可以讲讲 IC 卡的开发原理,以及一些技术. 讨论
- ※〓〓〓〓 如何实现QQ那样的窗体?〓〓〓〓※
2.很easy,在ondragover,ondragdrop事件下写,懒得写了^&^
procedure TMainForm.TreeViewDragOver(Sender, Source: TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
var
Node: TTreeNode;
begin
Node := tvFolder.GetNodeAt(x, y);
if Node <> nil then
begin
while (Node.Parent <> nil) and (Node <> TreeView.Selected) do
Node := Node.Parent;
if Node <> nil then
if Node = TreeView.Selected then
Accept := false;
end;
end;procedure TMainForm.tvFolderDragDrop(Sender, Source: TObject; X,
Y: Integer);
var
Node: TTreeNode;
s: string;
i, DragMode: integer;
begin
Node := tvFolder.GetNodeAt(x, y);
if Node = nil then
TreeVuew.Selected.MoveTo(nil, naAdd)
else if InputQuery('', '请输入一个整数',s) then
try
DragMode := StrToInt(s)
case DragMode of
0: TreeView.Selected.MoveTo(Node, naAddChildFirst);
1: TreeView.Selected.MoveTo(Node, naAddChild);
2: TreeView.Selected.MoveTo(Node, naInsert);
end;
except
ShowMessage('只能输入数字');
end;
end;
end;
var
Node: TTreeNode;
s: string;
DragMode: integer;
begin
Node := TreeView1.GetNodeAt(x, y);
if Source is TListView then
TreeView1.Items.AddChild(Node, ListView1.Selected.Caption)
else if Node = nil then
TreeView1.Selected.MoveTo(nil, naAdd)
else if InputQuery('', '请输入一个整数',s) then
try
DragMode := StrToInt(s);
case DragMode of
0: TreeView1.Selected.MoveTo(Node, naAddChildFirst);
1: TreeView1.Selected.MoveTo(Node, naAddChild);
2: TreeView1.Selected.MoveTo(Node, naInsert);
end;
except
ShowMessage('只能输入数字');
end;
end;procedure TForm1.TreeView1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept := true;
end;
我現在想每一個節點有兩個值, 一個用顯示text,另一個進行其他操作,我用不好
addchildobject 可以說一個嗎!
var
s: string;
begin
if InputQuery('', '', s) then
with TreeView1 do
Items.AddChildObject(Selected, s, pointer(Items.Count));
end;procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
ShowMessage(IntToStr(integer(Node.Data)));
end;
string(TreeView1.Selected.Data);
var
s: string;
begin
if InputQuery('', '', s) then
TreeView1.Items.AddChildObject(TreeView1.Selected, s, Pchar(s)); //如果是字符串,就用pchar,如果是整型,用point
end;procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
ShowMessage(string(Node.Data));
end;//我试了都不会