Перенос элементов в TTreeViewDelphi , Синтаксис , Drag and DropПеренос элементов в TTreeView
Оформил: DeeCo unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm1 = class(TForm) TreeView1: TTreeView; Label1: TLabel; procedure TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer); procedure TreeView1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); private { Private declarations } Procedure MoveNode(TargetNode, SourceNode : TTreeNode); public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} // // Procedure which will move node and its subnodes // Procedure TForm1.MoveNode(TargetNode, SourceNode : TTreeNode); var nodeTmp : TTreeNode; i : Integer; begin with TreeView1 do begin nodeTmp := Items.AddChild(TargetNode,SourceNode.Text); for i := 0 to SourceNode.Count -1 do begin MoveNode(nodeTmp,SourceNode.Item[i]); end; end; end; procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer); var TargetNode, SourceNode : TTreeNode; begin with TreeView1 do begin TargetNode := GetNodeAt(X,Y); // Get target node SourceNode := Selected; if (TargetNode = nil) then begin EndDrag(False); Exit; end; MoveNode(TargetNode,SourceNode); SourceNode.Free; end; end; procedure TForm1.TreeView1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin if (Sender = TreeView1) then // If TRUE than accept the draged item begin Accept := True; end; end; end. Привет! Я переведу текст на русский язык: Код - это программный проект на языке Delphi, который позволяет перемещать узлы в компоненте Вот разбивка кода:
Код хорошо организован и легко понятен, с ясными именами переменных и правильным использованием отступов. Однако есть несколько минорных проблем:
В целом, этоsolid piece of code, который демонстрирует эффективное использование функциональности перетаскивания в Delphi. В статье описывается реализация функции переноса элементов в компонент TTreeView Delphi с помощью обработки событий DragDrop и DragOver. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Drag and Drop ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |