![]() |
![]() ![]() ![]() ![]() |
|
Перенос элементов в 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 прямо в свой смартфон. Подпишитесь на наш :: Главная :: Drag and Drop ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||