You've already forked lazarus-ccr
demos: improve dragdrop example
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2554 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@@ -7,7 +7,7 @@ object MainForm: TMainForm
|
|||||||
ClientHeight = 362
|
ClientHeight = 362
|
||||||
ClientWidth = 461
|
ClientWidth = 461
|
||||||
Position = poDesktopCenter
|
Position = poDesktopCenter
|
||||||
LCLVersion = '0.9.31'
|
LCLVersion = '1.1'
|
||||||
object VirtualStringTree1: TVirtualStringTree
|
object VirtualStringTree1: TVirtualStringTree
|
||||||
Left = 8
|
Left = 8
|
||||||
Height = 315
|
Height = 315
|
||||||
@@ -43,7 +43,7 @@ object MainForm: TMainForm
|
|||||||
'List Item 5'
|
'List Item 5'
|
||||||
'List Item 6'
|
'List Item 6'
|
||||||
)
|
)
|
||||||
ItemHeight = 23
|
ItemHeight = 15
|
||||||
OnDragDrop = ListBox1DragDrop
|
OnDragDrop = ListBox1DragDrop
|
||||||
OnDragOver = ListBox1DragOver
|
OnDragOver = ListBox1DragOver
|
||||||
ScrollWidth = 190
|
ScrollWidth = 190
|
||||||
|
@@ -6,7 +6,7 @@ interface
|
|||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
|
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
|
||||||
VirtualTrees, FakeActiveX;
|
VirtualTrees, {$ifdef windows}ActiveX{$else}FakeActiveX{$endif};
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
@@ -20,8 +20,7 @@ type
|
|||||||
State: TDragState; var Accept: Boolean);
|
State: TDragState; var Accept: Boolean);
|
||||||
procedure VirtualStringTree1DragDrop(Sender: TBaseVirtualTree;
|
procedure VirtualStringTree1DragDrop(Sender: TBaseVirtualTree;
|
||||||
Source: TObject; DataObject: IDataObject; Formats: TFormatArray;
|
Source: TObject; DataObject: IDataObject; Formats: TFormatArray;
|
||||||
Shift: TShiftState; const Pt: TPoint; var Effect: Integer; Mode: TDropMode
|
Shift: TShiftState; const Pt: TPoint; var Effect: Integer; Mode: TDropMode);
|
||||||
);
|
|
||||||
procedure VirtualStringTree1DragOver(Sender: TBaseVirtualTree;
|
procedure VirtualStringTree1DragOver(Sender: TBaseVirtualTree;
|
||||||
Source: TObject; Shift: TShiftState; State: TDragState; const Pt: TPoint;
|
Source: TObject; Shift: TShiftState; State: TDragState; const Pt: TPoint;
|
||||||
Mode: TDropMode; var Effect: Integer; var Accept: Boolean);
|
Mode: TDropMode; var Effect: Integer; var Accept: Boolean);
|
||||||
@@ -91,24 +90,30 @@ procedure TMainForm.VirtualStringTree1DragDrop(Sender: TBaseVirtualTree;
|
|||||||
Shift: TShiftState; const Pt: TPoint; var Effect: Integer; Mode: TDropMode);
|
Shift: TShiftState; const Pt: TPoint; var Effect: Integer; Mode: TDropMode);
|
||||||
var
|
var
|
||||||
Node: PVirtualNode;
|
Node: PVirtualNode;
|
||||||
S: String;
|
NodeTitle: String;
|
||||||
begin
|
begin
|
||||||
|
case Mode of
|
||||||
|
dmAbove: Node := Sender.InsertNode(Sender.DropTargetNode, amInsertBefore);
|
||||||
|
dmBelow: Node := Sender.InsertNode(Sender.DropTargetNode, amInsertAfter);
|
||||||
|
dmNowhere: Node := Sender.InsertNode(Sender.DropTargetNode, amNoWhere);
|
||||||
|
else
|
||||||
|
Node := Sender.AddChild(Sender.DropTargetNode);
|
||||||
|
end;
|
||||||
|
Sender.ValidateNode(Node, True);
|
||||||
if Source = ListBox1 then
|
if Source = ListBox1 then
|
||||||
begin
|
begin
|
||||||
Node := Sender.AddChild(Sender.DropTargetNode);
|
|
||||||
if ListBox1.ItemIndex = -1 then
|
if ListBox1.ItemIndex = -1 then
|
||||||
S := 'Unknow Item from List'
|
NodeTitle := 'Unknow Item from List'
|
||||||
else
|
else
|
||||||
S := ListBox1.Items[ListBox1.ItemIndex];
|
NodeTitle := ListBox1.Items[ListBox1.ItemIndex];
|
||||||
Sender.ValidateNode(Node, True);
|
|
||||||
PNodeData(Sender.GetNodeData(Node))^.Title := S;
|
|
||||||
end
|
end
|
||||||
else if Source = Sender then
|
else if Source = Sender then
|
||||||
begin
|
begin
|
||||||
Node := Sender.AddChild(Sender.DropTargetNode);
|
NodeTitle := VirtualStringTree1.Text[Sender.FocusedNode, 0];
|
||||||
Sender.ValidateNode(Node, True);
|
end
|
||||||
PNodeData(Sender.GetNodeData(Node))^.Title := VirtualStringTree1.Text[Sender.FocusedNode, 0];
|
else
|
||||||
end;
|
NodeTitle := 'Unknow Source';
|
||||||
|
PNodeData(Sender.GetNodeData(Node))^.Title := NodeTitle;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TMainForm.VirtualStringTree1DragOver(Sender: TBaseVirtualTree;
|
procedure TMainForm.VirtualStringTree1DragOver(Sender: TBaseVirtualTree;
|
||||||
|
Reference in New Issue
Block a user