用:MoveTo
例如:
TreeView1.Selected.MoveTo(目标, naAdd 或 naInsert);
例如:
TreeView1.Selected.MoveTo(目标, naAdd 或 naInsert);
解决方案 »
- dxdbgrid点击单元格如何弹出新窗口??
- 关于DNGrid和form一同改变大小的问题
- 那位可以帮帮忙,简单问题(在线)
- luckyjan接分,问题请教
- 100分请笑纳~
- 哪位有兴趣分销我的软件,给你一个好的折扣,www.21-sun.com/soft
- 请教delphi的简单sql语句错误???
- Delphi+Accsess产品查询的实现,要查看图片的呀
- delphi+access
- 请问在var处声明的变量与在其他处(如private)声明的变量有何不同?
- 各位是如何开始学习delphi的,主要看过哪些相关的书本?
- delphi 用哪个函数可以丛一个字符串中 右取 一个字符 )(象vb的 right 函数一样)
Thanks anyway.
procedure TForm1.Treeview1DragOver(Sender, Source: TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
begin
Accept:=sender=source;
if y<10 then
postmessage(Treeview1.handle,WM_VScroll,SB_LINEUp,0)
else if fcTV_Entp.Height-y<10 then
postmessage(Treeview1.handle,WM_VScroll,SB_LINEDOWN ,0)
end;
procedure TForm1.Treeview1DragDrop(Sender, Source: TObject; X,
Y: Integer);
var
AnItem: TTreeNode;
AttachMode: TNodeAttachMode;
HT: THitTests;
strentpcode,struppercode:string;
begin
HT := Treeview1.GetHitTestInfoAt(X, Y);
AnItem := Treeview1.GetNodeAt(X, Y);
if AnItem=nil then
exit;
if AnItem=Treeview1.Selected then
exit;
if Treeview1.Selected.AbsoluteIndex=0 then
exit;
if (HT - [htOnItem, htNowhere, htOnIndent] <> HT) then
begin
if htOnItem in HT then AttachMode := naAddChild
else if htOnIndent in HT then AttachMode := naInsert;
Treeview1.Selected.MoveTo(AnItem, AttachMode);
strentpcode:=copy(Treeview1.Selected.Text,1,8);
if AttachMode= naInsert then
struppercode:=copy(AnItem.parent.text,1,8)
else struppercode:=copy(AnItem.text,1,8);
if struppercode='' then
begin
showmessage('error');
exit;
end;
end;
end;
可是这也是用到了MoveTo拉呀...ListView没有MoveTo,叫我怎么办呢...faint
faintfaint
faintfaintfaint
var
ListItem:TListItem;procedure TForm1.ListView1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept := true;
ListItem:=ListView1.Selected;
end;procedure TForm1.ListView1DragDrop(Sender, Source: TObject; X, Y: Integer);
var
InsertItem : TListItem;
begin
if (Source is TListView) then
begin
InsertItem:=ListView1.Items.Insert
(ListView1.Items.IndexOf(ListView1.GetItemAt(X,Y)));
InsertItem.Assign(ListItem);
ListView1.Selected.Delete;
end;
end;
代码如下,当然用的是gzmhero的思路:)大家一起探讨!procedure TForm1.lv2DragDrop(Sender, Source: TObject; X, Y: Integer);
var
s:string;
ItemCurrent :TListItem;
i:Integer;
Begin
If (Sender is Tlistview) and (Source is Tlistview) then
If (Sender as TListView).Name = (Source as TListView).Name Then
Begin //TODO : Drag to self, try to re-order the list order.
If ItemCurrent <> nil Then
Begin
ItemCurrent := (Sender as TListView).Items.Insert((Sender as TListView).GetItemAt(X,Y).Index);
ItemCurrent.Assign((Source as TListView).Selected);
(Source as TListView).Selected.Delete;
End
Else
Exit;
End
Else
Begin
s:=(Source as TListView).Selected.Caption;
showmessage(s);
End;
End;