Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
ВнизПеретаскивание Items в пределах TreeView... Найти похожие ветки
← →
kas-t (2004-04-26 00:43) [0]Подскажите пожалуста, как можно организовать перетаскивание итемов в приделах TreeView? Так что бы взял итем или ветвь и перетащил её в любой другой итем или в ветвь.
--
Уже везде смотрел, никак не могу найти решения. Может плохо искал?
← →
kas-t (2004-04-26 00:43) [0]Подскажите пожалуста, как можно организовать перетаскивание итемов в приделах TreeView? Так что бы взял итем или ветвь и перетащил её в любой другой итем или в ветвь.
--
Уже везде смотрел, никак не могу найти решения. Может плохо искал?
← →
Германн © (2004-04-26 01:19) [1]А если почитать хэлп на события OnDragDrop, OnDragOver, OnStartDrag, OnStopDrag?
← →
Германн © (2004-04-26 01:19) [1]А если почитать хэлп на события OnDragDrop, OnDragOver, OnStartDrag, OnStopDrag?
← →
Mim1 © (2004-04-26 01:29) [2]Вот пример
procedure TWndMain.TreeViewDragDrop(Sender, Source: TObject; X,
Y: Integer);
var
AnItem: TTreeNode;
AttachMode: TNodeAttachMode;
HT: THitTests;
begin
AttachMode := naAdd;
if TTreeView(sender).Selected = nil then Exit;
HT := TTreeView(sender).GetHitTestInfoAt(X, Y);
AnItem := TTreeView(sender).GetNodeAt(X, Y);
if (HT - [htOnItem, htOnIcon, htNowhere, htOnIndent] <> HT) then
begin
if (htOnItem in HT) or (htOnIcon in HT) then AttachMode := naAddChild
else if htNowhere in HT then AttachMode := naAdd
else if htOnIndent in HT then AttachMode := naInsert;
TTreeView(sender).Selected.MoveTo(AnItem, AttachMode);
end;
end;
procedure TWndMain.TreeViewDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept := true;
end;
← →
Mim1 © (2004-04-26 01:29) [2]Вот пример
procedure TWndMain.TreeViewDragDrop(Sender, Source: TObject; X,
Y: Integer);
var
AnItem: TTreeNode;
AttachMode: TNodeAttachMode;
HT: THitTests;
begin
AttachMode := naAdd;
if TTreeView(sender).Selected = nil then Exit;
HT := TTreeView(sender).GetHitTestInfoAt(X, Y);
AnItem := TTreeView(sender).GetNodeAt(X, Y);
if (HT - [htOnItem, htOnIcon, htNowhere, htOnIndent] <> HT) then
begin
if (htOnItem in HT) or (htOnIcon in HT) then AttachMode := naAddChild
else if htNowhere in HT then AttachMode := naAdd
else if htOnIndent in HT then AttachMode := naInsert;
TTreeView(sender).Selected.MoveTo(AnItem, AttachMode);
end;
end;
procedure TWndMain.TreeViewDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept := true;
end;
← →
kas-t (2004-04-26 01:38) [3]И действительно... просто плохо искал :)
Спасиб!
← →
kas-t (2004-04-26 01:38) [3]И действительно... просто плохо искал :)
Спасиб!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.034 c