Hallo Boris,
dein Vorschlag mit DragMode = dmManual funktioniert.
Zu beachten ist noch der Parameter FALSE in BeginDrag.
Der Drag-Vorgang wird dann erst gestartet, wenn die Maus
noch etwas bewegt wird.
[code lang=”delphi”]procedure TViewWindowPositionen.CopyTreeMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
bDragAllowed : Boolean;
bIsHierarchie: Boolean;
sKE : String;
Node : TTreeDFNode;
begin
inherited;
if Button = mbLeft then begin
Node:= CopyTree.GetNodeAt(X, Y);
if Node <> nil then begin
bDragAllowed:= FALSE;
if (Node.sType = NODE_LEISTUNG) or (Node.sType = NODE_SELEKT_PFLANZE) then begin
bDragAllowed:= TRUE;
end else if Node.sType = NODE_POSITION then begin
GetPosTypFromID(Node.sID, sKE, bIsHierarchie);
bDragAllowed:= (sKe <> ‘PL’) and (sKE <> ‘PS’);
end;
if bDragAllowed then begin
(Sender as TControl).BeginDrag(FALSE);
CopyTree.DraggedNode:= Node;
end;
end;
end;
end;[/code]
[tags]Delphi, Components, TreeView[/tags]
0 Kommentare zu “Drag&Drop im Tree für bestimmte Nodes verhindern”