Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.038 c
6-1079111390
LanLan
2004-03-12 20:09
2004.05.09
Обработка исключительных ситуаций


1-1082042322
Erik
2004-04-15 19:18
2004.05.09
Анализ структуры файла.


1-1082371273
Oleon
2004-04-19 14:41
2004.05.09
Ошибки при сохранении в Excel.


14-1082011916
LaidBack
2004-04-15 10:51
2004.05.09
Люди! Вышлите мне файл таблицы *.tps, пожалуйста!


3-1081934376
bytebutcher
2004-04-14 13:19
2004.05.09
Remote Data Services???





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский