Mastodon
Programmierung

Drag&Drop im Tree für bestimmte Nodes verhindern

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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.