Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Grag&Drop в TreeView [D7, WinXP]


Lamer666 ©   (2007-09-30 11:39:00) 

Снова ДОБРОГО времени суток уважаемые.
Снова сталкнулся с проблемой при DragAndDrop в TreeView.
Перетаскиваю элемент в TreeView, как узнать в какую "ПАПКУ" в TreeView я отпустил "перетаскивыемый" элемент? примного благодарен.
И еще один вопрос до кучи, если кто знает, как организовать перебор всех выделенных значений в DBGrid? Там есть DbGridEh1.SelectedRows, но вот как перебрать конкретные поля  в выделенном списке что то ненашел. Спасибо большое всем!


Lamer666   (2007-09-30 13:19:00) [1]

Большое спасибо. Очень признателен!


engine   (2007-09-30 12:40:00) [2]

The following code uses GetNodeAt to add a dragged node as a child of the node under then mouse when it is dropped.

procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);

var
 AnItem: TTreeNode;
 AttachMode: TNodeAttachMode;
 HT: THitTests;
begin
 if TreeView1.Selected = nil then Exit;
 HT := TreeView1.GetHitTestInfoAt(X, Y);
 AnItem := TreeView1.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;
   TreeView1.Selected.MoveTo(AnItem, AttachMode);
 end;
end;


© Borland Delphi Help


Lamer666   (2007-09-30 12:20:00) [3]

А как БЫТЬ с Drag Drop? Как узнать узел TreeView куда бросили объект?


Lamer666   (2007-09-30 11:56:00) [4]

Спасибо engine!!!!


engine   (2007-09-30 11:40:00) [5]

The following example copies the selected rows in a db grid to a list box.

procedure TForm1.Button1Click(Sender: TObject);
var
 i, j: Integer;
 s: string;
begin
 if DBGrid1.SelectedRows.Count>0 then
   with DBGrid1.DataSource.DataSet do
     for i:=0 to DBGrid1.SelectedRows.Count-1 do
     begin
       GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i]));
       for j := 0 to FieldCount-1 do
       begin

         if (j>0) then s:=s+', ';
         s:=s+Fields[j].AsString;
       end;
       Listbox1.Items.Add(s);
       s:= '';
     end;
end;


© Borland Delphi Help


Наверх

Титульная страница Поиск, карта сайта Написать письмо